zss
2025-01-13 8d85246f061e3da623c7b9eb4e323ee724b4de0b
设备cnas代码搬迁
已修改5个文件
已添加287个文件
13836 ■■■■■ 文件已修改
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceAcceptanceController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceAccidentReportController.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceBorrowController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceBreakdownMaintenanceController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceCalibrationPlanController.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceCheckController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceExaminePlanController.java 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceExternalApplyController.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceFaultController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceFaultOneController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceInspectionRecordController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceLeaseController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceLogController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMaintenanceController.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMaintenancePlanController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMetricController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMetricRecordController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceRecordController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceScrappedController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceStateController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceTraceabilityManagementController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DocumentController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/IncidentReportController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/InstructionController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/QrShowController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/ReservationController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceAccidentReportDto.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCalibrationPlanDetailDto.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCalibrationPlanDto.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCollectionDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExaminePlanDetailsDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExaminePlanDto.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordContrastDetailsDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordContrastDto.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExport.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExternalApplyDto.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceFaultOneDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceInspectionRecordDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMaintenancePlanDetailsDto.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMaintenancePlanDto.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMetricRecordAndMaintenanceDto.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMetricRecordDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceRecordDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceRecordExportWord.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceScrappedDto.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceStateDto.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceTraceabilityManagementDetailsDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceTraceabilityManagementDto.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/DocumentExportWordDto.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/IncidentReportAddDto.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/IncidentReportExportWordDto.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/InstructionDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/InstructionFileDto.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/OperationInstructionDto.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/dto/ReservationDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceBorrowExcel.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceFaultOneExcel.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceFaultOneExport.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceMaintenanceExport.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceRecordExport.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceStateExport.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/IncidentReportExport.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/upload/DeviceCalibrationPlanDetailUpload.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/excel/upload/DeviceExaminePlanUpload.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAcceptanceFileMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAcceptanceMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAccidentReportMapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceBorrowMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceBreakdownMaintenanceMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCalibrationPlanDetailMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCalibrationPlanMapper.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCheckMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExaminePlanDetailsMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExaminePlanMapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordContrastDetailsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordContrastMapper.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordDetailMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordMapper.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExternalApplyMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceFaultMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceFaultOneMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceInspectionRecordDetailsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceInspectionRecordMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceLeaseMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceLogMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenanceMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenancePlanDetailsMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenancePlanMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricRecordMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricsCopyMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceRecordMapper.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceScrappedMapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceStateMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceTraceabilityManagementDetailsMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceTraceabilityManagementMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/DocumentDao.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentAcceptanceCheckMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentFileMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentInstallMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentReportMapper.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentSparePartsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/InstructionMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/OperationInstructionMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/mapper/ReservationMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAcceptance.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAcceptanceFile.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAccidentReport.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceBorrow.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceBreakdownMaintenance.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCalibrationPlan.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCalibrationPlanDetail.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCheck.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExaminePlan.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExaminePlanDetails.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecord.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordContrast.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordContrastDetails.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordDetail.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExternalApply.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceFault.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceFaultOne.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceInspectionRecord.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceInspectionRecordDetails.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceLease.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceLog.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenance.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenancePlan.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenancePlanDetails.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetric.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetricRecord.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetricsCopy.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceRecord.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceScrapped.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceState.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceTraceabilityManagement.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceTraceabilityManagementDetails.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/Document.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentAcceptanceCheck.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentFile.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentInstall.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentReport.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentSpareParts.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/Instruction.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/OperationInstruction.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/pojo/Reservation.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAcceptanceFileService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAcceptanceService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAccidentReportService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceBorrowService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceBreakdownMaintenanceService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCalibrationPlanDetailService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCalibrationPlanService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCheckService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExaminePlanDetailsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExaminePlanService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordContrastDetailsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordContrastService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordDetailService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExternalApplyService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceFaultOneService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceFaultService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceInspectionRecordDetailsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceInspectionRecordService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenancePlanDetailsService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenancePlanService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenanceService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMetricRecordService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMetricsCopyService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceRecordService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceScrappedService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceStateService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceTraceabilityManagementDetailsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceTraceabilityManagementService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/DocumentService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceLeaseService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceLogService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceMetricService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentAcceptanceCheckService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentFileService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentInstallService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentReportService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentSparePartsService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/InstructionService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/OperationInstructionService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/QrShowService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/ReservationService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAcceptanceFileServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAcceptanceServiceImpl.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAccidentReportServiceImpl.java 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceBorrowServiceImpl.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceBreakdownMaintenanceServiceImpl.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCalibrationPlanDetailServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCalibrationPlanServiceImpl.java 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCheckServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExaminePlanDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExaminePlanServiceImpl.java 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordContrastServiceImpl.java 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordDetailServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordServiceImpl.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExternalApplyServiceImpl.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceFaultOneServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceFaultServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceInspectionRecordDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceInspectionRecordServiceImpl.java 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceLeaseServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceLogServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenanceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenancePlanDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenancePlanServiceImpl.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricRecordServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricsCopyServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceRecordServiceImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceScrappedServiceImpl.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceStateServiceImpl.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceTraceabilityManagementDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceTraceabilityManagementServiceImpl.java 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DocumentServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentAcceptanceCheckServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentFileServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentInstallServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentReportServiceImpl.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentSparePartsServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/InstructionServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/OperationInstructionServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/QrShowServiceImpl.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/service/impl/ReservationServiceImpl.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/vo/OperationInstructionVo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceAcceptanceFileMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceAcceptanceMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceAccidentReportMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceBorrowMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceBreakdownMaintenanceMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceCalibrationPlanDetailMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceCalibrationPlanMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExaminePlanMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExamineRecordContrastDetailsMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExamineRecordDetailMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExamineRecordMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceExternalApplyMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceFaultOneMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceInspectionRecordDetailsMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceInspectionRecordMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMaintenanceMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMetricRecordMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceMetricsCopyMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceScrappedMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceStateMapper.xml 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/DeviceTraceabilityManagementMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/IncidentAcceptanceCheckMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/IncidentFileMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/IncidentInstallMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/IncidentReportMapper.xml 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/IncidentSparePartsMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/InstructionMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/OperationInstructionMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/mapper/ReservationMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/acceptance-certificate.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-accident-report.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-breakdown-maintenance.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-calibration-plan.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-document.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-external-apply.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-inspection-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-scrapped.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/device-status.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/examine-plan-detail.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/examine-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/incident-report.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/maintenance-plan.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/maintenance-records.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/quipment-details.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/review-examine-record-contrast.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/traceability-management-details.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/resources/static/word/use-record.docx 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/mom/enums/QrModelType.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/utils/UserUtils.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceAcceptanceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,142 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.pojo.DeviceAcceptance;
import com.yuanchu.mom.pojo.DeviceAcceptanceFile;
import com.yuanchu.mom.service.DeviceAcceptanceFileService;
import com.yuanchu.mom.service.DeviceAcceptanceService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备) å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:14
 */
@Api(tags = "设备验收(装备)")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceAcceptance")
public class DeviceAcceptanceController {
    private DeviceAcceptanceService deviceAcceptanceService;
    private DeviceAcceptanceFileService deviceAcceptanceFileService;
    /**
     * è®¾å¤‡éªŒæ”¶åˆ—表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备验收列表")
    @PostMapping("/pageDeviceAcceptance")
    public Result<IPage<DeviceAcceptance>> pageDeviceAcceptance(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceAcceptance deviceAcceptance = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceAcceptance.class);
        return Result.success(deviceAcceptanceService.pageDeviceAcceptance(page, deviceAcceptance));
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡éªŒæ”¶
     * @return
     */
    @ApiOperation(value = "查询设备验收")
    @GetMapping("/getDeviceAcceptance")
    public Result getDeviceAcceptance(Integer acceptanceId){
        return Result.success(deviceAcceptanceService.getById(acceptanceId));
    }
    /**
     * åˆ é™¤è®¾å¤‡éªŒæ”¶
     * @return
     */
    @ApiOperation(value = "删除设备验收")
    @GetMapping("/delDeviceAcceptance")
    public Result delDeviceAcceptance(Integer acceptanceId){
        return Result.success(deviceAcceptanceService.removeById(acceptanceId));
    }
    /**
     * æ–°å¢žè®¾å¤‡éªŒæ”¶
     * @return
     */
    @ApiOperation(value = "新增设备验收")
    @PostMapping("/addDeviceAcceptance")
    public Result addDeviceAcceptance(@RequestBody DeviceAcceptance deviceAcceptance){
        return Result.success(deviceAcceptanceService.save(deviceAcceptance));
    }
    /**
     * æ–°å¢žè®¾å¤‡éªŒæ”¶
     * @return
     */
    @ApiOperation(value = "编辑设备验收")
    @PostMapping("/updateDeviceAcceptance")
    public Result updateDeviceAcceptance(@RequestBody DeviceAcceptance deviceAcceptance){
        return Result.success(deviceAcceptanceService.updateById(deviceAcceptance));
    }
    /**
     * è®¾å¤‡éªŒæ”¶å¯¼å‡º
     * @param acceptanceId  è®¾å¤‡éªŒæ”¶id
     * @param response   å“åº”体
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备验收导出")
    @GetMapping("/exportDeviceAcceptance")
    public void exportDeviceAcceptance(Integer acceptanceId, HttpServletResponse response){
        deviceAcceptanceService.exportDeviceAcceptance(acceptanceId, response);
    }
    /**
     * è®¾å¤‡éªŒæ”¶é™„件新增
     * @param acceptanceId
     * @param file
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备验收附件新增")
    @PostMapping("/uploadDeviceAcceptanceFile")
    public Result<?> uploadDeviceAcceptanceFile(Integer acceptanceId, MultipartFile file) {
        return Result.success(deviceAcceptanceService.uploadDeviceAcceptanceFile(acceptanceId, file));
    }
    /**
     * è®¾å¤‡éªŒæ”¶é™„件列表
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备验收附件列表")
    @GetMapping("/getDeviceAcceptanceFileList")
    public Result<List<DeviceAcceptanceFile>> getVerifyMethodFileList(Integer acceptanceId){
        return Result.success(deviceAcceptanceFileService.list(Wrappers.<DeviceAcceptanceFile>lambdaQuery()
                .eq(DeviceAcceptanceFile::getAcceptanceId, acceptanceId)));
    }
    /**
     * è®¾å¤‡éªŒæ”¶é™„件删除
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备验收附件删除")
    @GetMapping("/delDeviceAcceptanceFileList")
    public Result delDeviceAcceptanceFileList(Integer acceptanceFileId){
        return Result.success(deviceAcceptanceFileService.removeById(acceptanceFileId));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceAccidentReportController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceAccidentReport;
import com.yuanchu.mom.service.DeviceAccidentReportService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡äº‹æ•…报告单 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 06:31:12
 */
@Api(tags = "设备事故报告单")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceAccidentReport")
public class DeviceAccidentReportController {
    private DeviceAccidentReportService deviceAccidentReportService;
    /**
     * è®¾å¤‡äº‹æ•…报告列表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备事故报告列表")
    @PostMapping("/pageDeviceAccidentReport")
    public Result<IPage<DeviceAccidentReport>> pageDeviceAccidentReport(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceAccidentReport deviceAccidentReport = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceAccidentReport.class);
        return Result.success(deviceAccidentReportService.pageDeviceAccidentReport(page, deviceAccidentReport));
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡äº‹æ•…报告
     * @return
     */
    @ApiOperation(value = "查询设备事故报告")
    @GetMapping("/getDeviceAccidentReport")
    public Result getDeviceAccidentReport(Integer accidentReportId){
        return Result.success(deviceAccidentReportService.getById(accidentReportId));
    }
    /**
     * åˆ é™¤è®¾å¤‡äº‹æ•…报告
     * @return
     */
    @ApiOperation(value = "删除设备事故报告")
    @GetMapping("/delDeviceAccidentReport")
    public Result delDeviceAccidentReport(Integer accidentReportId){
        return Result.success(deviceAccidentReportService.removeById(accidentReportId));
    }
    /**
     * æ–°å¢žè®¾å¤‡äº‹æ•…报告
     * @return
     */
    @ApiOperation(value = "新增设备事故报告")
    @PostMapping("/addDeviceAccidentReport")
    public Result addDeviceAccidentReport(@RequestBody DeviceAccidentReport deviceAccidentReport){
        return Result.success(deviceAccidentReportService.addDeviceAccidentReport(deviceAccidentReport));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡äº‹æ•…报告
     * @param accidentReportId è®¾å¤‡äº‹æ•…报告id
     * @param response å“åº”
     */
    @ApiOperation(value = "导出设备事故报告")
    @GetMapping("/exportDeviceAccidentReport")
    public Result exportDeviceAccidentReport(Integer accidentReportId, HttpServletResponse response) {
        deviceAccidentReportService.exportDeviceAccidentReport(accidentReportId, response);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceBorrowController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceBorrow;
import com.yuanchu.mom.service.DeviceBorrowService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 10:53:51
 */
@RestController
@RequestMapping("/deviceBorrow")
public class DeviceBorrowController {
    @Resource
    private DeviceBorrowService deviceBorrowService;
    //分页
    @PostMapping("/deviceBorrowPage")
    public Result deviceBorrowPage(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceBorrow deviceBorrow = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceBorrow.class);
        return Result.success(deviceBorrowService.deviceBorrowPage(page, deviceBorrow));
    }
    //查询
    @GetMapping("/getDeviceBorrow")
    public Result getDeviceBorrow(Integer id) {
        return Result.success(deviceBorrowService.getDeviceBorrow(id));
    }
    //新增
    @PostMapping("/saveDeviceBorrow")
    public Result saveDeviceBorrow(@RequestBody DeviceBorrow deviceBorrow) {
        return Result.success(deviceBorrowService.saveDeviceBorrow(deviceBorrow));
    }
    //删除
    @PostMapping("/deleteDeviceBorrow")
    public Result deleteDeviceBorrow(Integer id) {
        return Result.success(deviceBorrowService.removeById(id));
    }
    //导出
    @PostMapping("/deviceBorrowExport")
    public Result deviceBorrowExport(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception {
        List<DeviceBorrow> deviceBorrows = deviceBorrowService.getDeviceBorrowBydeviceId(deviceId);
        response.setHeader("requestType", "excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(DeviceBorrow.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // è‡ªé€‚应列宽
                .sheet()
                .doWrite(deviceBorrows);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceBreakdownMaintenanceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceBreakdownMaintenance;
import com.yuanchu.mom.service.DeviceBreakdownMaintenanceService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡æ•…障维修表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 04:50:57
 */
@Api(tags = "设备故障维修表")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceBreakdownMaintenance")
public class DeviceBreakdownMaintenanceController {
    private DeviceBreakdownMaintenanceService deviceBreakdownMaintenanceService;
    /**
     * è®¾å¤‡æ•…障维修列表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备故障维修列表")
    @PostMapping("/pageDeviceBreakdownMaintenance")
    public Result<IPage<DeviceBreakdownMaintenance>> pageDeviceBreakdownMaintenance(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceBreakdownMaintenance deviceBreakdownMaintenance = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceBreakdownMaintenance.class);
        return Result.success(deviceBreakdownMaintenanceService.pageDeviceBreakdownMaintenance(page, deviceBreakdownMaintenance));
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡æ•…障维修
     * @return
     */
    @ApiOperation(value = "查询设备故障维修")
    @GetMapping("/getDeviceBreakdownMaintenance")
    public Result getDeviceBreakdownMaintenance(Integer maintenanceId){
        return Result.success(deviceBreakdownMaintenanceService.getById(maintenanceId));
    }
    /**
     * åˆ é™¤è®¾å¤‡æ•…障维修
     * @return
     */
    @ApiOperation(value = "删除设备故障维修")
    @GetMapping("/delDeviceBreakdownMaintenance")
    public Result delDeviceBreakdownMaintenance(Integer maintenanceId){
        return Result.success(deviceBreakdownMaintenanceService.removeById(maintenanceId));
    }
    /**
     * æ–°å¢žè®¾å¤‡æ•…障维修
     * @return
     */
    @ApiOperation(value = "新增设备故障维修")
    @PostMapping("/addDeviceBreakdownMaintenance")
    public Result addDeviceBreakdownMaintenance(@RequestBody DeviceBreakdownMaintenance deviceBreakdownMaintenance){
        return Result.success(deviceBreakdownMaintenanceService.addDeviceBreakdownMaintenance(deviceBreakdownMaintenance));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ•…障维修
     * @param maintenanceId è®¾å¤‡æ•…障维修id
     * @param response å“åº”
     * @return
     */
    @ApiOperation(value = "导出设备故障维修")
    @GetMapping("/exportDeviceBreakdownMaintenance")
    public Result exportDeviceBreakdownMaintenance(Integer maintenanceId, HttpServletResponse response){
        deviceBreakdownMaintenanceService.exportDeviceBreakdownMaintenance(maintenanceId, response);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceCalibrationPlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.DeviceCalibrationPlanDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DeviceCalibrationPlan;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import com.yuanchu.mom.service.DeviceCalibrationPlanDetailService;
import com.yuanchu.mom.service.DeviceCalibrationPlanService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’主表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:17
 */
@Api(tags = "设备校准计划")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceCalibrationPlan")
public class DeviceCalibrationPlanController {
    private DeviceCalibrationPlanService deviceCalibrationPlanService;
    private DeviceCalibrationPlanDetailService deviceCalibrationPlanDetailService;
    /**
     * æ–°å¢žè®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "新增设备校准计划")
    @PostMapping("/addDeviceCalibrationPlan")
    public Result addDeviceCalibrationPlan(@RequestBody DeviceCalibrationPlanDto calibrationPlanDto){
        return Result.success(deviceCalibrationPlanService.addDeviceCalibrationPlan(calibrationPlanDto));
    }
    /**
     * å¯¼å…¥è®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "导入设备校准计划")
    @PostMapping("/importDeviceCalibrationPlan")
    public Result importDeviceCalibrationPlan(MultipartFile file, String planYear){
        return Result.success(deviceCalibrationPlanService.importDeviceCalibrationPlan(file, planYear));
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’删除
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备校准计划删除")
    @GetMapping("/delQualitySupervise")
    public Result delQualitySupervise(Integer planId){
        return Result.success(deviceCalibrationPlanService.removeById(planId));
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’批准
     * @return
     */
    @ValueClassify("质量设备校准计划")
    @ApiOperation(value = "设备校准计划批准")
    @PostMapping("/ratifyDeviceCalibrationPlan")
    public Result ratifyDeviceCalibrationPlan(@RequestBody DeviceCalibrationPlan DeviceCalibrationPlan){
        return Result.success(deviceCalibrationPlanService.ratifyDeviceCalibrationPlan(DeviceCalibrationPlan));
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’列表
     * @param data
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备校准计划列表")
    @PostMapping("/pageDeviceCalibrationPlan")
    public Result<IPage<DeviceCalibrationPlanDto>> pageDeviceCalibrationPlan(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceCalibrationPlan DeviceCalibrationPlan = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceCalibrationPlan.class);
        return Result.success(deviceCalibrationPlanService.pageDeviceCalibrationPlan(page, DeviceCalibrationPlan));
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情列表
     * @param data
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "设备校准计划详情列表")
    @PostMapping("/pageDeviceCalibrationPlanDetail")
    public Result<IPage<DeviceCalibrationPlanDetail>> pageDeviceCalibrationPlanDetail(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceCalibrationPlanDetail deviceCalibrationPlanDetails = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceCalibrationPlanDetail.class);
        return Result.success(deviceCalibrationPlanService.pageDeviceCalibrationPlanDetail(page, deviceCalibrationPlanDetails));
    }
    /**
     * æ–°å¢žè®¾å¤‡æ ¡å‡†è®¡åˆ’详情
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "新增设备校准计划详情")
    @PostMapping("/addDeviceCalibrationPlanDetail")
    public Result addDeviceCalibrationPlanDetail(@RequestBody DeviceCalibrationPlanDetail deviceCalibrationPlanDetail){
        if (deviceCalibrationPlanDetail.getPlanId() == null) {
            throw new ErrorException("缺少设备校准计划主表id");
        }
        return Result.success(deviceCalibrationPlanDetailService.save(deviceCalibrationPlanDetail));
    }
    /**
     * ä¿®æ”¹è®¾å¤‡æ ¡å‡†è®¡åˆ’详情
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "修改设备校准计划详情")
    @PostMapping("/updateDeviceCalibrationPlanDetail")
    public Result updateDeviceCalibrationPlanDetail(@RequestBody DeviceCalibrationPlanDetail deviceCalibrationPlanDetail){
        return Result.success(deviceCalibrationPlanDetailService.updateById(deviceCalibrationPlanDetail));
    }
    /**
     * åˆ é™¤è®¾å¤‡æ ¡å‡†è®¡åˆ’详情
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "删除设备校准计划详情")
    @GetMapping("/delDeviceCalibrationPlanDetail")
    public Result delDeviceCalibrationPlanDetail(Integer planDetailsId){
        return Result.success(deviceCalibrationPlanDetailService.removeById(planDetailsId));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "导出设备校准计划")
    @GetMapping("/exportDeviceCalibrationPlanDetail")
    public void exportDeviceCalibrationPlanDetail(Integer planId, HttpServletResponse response){
        deviceCalibrationPlanService.exportDeviceCalibrationPlanDetail(planId, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceCheckController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuanchu.mom.pojo.DeviceCheck;
import com.yuanchu.mom.service.DeviceCheckService;
import com.yuanchu.mom.vo.Result;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@RestController
@AllArgsConstructor
@RequestMapping("/device-check")
public class DeviceCheckController {
    @Autowired
    private DeviceCheckService deviceCheckService;
    @PostMapping(consumes= MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    public Result create(DeviceCheck deviceCheck) {
        return Result.success(deviceCheckService.save(deviceCheck));
    }
    @GetMapping("/{id}")
    public Result read(@PathVariable Integer id) {
        LambdaQueryWrapper<DeviceCheck> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(DeviceCheck::getDeviceId,id);
        return Result.success(deviceCheckService.list(lambdaQueryWrapper));
    }
    @PutMapping("/{id}")
    public Result update(@PathVariable Integer id, @RequestBody DeviceCheck deviceCheck) {
        deviceCheck.setDeviceId(id);
        deviceCheckService.updateById(deviceCheck);
        return Result.success();
    }
    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Integer id) {
        return   Result.success(deviceCheckService.removeById(id));
    }
    @GetMapping
    public Result list() {
        return Result.success(deviceCheckService.list());
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java
@@ -59,10 +59,10 @@
    @ValueClassify("设备")
    @ApiOperation(value = "查询设备详情列表")
    @PostMapping("/selectDeviceParameter")
    public Result selectDeviceParameter(@RequestBody Map<String, Object> data) throws Exception {
    public Result selectDeviceParameter(@RequestBody Map<String, Object> data,@RequestParam(value = "laboratoryNameIsNull", required = false) Boolean laboratoryNameIsNull) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceDto.class);
        return Result.success(deviceService.selectDeviceParameter(page, itemParameter));
        return Result.success(deviceService.selectDeviceParameter(page, itemParameter,laboratoryNameIsNull));
    }
    @ValueClassify("设备")
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceExaminePlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,255 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.DeviceExaminePlanDto;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDto;
import com.yuanchu.mom.dto.DeviceExamineRecordDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import com.yuanchu.mom.service.DeviceExaminePlanDetailsService;
import com.yuanchu.mom.service.DeviceExaminePlanService;
import com.yuanchu.mom.service.DeviceExamineRecordContrastService;
import com.yuanchu.mom.service.DeviceExamineRecordService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’主表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:04
 */
@Api(tags = "设备核查计划")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceExaminePlan")
public class DeviceExaminePlanController {
    private DeviceExaminePlanService deviceExaminePlanService;
    private DeviceExaminePlanDetailsService deviceExaminePlanDetailsService;
    private DeviceExamineRecordService deviceExamineRecordService;
    private DeviceExamineRecordContrastService deviceExamineRecordContrastService;
    /**
     * æ–°å¢žè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @return
     */
    @ApiOperation(value = "新增设备核查计划")
    @PostMapping("/addDeviceExaminePlan")
    public Result addDeviceExaminePlan(@RequestBody DeviceExaminePlanDto examinePlanDto){
        return Result.success(deviceExaminePlanService.addDeviceExaminePlan(examinePlanDto));
    }
    /**
     * å¯¼å…¥è®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @return
     */
    @ApiOperation(value = "导入设备核查计划")
    @PostMapping("/importDeviceExaminePlan")
    public Result importDeviceExaminePlan(MultipartFile file){
        return Result.success(deviceExaminePlanService.importDeviceExaminePlan(file));
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’删除
     * @return
     */
    @ApiOperation(value = "设备核查计划删除")
    @GetMapping("/delQualitySupervise")
    public Result delQualitySupervise(Integer planId){
        return Result.success(deviceExaminePlanService.removeById(planId));
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’批准
     * @return
     */
    @ValueClassify("质量设备核查计划")
    @ApiOperation(value = "设备核查计划批准")
    @PostMapping("/ratifyDeviceExaminePlan")
    public Result ratifyDeviceExaminePlan(@RequestBody DeviceExaminePlan DeviceExaminePlan){
        return Result.success(deviceExaminePlanService.ratifyDeviceExaminePlan(DeviceExaminePlan));
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’列表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备核查计划列表")
    @PostMapping("/pageDeviceExaminePlan")
    public Result<IPage<DeviceExaminePlanDto>> pageDeviceExaminePlan(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceExaminePlan DeviceExaminePlan = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceExaminePlan.class);
        return Result.success(deviceExaminePlanService.pageDeviceExaminePlan(page, DeviceExaminePlan));
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情列表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备核查计划详情列表")
    @PostMapping("/pageDeviceExaminePlanDetail")
    public Result<IPage<DeviceExaminePlanDetails>> pageDeviceExaminePlanDetail(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceExaminePlanDetails deviceExaminePlanDetails = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceExaminePlanDetails.class);
        return Result.success(deviceExaminePlanService.pageDeviceExaminePlanDetail(page, deviceExaminePlanDetails));
    }
    /**
     * æ–°å¢žè®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
     * @return
     */
    @ApiOperation(value = "新增设备核查计划详情")
    @PostMapping("/addDeviceExaminePlanDetail")
    public Result addDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){
        if (deviceExaminePlanDetail.getPlanId() == null) {
            throw new ErrorException("缺少设备核查计划主表id");
        }
        return Result.success(deviceExaminePlanDetailsService.save(deviceExaminePlanDetail));
    }
    /**
     * ä¿®æ”¹è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
     * @return
     */
    @ApiOperation(value = "修改设备核查计划详情")
    @PostMapping("/updateDeviceExaminePlanDetail")
    public Result updateDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){
        return Result.success(deviceExaminePlanDetailsService.updateById(deviceExaminePlanDetail));
    }
    /**
     * åˆ é™¤è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
     * @return
     */
    @ApiOperation(value = "删除设备核查计划详情")
    @GetMapping("/delDeviceExaminePlanDetail")
    public Result delDeviceExaminePlanDetail(Integer planDetailsId){
        return Result.success(deviceExaminePlanDetailsService.removeById(planDetailsId));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param planId è®¾å¤‡æ ¸æŸ¥è®¡åˆ’id
     * @return
     */
    @ApiOperation(value = "导出设备核查计划")
    @GetMapping("/exportDeviceExaminePlanDetail")
    public void exportDeviceExaminePlanDetail(Integer planId, HttpServletResponse response){
        deviceExaminePlanService.exportDeviceExaminePlanDetail(planId, response);
    }
    /*********************************************** æŠ¥å‘Š **************************************************/
    /**
     * æŸ¥è¯¢æ ¸æŸ¥è®°å½•
     * @return
     */
    @ApiOperation(value = "查询核查记录")
    @GetMapping("/getExamineRecord")
    public Result<DeviceExamineRecordDto> getExamineRecord(Integer planDetailsId){
        return Result.success(deviceExamineRecordService.getExamineRecord(planDetailsId));
    }
    /**
     * æ–°å¢žæ ¸æŸ¥è®°å½•
     * @return
     */
    @ApiOperation(value = "新增核查记录")
    @PostMapping("/addExamineRecord")
    public Result addExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){
        return Result.success(deviceExamineRecordService.addExamineRecord(deviceExamineRecordDto));
    }
    /**
     * å¤æ ¸æ ¸æŸ¥è®°å½•
     * @return
     */
    @ApiOperation(value = "复核核查记录")
    @PostMapping("/reviewExamineRecord")
    public Result reviewExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){
        return Result.success(deviceExamineRecordService.reviewExamineRecord(deviceExamineRecordDto));
    }
    /**
     * å¯¼å‡ºå¤æ ¸æ ¸æŸ¥è®°å½•
     * @param planDetailsId
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "导出复核核查记录")
    @GetMapping("/exportReviewExamineRecordDetail")
    public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response){
        deviceExamineRecordService.exportReviewExamineRecordDetail(planDetailsId, response);
    }
    /*********************************************** æŠ¥å‘Šå¯¹æ¯” **************************************************/
    /**
     * æŸ¥è¯¢æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @ApiOperation(value = "查询核查对比记录")
    @GetMapping("/getExamineRecordContrast")
    public Result<DeviceExamineRecordContrastDto> getExamineRecordContrast(Integer planDetailsId){
        return Result.success(deviceExamineRecordContrastService.getExamineRecordContrast(planDetailsId));
    }
    /**
     * æ–°å¢žæ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @ApiOperation(value = "新增核查对比记录")
    @PostMapping("/addExamineRecordContrast")
    public Result addExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){
        return Result.success(deviceExamineRecordContrastService.addExamineRecordContrast(deviceExamineRecordContrastDto));
    }
    /**
     * å®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @ApiOperation(value = "审核核查对比记录")
    @PostMapping("/reviewExamineRecordContrast")
    public Result reviewExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){
        return Result.success(deviceExamineRecordContrastService.reviewExamineRecordContrast(deviceExamineRecordContrastDto));
    }
    /**
     * å¯¼å‡ºå®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     * @param planDetailsId
     * @return
     */
    @ValueAuth
    @ApiOperation(value = "导出审核核查对比记录")
    @GetMapping("/exportReviewExamineRecordContrast")
    public Result exportReviewExamineRecordContrast(Integer planDetailsId, HttpServletResponse response){
        deviceExamineRecordContrastService.exportReviewExamineRecordContrast(planDetailsId, response);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceExternalApplyController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceExternalApply;
import com.yuanchu.mom.service.DeviceExternalApplyService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * åˆ©ç”¨å¤–部设备申请表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 10:28:43
 */
@Api(tags = "利用外部设备申请表")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceExternalApply")
public class DeviceExternalApplyController {
    private DeviceExternalApplyService deviceExternalApplyService;
    /**
     * åˆ©ç”¨å¤–部设备申请列表
     * @param data
     * @return
     */
    @ApiOperation(value = "利用外部设备申请列表")
    @PostMapping("/pageDeviceExternalApply")
    public Result<IPage<DeviceExternalApply>> pageDeviceExternalApply(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceExternalApply deviceExternalApply = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceExternalApply.class);
        return Result.success(deviceExternalApplyService.pageDeviceExternalApply(page, deviceExternalApply));
    }
    /**
     * æŸ¥è¯¢åˆ©ç”¨å¤–部设备申请
     * @return
     */
    @ApiOperation(value = "查询利用外部设备申请")
    @GetMapping("/getDeviceExternalApply")
    public Result getDeviceExternalApply(Integer externalApplyId){
        return Result.success(deviceExternalApplyService.getById(externalApplyId));
    }
    /**
     * åˆ é™¤åˆ©ç”¨å¤–部设备申请
     * @return
     */
    @ApiOperation(value = "删除利用外部设备申请")
    @GetMapping("/delDeviceExternalApply")
    public Result delDeviceExternalApply(Integer externalApplyId){
        return Result.success(deviceExternalApplyService.removeById(externalApplyId));
    }
    /**
     * æ–°å¢žåˆ©ç”¨å¤–部设备申请
     * @return
     */
    @ApiOperation(value = "新增利用外部设备申请")
    @PostMapping("/addDeviceExternalApply")
    public Result addDeviceExternalApply(@RequestBody DeviceExternalApply deviceExternalApply){
        return Result.success(deviceExternalApplyService.addDeviceExternalApply(deviceExternalApply));
    }
    /**
     * å¯¼å‡ºåˆ©ç”¨å¤–部设备申请
     * @param externalApplyId å¤–部设备申请id
     * @return
     */
    @ApiOperation(value = "导出利用外部设备申请")
    @GetMapping("/exportDeviceExternalApply")
    public Result exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response){
        deviceExternalApplyService.exportDeviceExternalApply(externalApplyId, response);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceFaultController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.yuanchu.mom.controller;
import com.yuanchu.mom.pojo.DeviceFault;
import com.yuanchu.mom.service.DeviceFaultService;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api/device-faults")
public class DeviceFaultController {
    private final DeviceFaultService deviceFaultService;
    @Autowired
    public DeviceFaultController(DeviceFaultService deviceFaultService) {
        this.deviceFaultService = deviceFaultService;
    }
    @GetMapping
    public List<DeviceFault> getAllDeviceFaults() {
        return deviceFaultService.list();
    }
    @PostMapping
    public DeviceFault createDeviceFault(@RequestBody DeviceFault deviceFault) {
        deviceFaultService.save(deviceFault);
        return deviceFault;
    }
    @PutMapping("/{id}")
    public DeviceFault updateDeviceFault(@PathVariable Integer id, @RequestBody DeviceFault deviceFault) {
        deviceFault.setId(id);
        deviceFaultService.updateById(deviceFault);
        return deviceFault;
    }
    @DeleteMapping("/{id}")
    public void deleteDeviceFault(@PathVariable Integer id) {
        deviceFaultService.removeById(id);
    }
    @GetMapping("/device/{deviceId}")
    public Result<Map<String,Object>> getDeviceFaultsByDeviceId(@PathVariable Integer deviceId) {
       return  Result.success(deviceFaultService.findByDeviceId(deviceId));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceFaultOneController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceFaultOneDto;
import com.yuanchu.mom.excel.DeviceFaultOneExport;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceFaultOne;
import com.yuanchu.mom.service.DeviceFaultOneService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
 * <p>
 * è®¾å¤‡æ•…障表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 02:03:29
 */
@RestController
@RequestMapping("/deviceFaultOne")
public class DeviceFaultOneController {
    @Autowired
    private DeviceFaultOneService deviceFaultOneService;
    @Autowired
    private NumberGenerator<DeviceFaultOne> numberGenerator;
    @GetMapping("/deviceFaultOnePage")
    public Result deviceFaultOnePage(@RequestParam("deviceId") Integer deviceId, Page page, String processNumber) {
        return Result.success(deviceFaultOneService.deviceFaultOnePage(deviceId,page, processNumber));
    }
    @PostMapping("/addOrUpdateDeviceFaultOne")
    public Result addOrUpdateDeviceFaultOne(@RequestBody DeviceFaultOne deviceFaultOne) {
        if (ObjectUtils.isEmpty(deviceFaultOne.getProcessNumber())) {
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceFaultOne::getProcessNumber);
            deviceFaultOne.setProcessNumber(processNumber);
        }
        return Result.success(deviceFaultOneService.saveOrUpdate(deviceFaultOne));
    }
    @DeleteMapping("/deleteDeviceFaultOne")
    public Result deleteDeviceFaultOne(@RequestParam("id") Integer id) {
        return Result.success(deviceFaultOneService.removeById(id));
    }
    @ApiOperation(value = "奖惩记录导出")
    @PostMapping("exportRewardAndPunishmentRecords")
    public void exportRewardAndPunishmentRecords(@RequestParam("deviceId") Integer deviceId, String processNumber,
                                       HttpServletResponse response) throws Exception {
        IPage<DeviceFaultOneDto> data = deviceFaultOneService.deviceFaultOnePage(deviceId, new Page<>(1, -1), processNumber);
        List<DeviceFaultOneExport> studentList  = JSONObject.parseArray(JSON.toJSONString(data.getRecords()), DeviceFaultOneExport.class);
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setHeader("requestType", "excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(DeviceFaultOneExport.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // è‡ªé€‚应列宽
                .sheet("sheet")
                .doWrite(studentList);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceInspectionRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceInspectionRecordDto;
import com.yuanchu.mom.pojo.DeviceInspectionRecord;
import com.yuanchu.mom.service.DeviceInspectionRecordService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 *  è®¾å¤‡ç‚¹æ£€è®°å½•表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:25:14
 */
@Api(tags = "设备点检记录")
@RestController
@RequestMapping("/deviceInspectionRecord")
public class DeviceInspectionRecordController {
    @Resource
    private DeviceInspectionRecordService deviceInspectionRecordService;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ç‚¹æ£€è®°å½•
     * @param data åˆ†é¡µå‚æ•°
     */
    @ApiOperation("分页查询设备点检记录")
    @PostMapping("/getDeviceInspectionRecordByPage")
    @SneakyThrows
    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(@RequestBody Map<String, Object> data) {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceInspectionRecordDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceInspectionRecordDto.class);
        return deviceInspectionRecordService.getDeviceInspectionRecordByPage(page, itemParameter);
    }
    /**
     * æŸ¥è¯¢ç‚¹æ£€è¯¦æƒ…
     */
    @ApiOperation("查询点检详情")
    @GetMapping("/getDeviceInspectionRecord")
    public Result getDeviceInspectionRecord(Integer inspectionRecordId) {
        return deviceInspectionRecordService.getDeviceInspectionRecord(inspectionRecordId);
    }
    /**
     * æ–°å¢žè®¾å¤‡ç‚¹æ£€è®°å½•
     * @param deviceInspectionRecord  è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @ApiOperation("新增设备点检记录")
    @PostMapping("/addDeviceInspectionRecord")
    public Result addDeviceInspectionRecord(@RequestBody DeviceInspectionRecordDto deviceInspectionRecord) {
        return deviceInspectionRecordService.addDeviceInspectionRecord(deviceInspectionRecord);
    }
    /**
     * ä¿®æ”¹è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @ApiOperation("修改设备点检记录")
    @PostMapping("/updateDeviceInspectionRecord")
    public Result updateDeviceInspectionRecord(@RequestBody DeviceInspectionRecordDto deviceInspectionRecord) {
        return deviceInspectionRecordService.updateInspectionRecordAndDetails(deviceInspectionRecord);
    }
    /**
     * åˆ é™¤è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @ApiOperation("删除设备点检记录")
    @GetMapping("/deleteDeviceInspectionRecord")
    public Result deleteDeviceInspectionRecord(DeviceInspectionRecordDto deviceInspectionRecord) {
        return deviceInspectionRecordService.deleteDeviceInspectionRecordOrDetails(deviceInspectionRecord);
    }
    /**
     * å¤æ ¸ç‚¹æ£€è®°å½•
     * @return
     */
    @ApiOperation(value = "复核核查记录")
    @PostMapping("/reviewDeviceInspectionRecord")
    public Result reviewDeviceInspectionRecord(@RequestBody DeviceInspectionRecordDto deviceExamineRecordDto){
        return deviceInspectionRecordService.reviewDeviceInspectionRecord(deviceExamineRecordDto);
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @ApiOperation("导出设备点检记录")
    @GetMapping("/exportDeviceInspectionRecord")
    public Result exportDeviceInspectionRecord(@RequestParam("inspectionRecordId") Integer inspectionRecordId, HttpServletResponse response) {
        return deviceInspectionRecordService.exportDeviceInspectionRecord(inspectionRecordId, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceLeaseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuanchu.mom.pojo.DeviceLease;
import com.yuanchu.mom.service.IDeviceLeaseService;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/deviceleases")
public class DeviceLeaseController {
    @Autowired
    private IDeviceLeaseService deviceLeaseService;
    @PostMapping("")
    public Result create( DeviceLease deviceLease) {
        deviceLeaseService.save(deviceLease);
        return Result.success();
    }
//    @GetMapping("/{leaseId}")
//    public DeviceLease get(@PathVariable Integer leaseId) {
//        return deviceLeaseService.getById(leaseId);
//    }
    @GetMapping("/list/{id}")
    public Result get(@PathVariable Integer id) {
        LambdaQueryWrapper<DeviceLease> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(DeviceLease::getDeviceId,id);
        return Result.success(deviceLeaseService.list(lambdaQueryWrapper));
    }
    @PutMapping("/{leaseId}")
    public boolean update(@PathVariable Integer leaseId, @RequestBody DeviceLease deviceLease) {
        deviceLease.setLeaseId(leaseId);
        return deviceLeaseService.updateById(deviceLease);
    }
    @DeleteMapping("/{leaseId}")
    public boolean delete(@PathVariable Integer leaseId) {
        return deviceLeaseService.removeById(leaseId);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceLogController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuanchu.mom.pojo.DeviceLog;
import com.yuanchu.mom.service.IDeviceLogService;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/device-log") // æ›´æ–°è·¯å¾„
//这里的接口全部是在设备校准的地方用到,但是其他地方会另外写
public class DeviceLogController {
    @Autowired
    private IDeviceLogService deviceLogService; // æ›´æ–°Service引用
    @GetMapping
    public List<DeviceLog> getAllDeviceLogs() { // æ›´æ–°æ–¹æ³•名
        return deviceLogService.list();
    }
    @GetMapping("/{id}")
    public Result getAllDeviceLogsBydId(@PathVariable int id) { // æ›´æ–°æ–¹æ³•名
        LambdaQueryWrapper<DeviceLog> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(DeviceLog::getDeviceId,id);
        lambdaQueryWrapper.eq(DeviceLog::getRelevanceForm,"device_maintenance");
        return Result.success(deviceLogService.list(lambdaQueryWrapper));
    }
    @PostMapping
    public Result createDeviceLog(DeviceLog deviceLog) { // æ›´æ–°æ–¹æ³•名
        deviceLog.setRelevanceForm("device_maintenance");//关联设备校准
        deviceLogService.save(deviceLog);
        return Result.success();
    }
    @PutMapping("/{id}")
    public DeviceLog updateDeviceLog(@PathVariable Integer id, @RequestBody DeviceLog deviceLog) { // æ›´æ–°æ–¹æ³•名
        deviceLog.setId(id);
        deviceLogService.updateById(deviceLog);
        return deviceLog;
    }
    @DeleteMapping("/{id}")
    public Result deleteDeviceLog(@PathVariable Integer id) { // æ›´æ–°æ–¹æ³•名
        deviceLogService.removeById(id);
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMaintenanceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.excel.DeviceMaintenanceExport;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceMaintenance;
import com.yuanchu.mom.service.DeviceMaintenanceService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
@RestController
@RequestMapping("/device-maintain")
public class DeviceMaintenanceController {
    @Autowired
    private DeviceMaintenanceService deviceMaintenanceService;
    @Autowired
    private NumberGenerator<DeviceMaintenance> numberGenerator;
    //增
    @PostMapping()
    public Result create(DeviceMaintenance deviceMaintenance){
        String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
        String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
        String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceMaintenance::getDeviceNumber);
        deviceMaintenance.setDeviceNumber(processNumber);
        return Result.success(deviceMaintenanceService.save(deviceMaintenance));
    }
    //通过deviceId查询维护数据
    @GetMapping("/getDeviceMaintenancePage")
    public Result getDeviceMaintenancePage(@RequestParam("deviceId") Integer deviceId, Page page, String deviceNumber){
        return Result.success(deviceMaintenanceService.getDeviceMaintenancePage(page, deviceId, deviceNumber));
    }
    //删
    @DeleteMapping("/delete/{id}")
    public void deleteDeviceFault(@PathVariable Integer id) {
        deviceMaintenanceService.removeById(id);
    }
    @GetMapping("/deviceMaintenanceExport")
    public Result deviceMaintenanceExport(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws IOException {
        List<DeviceMaintenanceExport> list = deviceMaintenanceService.deviceMaintenanceExport(deviceId);
        response.setHeader("requestType","excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(DeviceMaintenanceExport.class)
                .registerWriteHandler(getHorizontalCellStyleStrategy((short) 12))
                .sheet()
                .doWrite(list);
        return Result.success();
    }
    @ApiOperation(value = "设备维护记录导出")
    @GetMapping("/exportMaintenanceRecord")
    @ValueAuth
    public void exportMaintenanceRecord(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception {
        deviceMaintenanceService.exportMaintenanceRecord(deviceId, response);
    }
    /**
     * å•元格样式策略
     */
    public static HorizontalCellStyleStrategy getHorizontalCellStyleStrategy(Short fontHeightInPoints) {
        // å†…容的策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        // ã€æ°´å¹³å±…中需要使用以下两行】
        // è®¾ç½®æ–‡å­—左右居中
        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
        // è®¾ç½®æ–‡å­—上下居中
        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        // è®¾ç½® è‡ªåŠ¨æ¢è¡Œ
        contentWriteCellStyle.setWrapped(true);
        // æ ·å¼ç­–ç•¥
        return new HorizontalCellStyleStrategy(null, contentWriteCellStyle);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMaintenancePlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDto;
import com.yuanchu.mom.pojo.DeviceMaintenancePlan;
import com.yuanchu.mom.service.DeviceMaintenancePlanService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:10:52
 */
@Api(tags = "设备保养计划")
@RestController
@RequestMapping("/deviceMaintenancePlan")
public class DeviceMaintenancePlanController {
    @Resource
    private DeviceMaintenancePlanService deviceMaintenancePlanService;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param data åˆ†é¡µå‚æ•°
     * @return
     */
    @ApiOperation("分页查询设备保养计划")
    @PostMapping("selectDeviceMaintenancePlanByPage")
    @SneakyThrows
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(@RequestBody Map<String, Object> data){
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceMaintenancePlanDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceMaintenancePlanDto.class);
        return deviceMaintenancePlanService.selectDeviceMaintenancePlanByPage(page, itemParameter);
    }
    /**
     * æ–°å¢žè®¾å¤‡ä¿å…»è®¡åˆ’
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @ApiOperation("新增设备保养计划")
    @PostMapping("/addMaintenancePlan")
    public Result addMaintenancePlan(@RequestBody DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        return deviceMaintenancePlanService.addMaintenancePlan(deviceMaintenancePlanDto);
    }
    /**
     * ä¿®æ”¹è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @ApiOperation("修改设备保养计划")
    @PostMapping("/updateMaintenancePlan")
    public Result updateMaintenancePlan(@RequestBody DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        return deviceMaintenancePlanService.updateMaintenancePlan(deviceMaintenancePlanDto);
    }
    /**
     * åˆ é™¤è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @ApiOperation("删除设备保养计划")
    @GetMapping("/deleteMaintenancePlan")
    public Result deleteMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        return deviceMaintenancePlanService.deleteMaintenancePlan(deviceMaintenancePlanDto);
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
     */
    @ApiOperation("查询设备保养计划详情")
    @GetMapping("/getMaintenancePlanDetail")
    public Result<DeviceMaintenancePlanDto> getMaintenancePlanDetail(Integer maintenancePlanId) {
        return deviceMaintenancePlanService.getMaintenancePlanDetail(maintenancePlanId);
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
     */
    @ApiOperation("保养计划审核状态修改")
    @PostMapping("/reviewMaintenancePlanStatus")
    public Result reviewMaintenancePlanStatus(@RequestBody DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        return deviceMaintenancePlanService.reviewMaintenancePlanStatus(deviceMaintenancePlanDto);
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @ApiOperation("导出设备保养计划")
    @GetMapping("/exportDeviceMaintenancePlan")
    public Result exportDeviceMaintenancePlan(@RequestParam("maintenancePlanId") Integer maintenancePlanId, HttpServletResponse response) {
        return deviceMaintenancePlanService.exportDeviceMaintenancePlanDto(maintenancePlanId, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMetricController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.mom.pojo.DeviceMetric;
import com.yuanchu.mom.service.IDeviceMetricService;
import com.yuanchu.mom.vo.Result;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@AllArgsConstructor
@RequestMapping("/deviceMetrics")
public class DeviceMetricController {
    @Autowired
    private IDeviceMetricService deviceMetricService;
    @PostMapping("/saveOrUpdateDeviceMetric")
    public Result create(@RequestBody DeviceMetric deviceMetric) {
        return Result.success(deviceMetricService.saveOrUpdate(deviceMetric));
    }
    @GetMapping("/selectDeviceMetric")
    public Result read(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type) {
        return Result.success(deviceMetricService.list(Wrappers.<DeviceMetric>lambdaQuery()
                .eq(DeviceMetric::getDeviceId,deviceId)
                .eq(DeviceMetric::getType,type)));
    }
    @DeleteMapping("/deleteDeviceMetrics")
    public Result delete(@RequestParam("id") Integer id) {
      return   Result.success(deviceMetricService.removeById(id));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceMetricRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceMetricRecordDto;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
import com.yuanchu.mom.pojo.DeviceMetricsCopy;
import com.yuanchu.mom.service.DeviceMetricRecordService;
import com.yuanchu.mom.service.DeviceMetricsCopyService;
import com.yuanchu.mom.utils.FileSaveUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:01
 */
@Api(tags = "设备 - è®¾å¤‡æ ¡å‡†")
@RestController
@RequestMapping("/deviceMetricRecord")
public class DeviceMetricRecordController {
    @Autowired
    private DeviceMetricRecordService deviceMetricRecordService;
    @Autowired
    private DeviceMetricsCopyService deviceMetricsCopyService;
    @Autowired
    private NumberGenerator<DeviceMetricRecord> numberGenerator;
    @ApiOperation("设备校准分页查询")
    @GetMapping("/deviceMetricRecordPage")
    public Result deviceMetricRecordPage(@RequestParam("deviceId") Integer deviceId, Page page, @RequestParam("type") String type) {
        return Result.success(deviceMetricRecordService.page(page, Wrappers.<DeviceMetricRecord>lambdaQuery()
                .eq(DeviceMetricRecord::getDeviceId, deviceId)
                .eq(DeviceMetricRecord::getType, type)));
    }
    @ApiOperation("设备校准 æ–°å¢ž æ›´æ–°")
    @PostMapping("/addOrUpdateDeviceMetricRecord")
    public Result addOrUpdateDeviceMetricRecord(@RequestBody DeviceMetricRecordDto deviceMetricRecordDto) {
        if (ObjectUtils.isEmpty(deviceMetricRecordDto.getProcessNumber())) {
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(5, "SBJZ" + year + month, DeviceMetricRecord::getProcessNumber);
            deviceMetricRecordDto.setProcessNumber(processNumber);
        }
        deviceMetricRecordService.saveOrUpdate(deviceMetricRecordDto);
        if (CollectionUtils.isNotEmpty(deviceMetricRecordDto.getDeviceMetricsCopyList())) {
            deviceMetricRecordDto.getDeviceMetricsCopyList().forEach(i -> i.setDeviceMetricsId(deviceMetricRecordDto.getId()));
            deviceMetricsCopyService.saveOrUpdateBatch(deviceMetricRecordDto.getDeviceMetricsCopyList());
        }
        return Result.success();
    }
    @ApiOperation("设备校准 åˆ é™¤")
    @DeleteMapping("/deleteDeviceMetricRecord")
    public Result deleteDeviceMetricRecord(@RequestParam("id") Integer id) {
        DeviceMetricRecord deviceMetricRecord = deviceMetricRecordService.getById(id);
        deviceMetricsCopyService.remove(Wrappers.<DeviceMetricsCopy>lambdaQuery()
                .eq(DeviceMetricsCopy::getDeviceMetricsId, id));
        // åˆ é™¤æ–‡ä»¶
        FileSaveUtil.DeleteFile(deviceMetricRecord.getSystemFileName());
        return Result.success(deviceMetricRecordService.removeById(id));
    }
    @ApiOperation("设备校准 æ ¡å‡†æ¡ç›®æŸ¥è¯¢")
    @GetMapping("/showDeviceMetricsCopy")
    public Result showDeviceMetricsCopy(@RequestParam("id") Integer id, @RequestParam("type") String type) {
        return Result.success(deviceMetricsCopyService.list(Wrappers.<DeviceMetricsCopy>lambdaQuery()
                .eq(DeviceMetricsCopy::getDeviceMetricsId, id)
                .eq(DeviceMetricsCopy::getType, type)));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceRecord;
import com.yuanchu.mom.service.DeviceRecordService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * cnas设备使用记录表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 11:06:47
 */
@Api(tags = "设备使用记录")
@RestController
@RequestMapping("/deviceRecord")
public class DeviceRecordController {
    @Autowired
    private DeviceRecordService deviceRecordService;
    @Autowired
    private NumberGenerator<DeviceRecord> numberGenerator;
    @ValueClassify("设备使用记录")
    @ApiOperation(value = "备使用记录查询")
    @GetMapping("/deviceRecordPage")
    public Result deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
        return Result.success(deviceRecordService.deviceRecordPage(deviceId, page, sampleCode, managementNumber));
    }
    @ApiOperation(value = "新增")
    @PostMapping("/saveDeviceRecord")
    public Result saveDeviceRecords(@RequestBody DeviceRecord deviceRecord) {
        return Result.success(deviceRecordService.save(deviceRecord));
    }
    /**
     * ç¼–辑设备使用记录
     * @param deviceRecord
     * @return
     */
    @ApiOperation(value = "修改")
    @PostMapping("/updateDeviceRecord")
    public Result updateDeviceRecord(@RequestBody DeviceRecord deviceRecord) {
        return Result.success(deviceRecordService.updateById(deviceRecord));
    }
    @DeleteMapping("/deleteDeviceRecord")
    public Result deleteDeviceRecords(@RequestParam("id") Integer id) {
        return Result.success(deviceRecordService.removeById(id));
    }
    @ApiOperation(value = "设备使用记录导出")
    @GetMapping("/exportUseRecord")
    @ValueAuth
    public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response) throws Exception {
        deviceRecordService.exportUseRecord(deviceId, exportDate, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceScrappedController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceScrapped;
import com.yuanchu.mom.service.DeviceScrappedService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡æŠ¥åºŸç”³è¯·è¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 01:53:47
 */
@Api(tags = "设备报废申请表")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceScrapped")
public class DeviceScrappedController {
    private DeviceScrappedService deviceScrappedService;
    /**
     * è®¾å¤‡æŠ¥åºŸç”³è¯·åˆ—表
     * @param data
     * @return
     */
    @ApiOperation(value = "设备报废申请列表")
    @PostMapping("/pageDeviceScrapped")
    public Result<IPage<DeviceScrapped>> pageDeviceScrapped(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceScrapped deviceScrapped = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceScrapped.class);
        return Result.success(deviceScrappedService.pageDeviceScrapped(page, deviceScrapped));
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡æŠ¥åºŸç”³è¯·
     * @return
     */
    @ApiOperation(value = "查询设备报废申请")
    @GetMapping("/getDeviceScrapped")
    public Result getDeviceScrapped(Integer scrappedId){
        return Result.success(deviceScrappedService.getById(scrappedId));
    }
    /**
     * åˆ é™¤è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
     * @return
     */
    @ApiOperation(value = "删除设备报废申请")
    @GetMapping("/delDeviceScrapped")
    public Result delDeviceScrapped(Integer scrappedId){
        return Result.success(deviceScrappedService.removeById(scrappedId));
    }
    /**
     * æ–°å¢žè®¾å¤‡æŠ¥åºŸç”³è¯·
     * @return
     */
    @ApiOperation(value = "新增设备报废申请")
    @PostMapping("/addDeviceScrapped")
    public Result addDeviceScrapped(@RequestBody DeviceScrapped deviceScrapped){
        return Result.success(deviceScrappedService.addDeviceScrapped(deviceScrapped));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æŠ¥åºŸç”³è¯·
     */
    @ApiOperation("导出设备报废申请")
    @GetMapping("/exportDeviceScrapped")
    public Result exportDeviceScrapped(Integer scrappedId, HttpServletResponse response) {
        return deviceScrappedService.exportDeviceScrapped(scrappedId, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceStateController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.dto.DeviceStateDto;
import com.yuanchu.mom.excel.DeviceStateExport;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceState;
import com.yuanchu.mom.service.DeviceStateService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
 * <p>
 * è®¾å¤‡åœç”¨/启用 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 09:51:40
 */
@RestController
@RequestMapping("/deviceState")
public class DeviceStateController {
    @Autowired
    private DeviceStateService deviceStateService;
    @Autowired
    private NumberGenerator<DeviceState> numberGenerator;
    @PostMapping("saveDeviceState")
    public Result saveIncidentReportData(@RequestBody DeviceState deviceState) {
        if (ObjectUtils.isEmpty(deviceState.getProcessNumber())) {
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceState::getProcessNumber);
            deviceState.setProcessNumber(processNumber);
        }
        deviceStateService.saveOrUpdate(deviceState);
        return Result.success();
    }
    @GetMapping("/getDeviceStatePage")
    public Result getDeviceStatePage(@RequestParam("deviceId") Integer deviceId, Page page, String processNumber){
        return Result.success(deviceStateService.getDeviceStatePage(deviceId, page, processNumber));
    }
    @DeleteMapping("/deleteDeviceState")
    public Result deleteDeviceState(@RequestParam("stateId") Integer stateId){
        return Result.success(deviceStateService.removeById(stateId));
    }
    @PostMapping("/deviceStateExport")
    public Result deviceStateExport(@RequestParam("deviceId") Integer deviceId, String processNumber, HttpServletResponse response) throws Exception {
        IPage<DeviceStateDto> deviceBorrows = deviceStateService.getDeviceStatePage(deviceId, new Page<>(1, -1), processNumber);
        List<DeviceStateExport> studentList  = JSONObject.parseArray(JSON.toJSONString(deviceBorrows.getRecords()), DeviceStateExport.class);
        response.setHeader("requestType", "excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(DeviceStateExport.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // è‡ªé€‚应列宽
                .sheet("sheet")
                .doWrite(studentList);
        return Result.success();
    }
    @ApiOperation(value = "设备启动/停止导出")
    @GetMapping("/exportDeviceStatus")
    @ValueAuth
    public void exportDeviceStatus(@RequestParam("processNumber") String processNumber,@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception {
        deviceStateService.exportDeviceStatus(deviceId, processNumber, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceTraceabilityManagementController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagement;
import com.yuanchu.mom.service.DeviceTraceabilityManagementService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:44
 */
@Api(tags = "设备量值溯源计划")
@RestController
@RequestMapping("/deviceTraceabilityManagement")
public class DeviceTraceabilityManagementController {
    @Resource
    private DeviceTraceabilityManagementService deviceTraceabilityManagementService;
    /**
     * åˆ†é¡µæŸ¥è¯¢é‡å€¼æº¯æºè®¡åˆ’
     * @param data åˆ†é¡µå‚æ•°
     * @return
     */
    @ApiOperation("分页查询量值溯源计划")
    @PostMapping("selectDeviceTraceabilityManagementByPage")
    @SneakyThrows
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(@RequestBody Map<String, Object> data){
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceTraceabilityManagementDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceTraceabilityManagementDto.class);
        return deviceTraceabilityManagementService.selectDeviceTraceabilityManagementByPage(page, itemParameter);
    }
    /**
     * æ–°å¢žé‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    @ApiOperation("新增量值溯源计划")
    @PostMapping("/addTraceabilityManagement")
    public Result addTraceabilityManagement(@RequestBody DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        return deviceTraceabilityManagementService.addTraceabilityManagement(deviceTraceabilityManagementDto);
    }
    /**
     * ä¿®æ”¹é‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    @ApiOperation("修改量值溯源计划")
    @PostMapping("/updateTraceabilityManagement")
    public Result updateTraceabilityManagement(@RequestBody DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        return deviceTraceabilityManagementService.updateTraceabilityManagement(deviceTraceabilityManagementDto);
    }
    /**
     * åˆ é™¤é‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    @ApiOperation("删除量值溯源计划")
    @GetMapping("/deleteTraceabilityManagement")
    public Result deleteTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        return deviceTraceabilityManagementService.deleteTraceabilityManagement(deviceTraceabilityManagementDto);
    }
    /**
     * æŸ¥è¯¢é‡å€¼æº¯æºè®¡åˆ’详情
     */
    @ApiOperation("查询量值溯源计划详情")
    @GetMapping("/getTraceabilityManagementDetail")
    public Result<DeviceTraceabilityManagementDto> getTraceabilityManagementDetail(Integer traceabilityManagementId) {
        return deviceTraceabilityManagementService.getTraceabilityManagementDetail(traceabilityManagementId);
    }
    /**
     * é‡å€¼æº¯æºè®¡åˆ’审核状态修改
     */
    @ApiOperation("量值溯源计划审核状态修改")
    @PostMapping("/reviewTraceabilityManagementStatus")
    public Result reviewTraceabilityManagementStatus(@RequestBody DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        return deviceTraceabilityManagementService.reviewTraceabilityManagementStatus(deviceTraceabilityManagementDto);
    }
    /**
     * å¯¼å‡ºé‡å€¼æº¯æºè®¡åˆ’
     */
    @ApiOperation("导出量值溯源计划")
    @GetMapping("/exportDeviceTraceabilityManagement")
    public Result exportDeviceTraceabilityManagement(@RequestParam("traceabilityManagementId") Integer traceabilityManagementId, HttpServletResponse response) {
        return deviceTraceabilityManagementService.exportDeviceTraceabilityManagementDto(traceabilityManagementId, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/DocumentController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuanchu.mom.pojo.Document;
import com.yuanchu.mom.service.DocumentService;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/documents")
public class DocumentController {
    @Autowired
    private DocumentService documentService;
    @PostMapping
    public Result createDocument( Document document) {
        documentService.save(document);
        return Result.success("ok");
    }
    @GetMapping("/{id}")
    public Document getDocumentById(@PathVariable Integer id) {
        return documentService.getById(id);
    }
    @PutMapping("updateDocument")
    public Result updateDocument(@RequestBody Document document) {
        return Result.success(documentService.updateById(document));
    }
    @DeleteMapping("/{id}")
    public Result deleteDocumentById(@PathVariable Integer id) {
        return Result.success(documentService.removeById(id));
    }
    @GetMapping("/getListByDId/{id}")
    public Result getAllDocuments(@PathVariable Integer id) {
        LambdaQueryWrapper<Document> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(Document::getDeviceId,id);
        return Result.success(documentService.list(lambdaQueryWrapper));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/IncidentReportController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.IncidentReportAddDto;
import com.yuanchu.mom.excel.IncidentReportExport;
import com.yuanchu.mom.service.IncidentReportService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶æ·»åŠ éªŒæ”¶å­—æ®µè¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 03:54:49
 */
@RestController
@RequestMapping("/incident-report")
public class IncidentReportController {
    @Autowired
    private IncidentReportService incidentReportService;
    @PostMapping("saveIncidentReportData")
    public Result saveIncidentReportData(@RequestBody IncidentReportAddDto incidentReportAddDto) {
        incidentReportService.saveIncidentReportData(incidentReportAddDto);
        return Result.success();
    }
    @GetMapping("/getShowIncidentReport")
    public Result getShowIncidentReport(@RequestParam("id") Integer id) {
        return Result.success(incidentReportService.getShowIncidentReport(id));
    }
    @DeleteMapping("/deleteIncidentReport")
    public Result deleteIncidentReport(@RequestParam("id") Integer id) {
        incidentReportService.deleteIncidentReport(id);
        return Result.success();
    }
    @GetMapping("/incidentReportPage")
    public Result incidentReportPage(@RequestParam("deviceId") Integer deviceId, Page page, String processNumber){
        return Result.success(incidentReportService.getByDeviceId(deviceId, page, processNumber));
    }
    @DeleteMapping("deleteIncidentReportAll")
    public Result deleteIncidentReport(Integer sparePartsId, Integer fileId, Integer installId, Integer acceptanceCheckId) {
        incidentReportService.deleteIncidentReportAll(sparePartsId, fileId, installId, acceptanceCheckId);
        return Result.success();
    }
    @GetMapping("/incidentReportExport")
    public Result incidentReportPage(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws IOException {
        List<IncidentReportExport> list = incidentReportService.incidentReportExport(deviceId);
        response.setHeader("requestType", "excel");
        response.setHeader("Access-Control-Expose-Headers", "requestType");
        // è®¾ç½®å•元格样式
        // ä¿å­˜åˆ°ç¬¬ä¸€ä¸ªsheet中
        EasyExcel.write(response.getOutputStream())
                .head(IncidentReportExport.class)
                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // è‡ªé€‚应列宽
                .sheet()
                .doWrite(list);
        return Result.success();
    }
    @ValueClassify("设备验收")
    @ApiOperation(value = "设备验收导出")
    @GetMapping("/acceptanceCertificateExport")
    @ValueAuth
    public void acceptanceCertificateExport(@RequestParam("deviceId") Integer deviceId, @RequestParam("processNumber") String processNumber, HttpServletResponse response) throws Exception {
        incidentReportService.acceptanceCertificateExport(deviceId, processNumber, response);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/InstructionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.InstructionDto;
import com.yuanchu.mom.dto.OperationInstructionDto;
import com.yuanchu.mom.pojo.Instruction;
import com.yuanchu.mom.pojo.OperationInstruction;
import com.yuanchu.mom.service.InstructionService;
import com.yuanchu.mom.service.OperationInstructionService;
import com.yuanchu.mom.vo.OperationInstructionVo;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:29:18
 */
@RestController
@RequestMapping("/instruction")
public class InstructionController {
    @Autowired
    private InstructionService instructionService;
    @Autowired
    private OperationInstructionService operationInstructionService;
    @Autowired
    private GetLook getLook;
    @ApiOperation(value = "作业指导书 åˆ†é¡µ")
    @GetMapping("/pageByPageQueryOfHomeworkInstructions")
    public Result<IPage<Instruction>> pageByPageQueryOfHomeworkInstructions(Page page, OperationInstructionDto operationInstructionDto){
        return Result.success(instructionService.pageByPageQueryOfHomeworkInstructions(page, operationInstructionDto));
    }
    @ApiOperation(value = "作业指导书新增")
    @PostMapping("/newHomeworkGuidebookAdded")
    public Result newHomeworkGuidebookAdded(@RequestBody InstructionDto instructionDto){
        instructionService.newHomeworkGuidebookAdded(instructionDto);
        return Result.success();
    }
    @ValueAuth
    @ApiOperation(value = "作业指导书编辑")
    @GetMapping("/homeworkGuidebookEditor")
    public Result<Map<String, Object>> homeworkGuidebookEditor(Integer instructionId){
        Instruction instruction = instructionService.getById(instructionId);
        List<OperationInstructionVo> list = operationInstructionService.homeworkGuidebookEditor(instructionId);
        HashMap<String, Object> map = new HashMap<>();
        map.put("list", list);
        map.put("instruction", instruction);
        return Result.success(map);
    }
    @ApiOperation(value = "作业指导书受控文件删除")
    @GetMapping("/deleteHomeworkGuidebook")
    public Result deleteHomeworkGuidebook(String ids){
        if (ObjectUtils.isNotEmpty(ids)) {
            String[] idArray = ids.split(",");
            operationInstructionService.removeBatchByIds(Arrays.asList(idArray));
        }
        return Result.success();
    }
    @ApiOperation(value = "作业指导书删除")
    @GetMapping("/homeworkGuidebook")
    public Result homeworkGuidebook(String id, String instructionId){
        // åˆ é™¤å­è¡¨æ•°æ®
        operationInstructionService.removeById(id);
        // å¦‚果子表数据为空
        long count = operationInstructionService.count(Wrappers.<OperationInstruction>lambdaQuery()
                .eq(OperationInstruction::getInstructionId, instructionId));
        // é‚£ä¹ˆå°±åˆ é™¤çˆ¶è¡¨æ•°æ®
        if (count < 1) {
            instructionService.removeById(id);
        }
        return Result.success();
    }
    @ApiOperation(value = "作业指导书审批")
    @GetMapping("/approvalOfHomeworkInstructionManual")
    public Result approvalOfHomeworkInstructionManual(String id, Boolean status){
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
        operationInstructionService.update(Wrappers.<OperationInstruction>lambdaUpdate()
                .eq(OperationInstruction::getId, id)
                .set(OperationInstruction::getStatus, status)
                .set(OperationInstruction::getApproverId, map1.get("userId"))
                .set(OperationInstruction::getEntryIntoForceTime, LocalDateTime.now()));
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/QrShowController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.yuanchu.mom.controller;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.enums.QrModelType;
import com.yuanchu.mom.service.QrShowService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/qr")
public class QrShowController {
    @Autowired
    private QrShowService qrShowService;
    /**
     * äºŒç»´ç æ‰«ç è¯·æ±‚接口
     * @param model
     * @param code ç¼–号
     * @param type ç±»åž‹(word/device)
     * @return
     */
    @ValueAuth
    @GetMapping("/qrScan")
    public String hello(Model model, @RequestParam("code") String code,@RequestParam("type") String type){
        qrShowService.transformModelByType(model,code,type);
        return QrModelType.getValueByType(type);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/controller/ReservationController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceDto;
import com.yuanchu.mom.pojo.Reservation;
import com.yuanchu.mom.service.DeviceService;
import com.yuanchu.mom.service.ReservationService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Map;
/**
 * <p>
 * èµ„源预定新建预定表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author baomidou
 * @since 2024-09-14
 */
@RestController
@RequestMapping("/reservation")
public class ReservationController {
    @Autowired
    private ReservationService reservationService;
    @Resource
    private DeviceService deviceService;
    @PostMapping("/selectDeviceParameter")
    public Result selectDeviceParameter(@RequestBody Map<String, Object> data, @RequestParam(value = "laboratoryNameIsNull", required = false) Boolean laboratoryNameIsNull,@RequestParam(value = "starttime", required = false)String starttime,@RequestParam(value = "endtime", required = false) String endtime) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        DeviceDto itemParameter = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceDto.class);
        Map<String, Object> map = reservationService.selectDeviceParameter(page, itemParameter, laboratoryNameIsNull,starttime,endtime);
        return Result.success(map);
    }
    @PostMapping("/selectReservationParameterPage")
    public Result selectReservationParameterPage(@RequestParam String deviceId,@RequestParam String reservationTime,@RequestParam String specificTime){
        return Result.success(reservationService.selectReservationParameterPage(deviceId,reservationTime,specificTime));
    }
    @GetMapping("/{id}")
    public Result getList(@PathVariable Integer id) {
        LambdaQueryWrapper<Reservation> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(Reservation::getDeviceId,id);
        return Result.success(reservationService.list(lambdaQueryWrapper));
    }
    @PostMapping("save")
    public Result save(Reservation reservation){
        reservation.setCreateDate(LocalDateTime.now());
        reservationService.save(reservation);
        return Result.success();
    }
    @DeleteMapping("/delete/{ids}")
    public Result deleteReservation(@PathVariable String ids) {
        String[] idArray = ids.split(",");
        reservationService.removeBatchByIds(Arrays.asList(idArray));
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceAccidentReportDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceAccidentReport;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-18 æ˜ŸæœŸä¸‰ 10:00:48
 * Description:
 */
@Data
public class DeviceAccidentReportDto extends DeviceAccidentReport {
    @ApiModelProperty("时间")
    private String accidentDateStr;
    @ApiModelProperty("报告人填写时间")
    private String reportDateStr;
    @ApiModelProperty("评估人填写时间")
    private String assessorDateStr;
    @ApiModelProperty("部门负责人填写时间")
    private String departmentHeadDateStr;
    @ApiModelProperty("技术负责人填写时间")
    private String technicalDirectorDateStr;
    @ApiModelProperty("主任填写时间")
    private String directorHeadDateStr;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCalibrationPlanDetailDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 10:05:08
 * Description:
 */
@Data
public class DeviceCalibrationPlanDetailDto extends DeviceCalibrationPlanDetail {
    @ApiModelProperty("序号")
    private Integer index;
    @ApiModelProperty("最近检定时间Str")
    private String lastDateStr;
    @ApiModelProperty("本年计划校准时间Str")
    private String planDateStr;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCalibrationPlanDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceCalibrationPlan;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @Author zhuo
 * @Date 2024/12/16
 */
@Data
public class DeviceCalibrationPlanDto extends DeviceCalibrationPlan {
    @ApiModelProperty("编制人")
    private String writeName;
    @ApiModelProperty("批准人")
    private String ratifyName;
    @ApiModelProperty("编制时间")
    private String writeTimeStr;
    @ApiModelProperty("批准时间")
    private String ratifyTimeStr;
    @ApiModelProperty("校准计划详情")
    private List<DeviceCalibrationPlanDetail> calibrationPlanDetailList;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceCollectionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * è®¾å¤‡é‡‡é›†å¯¹è±¡
 *
 * @Author zhuo
 * @Date 2024/12/3
 */
@Data
public class DeviceCollectionDto {
    @ApiModelProperty(value = "样品id")
    private Integer id;
    @ApiModelProperty(value = "订单编号")
    private String entrustCode;
    @ApiModelProperty(value = "样品编号")
    private String sampleCode;
    @ApiModelProperty(value = "采集的检验项id")
    private List<Integer> itemIds;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExaminePlanDetailsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 15:34:44
 * Description:
 */
@Data
public class DeviceExaminePlanDetailsDto extends DeviceExaminePlanDetails {
    @ApiModelProperty("序号")
    private Integer index;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExaminePlanDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @Author zhuo
 * @Date 2024/12/16
 */
@Data
public class DeviceExaminePlanDto extends DeviceExaminePlan {
    @ApiModelProperty("编制人")
    private String writeName;
    @ApiModelProperty("批准人")
    private String ratifyName;
    @ApiModelProperty("编制时间")
    private String writeTimeStr;
    @ApiModelProperty("批准时间")
    private String ratifyTimeStr;
    @ApiModelProperty("年度")
    private String year;
    private List<DeviceExaminePlanDetails> examinePlanDetailsList;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordContrastDetailsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 13:59:37
 * Description:
 */
@Data
public class DeviceExamineRecordContrastDetailsDto extends DeviceExamineRecordContrastDetails {
    @ApiModelProperty("序号")
    private Integer index;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordContrastDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrast;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @Author zhuo
 * @Date 2024/12/16
 */
@Data
public class DeviceExamineRecordContrastDto extends DeviceExamineRecordContrast {
    @ApiModelProperty("核查记录对比详情")
    private List<DeviceExamineRecordContrastDetails> recordContrastDetailsList;
    @ApiModelProperty("A设备名称")
    private String aDeviceName;
    @ApiModelProperty("A设备编号")
    private String aDeviceNumber;
    @ApiModelProperty("b设备名称")
    private String bDeviceName;
    @ApiModelProperty("b设备编号")
    private String bDeviceNumber;
    @ApiModelProperty("c设备名称")
    private String cDeviceName;
    @ApiModelProperty("c设备编号")
    private String cDeviceNumber;
    @ApiModelProperty("核查日期")
    private String checkerTimeStr;
    @ApiModelProperty("审核日期")
    private String reviewTimeStr;
    @ApiModelProperty("实验室")
    private String labName;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExamineRecordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExamineRecord;
import com.yuanchu.mom.pojo.DeviceExamineRecordDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @Author zhuo
 * @Date 2024/12/16
 */
@Data
public class DeviceExamineRecordDto extends DeviceExamineRecord {
    @ApiModelProperty("核查记录详情")
    private List<DeviceExamineRecordDetail> recordDetailList;
    @ApiModelProperty("设备名称")
    private String deviceName;
    @ApiModelProperty("设备编号")
    private String deviceNumber;
    @ApiModelProperty("最后一次修改日期")
    private String updateTimeStr;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.Device;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-10 æ˜ŸæœŸäºŒ 15:55:29
 * Description:
 */
@Data
public class DeviceExport extends Device {
    @ApiModelProperty("管理人")
    private String equipmentManagerName;
    @ApiModelProperty("序号")
    private Integer index;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceExternalApplyDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceExternalApply;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2024/12/19
 */
@Data
public class DeviceExternalApplyDto extends DeviceExternalApply {
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceFaultOneDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceFaultOne;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DeviceFaultOneDto extends DeviceFaultOne {
    @ApiModelProperty(value = "设备名称")
    private String deviceName;
    @ApiModelProperty(value = "规格型号")
    private String specificationModel;
    @ApiModelProperty(value = "管理编号")
    private String managementNumber;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceInspectionRecordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yuanchu.mom.pojo.DeviceInspectionRecord;
import com.yuanchu.mom.pojo.DeviceInspectionRecordDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * Author: yuan
 * Date: 2024-12-16 æ˜ŸæœŸä¸€ 17:23:22
 * Description:
 */
@Data
public class DeviceInspectionRecordDto extends DeviceInspectionRecord {
    @TableField(exist = false)
    @ApiModelProperty("测试详情内容")
    private List<DeviceInspectionRecordDetails> details;
    @ApiModelProperty("测试时间")
    private String testDateString;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMaintenancePlanDetailsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 9:26:48
 * Description: è®¾å¤‡ä¿å…»è®¡åˆ’详情
 */
@Data
public class DeviceMaintenancePlanDetailsDto extends DeviceMaintenancePlanDetails {
    @ApiModelProperty("序号")
    private Integer index;
    @ApiModelProperty("仪器设备名称")
    private String deviceName;
    @ApiModelProperty("仪器设备编号")
    private String deviceNumber;
    @ApiModelProperty("仪器设备型号")
    private String specificationModel;
    @ApiModelProperty("仪器编号")
    private String managementNumber;
    @ApiModelProperty("归属实验室")
    private String storagePoint;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMaintenancePlanDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.yuanchu.mom.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yuanchu.mom.pojo.DeviceMaintenancePlan;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * Author: yuan
 * Date: 2024-12-16 æ˜ŸæœŸä¸€ 18:26:59
 * Description:
 */
@Data
public class DeviceMaintenancePlanDto extends DeviceMaintenancePlan {
    @ApiModelProperty("设备保养计划详情")
    @TableField(exist = false)
    private List<DeviceMaintenancePlanDetailsDto> deviceMaintenancePlanDetails;
    @ApiModelProperty("编制日期")
    private String datePreparationStr;
    @ApiModelProperty("审核日期")
    private String auditDateStr;
    @ApiModelProperty("设备Id")
    private Integer deviceId;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMetricRecordAndMaintenanceDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.yuanchu.mom.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-13 æ˜ŸæœŸäº” 10:43:06
 * Description: ä»ªå™¨è®¾å¤‡æ¡£æ¡ˆå¡ä¸­æ˜¾ç¤ºçš„设备校准记录和维护记录的列表对象
 */
@Data
public class DeviceMetricRecordAndMaintenanceDto {
    @ApiModelProperty("序号")
    private Integer index;
    // æ ¡å‡†è¡¨ä¸­çš„æ•°æ®
    @ApiModelProperty("校准日期")
    private String calibrationDateString;
    @ApiModelProperty("证书标号")
    private String certificateNumber;
    @ApiModelProperty("校准有效日期")
    private String validityDateString;
    @ApiModelProperty("判定")
    private String judgement;
    // ç»´ä¿®è®°å½•表中的数据
    @ApiModelProperty("维修日期")
    private String maintenanceDateString;
    @ApiModelProperty("处理方式")
    private String handlingMethod;
    @ApiModelProperty("备注")
    private String comments;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceMetricRecordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
import com.yuanchu.mom.pojo.DeviceMetricsCopy;
import lombok.Data;
import java.util.List;
@Data
public class DeviceMetricRecordDto extends DeviceMetricRecord {
    private List<DeviceMetricsCopy> deviceMetricsCopyList;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceRecordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceRecord;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DeviceRecordDto extends DeviceRecord {
    @ApiModelProperty("设备名称")
    private String deviceName;
    @ApiModelProperty("设备编号")
    private String managementNumber;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceRecordExportWord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceRecord;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-10 æ˜ŸæœŸäºŒ 17:19:22
 * Description:
 */
@Data
public class DeviceRecordExportWord extends DeviceRecord {
    @ApiModelProperty("使用前0代表不正常1代表正常")
    private String useBeforeString;
    @ApiModelProperty("使用后0代表不正常1代表正常")
    private String useAfterString;
    @ApiModelProperty("操作时间 String yyyy-MM-dd")
    private String operationDate;
    @ApiModelProperty("使用开始日期 String yyyy-MM-dd \n HH:mm:ss")
    private String useStartDateString;
    @ApiModelProperty("使用结束日期 String yyyy-MM-dd \n HH:mm:ss")
    private String useEndDateString;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceScrappedDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceScrapped;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 18:34:17
 * Description:
 */
@Data
public class DeviceScrappedDto extends DeviceScrapped {
    @ApiModelProperty("申请时间")
    private String applicantDateStr;
    @ApiModelProperty("部门负责人填写时间")
    private String departmentHeadDateStr;
    @ApiModelProperty("计量室人填写时间")
    private String meteringRoomDateStr;
    @ApiModelProperty("批准人填写时间")
    private String approverDateStr;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceStateDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceState;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DeviceStateDto extends DeviceState {
    @ApiModelProperty(value = "设备名称")
    private String deviceName;
    @ApiModelProperty(value = "规格型号")
    private String specificationModel;
    @ApiModelProperty(value = "管理编号")
    private String managementNumber;
    @ApiModelProperty(value = "操作日期 yyyy-MM-dd")
    private String submitDateString;
    @ApiModelProperty("负责人审批日期 yyyy-MM-dd")
    private String departmentDateString;
    @ApiModelProperty("计量室审批日期 yyyy-MM-dd")
    private String measuringRoomDateString;
    @ApiModelProperty("批准日期 yyyy-MM-dd")
    private String approvalDateString;
    @ApiModelProperty(value = "设备类型")
    private String largeCategory;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceTraceabilityManagementDetailsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-20 æ˜ŸæœŸäº” 15:05:02
 * Description:
 */
@Data
public class DeviceTraceabilityManagementDetailsDto extends DeviceTraceabilityManagementDetails {
    @ApiModelProperty("序号")
    private Integer index;
    @ApiModelProperty("仪器设备名称")
    private String deviceName;
    @ApiModelProperty("仪器设备型号")
    private String specificationModel;
    @ApiModelProperty("仪器编号")
    private String managementNumber;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceTraceabilityManagementDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagement;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * Author: yuan
 * Date: 2024-12-20 æ˜ŸæœŸäº” 14:30:45
 * Description:
 */
@Data
public class DeviceTraceabilityManagementDto extends DeviceTraceabilityManagement {
    @ApiModelProperty("设备量值溯源计划详情")
    private List<DeviceTraceabilityManagementDetailsDto> deviceTraceabilityManagementDetails;
    @ApiModelProperty("编制日期")
    private String datePreparationStr;
    @ApiModelProperty("审核日期")
    private String auditDateStr;
    @ApiModelProperty("设备Id")
    private Integer deviceId;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/DocumentExportWordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.yuanchu.mom.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Author: yuan
 * Date: 2024-12-13 æ˜ŸæœŸäº” 8:45:34
 * Description: ç”¨äºŽä»ªå™¨è®¾å¤‡æ¡£æ¡ˆå¡çš„导出
 */
@Data
public class DocumentExportWordDto {
    // è®¾å¤‡æ¡£æ¡ˆå·¦åˆ—表
    @ApiModelProperty("序号")
    private Integer index1;
    @ApiModelProperty("档案名称")
    private String name1;
    @ApiModelProperty("份数")
    private Integer quantity1;
    @ApiModelProperty("页码")
    private Integer pageCount1;
    @ApiModelProperty("归档日期")
    private String archiveDateString1;
    // è®¾å¤‡æ¡£æ¡ˆå³åˆ—表
    @ApiModelProperty("序号")
    private Integer index2;
    @ApiModelProperty("档案名称")
    private String name2;
    @ApiModelProperty("份数")
    private Integer quantity2;
    @ApiModelProperty("页码")
    private Integer pageCount2;
    @ApiModelProperty("归档日期")
    private String archiveDateString2;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/IncidentReportAddDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.*;
import lombok.Data;
import java.util.List;
@Data
public class IncidentReportAddDto extends IncidentReport {
    private List<IncidentSpareParts> sparePartsConfirmationList; // å¤‡ä»¶ç¡®è®¤List
    private List<IncidentFile> fileClassConfirmationList; // æ–‡ä»¶ç¡®è®¤List
    private List<IncidentInstall> installationAcceptanceRecordList; // å®‰è£…验收记录
    private List<IncidentAcceptanceCheck> acceptanceCheckRecordList; // éªŒæ”¶æ ¸æŸ¥è®°å½•
    private String deviceName;
    private String managementNumber;
    private String submitUser;
    private String saveState;
    private String manufacturer;
    private String specificationModel;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/IncidentReportExportWordDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.IncidentReport;
import io.swagger.annotations.ApiModelProperty;
/**
 * Author: yuan
 * Date: 2024-12-12 æ˜ŸæœŸå›› 10:39:23
 * Description: å¯¼å‡ºéªŒæ”¶æŠ¥å‘Šåˆ°word的dto
 */
public class IncidentReportExportWordDto extends IncidentReport {
    @ApiModelProperty("设备名称")
    private String deviceName;
    @ApiModelProperty("设备型号")
    private String deviceModel;
    @ApiModelProperty("金额")
    private String amount;
    @ApiModelProperty("出厂编号")
    private String deviceNumber;
    @ApiModelProperty("到货日期")
    private String arrivalDateString;
    @ApiModelProperty("存放地点")
    private String deviceLocation;
    @ApiModelProperty("生产厂家")
    private String manufacturer;
    @ApiModelProperty("供应商")
    private String supplier;
    @ApiModelProperty("维修单位")
    private String maintainUnit;
    @ApiModelProperty("收设备主机和备件情况")
    private String equipmentHostAndSpareParts;
    @ApiModelProperty("验收情况")
    private String unpackingAcceptanceConclusionString;
    @ApiModelProperty("提交日期 yyyy-MM-dd")
    private String submitDateString;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/InstructionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.Instruction;
import com.yuanchu.mom.pojo.OperationInstruction;
import lombok.Data;
import java.util.List;
@Data
public class InstructionDto extends Instruction {
    private List<OperationInstruction> feTempHumRecordList;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/InstructionFileDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.yuanchu.mom.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yuanchu.mom.pojo.Instruction;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
@Data
public class InstructionFileDto extends Instruction {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(" è®¾å¤‡åç§°")
    private String deviceName;
    @ApiModelProperty(" æ–‡æ¡£ç¼–号")
    private String documentNumber;
    @ApiModelProperty(" è®¾å¤‡ç¼–号")
    private String deviceNumber;
    @ApiModelProperty(" æ–‡æ¡£ç‰ˆæœ¬")
    private String documentVersion;
    @ApiModelProperty("附件")
    private String attachmentInformation;
    @ApiModelProperty(" ä½œè€…")
    private Integer author;
    @ApiModelProperty("提交日期")
    private LocalDate submitDate;
    @ApiModelProperty("文档说明")
    private String documentNote;
    private String documentType;
    private String deviceModel;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/OperationInstructionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.OperationInstruction;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OperationInstructionDto extends OperationInstruction {
    @ApiModelProperty("申请编号")
    private String applicationNumber;
    @ApiModelProperty("申请部门")
    private String applicationDepartment;
    @ApiModelProperty("责任人")
    private String personLiable;
    @ApiModelProperty("受控申请说明")
    private String controlledApplicationDescription;
    @ApiModelProperty("管理编号")
    private String deviceNumber;
    @ApiModelProperty("型号")
    private String deviceModel;
    @ApiModelProperty("设备名称")
    private String deviceName;
    @ApiModelProperty("上传人")
    private String uploaderName;
    @ApiModelProperty("审批人")
    private String approverName;
}
cnas-server/src/main/java/com/yuanchu/mom/dto/ReservationDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.Reservation;
import lombok.Data;
@Data
public class ReservationDto extends Reservation {
    private String name;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceBorrowExcel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class DeviceBorrowExcel {
    @ApiModelProperty("流程编号")
    private String processNumber;
    @ApiModelProperty(value = "设备名称")
    private String deviceName;
    @ApiModelProperty(value = "规格型号")
    private String specificationModel;
    @ApiModelProperty(value = "管理编号")
    private String managementNumber;
    @ApiModelProperty("0设备状态")
    private String deviceStatus;
    @ApiModelProperty("0停用启用理由")
    private String reason;
    @ExcelProperty(value = "提交人")
    private String createUser;
    @ApiModelProperty("提交日期")
    @ExcelProperty(value = "提交日期")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceFaultOneExcel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDate;
@Data
@EqualsAndHashCode
public class DeviceFaultOneExcel {
    @ExcelProperty("序号")
    private Long index;
    @ExcelProperty("流程编号")
    private String deviceNumber;
    @ExcelProperty("设备名称")
    private String deviceName;
    @ExcelProperty("统一编号")
    private Double managementNumber;
    @ExcelProperty("故障情况")
    private String faultSituation;
    @ExcelProperty("提交人")
    private String submitPerson;
    @ExcelProperty("提交日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private LocalDate faultDate;
    @ExcelProperty("当前状态")
    private String currentStatus;
    @ExcelProperty("当前责任人")
    private String currentResponsiblePerson;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceFaultOneExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class DeviceFaultOneExport {
    @ExcelProperty("流程编号")
    private String processNumber;
    @ExcelProperty(value = "设备名称")
    private String deviceName;
    @ExcelProperty(value = "统一编号")
    private String managementNumber;
    @ExcelProperty("故障情况")
    private String faultSituation;
    @ExcelProperty("提交人")
    private String submitPerson;
    @ExcelProperty("提交日期")
    private LocalDateTime createTime;
    @ExcelProperty("当前状态")
    private String currentState;
    @ExcelProperty("当前责任人")
    private String currentResponsible;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceMaintenanceExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
public class DeviceMaintenanceExport {
    @ColumnWidth(20)
    @ExcelProperty("设备名称")
    private String deviceName;
    @ColumnWidth(20)
    @ExcelProperty("流程编号")
    private String deviceNumber;
    @ColumnWidth(20)
    @ExcelProperty("管理编号")
    private String managementNumber;
    @ColumnWidth(50)
    @ExcelProperty("维护内容")
    private String content;
    @ColumnWidth(20)
    @ExcelProperty("维护时间")
    private String date;
    @ColumnWidth(20)
    @ExcelProperty("下次维护时间")
    private String nextDate;
    @ColumnWidth(20)
    @ExcelProperty("维护类型")
    private String maintenanceType;
    @ColumnWidth(20)
    @ExcelProperty("维护人")
    private String name;
    @ColumnWidth(50)
    @ExcelProperty("备注")
    private String comments;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceRecordExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class DeviceRecordExport {
    @ExcelProperty("流程编号")
    private String deviceNumber;
    @ExcelProperty("设备名称")
    private String deviceName;
    @ExcelProperty("管理编号")
    private String managementNumber;
    @ExcelProperty("温度")
    private String temperature;
    @ExcelProperty("湿度")
    private String humidity;
    @ExcelProperty("使用前")
    private String useBefore;
    @ExcelProperty("使用后")
    private String useAfter;
    @ExcelProperty("异常情况")
    private String abnormal;
    @ExcelProperty("使用日期")
    private String useDate;
    @ExcelProperty("使用人")
    private String usePerson;
    @ExcelProperty("备注")
    private String remark;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/DeviceStateExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class DeviceStateExport {
    @ExcelProperty(value = "设备名称")
    private String deviceName;
    @ExcelProperty(value = "规格型号")
    private String specificationModel;
    @ExcelProperty(value = "管理编号")
    private String managementNumber;
    @ExcelProperty("设备状态")
    private String deviceStatus;
    @ExcelProperty("停用启用理由")
    private String reason;
    @ExcelProperty("提交人")
    private String createUser;
    @ExcelProperty("提交日期")
    private LocalDateTime createTime;
    @ExcelProperty("当前状态")
    private String currentState;
    @ExcelProperty("当前负责人")
    private String currentResponsible;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/IncidentReportExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class IncidentReportExport {
    @ExcelProperty(value = "流程编号")
    private String processNumber;
    @ExcelProperty(value = "设备名称")
    private String deviceName;
    @ExcelProperty(value = "管理编号")
    private String managementNumber;
    @ExcelProperty(value = "序列号")
    private String serialNumber;
    @ExcelProperty(value = "提交者")
    private String submitUser;
    @ExcelProperty(value = "提交日期")
    private String createTime;
    @ExcelProperty(value = "当前状态")
    private String saveState;
    @ExcelProperty("当前负责人")
    private String currentResponsible;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/upload/DeviceCalibrationPlanDetailUpload.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.yuanchu.mom.excel.upload;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2024/12/20
 */
@Data
public class DeviceCalibrationPlanDetailUpload {
    @ApiModelProperty("设备名称及型号")
    private String deviceName;
    @ApiModelProperty("设备数量")
    private String deviceAmount;
    @ApiModelProperty("仪器编号")
    private String deviceNumber;
    @ApiModelProperty("检定单位")
    private String verificationUnit;
    @ApiModelProperty("检定周期")
    private String verificationCycles;
    @ApiModelProperty("最近检定时间")
    private String lastDate;
    @ApiModelProperty("本年计划校准时间")
    private String planDate;
    @ApiModelProperty("备注")
    private String remark;
}
cnas-server/src/main/java/com/yuanchu/mom/excel/upload/DeviceExaminePlanUpload.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.yuanchu.mom.excel.upload;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2024/12/20
 */
@Data
public class DeviceExaminePlanUpload {
    @ApiModelProperty("设备编号")
    private String deviceNumber;
    @ApiModelProperty("计划名称")
    private String deviceName;
    @ApiModelProperty("核查时间")
    private String checkTime;
    @ApiModelProperty("核查指标")
    private String checkIndex;
    @ApiModelProperty("核查方法")
    private String checkMethod;
    @ApiModelProperty("结果如何判定")
    private String howResults;
    @ApiModelProperty("核查责任人")
    private String checkChargerUser;
    @ApiModelProperty("备注")
    private String remark;
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAcceptanceFileMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceAcceptanceFile;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备)附件表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:26
 */
public interface DeviceAcceptanceFileMapper extends BaseMapper<DeviceAcceptanceFile> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAcceptanceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceAcceptance;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备) Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:14
 */
public interface DeviceAcceptanceMapper extends BaseMapper<DeviceAcceptance> {
    /**
     * è®¾å¤‡éªŒæ”¶åˆ—表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceAcceptance> pageDeviceAcceptance(Page page, @Param("ew") QueryWrapper<DeviceAcceptance> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceAccidentReportMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceAccidentReportDto;
import com.yuanchu.mom.pojo.DeviceAccidentReport;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡äº‹æ•…报告单 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 06:31:12
 */
public interface DeviceAccidentReportMapper extends BaseMapper<DeviceAccidentReport> {
    /**
     * è®¾å¤‡äº‹æ•…报告列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceAccidentReport> pageDeviceAccidentReport(Page page, @Param("ew") QueryWrapper<DeviceAccidentReport> ew);
    /**
     * æŸ¥è¯¢è®¾å¤‡äº‹æ•…报告详情
     * @param accidentReportId è®¾å¤‡äº‹æ•…报告id
     * @return
     */
    DeviceAccidentReportDto selectDeviceAccidentReportById(Integer accidentReportId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceBorrowMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceBorrow;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 10:53:51
 */
public interface DeviceBorrowMapper extends BaseMapper<DeviceBorrow> {
    IPage<DeviceBorrow> deviceBorrowPage(Page page, @Param("ew")QueryWrapper<DeviceBorrow> ew);
    List<DeviceBorrow> getDeviceBorrowBydeviceId(Integer deviceId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceBreakdownMaintenanceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceBreakdownMaintenance;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ•…障维修表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 04:50:57
 */
public interface DeviceBreakdownMaintenanceMapper extends BaseMapper<DeviceBreakdownMaintenance> {
    /**
     * è®¾å¤‡æ•…障维修列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceBreakdownMaintenance> pageDeviceBreakdownMaintenance(Page page, @Param("ew") QueryWrapper<DeviceBreakdownMaintenance> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCalibrationPlanDetailMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:29
 */
public interface DeviceCalibrationPlanDetailMapper extends BaseMapper<DeviceCalibrationPlanDetail> {
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceCalibrationPlanDetail> pageDeviceCalibrationPlanDetail(Page page, @Param("ew") QueryWrapper<DeviceCalibrationPlanDetail> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCalibrationPlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceCalibrationPlanDto;
import com.yuanchu.mom.pojo.DeviceCalibrationPlan;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’主表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:17
 */
public interface DeviceCalibrationPlanMapper extends BaseMapper<DeviceCalibrationPlan> {
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceCalibrationPlanDto> pageDeviceCalibrationPlan(Page page, @Param("ew") QueryWrapper<DeviceCalibrationPlan> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceCheckMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceCheck;
public interface DeviceCheckMapper extends BaseMapper<DeviceCheck> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExaminePlanDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:16
 */
public interface DeviceExaminePlanDetailsMapper extends BaseMapper<DeviceExaminePlanDetails> {
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, @Param("ew") QueryWrapper<DeviceExaminePlanDetails> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExaminePlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceExaminePlanDto;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’主表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:04
 */
public interface DeviceExaminePlanMapper extends BaseMapper<DeviceExaminePlan> {
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceExaminePlanDto> deviceExaminePlanDetailsMapper(Page page, @Param("ew") QueryWrapper<DeviceExaminePlan> ew);
    /**
     * æŸ¥è¯¢è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
     * @param deviceExaminePlanId è®¾å¤‡æ ¸æŸ¥è®¡åˆ’id
     * @return
     */
    DeviceExaminePlanDto selectExamineExaminePlanDto(@Param("deviceExaminePlanId") Integer deviceExaminePlanId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordContrastDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:57
 */
public interface DeviceExamineRecordContrastDetailsMapper extends BaseMapper<DeviceExamineRecordContrastDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordContrastMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDto;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrast;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:43
 */
public interface DeviceExamineRecordContrastMapper extends BaseMapper<DeviceExamineRecordContrast> {
    /**
     * æŸ¥è¯¢æ ¸æŸ¥å¯¹æ¯”记录
     * @param planDetailsId
     * @return
     */
    DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId);
    /**
     * æŸ¥è¯¢å¯¹æ¯”记录用于导出
     * @param planDetailsId
     * @return
     */
    DeviceExamineRecordContrastDto selectExamineRecordContrastDto(@Param("planDetailsId") Integer planDetailsId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordDetailMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceExamineRecordDetail;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:15:11
 */
public interface DeviceExamineRecordDetailMapper extends BaseMapper<DeviceExamineRecordDetail> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExamineRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.dto.DeviceExamineRecordDto;
import com.yuanchu.mom.pojo.DeviceExamineRecord;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:28
 */
public interface DeviceExamineRecordMapper extends BaseMapper<DeviceExamineRecord> {
    /**
     * æŸ¥è¯¢è®¾å¤‡æ ¸æŸ¥è®°å½•
     * @param planDetailsId
     * @return
     */
    DeviceExamineRecordDto getExamineRecord(Integer planDetailsId);
    /**
     * å¤æ ¸æ ¸æŸ¥è®°å½•
     * @param planDetailsId å¤æ ¸æ ¸æŸ¥è®°å½•id
     * @return
     */
    DeviceExamineRecordDto selectReviewExamineRecordDto(@Param("planDetailsId") Integer planDetailsId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceExternalApplyMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.pojo.DeviceExternalApply;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * åˆ©ç”¨å¤–部设备申请表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 10:28:43
 */
public interface DeviceExternalApplyMapper extends BaseMapper<DeviceExternalApply> {
    /**
     * åˆ©ç”¨å¤–部设备申请列表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, @Param("ew") QueryWrapper<DeviceExternalApply> ew);
    /**
     * å¯¼å‡ºæŸ¥è¯¢åˆ©ç”¨å¤–部设备申请
     * @param externalApplyId å¤–部设备申请表id
     * @return
     */
    DeviceExternalApply selectDeviceExternalById(@Param("externalApplyId") Integer externalApplyId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceFaultMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceFault;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceFaultMapper extends BaseMapper<DeviceFault> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceFaultOneMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceFaultOneDto;
import com.yuanchu.mom.pojo.DeviceFaultOne;
/**
 * <p>
 * è®¾å¤‡æ•…障表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 02:03:29
 */
public interface DeviceFaultOneMapper extends BaseMapper<DeviceFaultOne> {
    IPage<DeviceFaultOneDto> deviceFaultOnePage(Integer deviceId, Page page, String processNumber);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceInspectionRecordDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceInspectionRecordDetails;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:27:32
 */
public interface DeviceInspectionRecordDetailsMapper extends BaseMapper<DeviceInspectionRecordDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceInspectionRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuanchu.mom.dto.DeviceInspectionRecordDto;
import com.yuanchu.mom.pojo.DeviceInspectionRecord;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:25:14
 */
public interface DeviceInspectionRecordMapper extends BaseMapper<DeviceInspectionRecord> {
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ç‚¹æ£€è®°å½•
     * @param page
     * @param queryWrappers
     * @return
     */
    IPage<DeviceInspectionRecord> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceInspectionRecordDto> queryWrappers);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceLeaseMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceLease;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceLeaseMapper extends BaseMapper<DeviceLease> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceLogMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceLogMapper extends BaseMapper<DeviceLog> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenanceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.excel.DeviceMaintenanceExport;
import com.yuanchu.mom.pojo.DeviceMaintenance;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface DeviceMaintenanceMapper extends BaseMapper<DeviceMaintenance> {
    List<DeviceMaintenance> getDeviceMaintenanceParam();
//    IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId);
    List<DeviceMaintenanceExport> deviceMaintenanceExport(Integer deviceId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenancePlanDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDetailsDto;
import com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:11:46
 */
public interface DeviceMaintenancePlanDetailsMapper extends BaseMapper<DeviceMaintenancePlanDetails> {
    /**
     * æŸ¥è¯¢è®¾å¤‡ä¿å…»è¯¦æƒ…
     * @param maintenancePlanId è®¾å¤‡ä¿å…»è®¡åˆ’id
     */
    List<DeviceMaintenancePlanDetailsDto> deviceInspectionRecordDetailsList(@Param("maintenancePlanId") Integer maintenancePlanId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMaintenancePlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDto;
import com.yuanchu.mom.pojo.DeviceMaintenancePlan;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:10:52
 */
public interface DeviceMaintenancePlanMapper extends BaseMapper<DeviceMaintenancePlan> {
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param page å½“前页
     * @param queryWrappers æŸ¥è¯¢æ¡ä»¶
     * @return
     */
    IPage<DeviceMaintenancePlan> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceMaintenancePlanDto> queryWrappers);
    /**
     * æ ¹æ®ä¿å…»è®¡åˆ’id查询设备保养计划
     * @param maintenancePlanId ä¿å…»è®¡åˆ’id
     * @return
     */
    DeviceMaintenancePlanDto selectMaintenancePlanById(@Param("maintenancePlanId") Integer maintenancePlanId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java
@@ -32,7 +32,7 @@
    //查询设备负责人
    List<Device> selectDevicePrincipal();
    IPage<DeviceDto> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceDto> queryWrappers);
    IPage<DeviceDto> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceDto> queryWrappers,@Param("laboratoryNameIsNull") Boolean laboratoryNameIsNull);
    List<Map<String, Object>> getInspectionItemSubclass(@Param("id") Integer id);
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceMetric;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceMetricMapper extends BaseMapper<DeviceMetric> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:01
 */
public interface DeviceMetricRecordMapper extends BaseMapper<DeviceMetricRecord> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMetricsCopyMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.DeviceMetricsCopy;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:11
 */
public interface DeviceMetricsCopyMapper extends BaseMapper<DeviceMetricsCopy> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceRecordDto;
import com.yuanchu.mom.pojo.DeviceRecord;
import java.util.List;
/**
 * <p>
 * cnas设备使用记录表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 11:06:47
 */
public interface DeviceRecordMapper extends BaseMapper<DeviceRecord> {
    IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber, Integer userId);
    /**
     * æŸ¥è¯¢æœªå¡«å†™çš„设备
     * @return
     */
    List<DeviceRecordDto> selectNotFilled();
    /**
     * æŸ¥è¯¢å¯¼å‡ºè®¾å¤‡ä½¿ç”¨è®°å½•
     * @param deviceId
     * @param exportDate
     * @return
     */
    List<DeviceRecord> selectExportList(Integer deviceId, String exportDate);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceScrappedMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceScrappedDto;
import com.yuanchu.mom.pojo.DeviceScrapped;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡æŠ¥åºŸç”³è¯·è¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 01:53:47
 */
public interface DeviceScrappedMapper extends BaseMapper<DeviceScrapped> {
    /**
     * è®¾å¤‡æŠ¥åºŸç”³è¯·åˆ—表
     * @param page
     * @param ew
     * @return
     */
    IPage<DeviceScrapped> pageDeviceScrapped(Page page, @Param("ew") QueryWrapper<DeviceScrapped> ew);
    /**
     * æ ¹æ®id查询设备报废申请
     * @param scrappedId
     * @return
     */
    DeviceScrappedDto selectDeviceScrappedById(@Param("scrappedId") Integer scrappedId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceStateMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceStateDto;
import com.yuanchu.mom.pojo.DeviceState;
/**
 * <p>
 * è®¾å¤‡åœç”¨/启用 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 09:51:40
 */
public interface DeviceStateMapper extends BaseMapper<DeviceState> {
    IPage<DeviceStateDto> getDeviceStatePage(Integer deviceId, Page page, String processNumber);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceTraceabilityManagementDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDetailsDto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:58
 */
public interface DeviceTraceabilityManagementDetailsMapper extends BaseMapper<DeviceTraceabilityManagementDetails> {
    /**
     * æ ¹æ®æº¯æºè®¡åˆ’id查询溯源计划详情
     * @param traceabilityManagementId æº¯æºè®¡åˆ’id
     * @return æº¯æºè®¡åˆ’详情
     */
    List<DeviceTraceabilityManagementDetailsDto> deviceTraceabilityManagementDetailsList(@Param("traceabilityManagementId") Integer traceabilityManagementId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceTraceabilityManagementMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagement;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:44
 */
public interface DeviceTraceabilityManagementMapper extends BaseMapper<DeviceTraceabilityManagement> {
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     * @param page
     * @param queryWrappers
     * @return
     */
    IPage<DeviceTraceabilityManagement> selectDeviceParameterPage(IPage page, @Param("ew") QueryWrapper<DeviceTraceabilityManagementDto> queryWrappers);
    /**
     * æ ¹æ®id查询设备量值溯源计划
     * @param traceabilityManagementId
     * @return
     */
    DeviceTraceabilityManagementDto selectDeviceTraceabilityManagementById(@Param("traceabilityManagementId") Integer traceabilityManagementId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/DocumentDao.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.Document;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DocumentDao extends BaseMapper<Document> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentAcceptanceCheckMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.IncidentAcceptanceCheck;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-验收核查 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:19
 */
public interface IncidentAcceptanceCheckMapper extends MyBaseMapper<IncidentAcceptanceCheck> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentFileMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.IncidentFile;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-文件类确认 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:36
 */
public interface IncidentFileMapper extends MyBaseMapper<IncidentFile> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentInstallMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.IncidentInstall;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-安装验收检查 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:50
 */
public interface IncidentInstallMapper extends MyBaseMapper<IncidentInstall> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentReportMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.IncidentReportAddDto;
import com.yuanchu.mom.dto.IncidentReportExportWordDto;
import com.yuanchu.mom.excel.IncidentReportExport;
import com.yuanchu.mom.pojo.IncidentReport;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶æ·»åŠ éªŒæ”¶å­—æ®µè¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 03:54:49
 */
public interface IncidentReportMapper extends BaseMapper<IncidentReport> {
    IPage<IncidentReportAddDto> getByDeviceId(Page page, @Param("deviceId") Integer deviceId, @Param("processNumber") String processNumber);
    IncidentReportAddDto getShowIncidentReport(Integer id);
    List<IncidentReportExport> incidentReportExport(Integer deviceId);
    /**
     * å¯¼å‡ºéªŒæ”¶æŠ¥å‘Š
     * @param deviceId  è®¾å¤‡id
     * @param processNumber  æµç¨‹å·
     * @return
     */
    IncidentReportExportWordDto acceptanceCertificateExport(@Param("deviceId") Integer deviceId,@Param("processNumber") String processNumber);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/IncidentSparePartsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.mybatis_config.MyBaseMapper;
import com.yuanchu.mom.pojo.IncidentSpareParts;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-备件确认 Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:42:06
 */
public interface IncidentSparePartsMapper extends MyBaseMapper<IncidentSpareParts> {
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/InstructionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.OperationInstructionDto;
import com.yuanchu.mom.pojo.Instruction;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:29:18
 */
public interface InstructionMapper extends BaseMapper<Instruction> {
    IPage<Instruction> pageByPageQueryOfHomeworkInstructions(Page page, @Param("ew") QueryWrapper<OperationInstructionDto> ew);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/OperationInstructionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.pojo.OperationInstruction;
import com.yuanchu.mom.vo.OperationInstructionVo;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:43:32
 */
public interface OperationInstructionMapper extends BaseMapper<OperationInstruction> {
    List<OperationInstructionVo> homeworkGuidebookEditor(Integer instructionId);
}
cnas-server/src/main/java/com/yuanchu/mom/mapper/ReservationMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.yuanchu.mom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.mom.dto.ReservationDto;
import com.yuanchu.mom.pojo.Reservation;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * èµ„源预定新建预定表 Mapper æŽ¥å£
 * </p>
 *
 * @author baomidou
 * @since 2024-09-14
 */
public interface ReservationMapper extends BaseMapper<Reservation> {
    List<ReservationDto> selectReservationParameterPage(@Param("deviceId") Integer deviceId, @Param("reservationTime") String reservationTime, @Param("specificTime") String specificTime);
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAcceptance.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备)
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:14
 */
@Getter
@Setter
@TableName("device_acceptance")
@ApiModel(value = "DeviceAcceptance对象", description = "设备验收(装备)")
public class DeviceAcceptance {
    @TableId(value = "acceptance_id", type = IdType.AUTO)
    private Integer acceptanceId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("到货日期")
    private LocalDate arrivalDate;
    @ApiModelProperty("金额")
    private String goldAmount;
    @ApiModelProperty("维修单位")
    private String maintenanceunit;
    @ApiModelProperty("收设备主机和备份情况")
    private String spareParts;
    @ApiModelProperty("安装和调试情况")
    private String installationDebugging;
    @ApiModelProperty("验收情况")
    private String checkSituation;
    @ApiModelProperty("接收签字")
    private String receivingSignature;
    @ApiModelProperty("厂家代表")
    private String producer;
    @ApiModelProperty("接收人")
    private String recipient;
    @ApiModelProperty("接收时间")
    private String recipientDate;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAcceptanceFile.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备)附件表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:26
 */
@Getter
@Setter
@TableName("device_acceptance_file")
@ApiModel(value = "DeviceAcceptanceFile对象", description = "设备验收(装备)附件表")
public class DeviceAcceptanceFile implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "acceptance_file_id", type = IdType.AUTO)
    private Integer acceptanceFileId;
    @ApiModelProperty("设备验收id")
    private Integer acceptanceId;
    @ApiModelProperty("类型:1图片/2文件")
    private Integer type;
    @ApiModelProperty("附件路径")
    private String fileUrl;
    @ApiModelProperty("附件名称")
    private String fileName;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceAccidentReport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡äº‹æ•…报告单
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 06:31:12
 */
@Getter
@Setter
@TableName("device_accident_report")
@ApiModel(value = "DeviceAccidentReport对象", description = "设备事故报告单")
public class DeviceAccidentReport {
    @TableId(value = "accident_report_id", type = IdType.AUTO)
    private Integer accidentReportId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("时间")
    private LocalDateTime accidentDate;
    @ApiModelProperty("事故情况描述")
    private String descriptionOfAccident;
    @ApiModelProperty("报告人id")
    private Integer reportUserId;
    @ApiModelProperty("报告人")
    private String reportUser;
    @ApiModelProperty("报告人填写时间")
    private LocalDate reportDate;
    @ApiModelProperty("评估人意见")
    private String assessorOpinion;
    @ApiModelProperty("评估人id")
    private Integer assessorUserId;
    @ApiModelProperty("评估人")
    private String assessorUser;
    @ApiModelProperty("评估人填写时间")
    private LocalDate assessorDate;
    @ApiModelProperty("部门负责人意见")
    private String departmentHeadOpinion;
    @ApiModelProperty("部门负责人id")
    private Integer departmentHeadUserId;
    @ApiModelProperty("部门负责人")
    private String departmentHeadUser;
    @ApiModelProperty("部门负责人填写时间")
    private LocalDate departmentHeadDate;
    @ApiModelProperty("技术负责人意见")
    private String technicalDirectorOpinion;
    @ApiModelProperty("技术负责人id")
    private Integer technicalDirectorUserId;
    @ApiModelProperty("技术负责人")
    private String technicalDirectorUser;
    @ApiModelProperty("技术负责人填写时间")
    private LocalDate technicalDirectorDate;
    @ApiModelProperty("主任意见")
    private String directorHeadOpinion;
    @ApiModelProperty("主任id")
    private Integer directorHeadUserId;
    @ApiModelProperty("主任")
    private String directorHeadUser;
    @ApiModelProperty("主任填写时间")
    private LocalDate directorHeadDate;
    @ApiModelProperty("是否结束,0 æœªç»“束, 1结束")
    private Integer isFinish;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(exist = false,select = false)
    @ApiModelProperty("流程, 0:报告, 1评估, 2:部门负责人意见, 3:技术负责人意见, 4:主任意见")
    private Integer flowType;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceBorrow.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuanchu.mom.annotation.ValueTableShow;
import com.yuanchu.mom.common.OrderBy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
 * <p>
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 10:53:51
 */
@Getter
@Setter
@TableName("device_borrow")
@ApiModel(value = "DeviceBorrow对象", description = "设备借用")
public class DeviceBorrow extends OrderBy implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    @ExcelIgnore
    private Integer id;
    @ValueTableShow(1)
    @ApiModelProperty("流程编号")
    @ExcelProperty(value = "流程编号")
    private String processNumber;
    @ApiModelProperty("设备id")
    @ExcelIgnore
    private Integer deviceId;
    @ValueTableShow(3)
    @ApiModelProperty("管理编号")
    @ExcelProperty(value = "管理编号")
    private String unifyNumber;
    @ApiModelProperty("借用人")
    @ValueTableShow(4)
    @ExcelProperty(value = "借用人")
    private String recipientUser;
    @ValueTableShow(5)
    @ExcelProperty(value = "借用人联系方式")
    @ApiModelProperty("借用人联系方式")
    private String borrowerContactInformation;
    @ValueTableShow(6)
    @ApiModelProperty("借用时状态")
    @ExcelProperty(value = "借用时状态")
    //0合格;1ç»´ä¿®;2停用;3报废
    private Integer recipientState;
    @ValueTableShow(5)
    @ApiModelProperty("借用日期")
    @ExcelProperty(value = "提交日期")
    private Date recipientTime;
    @ApiModelProperty("借出人")
    @ValueTableShow(7)
    @ExcelProperty(value = "借出人")
    private String submitUser;
    @ValueTableShow(8)
    @ApiModelProperty("借出日期")
    @ExcelProperty(value = "借出日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ValueTableShow(9)
    @ApiModelProperty("当前状态")
    @ExcelProperty(value = "当前状态")
    private String nowState;
    @ApiModelProperty("当前责任人")
    @ValueTableShow(10)
    @ExcelProperty(value = "当前责任人")
    private String nowUser;
    @ExcelIgnore
    @ApiModelProperty("附件")
    //路径
    private String url;
    @ValueTableShow(11)
    @ApiModelProperty("附件")
    @ExcelProperty(value = "附件")
    //文件名
    private String fileName;
    @ApiModelProperty("下环节责任人")
    @ExcelIgnore
    private String nextUser;
    @ApiModelProperty("提交操作人")
    @ExcelIgnore
    private String submitOperationUser;
    @ApiModelProperty("提交操作时间")
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime submitOperationTime;
    @ApiModelProperty("归还人")
    @ExcelIgnore
    private String rebackUser;
    @ApiModelProperty("归还日期")
    @ExcelIgnore
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime rebackTime;
    @ApiModelProperty("接受状态0合格;1ç»´ä¿®;2停用;3报废")
    @ExcelIgnore
    private Integer receiveState;
    @ApiModelProperty("设备责任人")
    @ExcelIgnore
    private String deviceUser;
    @ApiModelProperty("备注")
    @ExcelIgnore
    private String note;
    @ApiModelProperty("接收操作人")
    @ExcelIgnore
    private String receiveOperationUser;
    @ApiModelProperty("接收操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelIgnore
    private LocalDateTime receiveOperationTime;
    @ValueTableShow(2)
    @ApiModelProperty("设备名称")
    @TableField(select = false, exist = false)
    @ExcelProperty(value = "设备名称")
    private String deviceName;
    @ApiModelProperty("流程跟踪")
    @TableField(select = false, exist = false)
    @ExcelIgnore
    private List<DeviceLog> deviceLogs;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceBreakdownMaintenance.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ•…障维修表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 04:50:57
 */
@Getter
@Setter
@TableName("device_breakdown_maintenance")
@ApiModel(value = "DeviceBreakdownMaintenance对象", description = "设备故障维修表")
public class DeviceBreakdownMaintenance {
    @TableId(value = "maintenance_id", type = IdType.AUTO)
    private Integer maintenanceId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("安装地址")
    private String location;
    @ApiModelProperty("损坏或故障情况")
    private String damageOrMalfunction;
    @ApiModelProperty("申请人id")
    private Integer applicantUserId;
    @ApiModelProperty("申请人")
    private String applicantUser;
    @ApiModelProperty("要求修复时间")
    private LocalDate repairDate;
    @ApiModelProperty("部门负责人意见")
    private String departmentHeadOpinion;
    @ApiModelProperty("部门负责人id")
    private Integer departmentHeadUserId;
    @ApiModelProperty("部门负责人")
    private String departmentHeadUser;
    @ApiModelProperty("部门负责人填写时间")
    private LocalDate departmentHeadDate;
    @ApiModelProperty("维修记事")
    private String maintenanceRecord;
    @ApiModelProperty("维修人")
    private String maintenanceUser;
    @ApiModelProperty("维修时间")
    private LocalDate maintenanceDate;
    @ApiModelProperty("是否结束,0 æœªç»“束, 1结束")
    private Integer isFinish;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(exist = false,select = false)
    @ApiModelProperty("流程, 0:申请, 1申请部门负责人意见, 2:维修记事")
    private Integer flowType;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCalibrationPlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’主表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:17
 */
@Getter
@Setter
@TableName("device_calibration_plan")
@ApiModel(value = "DeviceCalibrationPlan对象", description = "设备校准计划主表")
public class DeviceCalibrationPlan {
    @TableId(value = "plan_id", type = IdType.AUTO)
    private Integer planId;
    @ApiModelProperty("计划名称")
    private String planName;
    @ApiModelProperty("计划年份")
    private String planYear;
    @ApiModelProperty("编制人")
    private Integer writeUserId;
    @ApiModelProperty("编制时间")
    private LocalDateTime writeTime;
    @ApiModelProperty("批准人")
    private Integer ratifyUserId;
    @ApiModelProperty("批准时间")
    private LocalDateTime ratifyTime;
    @ApiModelProperty("批准状态,0 ä¸é€šè¿‡, 1 é€šè¿‡")
    private Integer ratifyStatus;
    @ApiModelProperty("批准信息")
    private String ratifyRemark;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCalibrationPlanDetail.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:29
 */
@Getter
@Setter
@TableName("device_calibration_plan_detail")
@ApiModel(value = "DeviceCalibrationPlanDetail对象", description = "设备校准计划详情表")
public class DeviceCalibrationPlanDetail {
    @TableId(value = "plan_detail_id", type = IdType.AUTO)
    private Integer planDetailId;
    @ApiModelProperty("计划主表id")
    private Integer planId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("设备名称及型号")
    private String deviceName;
    @ApiModelProperty("设备数量")
    private String deviceAmount;
    @ApiModelProperty("仪器编号")
    private String deviceNumber;
    @ApiModelProperty("检定单位")
    private String verificationUnit;
    @ApiModelProperty("检定周期")
    private String verificationCycles;
    @ApiModelProperty("最近检定时间")
    private LocalDate lastDate;
    @ApiModelProperty("本年计划校准时间")
    private LocalDate planDate;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceCheck.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@TableName("device_check")
public class DeviceCheck {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id; //id
    private Integer deviceId;            // è®¾å¤‡ID
    private String measurementParameter; // è®¡é‡å‚æ•°
    private String rangeOfMeasurement;   // é‡ç¨‹èŒƒå›´
    private String maxPermissibleError;  // æœ€å¤§å…è®¸è¯¯å·®
    private String judgmentCriteria;     // åˆ¤å®šæ ‡å‡†
    private String createdBy;           // åˆ›å»ºäºº
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime creationTime;      // åˆ›å»ºæ—¶é—´
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExaminePlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’主表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:04
 */
@Getter
@Setter
@TableName("device_examine_plan")
@ApiModel(value = "DeviceExaminePlan对象", description = "设备核查计划主表")
public class DeviceExaminePlan {
    @TableId(value = "plan_id", type = IdType.AUTO)
    private Integer planId;
    @ApiModelProperty("计划名称")
    private String planName;
    @ApiModelProperty("计划名称")
    private String planYear;
    @ApiModelProperty("编制人")
    private Integer writeUserId;
    @ApiModelProperty("编制时间")
    private LocalDateTime writeTime;
    @ApiModelProperty("批准人")
    private Integer ratifyUserId;
    @ApiModelProperty("批准时间")
    private LocalDateTime ratifyTime;
    @ApiModelProperty("批准状态,0 ä¸é€šè¿‡, 1 é€šè¿‡")
    private Integer ratifyStatus;
    @ApiModelProperty("批准信息")
    private String ratifyRemark;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExaminePlanDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:16
 */
@Getter
@Setter
@TableName("device_examine_plan_details")
@ApiModel(value = "DeviceExaminePlanDetails对象", description = "设备核查计划详情表")
public class DeviceExaminePlanDetails {
    @TableId(value = "plan_details_id", type = IdType.AUTO)
    private Integer planDetailsId;
    @ApiModelProperty("主表id")
    private Integer planId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("设备编号")
    private String deviceNumber;
    @ApiModelProperty("计划名称")
    private String deviceName;
    @ApiModelProperty("核查时间")
    private String checkTime;
    @ApiModelProperty("核查指标")
    private String checkIndex;
    @ApiModelProperty("核查方法")
    private String checkMethod;
    @ApiModelProperty("结果如何判定")
    private String howResults;
    @ApiModelProperty("核查责任人id")
    private Integer checkChargerUserId;
    @ApiModelProperty("核查责任人")
    private String checkChargerUser;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,139 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:28
 */
@Getter
@Setter
@TableName("device_examine_record")
@ApiModel(value = "DeviceExamineRecord对象", description = "设备核查记录表")
public class DeviceExamineRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "record_id", type = IdType.AUTO)
    private Integer recordId;
    @ApiModelProperty("设备核查详情id")
    private Integer planDetailsId;
    @ApiModelProperty("精度等级")
    private String accuracyGrade;
    @ApiModelProperty("使用物质名称")
    private String materialName;
    @ApiModelProperty("使用物质管理编号")
    private String materialNumber;
    @ApiModelProperty("使用物质精度/不确定度")
    private String materialAccuracyUncertainty;
    @ApiModelProperty("使用物质规格型号")
    private String materialModel;
    @ApiModelProperty("使用物质核查方式")
    private String materialCheckMethod;
    @ApiModelProperty("使用物质核查项目")
    private String materialCheckItems;
    @ApiModelProperty("温度")
    private String temperature;
    @ApiModelProperty("湿度")
    private String humidity;
    @ApiModelProperty("判定")
    private String determine;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("核查人id")
    private Integer checkerUserId;
    @ApiModelProperty("核查人")
    private String checkerUser;
    @ApiModelProperty("复核人id")
    private Integer reviewUserId;
    @ApiModelProperty("复核人")
    private String reviewUser;
    @ApiModelProperty("审核状态0,不通过, 1通过")
    private Integer reviewStatus;
    @ApiModelProperty("审核备注")
    private String reviewRemark;
    @ApiModelProperty("测试点1")
    private String dataValue1;
    @ApiModelProperty("测试点2")
    private String dataValue2;
    @ApiModelProperty("测试点3")
    private String dataValue3;
    @ApiModelProperty("测试点4")
    private String dataValue4;
    @ApiModelProperty("测试点5")
    private String dataValue5;
    @ApiModelProperty("测试点6")
    private String dataValue6;
    @ApiModelProperty("最大偏差1")
    private String maximun1;
    @ApiModelProperty("最大偏差2")
    private String maximun2;
    @ApiModelProperty("最大偏差3")
    private String maximun3;
    @ApiModelProperty("最大偏差4")
    private String maximun4;
    @ApiModelProperty("最大偏差5")
    private String maximun5;
    @ApiModelProperty("最大偏差6")
    private String maximun6;
    @ApiModelProperty("相对偏差1")
    private String relative1;
    @ApiModelProperty("相对偏差2")
    private String relative2;
    @ApiModelProperty("相对偏差3")
    private String relative3;
    @ApiModelProperty("相对偏差4")
    private String relative4;
    @ApiModelProperty("相对偏差5")
    private String relative5;
    @ApiModelProperty("相对偏差6")
    private String relative6;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordContrast.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:43
 */
@Getter
@Setter
@TableName("device_examine_record_contrast")
@ApiModel(value = "DeviceExamineRecordContrast对象", description = "设备核查记录对比表")
public class DeviceExamineRecordContrast implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "record_contrast_id", type = IdType.AUTO)
    private Integer recordContrastId;
    @ApiModelProperty("核查方式")
    private String checkMethod;
    @ApiModelProperty("设备核查详情id")
    private Integer planDetailsId;
    @ApiModelProperty("设备idA")
    private Integer aDeviceId;
    @ApiModelProperty("设备idb")
    private Integer bDeviceId;
    @ApiModelProperty("设备idc")
    private Integer cDeviceId;
    @ApiModelProperty("范围不确定度A")
    private String aRangeUncertainty;
    @ApiModelProperty("范围不确定度b")
    private String bRangeUncertainty;
    @ApiModelProperty("范围不确定度c")
    private String cRangeUncertainty;
    @ApiModelProperty("综合判定")
    private String judgment;
    @ApiModelProperty("核查人id")
    private Integer checkerUserId;
    @ApiModelProperty("核查人")
    private String checkerUser;
    @ApiModelProperty("核查日期")
    private LocalDateTime checkerTime;
    @ApiModelProperty("审核人id")
    private Integer reviewUserId;
    @ApiModelProperty("审核人")
    private String reviewUser;
    @ApiModelProperty("审核状态0,不通过, 1通过")
    private Integer reviewStatus;
    @ApiModelProperty("审核备注")
    private String reviewRemark;
    @ApiModelProperty("审核日期")
    private LocalDateTime reviewTime;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordContrastDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:57
 */
@Getter
@Setter
@TableName("device_examine_record_contrast_details")
@ApiModel(value = "DeviceExamineRecordContrastDetails对象", description = "设备核查记录对比详情表")
public class DeviceExamineRecordContrastDetails implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "record_contrast_details_id", type = IdType.AUTO)
    private Integer recordContrastDetailsId;
    @ApiModelProperty("设备核查详情id")
    private Integer recordContrastId;
    @ApiModelProperty("核查项目")
    private String checkItems;
    @ApiModelProperty("a仪器示值")
    private String indicationA;
    @ApiModelProperty("b仪器示值")
    private String indicationB;
    @ApiModelProperty("c仪器示值")
    private String indicationC;
    @ApiModelProperty("差值")
    private String dValue;
    @ApiModelProperty("偏差")
    private String deviation;
    @ApiModelProperty("判定")
    private String determine;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExamineRecordDetail.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:15:11
 */
@Getter
@Setter
@TableName("device_examine_record_detail")
@ApiModel(value = "DeviceExamineRecordDetail对象", description = "设备核查记录详情表")
public class DeviceExamineRecordDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "record_detail_id", type = IdType.AUTO)
    private Integer recordDetailId;
    @ApiModelProperty("设设备核查记录id")
    private Integer recordId;
    @ApiModelProperty("测试点")
    private String testPoint;
    @ApiModelProperty("内容值1")
    private String dataValue1;
    @ApiModelProperty("内容值2")
    private String dataValue2;
    @ApiModelProperty("内容值3")
    private String dataValue3;
    @ApiModelProperty("内容值4")
    private String dataValue4;
    @ApiModelProperty("内容值5")
    private String dataValue5;
    @ApiModelProperty("内容值6")
    private String dataValue6;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceExternalApply.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * åˆ©ç”¨å¤–部设备申请表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 10:28:43
 */
@Getter
@Setter
@TableName("device_external_apply")
@ApiModel(value = "DeviceExternalApply对象", description = "利用外部设备申请表")
public class DeviceExternalApply {
    @TableId(value = "external_apply_id", type = IdType.AUTO)
    private Integer externalApplyId;
    @ApiModelProperty("单位名称")
    private String unitName;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("仪器名称")
    private String deviceName;
    @ApiModelProperty("仪器型号")
    private String deviceModel;
    @ApiModelProperty("配件")
    private String parts;
    @ApiModelProperty("对方仪器编号")
    private String instrumentNumber;
    @ApiModelProperty("技术指标")
    private String technicalIndex;
    @ApiModelProperty("技术要求")
    private String technicalRequirements;
    @ApiModelProperty("利用原因")
    private String useReason;
    @ApiModelProperty("0申请人id")
    private Integer applicantUserId;
    @ApiModelProperty("0申请人")
    private String applicantUser;
    @ApiModelProperty("0申请时间")
    private LocalDate applicantDate;
    @ApiModelProperty("1部门负责人意见")
    private String departmentHeadOpinion;
    @ApiModelProperty("1部门负责人id")
    private Integer departmentHeadUserId;
    @ApiModelProperty("1部门负责人")
    private String departmentHeadUser;
    @ApiModelProperty("1部门负责人填写时间")
    private LocalDate departmentHeadDate;
    @ApiModelProperty("2计量室意见")
    private String meteringRoomOpinion;
    @ApiModelProperty("2计量室人id")
    private Integer meteringRoomUserId;
    @ApiModelProperty("2计量室人")
    private String meteringRoomUser;
    @ApiModelProperty("2计量室人填写时间")
    private LocalDate meteringRoomDate;
    @ApiModelProperty("3批准人意见")
    private String approverOpinion;
    @ApiModelProperty("3批准人id")
    private Integer approverUserId;
    @ApiModelProperty("3批准人")
    private String approverUser;
    @ApiModelProperty("3批准人填写时间")
    private LocalDate approverDate;
    @ApiModelProperty("是否结束,0: æœªç»“束, 1:结束")
    private Integer isFinish;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(exist = false,select = false)
    @ApiModelProperty("流程, 0:申请, 1申请部门负责人意见, 2:计量室意见, 3:批准人")
    private Integer flowType;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceFault.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.time.LocalDate;
@Data
@TableName("device_faults")
public class DeviceFault {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    //设备di
    private Integer deviceId;
    //故障次数
    private Integer faultCount;
    //最近故障日期
    private LocalDate recentFaultDate;
    //最近校准日期
    private LocalDate recentCalibrationDate;
   // æœ€è¿‘校准结论
    private String calibrationConclusion;
  // æœ€è¿‘检查日期
    private LocalDate recentCheckDate;
  // ä¸‹ä¸€æ¬¡æ£€æŸ¥æ—¥æœŸ
    private LocalDate nextCheckDate;
//检查结论
    private String checkConclusion;
//维护类型
    private String maintenanceType;
//维护人员
    private String maintenancePerson;
//备注
    private String comments;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceFaultOne.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ•…障表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 02:03:29
 */
@Getter
@Setter
@TableName("device_fault_one")
@ApiModel(value = "DeviceFaultOne对象", description = "设备故障表")
public class DeviceFaultOne implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("1流程编号")
    private String processNumber;
    @ApiModelProperty("1准确度量值")
    private String measureOfAccuracy;
    @ApiModelProperty("1故障情况")
    private String faultSituation;
    @ApiModelProperty("1文件原名")
    private String fileName;
    @ApiModelProperty("1系统文件名")
    private String systemFileName;
    @ApiModelProperty("1下环节负责人")
    private String submitNextPesponsible;
    @ApiModelProperty("1操作人")
    private String submitOperatingPersonnel;
    @ApiModelProperty("1日期")
    private LocalDateTime submitDate;
    @ApiModelProperty("2维修方式及费用")
    private String methodCost;
    @ApiModelProperty("2审核意见")
    private String adminAuditOption;
    @ApiModelProperty("2设备管理员-下环节负责人")
    private String adminNextPesponsible;
    @ApiModelProperty("2管理员-操作人")
    private String adminOperatingPersonnel;
    @ApiModelProperty("2管理员-日期")
    private LocalDateTime adminDate;
    @ApiModelProperty("3 æŠ€æœ¯è´Ÿè´£äºº å®¡æ ¸æ„è§")
    private String technicalAuditOption;
    @ApiModelProperty("3技术负责人 ä¸‹çŽ¯èŠ‚è´Ÿè´£äºº")
    private String technicalNextPesponsible;
    @ApiModelProperty("3 æŠ€æœ¯è´Ÿè´£äºº æ“ä½œäºº")
    private String technicalOperatingPersonnel;
    @ApiModelProperty("3 æŠ€æœ¯è´Ÿè´£äºº æ—¥æœŸ")
    private LocalDateTime technicalDate;
    @ApiModelProperty("4维修情况")
    private String maintainSituation;
    @ApiModelProperty("4 ç»´ä¿® ä¸‹çŽ¯èŠ‚è´Ÿè´£äºº")
    private String maintainNextPesponsible;
    @ApiModelProperty("4 ç»´ä¿® æ“ä½œäºº")
    private String maintainOperatingPersonnel;
    @ApiModelProperty("4 ç»´ä¿® æ—¥æœŸ")
    private LocalDateTime maintainDate;
    @ApiModelProperty("5验收确认校准情况")
    private String checkCalSituation;
    @ApiModelProperty("5 ç»´ä¿®åŽ æ“ä½œäºº")
    private String afterMaintenanceOperatingPersonnel;
    @ApiModelProperty("5 ç»´ä¿®åŽ æ—¥æœŸ")
    private LocalDateTime afterMaintenanceDate;
    @ApiModelProperty("当前状态")
    private String currentState;
    @ApiModelProperty("提交人")
    private String submitPerson;
    @ApiModelProperty("当前责任人")
    private String currentResponsible;
    @ApiModelProperty("创建日期")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("故障日期")
    private LocalDate faultDate;
    @ApiModelProperty("要求修复日期")
    private LocalDate requestRepairDate;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceInspectionRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡ç‚¹æ£€è®°å½•
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:25:14
 */
@Getter
@Setter
@TableName("device_inspection_record")
@ApiModel(value = "DeviceInspectionRecord对象", description = "")
public class DeviceInspectionRecord implements Serializable {
    @ApiModelProperty("设备点检记录id")
    @TableId(value = "inspection_record_id", type = IdType.AUTO)
    private Integer inspectionRecordId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("测量范围")
    private String measurementScope;
    @ApiModelProperty("点检使用物质名称")
    private String materialName;
    @ApiModelProperty("点检使用物质规格型号")
    private String materialModel;
    @ApiModelProperty("点检使用物质管理编号")
    private String materialManagementNumber;
    @ApiModelProperty("点检使用物质精度等级")
    private String materialAccuracyGrade;
    @ApiModelProperty("温度")
    private String temperature;
    @ApiModelProperty("湿度")
    private String humidity;
    @ApiModelProperty("测试结论")
    private String testConclusion;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("状态(是否复核)0未复核,1复核")
    private Integer status;
    @ApiModelProperty("测试人")
    private String recorder;
    @ApiModelProperty("测试人id")
    private Integer recorderId;
    @ApiModelProperty("复核人")
    private String reviewer;
    @ApiModelProperty("复核人id")
    private Integer reviewerId;
    @ApiModelProperty("复核信息")
    private String reviewerRemark;
    @ApiModelProperty("测试日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime testDate;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("修改人id")
    private Integer updateUserId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceInspectionRecordDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:27:32
 */
@Getter
@Setter
@TableName("device_inspection_record_details")
@ApiModel(value = "DeviceInspectionRecordDetails对象", description = "")
public class DeviceInspectionRecordDetails implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("点检详情id")
    @TableId(value = "inspection_record_detail_id", type = IdType.AUTO)
    private Integer inspectionRecordDetailId;
    @ApiModelProperty("点检id")
    private Integer inspectionRecordId;
    @ApiModelProperty("测试项目")
    private String testItems;
    @ApiModelProperty("标准值")
    private String standardValue;
    @ApiModelProperty("实测值")
    private String measuredValue;
    @ApiModelProperty("示值误差")
    private String indicationError;
    @ApiModelProperty("允许误差")
    private String allowableError;
    @ApiModelProperty("单项结论")
    private String singleItemConclusion;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("修改人id")
    private Integer updateUserId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceLease.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("device_leases")
public class DeviceLease implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId
    private Integer leaseId;
    private String processNumber;
    private String deviceName;
    private String managementNumber;
    private String borrower;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate borrowDate;
    private String borrowStatus;
    private String submitter;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime submissionDate;
    private String currentStatus;
    private String currentResponsible;
    private int deviceId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceLog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@TableName("device_log") // è®°å½•
public class DeviceLog implements Serializable {
    @TableId(type= IdType.AUTO)
    private Integer id;
    private String operator;
//    @JsonFormat()
    private LocalDateTime operationTime;
    private String operationType;
    private String operationContent;
    private Integer deviceId;
    //关联的表名
    private String relevanceForm;
    //关联的id
    private Integer relevanceId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenance.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
@Data
@EqualsAndHashCode(callSuper = false)
//@Accessors(chain = true)
@TableName("device_maintenance")
public class DeviceMaintenance {
//    @TableId(value = "id", type = IdType.AUTO)
    private static final long serialVersionUID = 1L;
    //设备id
    @TableId(type=IdType.AUTO)
    private Integer id;
    private Integer deviceId;
    private String deviceName;
    //编号
    private String deviceNumber;
    //统一编号
    private String managementNumber;
    //维护内容
    private String content;
    //维护日期
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate date;
    //下次维护日期
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate nextDate;
    //维护类型
    private Integer maintenanceType;
    //维护人员
    private String name;
    //备注
    private String comments;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenancePlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:10:52
 */
@Getter
@Setter
@TableName("device_maintenance_plan")
@ApiModel(value = "DeviceMaintenancePlan对象", description = "设备保养计划表")
public class DeviceMaintenancePlan implements Serializable {
    @ApiModelProperty("设备保养计划id")
    @TableId(value = "maintenance_plan_id", type = IdType.AUTO)
    private Integer maintenancePlanId;
    @ApiModelProperty("编制人")
    private String compiler;
    @ApiModelProperty("计划名称")
    private String planName;
    @ApiModelProperty("计划年份")
    private String planYear;
    @ApiModelProperty("编制人id")
    private Integer compilerId;
    @ApiModelProperty("编制日期")
    private LocalDateTime datePreparation;
    @ApiModelProperty("审核状态,0未审核,1审核")
    private Integer status;
    @ApiModelProperty("审核人id")
    private Integer auditId;
    @ApiModelProperty("审核人")
    private String audit;
    @ApiModelProperty("审核日期")
    private LocalDateTime auditDate;
    @ApiModelProperty("审核信息")
    private String auditRemark;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMaintenancePlanDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:11:46
 */
@Getter
@Setter
@TableName("device_maintenance_plan_details")
@ApiModel(value = "DeviceMaintenancePlanDetails对象", description = "设备保养计划详情表")
public class DeviceMaintenancePlanDetails implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("保养计划详情id")
    @TableId(value = "maintenance_plan_detail_id", type = IdType.AUTO)
    private Integer maintenancePlanDetailId;
    @ApiModelProperty("保养计划id")
    private Integer maintenancePlanId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("保养关键部位")
    private String maintenanceSite;
    @ApiModelProperty("保养内容")
    private String maintenanceContent;
    @ApiModelProperty("保养周期")
    private String maintenanceIntervals;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetric.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@TableName("device_metrics")
public class DeviceMetric implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id; //id
    private Integer deviceId;            // è®¾å¤‡ID
    private String measurementParameter; // è®¡é‡å‚æ•°
    private String rangeOfMeasurement;   // é‡ç¨‹èŒƒå›´
    private String maxPermissibleError;  // æœ€å¤§å…è®¸è¯¯å·®
    private String judgmentCriteria;     // åˆ¤å®šæ ‡å‡†
    private String createdBy;           // åˆ›å»ºäºº
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime creationTime;      // åˆ›å»ºæ—¶é—´
    @ApiModelProperty("calibrate:校准;examine:核查")
    private String type; // ç±»åž‹
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetricRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:01
 */
@Getter
@Setter
@TableName("device_metric_record")
@ApiModel(value = "DeviceMetricRecord对象", description = "设备校准 - æ ¡å‡†è®°å½•")
public class DeviceMetricRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("记录编号")
    private String processNumber;
    @ApiModelProperty("计量单位")
    private String unitOfMeasure;
    @ApiModelProperty("校准日期")
    private Date calibrationDate;
    @ApiModelProperty("下次校准日期")
    private Date nextCalibrationDate;
    @ApiModelProperty("计算器具")
    private String calculatingApparatus;
    @ApiModelProperty("计算标准量程")
    private String standardRange;
    @ApiModelProperty("计量标准不确定度")
    private String calibrationStandardUncertainty;
    @ApiModelProperty("依据文件")
    private String byDocument;
    @ApiModelProperty("证书编号")
    private String certificateSerialNumber;
    @ApiModelProperty("状态")
    private String status;
    @ApiModelProperty("原文件名称")
    private String fileName;
    @ApiModelProperty("系统生成文件名称")
    private String systemFileName;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("创建时间 / ç™»è®°æ—¥æœŸ")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("登记人")
    private String createUser;
    @ApiModelProperty("calibrate:校准;examine:核查")
    private String type;
    @ApiModelProperty("确认时间")
    private Date confirmDate;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceMetricsCopy.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›®
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:11
 */
@Getter
@Setter
@TableName("device_metrics_copy")
@ApiModel(value = "DeviceMetricsCopy对象", description = "设备校准 - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›®")
public class DeviceMetricsCopy implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("设备校准 - æ ¡å‡†è®°å½•id")
    private Integer deviceMetricsId;
    @ApiModelProperty("计量参数")
    private String measurementParameter;
    @ApiModelProperty("量程范围")
    private String rangeOfMeasurement;
    @ApiModelProperty("最大允许误差")
    private String maxPermissibleError;
    @ApiModelProperty("判定标准")
    private String judgmentCriteria;
    @ApiModelProperty("创建人")
    private String createdBy;
    @ApiModelProperty("创建时间")
    private LocalDateTime creationTime;
    @ApiModelProperty("是否校准")
    private String isCalibration;
    @ApiModelProperty("判定结果")
    private String result;
    @ApiModelProperty("单项结果说明")
    private String singleResultStatement;
    @ApiModelProperty("calibrate:校准;examine:核查")
    private String type;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * cnas设备使用记录表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 11:06:47
 */
@Getter
@Setter
@TableName("device_record")
@ApiModel(value = "DeviceRecord对象", description = "cnas设备使用记录表")
public class DeviceRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Integer deviceId;
    @ApiModelProperty("订单id")
    private Integer insOrderId;
    @ApiModelProperty("样品编号")
    private String sampleCode;
    @ApiModelProperty("温度")
    private String temperature;
    @ApiModelProperty("湿度")
    private String humidity;
    @ApiModelProperty("使用前0异常1良好")
    private Integer useBefore;
    @ApiModelProperty("使用后0异常1良好")
    private Integer useAfter;
    @ApiModelProperty("异常情况")
    private String abnormal;
    @ApiModelProperty("使用人id")
    private Integer usePersonId;
    @ApiModelProperty("使用人")
    private String usePerson;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("使用开始日期")
    private LocalDateTime useStartDate;
    @ApiModelProperty("使用结束日期")
    private LocalDateTime useEndDate;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceScrapped.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡æŠ¥åºŸç”³è¯·è¡¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 01:53:47
 */
@Getter
@Setter
@TableName("device_scrapped")
@ApiModel(value = "DeviceScrapped对象", description = "设备报废申请表")
public class DeviceScrapped {
    @TableId(value = "scrapped_id", type = IdType.AUTO)
    private Integer scrappedId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("配件")
    private String parts;
    @ApiModelProperty("报废理由")
    private String reasonsForScrap;
    @ApiModelProperty("申请人id")
    private Integer applicantUserId;
    @ApiModelProperty("申请人")
    private String applicantUser;
    @ApiModelProperty("申请时间")
    private LocalDate applicantDate;
    @ApiModelProperty("部门负责人意见")
    private String departmentHeadOpinion;
    @ApiModelProperty("部门负责人id")
    private Integer departmentHeadUserId;
    @ApiModelProperty("部门负责人")
    private String departmentHeadUser;
    @ApiModelProperty("部门负责人填写时间")
    private LocalDate departmentHeadDate;
    @ApiModelProperty("计量室意见")
    private String meteringRoomOpinion;
    @ApiModelProperty("计量室人id")
    private Integer meteringRoomUserId;
    @ApiModelProperty("计量室人")
    private String meteringRoomUser;
    @ApiModelProperty("计量室人填写时间")
    private LocalDate meteringRoomDate;
    @ApiModelProperty("批准人意见")
    private String approverOpinion;
    @ApiModelProperty("批准人id")
    private Integer approverUserId;
    @ApiModelProperty("批准人")
    private String approverUser;
    @ApiModelProperty("批准人填写时间")
    private LocalDate approverDate;
    @ApiModelProperty("是否结束,0: æœªç»“束, 1:结束")
    private Integer isFinish;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @TableField(exist = false,select = false)
    @ApiModelProperty("流程, 0:报废申请, 1申请部门负责人意见, 2:计量室意见, 3:批准人")
    private Integer flowType;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceState.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡åœç”¨/启用
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 09:51:40
 */
@Getter
@Setter
@TableName("device_state")
@ApiModel(value = "DeviceState对象", description = "设备停用/启用")
public class DeviceState implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("设备停用启用id")
    @TableId(value = "state_id", type = IdType.AUTO)
    private Integer stateId;
    @ApiModelProperty("流程编号")
    private String processNumber;
    @ApiModelProperty("0配件")
    private String accessoryPart;
    @ApiModelProperty("0设备状态")
    private String deviceStatus;
    @ApiModelProperty("0停用启用理由")
    private String reason;
    @ApiModelProperty("0下环节责任人")
    private String submitNextPesponsible;
    @ApiModelProperty("0操作人")
    private String submitOperatingPersonnel;
    @ApiModelProperty("0日期")
    private LocalDateTime submitDate;
    @ApiModelProperty("1部门负责人意见")
    private String departmentReviewOpinion;
    @ApiModelProperty("1下环节责任人")
    private String departmentNextPesponsible;
    @ApiModelProperty("1操作人")
    private String departmentOperatingPersonnel;
    @ApiModelProperty("1日期")
    private LocalDateTime departmentDate;
    @ApiModelProperty("2计量室意见")
    private String measuringRoomReviewOpinion;
    @ApiModelProperty("2下环节责任人")
    private String measuringRoomNextPesponsible;
    @ApiModelProperty("2操作人")
    private String measuringRoomOperatingPersonnel;
    @ApiModelProperty("2日期")
    private LocalDateTime measuringRoomDate;
    @ApiModelProperty("3批准意见")
    private String approvalOpinion;
    @ApiModelProperty("3下环节责任人")
    private String approvalNextPesponsible;
    @ApiModelProperty("3操作人")
    private String approvalOperatingPersonnel;
    @ApiModelProperty("3日期")
    private LocalDateTime approvalDate;
    @ApiModelProperty("当前状态")
    private String currentState;
    @ApiModelProperty("设备Id")
    private Integer deviceId;
    @ApiModelProperty("当前环节负责人")
    private String currentResponsible;
    @ApiModelProperty("提交人")
    @ExcelProperty(value = "提交人")
    private String createUser;
    @ApiModelProperty("提交日期")
    @ExcelProperty(value = "提交日期")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceTraceabilityManagement.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:44
 */
@Getter
@Setter
@TableName("device_traceability_management")
@ApiModel(value = "DeviceTraceabilityManagement对象", description = "设备量值溯源计划表")
public class DeviceTraceabilityManagement {
    @ApiModelProperty("设备量值溯源计划id")
    @TableId(value = "traceability_management_id", type = IdType.AUTO)
    private Integer traceabilityManagementId;
    @ApiModelProperty("文件名称")
    private String fileName;
    @ApiModelProperty("计划名称")
    private String planName;
    @ApiModelProperty("计划年份")
    private String planYear;
    @ApiModelProperty("编制人id")
    private Integer compilerId;
    @ApiModelProperty("编制人")
    private String compiler;
    @ApiModelProperty("编制时间")
    private LocalDateTime datePreparation;
    @ApiModelProperty("审核状态,0未审核,1审核")
    private Integer status;
    @ApiModelProperty("修改人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("审核人id")
    private Integer auditId;
    @ApiModelProperty("审核人")
    private String audit;
    @ApiModelProperty("审核日期")
    private LocalDateTime auditDate;
    @ApiModelProperty("审核信息")
    private String auditRemark;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建日期")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/DeviceTraceabilityManagementDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:58
 */
@Getter
@Setter
@TableName("device_traceability_management_details")
@ApiModel(value = "DeviceTraceabilityManagementDetails对象", description = "设备量值溯源计划详情表")
public class DeviceTraceabilityManagementDetails implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("设备量值溯源计划详情id")
    @TableId(value = "traceability_management_detail_id", type = IdType.AUTO)
    private Integer traceabilityManagementDetailId;
    @ApiModelProperty("设备量值溯源计划id")
    private Integer traceabilityManagementId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("技术指标参数")
    private String technicalIndexParameters;
    @ApiModelProperty("技术指标要求")
    private String technicalRequirements;
    @ApiModelProperty("检定周期")
    private String verificationCycle;
    @ApiModelProperty("检定单位")
    private String verificationUnit;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("创建日期")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("修改人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/Document.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,91 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@TableName(value = "device_documents")
public class Document implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * æ–‡æ¡£ç±»åž‹ï¼ˆæžšä¸¾ï¼‰
     */
    private String documentType;
    /**
     * åç§°
     */
    private String name;
    /**
     * ç‰ˆæœ¬å·
     */
    private String version;
    /**
     * æ•°é‡
     */
    private Integer quantity;
    /**
     * é¡µæ•°
     */
    private Integer pageCount;
    /**
     * æä¾›å•†
     */
    private String provider;
    /**
     * æä¾›æ—¥æœŸ
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime provideDate;
    /**
     * å¤‡æ³¨
     */
    private String comments;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime createdAt;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
    private int deviceId;
    @ApiModelProperty("资产编号")
    private String number;
    @ApiModelProperty("原始文件名称")
    private String systemFileName;
    @ApiModelProperty("系统生成文件名称")
    private String fileName;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentAcceptanceCheck.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-验收核查
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:19
 */
@Getter
@Setter
@TableName("device_incident_acceptance_check")
@ApiModel(value = "IncidentAcceptanceCheck对象", description = "设备验收-验收核查")
public class IncidentAcceptanceCheck implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    @TableId(type = IdType.AUTO)
    private Integer acceptanceCheckId;
    @ApiModelProperty("仪器模块")
    private String instrumentModule;
    @ApiModelProperty("核查参数")
    private String verificationParameter;
    @ApiModelProperty("可接收限")
    private String acceptableLimit;
    @ApiModelProperty("核查结果")
    private String verificationResult;
    @ApiModelProperty("核查结论")
    private String verificationConclusion;
    @ApiModelProperty("设备验收ID")
    private Integer incidentId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentFile.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-文件类确认
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:36
 */
@Getter
@Setter
@TableName("device_incident_file")
@ApiModel(value = "IncidentFile对象", description = "设备验收-文件类确认")
public class IncidentFile implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.AUTO)
    private Integer fileId;
    @ApiModelProperty("应有册数")
    private Integer expectedCopies;
    @ApiModelProperty("实际收到册数")
    private Integer actualCopies;
    @ApiModelProperty("设备验收id")
    private Integer incidentId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentInstall.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-安装验收检查
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:41:50
 */
@Getter
@Setter
@TableName("device_incident_install")
@ApiModel(value = "IncidentInstall对象", description = "设备验收-安装验收检查")
public class IncidentInstall implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    @TableId(type = IdType.AUTO)
    private Integer installId;
    @ApiModelProperty("项目")
    private String installationProject;
    @ApiModelProperty("安装情况")
    private String installationSituation;
    @ApiModelProperty("安装完成")
    private String installationCompleted;
    @ApiModelProperty("设备验收")
    private Integer incidentId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentReport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,142 @@
package com.yuanchu.mom.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶æ·»åŠ éªŒæ”¶å­—æ®µè¡¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 03:54:49
 */
@Getter
@Setter
@TableName("device_incident_report")
@ApiModel(value = "IncidentReport对象", description = "设备验收添加验收字段表")
public class IncidentReport implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ExcelProperty(value = "流程编号")
    @ApiModelProperty("流程编号")
    private String processNumber;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("序列号")
    private String serialNumber;
    @ApiModelProperty("设备类别")
    private String deviceClass;
    @ApiModelProperty("开箱前检查外包装有无破损")
    private String checkOuterPackaging;
    @ApiModelProperty("原文件名称")
    private String fileName;
    @ApiModelProperty("系统生成文件名称")
    private String systemFileName;
    @ApiModelProperty("设备开箱验收结论")
    private String unpackingAcceptanceConclusion;
    @ApiModelProperty("1提交 ä¸‹çŽ¯èŠ‚è´Ÿè´£äººåç§°")
    private String submitNextPesponsible;
    @ApiModelProperty("1提交 æäº¤å¤‡æ³¨")
    private String submitRemarks;
    @ApiModelProperty("1提交 æäº¤æ“ä½œäºº")
    private String submitOperatingPersonnel;
    @ApiModelProperty("1提交 æäº¤æ—¥æœŸ")
    private LocalDateTime submitDate;
    @ApiModelProperty("2开箱验收复核 å¤æ ¸æ„è§")
    private String unpackingReviewOpinion;
    @ApiModelProperty("2开箱验收复核 ä¸‹çŽ¯èŠ‚è´Ÿè´£äºº")
    private String unpackingNextPesponsible;
    @ApiModelProperty("2开箱验收复核 æ“ä½œäºº")
    private String unpackingOperatingPersonnel;
    @ApiModelProperty("2开箱验收复核 æ—¥æœŸ")
    private LocalDateTime unpackingDate;
    @ApiModelProperty("3安装位置")
    private String installLocation;
    @ApiModelProperty("3安装备注")
    private String installRemarks;
    @ApiModelProperty("3安装下环节负责人")
    private String installNextPesponsible;
    @ApiModelProperty("3安装操作人")
    private String installOperatingPersonnel;
    @ApiModelProperty("3安装日期")
    private LocalDateTime installDate;
    @ApiModelProperty("4安装验收复核意见")
    private String installationAcceptanceCompoundOpinion;
    @ApiModelProperty("4安装验收下环节负责人")
    private String installationAcceptanceNextPesponsible;
    @ApiModelProperty("4安装验收操作人")
    private String installationAcceptanceOperatingPersonnel;
    @ApiModelProperty("4安装验收日期")
    private LocalDateTime installationAcceptanceDate;
    @ApiModelProperty("5验收核查 è®¾å¤‡å¼€ç®±éªŒæ”¶ç»“论")
    private String acceptanceCheckUnpackingConclusion;
    @ApiModelProperty("5验收核查 ä¸‹çŽ¯èŠ‚è´Ÿè´£äºº")
    private String acceptanceCheckNextPesponsible;
    @ApiModelProperty("5验收核查 æ“ä½œäºº")
    private String acceptanceCheckOperatingPersonnel;
    @ApiModelProperty("5验收核查 æ—¥æœŸ")
    private LocalDateTime acceptanceCheckDate;
    @ApiModelProperty("6验收核查审核 å®¡æ ¸æ„è§")
    private String acceptanceAuditAuditOpinion;
    @ApiModelProperty("6验收核查审核 æ“ä½œäºº")
    private String acceptanceAuditOperatingPersonnel;
    @ApiModelProperty("6验收核查审核 æ—¥æœŸ")
    private LocalDateTime acceptanceAuditDate;
    @ApiModelProperty(value = "创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("当前状态")
    private String currentState;
    @ApiModelProperty(value = "创建日期 / æäº¤æ—¥æœŸ")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("当前负责人")
    private String currentResponsible;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/IncidentSpareParts.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶-备件确认
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 04:42:06
 */
@Getter
@Setter
@TableName("device_incident_spare_parts")
@ApiModel(value = "IncidentSpareParts对象", description = "设备验收-备件确认")
public class IncidentSpareParts implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("主键id")
    @TableId(type = IdType.AUTO)
    private Integer sparePartsId;
    @ApiModelProperty("名称")
    private String name;
    @ApiModelProperty("数量")
    private Integer number;
    @ApiModelProperty("备注")
    private String note;
    @ApiModelProperty("设备验收ID")
    private Integer incidentId;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/Instruction.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:29:18
 */
@Getter
@Setter
@TableName("device_instruction")
@ApiModel(value = "Instruction对象", description = "作业指导书添加受控文件表")
public class Instruction implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("申请编号")
    private String applicationNumber;
    @ApiModelProperty("申请部门")
    private String applicationDepartment;
    @ApiModelProperty("责任人")
    private String personLiable;
    @ApiModelProperty("受控申请说明")
    private String controlledApplicationDescription;
    @ApiModelProperty("系统生成名称")
    private String fileName;
    @ApiModelProperty("系统生成名称")
    private String fileSystemName;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建人")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/OperationInstruction.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
 * <p>
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:43:32
 */
@Getter
@Setter
@TableName("device_operation_instruction")
@ApiModel(value = "OperationInstruction对象", description = "设备 - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­")
public class OperationInstruction {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("设备主键id")
    private String deviceId;
    @ApiModelProperty("文件类型")
    private String documentType;
    @ApiModelProperty("文档编号")
    private String documentNumber;
    @ApiModelProperty("文件版本")
    private String documentVersion;
    @ApiModelProperty("作者")
    private String author;
    @ApiModelProperty("提交日期")
    private LocalDate submitDate;
    @ApiModelProperty("文档说明")
    private String documentNote;
    @ApiModelProperty("系统生成名称")
    private String fileName;
    @ApiModelProperty("系统生成名称")
    private String fileSystemName;
    @ApiModelProperty("作业指导书id")
    private Integer instructionId;
    @ApiModelProperty("上传人id")
    private Integer uploader;
    @ApiModelProperty("审批人id")
    private Integer approverId;
    @ApiModelProperty("审批状态")
    private Boolean status;
    @ApiModelProperty("生效时间")
    private LocalDateTime entryIntoForceTime;
    @ApiModelProperty("上传时间")
    private LocalDateTime uploadTime;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty("更新人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
}
cnas-server/src/main/java/com/yuanchu/mom/pojo/Reservation.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.yuanchu.mom.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 * èµ„源预定新建预定表
 * </p>
 *
 * @author baomidou
 * @since 2024-09-14
 */
@Getter
@Setter
@TableName("device_reservation")
public class Reservation implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     *  è®¾å¤‡id
     */
    private Integer deviceId;
    /**
     * é¢„定设备
     */
    private String deviceName;
    /**
     *  å®¢æˆ·åç§°
     */
    private String customerName;
    /**
     *  é¢„定时间
     */
    private String reservationTime;
    /**
     *  å…·ä½“æ—¶é—´
     */
    private String specificTime;
    /**
     * è”系人
     */
    private String linkPerson;
    /**
     *  è”系电话
     */
    private String phone;
    /**
     *  æµç¨‹ç¼–号
     */
    private String deviceNumber;
    /**
     *  é¢„定说明
     */
    private String reservationSpecification;
    /**
     * åˆ›å»ºäºº
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime createDate;
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAcceptanceFileService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceAcceptanceFile;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备)附件表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:26
 */
public interface DeviceAcceptanceFileService extends IService<DeviceAcceptanceFile> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAcceptanceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceAcceptance;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备) æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:14
 */
public interface DeviceAcceptanceService extends IService<DeviceAcceptance> {
    /**
     * è®¾å¤‡éªŒæ”¶åˆ—表
     * @param page
     * @param deviceAcceptance
     * @return
     */
    IPage<DeviceAcceptance> pageDeviceAcceptance(Page page, DeviceAcceptance deviceAcceptance);
    boolean uploadDeviceAcceptanceFile(Integer acceptanceId, MultipartFile file);
    /**
     * è®¾å¤‡éªŒæ”¶å¯¼å‡º
     * @param acceptanceId  è®¾å¤‡éªŒæ”¶id
     * @param response   å“åº”体
     * @return
     */
    void exportDeviceAcceptance(Integer acceptanceId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceAccidentReportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceAccidentReport;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡äº‹æ•…报告单 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 06:31:12
 */
public interface DeviceAccidentReportService extends IService<DeviceAccidentReport> {
    /**
     * è®¾å¤‡äº‹æ•…报告列表
     * @param page
     * @param deviceAccidentReport
     * @return
     */
    IPage<DeviceAccidentReport> pageDeviceAccidentReport(Page page, DeviceAccidentReport deviceAccidentReport);
    /**
     * æ–°å¢žè®¾å¤‡äº‹æ•…报告
     * @param deviceAccidentReport
     * @return
     */
    boolean addDeviceAccidentReport(DeviceAccidentReport deviceAccidentReport);
    /**
     * å¯¼å‡ºè®¾å¤‡äº‹æ•…报告
     * @param accidentReportId è®¾å¤‡äº‹æ•…报告id
     * @param response å“åº”
     */
    void exportDeviceAccidentReport(Integer accidentReportId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceBorrowService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceBorrow;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 10:53:51
 */
public interface DeviceBorrowService extends IService<DeviceBorrow> {
    Map<String,Object> deviceBorrowPage(Page page, DeviceBorrow deviceBorrow);
    int saveDeviceBorrow(DeviceBorrow deviceBorrow);
    DeviceBorrow getDeviceBorrow(Integer id);
    List<DeviceBorrow> getDeviceBorrowBydeviceId(Integer deviceId);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceBreakdownMaintenanceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceBreakdownMaintenance;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æ•…障维修表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 04:50:57
 */
public interface DeviceBreakdownMaintenanceService extends IService<DeviceBreakdownMaintenance> {
    /**
     * è®¾å¤‡æ•…障维修列表
     * @param page
     * @param deviceBreakdownMaintenance
     * @return
     */
    IPage<DeviceBreakdownMaintenance> pageDeviceBreakdownMaintenance(Page page, DeviceBreakdownMaintenance deviceBreakdownMaintenance);
    /**
     * æ–°å¢žè®¾å¤‡æ•…障维修
     * @param deviceBreakdownMaintenance
     * @return
     */
    boolean addDeviceBreakdownMaintenance(DeviceBreakdownMaintenance deviceBreakdownMaintenance);
    /**
     * å¯¼å‡ºè®¾å¤‡æ•…障维修
     * @param maintenanceId è®¾å¤‡æ•…障维修id
     * @param response å“åº”
     */
    void exportDeviceBreakdownMaintenance(Integer maintenanceId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCalibrationPlanDetailService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:29
 */
public interface DeviceCalibrationPlanDetailService extends IService<DeviceCalibrationPlanDetail> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCalibrationPlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceCalibrationPlanDto;
import com.yuanchu.mom.pojo.DeviceCalibrationPlan;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’主表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:17
 */
public interface DeviceCalibrationPlanService extends IService<DeviceCalibrationPlan> {
    /**
     * æ–°å¢žè®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @param calibrationPlanDto
     * @return
     */
    boolean addDeviceCalibrationPlan(DeviceCalibrationPlanDto calibrationPlanDto);
    /**
     * å¯¼å…¥è®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @param file
     * @return
     */
    boolean importDeviceCalibrationPlan(MultipartFile file, String planYear);
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’批准
     * @param DeviceCalibrationPlan
     * @return
     */
    boolean ratifyDeviceCalibrationPlan(DeviceCalibrationPlan DeviceCalibrationPlan);
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’列表
     * @param page
     * @param DeviceCalibrationPlan
     * @return
     */
    IPage<DeviceCalibrationPlanDto> pageDeviceCalibrationPlan(Page page, DeviceCalibrationPlan DeviceCalibrationPlan);
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情列表
     * @param page
     * @param DeviceCalibrationPlanDetails
     * @return
     */
    IPage<DeviceCalibrationPlanDetail> pageDeviceCalibrationPlanDetail(Page page, DeviceCalibrationPlanDetail DeviceCalibrationPlanDetails);
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¡å‡†è®¡åˆ’
     *
     * @param DeviceCalibrationPlanId
     * @param response
     */
    void exportDeviceCalibrationPlanDetail(Integer DeviceCalibrationPlanId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceCheckService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceCheck;
public interface DeviceCheckService extends IService<DeviceCheck> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExaminePlanDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:16
 */
public interface DeviceExaminePlanDetailsService extends IService<DeviceExaminePlanDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExaminePlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceExaminePlanDto;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’主表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:04
 */
public interface DeviceExaminePlanService extends IService<DeviceExaminePlan> {
    /**
     * æ–°å¢žè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param examinePlanDto
     * @return
     */
    boolean addDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto);
    /**
     * å¯¼å…¥è®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param file
     * @return
     */
    boolean importDeviceExaminePlan(MultipartFile file);
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’批准
     * @param DeviceExaminePlan
     * @return
     */
    boolean ratifyDeviceExaminePlan(DeviceExaminePlan DeviceExaminePlan);
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’列表
     * @param page
     * @param DeviceExaminePlan
     * @return
     */
    IPage<DeviceExaminePlanDto> pageDeviceExaminePlan(Page page, DeviceExaminePlan DeviceExaminePlan);
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情列表
     * @param page
     * @param DeviceExaminePlanDetails
     * @return
     */
    IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, DeviceExaminePlanDetails DeviceExaminePlanDetails);
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param deviceExaminePlanId è®¾å¤‡æ ¸æŸ¥è®¡åˆ’id
     * @param response å“åº”
     */
    void exportDeviceExaminePlanDetail(Integer deviceExaminePlanId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordContrastDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:57
 */
public interface DeviceExamineRecordContrastDetailsService extends IService<DeviceExamineRecordContrastDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordContrastService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDto;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrast;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:43
 */
public interface DeviceExamineRecordContrastService extends IService<DeviceExamineRecordContrast> {
    /**
     * æŸ¥è¯¢æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId);
    /**
     * æ–°å¢žæ ¸æŸ¥å¯¹æ¯”记录
     * @return
     *
     */
    boolean addExamineRecordContrast(DeviceExamineRecordContrastDto deviceExamineRecordContrastDto);
    /**
     * å®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    boolean reviewExamineRecordContrast(DeviceExamineRecordContrastDto deviceExamineRecordContrastDto);
    /**
     * å¯¼å‡ºå®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     *
     * @param recordId å®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录id
     * @param response
     * @return
     */
    void exportReviewExamineRecordContrast(Integer recordId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordDetailService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceExamineRecordDetail;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:15:11
 */
public interface DeviceExamineRecordDetailService extends IService<DeviceExamineRecordDetail> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExamineRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceExamineRecordDto;
import com.yuanchu.mom.pojo.DeviceExamineRecord;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:28
 */
public interface DeviceExamineRecordService extends IService<DeviceExamineRecord> {
    /**
     * æŸ¥è¯¢æ ¸æŸ¥è®°å½•
     * @return
     */
    DeviceExamineRecordDto getExamineRecord(Integer planDetailsId);
    /**
     * æ–°å¢žæ ¸æŸ¥è®°å½•
     * @return
     */
    boolean addExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto);
    /**
     * å¤æ ¸æ ¸æŸ¥è®°å½•
     * @return
     */
    boolean reviewExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto);
    /**
     * å¯¼å‡ºå¤æ ¸æ ¸æŸ¥è®°å½•
     * @param planDetailsId
     * @param response å“åº”
     */
    void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceExternalApplyService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceExternalApply;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * åˆ©ç”¨å¤–部设备申请表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 10:28:43
 */
public interface DeviceExternalApplyService extends IService<DeviceExternalApply> {
    /**
     * åˆ©ç”¨å¤–部设备申请列表
     * @param page
     * @param deviceExternalApply
     * @return
     */
    IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, DeviceExternalApply deviceExternalApply);
    /**
     * æ–°å¢žåˆ©ç”¨å¤–部设备申请
     * @param deviceExternalApply
     * @return
     */
    boolean addDeviceExternalApply(DeviceExternalApply deviceExternalApply);
    /**
     * å¯¼å‡ºåˆ©ç”¨å¤–部设备申请
     *
     * @param externalApplyId å¤–部设备申请id
     * @param response
     */
    void exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceFaultOneService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceFaultOneDto;
import com.yuanchu.mom.pojo.DeviceFaultOne;
/**
 * <p>
 * è®¾å¤‡æ•…障表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 02:03:29
 */
public interface DeviceFaultOneService extends IService<DeviceFaultOne> {
    IPage<DeviceFaultOneDto> deviceFaultOnePage(Integer deviceId, Page page, String processNumber);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceFaultService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceFault;
import java.util.Map;
public interface DeviceFaultService extends IService<DeviceFault> {
    Map<String,Object> findByDeviceId(Integer deviceId);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceInspectionRecordDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceInspectionRecordDetails;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:27:32
 */
public interface DeviceInspectionRecordDetailsService extends IService<DeviceInspectionRecordDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceInspectionRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceInspectionRecordDto;
import com.yuanchu.mom.pojo.DeviceInspectionRecord;
import com.yuanchu.mom.vo.Result;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 *  è®¾å¤‡ç‚¹æ£€è®°å½•表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:25:14
 */
public interface DeviceInspectionRecordService extends IService<DeviceInspectionRecord> {
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ç‚¹æ£€è®°å½•
     * @param page
     */
    Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(IPage page, DeviceInspectionRecordDto deviceInspectionRecord);
    /**
     * æŸ¥è¯¢ç‚¹æ£€è¯¦æƒ…
     * @param inspectionRecordId
     * @return
     */
    Result getDeviceInspectionRecord(Integer inspectionRecordId);
    /**
     * æ–°å¢žè®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    Result addDeviceInspectionRecord(DeviceInspectionRecordDto deviceInspectionRecord);
    /**
     * ä¿®æ”¹è®¾å¤‡ç‚¹æ£€è®°å½•
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    Result updateInspectionRecordAndDetails(DeviceInspectionRecordDto deviceInspectionRecord);
    /**
     * åˆ é™¤è®¾å¤‡ç‚¹æ£€è®°å½•
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    Result deleteDeviceInspectionRecordOrDetails(DeviceInspectionRecordDto deviceInspectionRecord);
    /**
     * å¤æ ¸ç‚¹æ£€è®°å½•
     * @param deviceExamineRecordDto
     * @return
     */
    Result reviewDeviceInspectionRecord(DeviceInspectionRecordDto deviceExamineRecordDto);
    /**
     * å¯¼å‡ºè®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecordId è®¾å¤‡ç‚¹æ£€è®°å½•id
     * @param response
     */
    Result exportDeviceInspectionRecord(Integer deviceInspectionRecordId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenancePlanDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:11:46
 */
public interface DeviceMaintenancePlanDetailsService extends IService<DeviceMaintenancePlanDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenancePlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDto;
import com.yuanchu.mom.pojo.DeviceMaintenancePlan;
import com.yuanchu.mom.vo.Result;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:10:52
 */
public interface DeviceMaintenancePlanService extends IService<DeviceMaintenancePlan> {
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param page å½“前页
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     * @return
     */
    Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(IPage page, DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    /**
     * æ–°å¢žè®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    Result addMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    /**
     * ä¿®æ”¹è®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    Result updateMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    /**
     * åˆ é™¤è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    Result deleteMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto);
    /**
     * å¯¼å‡ºè®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param maintenancePlanId è®¾å¤‡ä¿å…»è®¡åˆ’id
     * @param response          å“åº”
     */
    Result exportDeviceMaintenancePlanDto(Integer maintenancePlanId, HttpServletResponse response);
    /**
     * æŸ¥çœ‹è®¾å¤‡ä¿å…»è®¡åˆ’详情
     * @param maintenancePlanId è®¾å¤‡ä¿å…»è®¡åˆ’id
     * @return
     */
    Result<DeviceMaintenancePlanDto> getMaintenancePlanDetail(Integer maintenancePlanId);
    /**
     * å®¡æ ¸è®¾å¤‡ä¿å…»è®¡åˆ’状态
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     * @return
     */
    Result reviewMaintenancePlanStatus(DeviceMaintenancePlanDto deviceMaintenancePlanDto);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMaintenanceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.excel.DeviceMaintenanceExport;
import com.yuanchu.mom.pojo.DeviceMaintenance;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface DeviceMaintenanceService extends IService<DeviceMaintenance> {
    IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber);
    List<DeviceMaintenanceExport> deviceMaintenanceExport(Integer deviceId);
    /**
     * å¯¼å‡ºWord设备维护记录
     *
     * @param deviceId
     * @param response
     */
    void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMetricRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:01
 */
public interface DeviceMetricRecordService extends IService<DeviceMetricRecord> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceMetricsCopyService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceMetricsCopy;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:11
 */
public interface DeviceMetricsCopyService extends IService<DeviceMetricsCopy> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceRecordDto;
import com.yuanchu.mom.pojo.DeviceRecord;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * cnas设备使用记录表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 11:06:47
 */
public interface DeviceRecordService extends IService<DeviceRecord> {
    IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber);
    /**
     * å¯¼å‡ºè®¾å¤‡ä½¿ç”¨è®°å½•
     *
     * @param deviceId
     * @param response
     */
    void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceScrappedService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceScrapped;
import com.yuanchu.mom.vo.Result;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡æŠ¥åºŸç”³è¯·è¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 01:53:47
 */
public interface DeviceScrappedService extends IService<DeviceScrapped> {
    /**
     * è®¾å¤‡æŠ¥åºŸç”³è¯·åˆ—表
     * @param page
     * @param deviceScrapped
     * @return
     */
    IPage<DeviceScrapped> pageDeviceScrapped(Page page, DeviceScrapped deviceScrapped);
    /**
     * æ–°å¢žè®¾å¤‡æŠ¥åºŸç”³è¯·
     * @param deviceScrapped
     * @return
     */
    boolean addDeviceScrapped(DeviceScrapped deviceScrapped);
    /**
     * ä¿®æ”¹è®¾å¤‡æŠ¥åºŸç”³è¯·
     * @param scrappedId è®¾å¤‡æŠ¥åºŸç”³è¯·id
     * @return
     */
    Result exportDeviceScrapped(Integer scrappedId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java
@@ -19,7 +19,7 @@
    List<User> selectUserList();
    Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter);
    Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter,Boolean laboratoryNameIsNull);
    int addDeviceParameter(Device itemParameter);
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceStateService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceStateDto;
import com.yuanchu.mom.pojo.DeviceState;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡åœç”¨/启用 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 09:51:40
 */
public interface DeviceStateService extends IService<DeviceState> {
    IPage<DeviceStateDto> getDeviceStatePage(Integer deviceId, Page page, String processNumber);
    /**
     * å¯¼å‡ºè®¾å¤‡çŠ¶æ€
     *
     * @param deviceId
     * @param processNumber
     * @param response
     */
    void exportDeviceStatus(Integer deviceId, String processNumber, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceTraceabilityManagementDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:58
 */
public interface DeviceTraceabilityManagementDetailsService extends IService<DeviceTraceabilityManagementDetails> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/DeviceTraceabilityManagementService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDto;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagement;
import com.yuanchu.mom.vo.Result;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表 æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:44
 */
public interface DeviceTraceabilityManagementService extends IService<DeviceTraceabilityManagement> {
    /**
     * åˆ†é¡µæŸ¥è¯¢é‡å€¼æº¯æºè®¡åˆ’
     * @param page åˆ†é¡µå‚æ•°
     * @param itemParameter é‡å€¼æº¯æºè®¡åˆ’
     * @return
     */
    Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(IPage page, DeviceTraceabilityManagementDto itemParameter);
    /**
     * æ–°å¢žé‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    Result addTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto);
    /**
     * ä¿®æ”¹é‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    Result updateTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto);
    /**
     * åˆ é™¤é‡å€¼æº¯æºè®¡åˆ’
     * @param deviceTraceabilityManagementDto é‡å€¼æº¯æºè®¡åˆ’
     */
    Result deleteTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto);
    /**
     * æŸ¥è¯¢é‡å€¼æº¯æºè®¡åˆ’详情
     */
    Result<DeviceTraceabilityManagementDto> getTraceabilityManagementDetail(Integer traceabilityManagementId);
    /**
     * é‡å€¼æº¯æºè®¡åˆ’审核状态修改
     */
    Result reviewTraceabilityManagementStatus(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto);
    /**
     * é‡å€¼æº¯æºè®¡åˆ’导出
     */
    Result exportDeviceTraceabilityManagementDto(Integer traceabilityManagementId, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/DocumentService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.Document;
public interface DocumentService extends IService<Document> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceLeaseService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceLease;
public interface IDeviceLeaseService extends IService<DeviceLease> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceLogService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceLog;
public interface IDeviceLogService extends IService<DeviceLog> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IDeviceMetricService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.DeviceMetric;
public interface IDeviceMetricService extends IService<DeviceMetric> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentAcceptanceCheckService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.IncidentAcceptanceCheck;
public interface IncidentAcceptanceCheckService extends IService<IncidentAcceptanceCheck> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentFileService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.IncidentFile;
public interface IncidentFileService extends IService<IncidentFile> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentInstallService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.IncidentInstall;
public interface IncidentInstallService extends IService<IncidentInstall> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentReportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.IncidentReportAddDto;
import com.yuanchu.mom.excel.IncidentReportExport;
import com.yuanchu.mom.pojo.IncidentReport;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶æ·»åŠ éªŒæ”¶å­—æ®µè¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 03:54:49
 */
public interface IncidentReportService extends IService<IncidentReport> {
    void saveIncidentReportData(IncidentReportAddDto incidentReportAddDto);
    IPage<IncidentReportAddDto> getByDeviceId(Integer deviceId, Page page, String processNumber);
    void deleteIncidentReport(Integer id);
    IncidentReportAddDto getShowIncidentReport(Integer id);
    void deleteIncidentReportAll(Integer sparePartsId, Integer fileId, Integer installId, Integer acceptanceCheckId);
    List<IncidentReportExport> incidentReportExport(Integer deviceId);
    /**
     * å¯¼å‡ºéªŒæ”¶æŠ¥å‘Š
     * @param deviceId  è®¾å¤‡id
     * @param processNumber  æµç¨‹å·
     * @param response  å“åº”Word文档
     */
    void acceptanceCertificateExport(Integer deviceId, String processNumber, HttpServletResponse response);
}
cnas-server/src/main/java/com/yuanchu/mom/service/IncidentSparePartsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.IncidentSpareParts;
public interface IncidentSparePartsService extends IService<IncidentSpareParts> {
}
cnas-server/src/main/java/com/yuanchu/mom/service/InstructionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.InstructionDto;
import com.yuanchu.mom.dto.OperationInstructionDto;
import com.yuanchu.mom.pojo.Instruction;
/**
 * <p>
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:29:18
 */
public interface InstructionService extends IService<Instruction> {
    IPage<Instruction> pageByPageQueryOfHomeworkInstructions(Page page, OperationInstructionDto operationInstructionDto);
    void newHomeworkGuidebookAdded(InstructionDto instructionDto);
}
cnas-server/src/main/java/com/yuanchu/mom/service/OperationInstructionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.pojo.OperationInstruction;
import com.yuanchu.mom.vo.OperationInstructionVo;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:43:32
 */
public interface OperationInstructionService extends IService<OperationInstruction> {
    List<OperationInstructionVo> homeworkGuidebookEditor(Integer instructionId);
}
cnas-server/src/main/java/com/yuanchu/mom/service/QrShowService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.yuanchu.mom.service;
import org.springframework.ui.Model;
public interface QrShowService {
    void transformModelByType(Model model,String code,String type);
}
cnas-server/src/main/java/com/yuanchu/mom/service/ReservationService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.mom.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.DeviceDto;
import com.yuanchu.mom.dto.ReservationDto;
import com.yuanchu.mom.pojo.Reservation;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * èµ„源预定新建预定表 æœåŠ¡ç±»
 * </p>
 *
 * @author baomidou
 * @since 2024-09-14
 */
public interface ReservationService extends IService<Reservation> {
    Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter, Boolean laboratoryNameIsNull, String starttime, String endtime);
    List<ReservationDto> selectReservationParameterPage( String deviceId, String reservationTime,  String specificTime);
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAcceptanceFileServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceAcceptanceFileMapper;
import com.yuanchu.mom.pojo.DeviceAcceptanceFile;
import com.yuanchu.mom.service.DeviceAcceptanceFileService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备)附件表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:26
 */
@Service
public class DeviceAcceptanceFileServiceImpl extends ServiceImpl<DeviceAcceptanceFileMapper, DeviceAcceptanceFile> implements DeviceAcceptanceFileService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAcceptanceServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.DeviceAcceptanceFileMapper;
import com.yuanchu.mom.mapper.DeviceAcceptanceMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceAcceptance;
import com.yuanchu.mom.pojo.DeviceAcceptanceFile;
import com.yuanchu.mom.service.DeviceAcceptanceService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶(装备) æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 01:45:14
 */
@Service
public class DeviceAcceptanceServiceImpl extends ServiceImpl<DeviceAcceptanceMapper, DeviceAcceptance> implements DeviceAcceptanceService {
    @Resource
    private DeviceAcceptanceFileMapper deviceAcceptanceFileMapper;
    @Resource
    private DeviceMapper deviceMapper;
    @Value("${file.path}")
    private String imgUrl;
    @Value("${wordUrl}")
    private String wordUrl;
    /**
     * è®¾å¤‡éªŒæ”¶åˆ—表
     * @param page
     * @param deviceAcceptance
     * @return
     */
    @Override
    public IPage<DeviceAcceptance> pageDeviceAcceptance(Page page, DeviceAcceptance deviceAcceptance) {
        return baseMapper.pageDeviceAcceptance(page, QueryWrappers.queryWrappers(deviceAcceptance));
    }
    /**
     * è®¾å¤‡éªŒæ”¶é™„ä»¶
     * @param acceptanceId
     * @param file
     * @return
     */
    @Override
    public boolean uploadDeviceAcceptanceFile(Integer acceptanceId, MultipartFile file) {
        if (acceptanceId == null) {
            throw new ErrorException("缺少验收id");
        }
        String urlString;
        String pathName;
        String path;
        String filename = file.getOriginalFilename();
        String contentType = file.getContentType();
        DeviceAcceptanceFile acceptanceFile = new DeviceAcceptanceFile();
        acceptanceFile.setAcceptanceId(acceptanceId);
        acceptanceFile.setFileName(filename);
        if (contentType != null && contentType.startsWith("image/")) {
            // æ˜¯å›¾ç‰‡
            path = imgUrl;
            acceptanceFile.setType(1);
        } else {
            // æ˜¯æ–‡ä»¶
            path = wordUrl;
            acceptanceFile.setType(2);
        }
        try {
            File realpath = new File(path);
            if (!realpath.exists()) {
                realpath.mkdirs();
            }
            pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename();
            urlString = realpath + "/" + pathName;
            file.transferTo(new File(urlString));
            acceptanceFile.setFileUrl(pathName);
            deviceAcceptanceFileMapper.insert(acceptanceFile);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println("附件上传错误");
            return false;
        }
    }
    /**
     * è®¾å¤‡éªŒæ”¶å¯¼å‡º
     * @param acceptanceId  è®¾å¤‡éªŒæ”¶id
     * @param response   å“åº”体
     * @return
     */
    @Override
    public void exportDeviceAcceptance(Integer acceptanceId, HttpServletResponse response) {
        DeviceAcceptance deviceAcceptance = baseMapper.selectById(acceptanceId);
        if (deviceAcceptance == null) {
            throw new ErrorException("设备验收不存在");
        }
        Device device = null;
        if (deviceAcceptance.getDeviceId() != null) {
            device = deviceMapper.selectById(deviceAcceptance.getDeviceId());
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/acceptance-certificate.docx");
        Configure configure = Configure.builder()
                .bind("deviceInspectionRecordDetailsList", new HackLoopTableRenderPolicy())
                .build();
        Device finalDevice = device;
        String deviceName = device.getDeviceName() == null ? "" : device.getDeviceName();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceAcceptance", deviceAcceptance);
                    put("device", finalDevice);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    deviceName+ "验收单", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceAccidentReportServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceAccidentReportDto;
import com.yuanchu.mom.mapper.DeviceAccidentReportMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceAccidentReport;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceAccidentReportService;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.utils.UserUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.HashMap;
/**
 * <p>
 * è®¾å¤‡äº‹æ•…报告单 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 06:31:12
 */
@Service
public class DeviceAccidentReportServiceImpl extends ServiceImpl<DeviceAccidentReportMapper, DeviceAccidentReport> implements DeviceAccidentReportService {
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private DeviceMapper deivceMapper;
    /**
     * è®¾å¤‡äº‹æ•…报告列表
     * @param page
     * @param deviceAccidentReport
     * @return
     */
    @Override
    public IPage<DeviceAccidentReport> pageDeviceAccidentReport(Page page, DeviceAccidentReport deviceAccidentReport) {
        return baseMapper.pageDeviceAccidentReport(page, QueryWrappers.queryWrappers(deviceAccidentReport));
    }
    /**
     * æ–°å¢žè®¾å¤‡äº‹æ•…报告
     * @param deviceAccidentReport
     * @return
     */
    @Override
    public boolean addDeviceAccidentReport(DeviceAccidentReport deviceAccidentReport) {
        DeviceAccidentReport accidentReport = new DeviceAccidentReport();
        User user = userMapper.selectById(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        switch (deviceAccidentReport.getFlowType()) {
            case 0:
                // æŠ¥å‘Š
                BeanUtils.copyProperties(deviceAccidentReport, accidentReport);
                accidentReport.setDescriptionOfAccident(deviceAccidentReport.getDescriptionOfAccident());
                accidentReport.setReportUserId(user.getId());
                accidentReport.setReportUser(user.getName());
                accidentReport.setReportDate(LocalDate.now());
                // è¯„估人信息
                User assessorUser = userMapper.selectById(deviceAccidentReport.getAssessorUserId());
                accidentReport.setAssessorUserId(assessorUser.getId());
                accidentReport.setAssessorUser(assessorUser.getName());
                baseMapper.insert(accidentReport);
                break;
            case 1:
                accidentReport.setAccidentReportId(deviceAccidentReport.getAccidentReportId());
                // è¯„ä¼°
                accidentReport.setAssessorOpinion(deviceAccidentReport.getAssessorOpinion());
                accidentReport.setAssessorDate(LocalDate.now());
                // éƒ¨é—¨è´Ÿè´£äºº
                User departmentHeadUser = userMapper.selectById(deviceAccidentReport.getDepartmentHeadUserId());
                accidentReport.setDepartmentHeadUserId(departmentHeadUser.getId());
                accidentReport.setDepartmentHeadUser(departmentHeadUser.getName());
                baseMapper.updateById(accidentReport);
                break;
            case 2:
                accidentReport.setAccidentReportId(deviceAccidentReport.getAccidentReportId());
                // éƒ¨é—¨è´Ÿè´£äººæ„è§
                accidentReport.setDepartmentHeadOpinion(deviceAccidentReport.getDepartmentHeadOpinion());
                accidentReport.setDepartmentHeadDate(LocalDate.now());
                // æŠ€æœ¯è´Ÿè´£äººä¿¡æ¯
                User technicalDirectorUser = userMapper.selectById(deviceAccidentReport.getTechnicalDirectorUserId());
                accidentReport.setTechnicalDirectorUserId(technicalDirectorUser.getId());
                accidentReport.setTechnicalDirectorUser(technicalDirectorUser.getName());
                baseMapper.updateById(accidentReport);
                break;
            case 3:
                accidentReport.setAccidentReportId(deviceAccidentReport.getAccidentReportId());
                // æŠ€æœ¯è´Ÿè´£äººæ„è§
                accidentReport.setTechnicalDirectorOpinion(deviceAccidentReport.getTechnicalDirectorOpinion());
                accidentReport.setTechnicalDirectorDate(LocalDate.now());
                // ä¸»ä»»ä¿¡æ¯
                User directorHeadUser = userMapper.selectById(deviceAccidentReport.getDirectorHeadUserId());
                accidentReport.setDirectorHeadUserId(directorHeadUser.getId());
                accidentReport.setDirectorHeadUser(directorHeadUser.getName());
                baseMapper.updateById(accidentReport);
                break;
            case 4:
                accidentReport.setAccidentReportId(deviceAccidentReport.getAccidentReportId());
                // ä¸»ä»»æ„è§
                accidentReport.setDirectorHeadOpinion(deviceAccidentReport.getDirectorHeadOpinion());
                accidentReport.setDirectorHeadDate(LocalDate.now());
                accidentReport.setIsFinish(1);
                baseMapper.updateById(accidentReport);
                break;
        }
        return true;
    }
    /**
     * å¯¼å‡ºè®¾å¤‡äº‹æ•…报告
     * @param accidentReportId è®¾å¤‡äº‹æ•…报告id
     * @param response å“åº”
     */
    @Override
    public void exportDeviceAccidentReport(Integer accidentReportId, HttpServletResponse response) {
        // æŸ¥è¯¢äº‹æ•…报告
        DeviceAccidentReportDto deviceAccidentReport = baseMapper.selectDeviceAccidentReportById(accidentReportId);
        Device device = deivceMapper.selectById(deviceAccidentReport.getDeviceId());
        device = device == null ? new Device() : device;
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-accident-report.docx");
        Configure configure = Configure.builder()
                .build();
        Device finalDevice = device;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceAccidentReport", deviceAccidentReport);
                    put("device", finalDevice);
                    // æŠ¥å‘Šäººç­¾å
                    put("reportUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getReportUserId()));
                    // è¯„估人签名
                    put("assessorUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getAssessorUserId()));
                    // éƒ¨é—¨è´Ÿè´£äººç­¾å
                    put("departmentHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId()));
                    // æŠ€æœ¯è´Ÿè´£äººç­¾å
                    put("technicalDirectorUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getTechnicalDirectorUserId()));
                    // ä¸»ä»»ç­¾å
                    put("directorHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String deviceName = device.getDeviceName() == null ? "" : device.getDeviceName();
            String fileName = URLEncoder.encode(
                    deviceName + "设备事故报告单", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceBorrowServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.mapper.DeviceBorrowMapper;
import com.yuanchu.mom.mapper.DeviceLogMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceBorrow;
import com.yuanchu.mom.pojo.DeviceLog;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceBorrowService;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
/**
 * <p>
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 10:53:51
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceBorrowServiceImpl extends ServiceImpl<DeviceBorrowMapper, DeviceBorrow> implements DeviceBorrowService {
    @Resource
    DeviceBorrowMapper deviceBorrowMapper;
    @Resource
    DeviceLogMapper deviceLogMapper;
    @Resource
    GetLook getLook;
    @Resource
    UserMapper userMapper;
    @Autowired
    private NumberGenerator<DeviceBorrow> numberGenerator;
    @Override
    public Map<String, Object> deviceBorrowPage(Page page, DeviceBorrow deviceBorrow) {
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(DeviceBorrow.class));
        IPage<DeviceBorrow> iPage = deviceBorrowMapper.deviceBorrowPage(page, QueryWrappers.queryWrappers(deviceBorrow));
        map.put("body", iPage);
        return map;
    }
    @Override
    public int saveDeviceBorrow(DeviceBorrow deviceBorrow) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        //新增的时候添加新建流程
        if (ObjectUtils.isEmpty(deviceBorrow.getId())) {
            deviceBorrow.setSubmitUser(user.getName());
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceBorrow::getProcessNumber);
            deviceBorrow.setProcessNumber(processNumber);
            deviceBorrowMapper.insert(deviceBorrow);
            DeviceLog deviceLog = new DeviceLog();
            deviceLog.setOperator(user.getName());
            deviceLog.setOperationTime(LocalDateTime.now());
            deviceLog.setOperationType("新建");
            deviceLog.setOperationContent("新建流程");
            deviceLog.setRelevanceForm("device_borrow");
            deviceLog.setRelevanceId(deviceBorrow.getId());
            deviceLogMapper.insert(deviceLog);
        } else {
            DeviceBorrow borrow = deviceBorrowMapper.selectById(deviceBorrow.getId());
            deviceBorrowMapper.updateById(deviceBorrow);
            //通过或者驳回增加流程跟踪
            if (deviceBorrow.getNowState().equals("关闭")) {
                DeviceLog deviceLog = new DeviceLog();
                deviceLog.setOperator(user.getName());
                deviceLog.setOperationTime(LocalDateTime.now());
                deviceLog.setOperationType("接收通过");
                deviceLog.setRelevanceForm("device_borrow");
                deviceLog.setRelevanceId(deviceBorrow.getId());
                deviceLogMapper.insert(deviceLog);
            }
            else if (deviceBorrow.getNowState().equals("提交") && borrow.getNowState().equals("接收")) {
                DeviceLog deviceLog = new DeviceLog();
                deviceLog.setOperator(user.getName());
                deviceLog.setOperationTime(LocalDateTime.now());
                deviceLog.setOperationType("接收驳回");
                deviceLog.setRelevanceForm("device_borrow");
                deviceLog.setRelevanceId(deviceBorrow.getId());
                deviceLogMapper.insert(deviceLog);
            }
        }
        return 0;
    }
    @Override
    public DeviceBorrow getDeviceBorrow(Integer id) {
        List<DeviceLog> deviceLogs = deviceLogMapper.selectList(Wrappers.<DeviceLog>lambdaQuery()
                .eq(DeviceLog::getRelevanceForm, "device_borrow")
                .eq(DeviceLog::getRelevanceId, id));
        DeviceBorrow deviceBorrow = deviceBorrowMapper.selectById(id);
        deviceBorrow.setDeviceLogs(deviceLogs);
        return deviceBorrow;
    }
    @Override
    public List<DeviceBorrow> getDeviceBorrowBydeviceId(Integer deviceId) {
        return deviceBorrowMapper.getDeviceBorrowBydeviceId(deviceId);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.mapper.DeviceBreakdownMaintenanceMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceBreakdownMaintenance;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceBreakdownMaintenanceService;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.HashMap;
/**
 * <p>
 * è®¾å¤‡æ•…障维修表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 04:50:57
 */
@Service
public class DeviceBreakdownMaintenanceServiceImpl extends ServiceImpl<DeviceBreakdownMaintenanceMapper, DeviceBreakdownMaintenance> implements DeviceBreakdownMaintenanceService {
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private DeviceMapper deivceMapper;
    /**
     * è®¾å¤‡æ•…障维修列表
     * @param page
     * @param deviceBreakdownMaintenance
     * @return
     */
    @Override
    public IPage<DeviceBreakdownMaintenance> pageDeviceBreakdownMaintenance(Page page, DeviceBreakdownMaintenance deviceBreakdownMaintenance) {
        return baseMapper.pageDeviceBreakdownMaintenance(page, QueryWrappers.queryWrappers(deviceBreakdownMaintenance));
    }
    /**
     * æ–°å¢žè®¾å¤‡æ•…障维修
     * @param deviceBreakdownMaintenance
     * @return
     */
    @Override
    public boolean addDeviceBreakdownMaintenance(DeviceBreakdownMaintenance deviceBreakdownMaintenance) {
        DeviceBreakdownMaintenance breakdownMaintenance = new DeviceBreakdownMaintenance();
        //当前登录用户
        User user = userMapper.selectById(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        switch (deviceBreakdownMaintenance.getFlowType()) {
            case 0:
                BeanUtils.copyProperties(deviceBreakdownMaintenance, breakdownMaintenance);
                // ç”³è¯·
                breakdownMaintenance.setDamageOrMalfunction(deviceBreakdownMaintenance.getDamageOrMalfunction());
                breakdownMaintenance.setApplicantUserId(user.getId());
                breakdownMaintenance.setApplicantUser(user.getName());
                breakdownMaintenance.setRepairDate(deviceBreakdownMaintenance.getRepairDate());
                // å¤„理人信息
                User departmentHeadUser = userMapper.selectById(deviceBreakdownMaintenance.getDepartmentHeadUserId());
                breakdownMaintenance.setApplicantUserId(departmentHeadUser.getId());
                breakdownMaintenance.setApplicantUser(departmentHeadUser.getName());
                baseMapper.insert(breakdownMaintenance);
                break;
            case 1:
                breakdownMaintenance.setMaintenanceId(deviceBreakdownMaintenance.getMaintenanceId());
                // ç”³è¯·éƒ¨é—¨è´Ÿè´£äººæ„è§
                breakdownMaintenance.setDepartmentHeadOpinion(deviceBreakdownMaintenance.getDepartmentHeadOpinion());
                breakdownMaintenance.setDepartmentHeadDate(LocalDate.now());
                baseMapper.updateById(breakdownMaintenance);
                break;
            case 2:
                breakdownMaintenance.setMaintenanceId(deviceBreakdownMaintenance.getMaintenanceId());
                // è®¡é‡å®¤æ„è§
                breakdownMaintenance.setMaintenanceRecord(deviceBreakdownMaintenance.getMaintenanceRecord());
                breakdownMaintenance.setMaintenanceUser(deviceBreakdownMaintenance.getMaintenanceUser());
                breakdownMaintenance.setMaintenanceDate(deviceBreakdownMaintenance.getMaintenanceDate());
                breakdownMaintenance.setIsFinish(1);
                baseMapper.updateById(breakdownMaintenance);
                break;
        }
        return true;
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ•…障维修
     * @param maintenanceId è®¾å¤‡æ•…障维修id
     * @param response å“åº”
     */
    @Override
    public void exportDeviceBreakdownMaintenance(Integer maintenanceId, HttpServletResponse response) {
        // æŸ¥è¯¢å¤–部设备申请
        DeviceBreakdownMaintenance deviceBreakdownMaintenance = baseMapper.selectById(maintenanceId);
        Device device = null;
        if (deviceBreakdownMaintenance.getDeviceId() != null) {
            device = deivceMapper.selectById(deviceBreakdownMaintenance.getDeviceId());
            device = device == null ? new Device() : device;
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-breakdown-maintenance.docx");
        Configure configure = Configure.builder()
                .build();
        Device finalDevice = device;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceBreakdownMaintenance", deviceBreakdownMaintenance);
                    put("device", finalDevice);
                    // ç”³è¯·äººç­¾å
                    put("applicantUrl", UserUtils.getFinalUserSignatureUrl(deviceBreakdownMaintenance.getApplicantUserId()));
                    // éƒ¨é—¨è´Ÿè´£äººç­¾å
                    put("headUrl", UserUtils.getFinalUserSignatureUrl(deviceBreakdownMaintenance.getDepartmentHeadUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String deviceName = device.getDeviceName() == null ? "" : device.getDeviceName();
            String fileName = URLEncoder.encode(
                    deviceName + "设备故障维修申请表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCalibrationPlanDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceCalibrationPlanDetailMapper;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import com.yuanchu.mom.service.DeviceCalibrationPlanDetailService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:29
 */
@Service
public class DeviceCalibrationPlanDetailServiceImpl extends ServiceImpl<DeviceCalibrationPlanDetailMapper, DeviceCalibrationPlanDetail> implements DeviceCalibrationPlanDetailService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCalibrationPlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,252 @@
package com.yuanchu.mom.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceCalibrationPlanDetailDto;
import com.yuanchu.mom.dto.DeviceCalibrationPlanDto;
import com.yuanchu.mom.excel.upload.DeviceCalibrationPlanDetailUpload;
import com.yuanchu.mom.mapper.DeviceCalibrationPlanDetailMapper;
import com.yuanchu.mom.mapper.DeviceCalibrationPlanMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceCalibrationPlan;
import com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail;
import com.yuanchu.mom.service.DeviceCalibrationPlanDetailService;
import com.yuanchu.mom.service.DeviceCalibrationPlanService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡†è®¡åˆ’主表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 03:58:17
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceCalibrationPlanServiceImpl extends ServiceImpl<DeviceCalibrationPlanMapper, DeviceCalibrationPlan> implements DeviceCalibrationPlanService {
    @Resource
    private DeviceCalibrationPlanDetailMapper deviceCalibrationPlanDetailMapper;
    @Resource
    private DeviceCalibrationPlanDetailService deviceCalibrationPlanDetailService;
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    /**
     * æ–°å¢žè®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @param calibrationPlanDto
     * @return
     */
    @Override
    public boolean addDeviceCalibrationPlan(DeviceCalibrationPlanDto calibrationPlanDto) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        // ç¼–制日期
        calibrationPlanDto.setWriteUserId(userId);
        calibrationPlanDto.setWriteTime(LocalDateTime.now());
        baseMapper.insert(calibrationPlanDto);
        // æ·»åŠ è¯¦æƒ…
        if (CollectionUtils.isNotEmpty(calibrationPlanDto.getCalibrationPlanDetailList())) {
            for (DeviceCalibrationPlanDetail calibrationPlanDetail : calibrationPlanDto.getCalibrationPlanDetailList()) {
                calibrationPlanDetail.setPlanId(calibrationPlanDto.getPlanId());
            }
            deviceCalibrationPlanDetailService.saveBatch(calibrationPlanDto.getCalibrationPlanDetailList());
        }
        return true;
    }
    /**
     * å¯¼å…¥è®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @param file
     * @return
     */
    @Override
    public boolean importDeviceCalibrationPlan(MultipartFile file, String planYear) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        // æ–‡ä»¶åç§°
        String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
        DeviceCalibrationPlan calibrationPlan = new DeviceCalibrationPlan();
        calibrationPlan.setPlanName(fileName);
        calibrationPlan.setPlanYear(planYear);
        calibrationPlan.setWriteUserId(userId);
        calibrationPlan.setWriteTime(LocalDateTime.now());
        baseMapper.insert(calibrationPlan);
        List<DeviceCalibrationPlanDetail> detailsUploadList = new ArrayList<>();
        // å¯¼å…¥é™„件内容
        try {
            // excel解析
            EasyExcel.read(file.getInputStream(), DeviceCalibrationPlanDetailUpload.class, new AnalysisEventListener<DeviceCalibrationPlanDetailUpload>() {
                @Override
                public void invoke(DeviceCalibrationPlanDetailUpload detailsUpload, AnalysisContext analysisContext) {
                    // åˆ¤æ–­æ˜¯å¦ä¸ºç©º
                    if (StringUtils.isNotBlank(detailsUpload.getDeviceName()) &&
                            StringUtils.isNotBlank(detailsUpload.getDeviceNumber())) {
                        // å¯¹è±¡å¤åˆ¶
                        DeviceCalibrationPlanDetail calibrationPlanDetail = new DeviceCalibrationPlanDetail();
                        BeanUtils.copyProperties(detailsUpload, calibrationPlanDetail);
                        // æ ¼å¼è¯æœ€è¿‘检定时间和本年计划校准时间
                        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
                        calibrationPlanDetail.setLastDate(LocalDate.parse(detailsUpload.getLastDate(), formatter));
                        calibrationPlanDetail.setPlanDate(LocalDate.parse(detailsUpload.getLastDate(), formatter));
                        calibrationPlanDetail.setPlanId(calibrationPlan.getPlanId());
                        detailsUploadList.add(calibrationPlanDetail);
                    }
                }
                @Override
                public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                }
            }).sheet().doRead();
            deviceCalibrationPlanDetailService.saveBatch(detailsUploadList);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return true;
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’批准
     * @param deviceCalibrationPlan
     * @return
     */
    @Override
    public boolean ratifyDeviceCalibrationPlan(DeviceCalibrationPlan deviceCalibrationPlan) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        baseMapper.update(null, Wrappers.<DeviceCalibrationPlan>lambdaUpdate()
                .eq(DeviceCalibrationPlan::getPlanId, deviceCalibrationPlan.getPlanId())
                .set(DeviceCalibrationPlan::getRatifyUserId, userId)
                .set(DeviceCalibrationPlan::getRatifyRemark, deviceCalibrationPlan.getRatifyRemark())
                .set(DeviceCalibrationPlan::getRatifyStatus, deviceCalibrationPlan.getRatifyStatus())
                .set(DeviceCalibrationPlan::getRatifyTime, LocalDateTime.now())
        );
        return true;
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’列表
     * @param page
     * @param deviceCalibrationPlan
     * @return
     */
    @Override
    public IPage<DeviceCalibrationPlanDto> pageDeviceCalibrationPlan(Page page, DeviceCalibrationPlan deviceCalibrationPlan) {
        return baseMapper.pageDeviceCalibrationPlan(page, QueryWrappers.queryWrappers(deviceCalibrationPlan));
    }
    /**
     * è®¾å¤‡æ ¡å‡†è®¡åˆ’详情列表
     * @param page
     * @param deviceCalibrationPlanDetails
     * @return
     */
    @Override
    public IPage<DeviceCalibrationPlanDetail> pageDeviceCalibrationPlanDetail(Page page, DeviceCalibrationPlanDetail deviceCalibrationPlanDetails) {
        if (deviceCalibrationPlanDetails.getPlanId() == null) {
            return new Page();
        }
        return deviceCalibrationPlanDetailMapper.pageDeviceCalibrationPlanDetail(page, QueryWrappers.queryWrappers(deviceCalibrationPlanDetails));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¡å‡†è®¡åˆ’
     * @param deviceCalibrationPlanId
     * @param response
     */
    @Override
    public void exportDeviceCalibrationPlanDetail(Integer deviceCalibrationPlanId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡æ ¡å‡†è®¡åˆ’
        DeviceCalibrationPlan deviceCalibrationPlan = baseMapper.selectById(deviceCalibrationPlanId);
        DeviceCalibrationPlanDto deviceCalibrationPlanDto = new DeviceCalibrationPlanDto();
        BeanUtils.copyProperties(deviceCalibrationPlan, deviceCalibrationPlanDto);
        // è®¾ç½®ç¼–制和批准时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        deviceCalibrationPlanDto.setWriteTimeStr(deviceCalibrationPlan.getWriteTime() == null ? null : deviceCalibrationPlan.getWriteTime().format(formatter));
        deviceCalibrationPlanDto.setRatifyTimeStr(deviceCalibrationPlan.getRatifyTime() == null ? null : deviceCalibrationPlan.getRatifyTime().format(formatter));
        // æŸ¥è¯¢è®¾å¤‡æ ¡å‡†è®¡åˆ’详情
        List<DeviceCalibrationPlanDetail> deviceCalibrationPlanDetailList = deviceCalibrationPlanDetailMapper.selectList(Wrappers.<DeviceCalibrationPlanDetail>lambdaQuery().eq(DeviceCalibrationPlanDetail::getPlanId, deviceCalibrationPlanId));
        // è®¾ç½®åºå· å’Œ æ—¶é—´
        ArrayList<DeviceCalibrationPlanDetailDto> deviceCalibrationPlanDetailDtoList = new ArrayList<>();
        deviceCalibrationPlanDetailList.forEach(deviceCalibrationPlanDetail -> {
            DeviceCalibrationPlanDetailDto deviceCalibrationPlanDetailDto = new DeviceCalibrationPlanDetailDto();
            BeanUtils.copyProperties(deviceCalibrationPlanDetail, deviceCalibrationPlanDetailDto);
            deviceCalibrationPlanDetailDto.setIndex(deviceCalibrationPlanDetailList.indexOf(deviceCalibrationPlanDetail) + 1);
            deviceCalibrationPlanDetailDto.setLastDateStr((deviceCalibrationPlanDetail.getLastDate().format(formatter)));
            deviceCalibrationPlanDetailDto.setPlanDateStr((deviceCalibrationPlanDetail.getPlanDate().format(formatter)));
            deviceCalibrationPlanDetailDtoList.add(deviceCalibrationPlanDetailDto);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-calibration-plan.docx");
        Configure configure = Configure.builder()
                .bind("deviceCalibrationPlanDetailDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceCalibrationPlan", deviceCalibrationPlanDto);
                    put("deviceCalibrationPlanDetailDtoList", deviceCalibrationPlanDetailDtoList);
                    //获取编制人的签名地址
                    put("organizationUrl", UserUtils.getFinalUserSignatureUrl(deviceCalibrationPlan.getRatifyUserId()));
                    //获取批准人的签名地址
                    put("approvedUrl", UserUtils.getFinalUserSignatureUrl(deviceCalibrationPlan.getWriteUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备校准计划表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceCheckServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceCheckMapper;
import com.yuanchu.mom.pojo.DeviceCheck;
import com.yuanchu.mom.service.DeviceCheckService;
import org.springframework.stereotype.Service;
@Service
public class DeviceCheckServiceImpl extends ServiceImpl<DeviceCheckMapper, DeviceCheck> implements DeviceCheckService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExaminePlanDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceExaminePlanDetailsMapper;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import com.yuanchu.mom.service.DeviceExaminePlanDetailsService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:16
 */
@Service
public class DeviceExaminePlanDetailsServiceImpl extends ServiceImpl<DeviceExaminePlanDetailsMapper, DeviceExaminePlanDetails> implements DeviceExaminePlanDetailsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExaminePlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,254 @@
package com.yuanchu.mom.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceExaminePlanDetailsDto;
import com.yuanchu.mom.dto.DeviceExaminePlanDto;
import com.yuanchu.mom.excel.upload.DeviceExaminePlanUpload;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.DeviceExaminePlanDetailsMapper;
import com.yuanchu.mom.mapper.DeviceExaminePlanMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceExaminePlanDetailsService;
import com.yuanchu.mom.service.DeviceExaminePlanService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’主表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:04
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceExaminePlanServiceImpl extends ServiceImpl<DeviceExaminePlanMapper, DeviceExaminePlan> implements DeviceExaminePlanService {
    @Resource
    private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper;
    @Resource
    private DeviceExaminePlanDetailsService deviceExaminePlanDetailsService;
    @Resource
    private DeviceMapper deviceMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private UserMapper userMapper;
    /**
     * æ–°å¢žè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param examinePlanDto
     * @return
     */
    @Override
    public boolean addDeviceExaminePlan(DeviceExaminePlanDto examinePlanDto) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        // æ–‡ä»¶åç§°
        examinePlanDto.setWriteUserId(userId);
        examinePlanDto.setWriteTime(LocalDateTime.now());
        baseMapper.insert(examinePlanDto);
        // æ·»åŠ è¯¦æƒ…
        if (CollectionUtils.isNotEmpty(examinePlanDto.getExaminePlanDetailsList())) {
            for (DeviceExaminePlanDetails deviceExaminePlanDetails : examinePlanDto.getExaminePlanDetailsList()) {
                deviceExaminePlanDetails.setPlanId(examinePlanDto.getPlanId());
            }
            deviceExaminePlanDetailsService.saveBatch(examinePlanDto.getExaminePlanDetailsList());
        }
        return true;
    }
    /**
     * å¯¼å…¥è®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param file
     * @return
     */
    @Override
    public boolean importDeviceExaminePlan(MultipartFile file) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        // æ–‡ä»¶åç§°
        String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
        DeviceExaminePlan examinePlan = new DeviceExaminePlan();
        examinePlan.setPlanName(fileName);
        examinePlan.setWriteUserId(userId);
        examinePlan.setWriteTime(LocalDateTime.now());
        baseMapper.insert(examinePlan);
        List<DeviceExaminePlanDetails> examinePlanDetails = new ArrayList<>();
        // å¯¼å…¥é™„件内容
        try {
            // excel解析
            EasyExcel.read(file.getInputStream(), DeviceExaminePlanUpload.class, new AnalysisEventListener<DeviceExaminePlanUpload>() {
                @Override
                public void invoke(DeviceExaminePlanUpload detailsUpload, AnalysisContext analysisContext) {
                    // åˆ¤æ–­æ˜¯å¦ä¸ºç©º
                    if (StringUtils.isNotBlank(detailsUpload.getDeviceName()) &&
                            StringUtils.isNotBlank(detailsUpload.getDeviceNumber())) {
                        // å¯¹è±¡å¤åˆ¶
                        DeviceExaminePlanDetails planDetails = new DeviceExaminePlanDetails();
                        BeanUtils.copyProperties(detailsUpload, planDetails);
                        planDetails.setPlanId(examinePlan.getPlanId());
                        examinePlanDetails.add(planDetails);
                    }
                }
                @Override
                public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                }
            }).sheet().doRead();
            for (DeviceExaminePlanDetails examinePlanDetail : examinePlanDetails) {
                Device device = deviceMapper.selectOne(Wrappers.<Device>lambdaQuery()
                        .eq(Device::getManagementNumber, examinePlanDetail.getDeviceNumber().trim()));
                if (device == null) {
                    throw new ErrorException("设备编号" + examinePlanDetail.getDeviceNumber() + "未查询到设备, è¯·é‡æ–°å¯¼å…¥");
                }
                User user = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                        .eq(User::getName, examinePlanDetail.getCheckChargerUser()));
                if (user == null) {
                    throw new ErrorException("设备编号" + examinePlanDetail.getDeviceNumber() + "未查询到核查人");
                }
                examinePlanDetail.setDeviceId(device.getId());
                examinePlanDetail.setCheckChargerUserId(user.getId());
            }
            deviceExaminePlanDetailsService.saveBatch(examinePlanDetails);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return true;
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’批准
     * @param deviceExaminePlan
     * @return
     */
    @Override
    public boolean ratifyDeviceExaminePlan(DeviceExaminePlan deviceExaminePlan) {
        // å½“前登录用户
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        baseMapper.update(null, Wrappers.<DeviceExaminePlan>lambdaUpdate()
                .eq(DeviceExaminePlan::getPlanId, deviceExaminePlan.getPlanId())
                .set(DeviceExaminePlan::getRatifyUserId, userId)
                .set(DeviceExaminePlan::getRatifyRemark, deviceExaminePlan.getRatifyRemark())
                .set(DeviceExaminePlan::getRatifyStatus, deviceExaminePlan.getRatifyStatus())
                .set(DeviceExaminePlan::getRatifyTime, LocalDateTime.now())
        );
        return true;
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’列表
     * @param page
     * @param deviceExaminePlan
     * @return
     */
    @Override
    public IPage<DeviceExaminePlanDto> pageDeviceExaminePlan(Page page, DeviceExaminePlan deviceExaminePlan) {
        return baseMapper.deviceExaminePlanDetailsMapper(page, QueryWrappers.queryWrappers(deviceExaminePlan));
    }
    /**
     * è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情列表
     * @param page
     * @param deviceExaminePlanDetails
     * @return
     */
    @Override
    public IPage<DeviceExaminePlanDetails> pageDeviceExaminePlanDetail(Page page, DeviceExaminePlanDetails deviceExaminePlanDetails) {
        if (deviceExaminePlanDetails.getPlanId() == null) {
            return new Page();
        }
        return deviceExaminePlanDetailsMapper.pageDeviceExaminePlanDetail(page, QueryWrappers.queryWrappers(deviceExaminePlanDetails));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æ ¸æŸ¥è®¡åˆ’
     * @param deviceExaminePlanId è®¾å¤‡æ ¸æŸ¥è®¡åˆ’id
     * @param response å“åº”体
     */
    @Override
    public void exportDeviceExaminePlanDetail(Integer deviceExaminePlanId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡æ ¸æŸ¥è®¡åˆ’
        DeviceExaminePlanDto deviceExaminePlanDto = baseMapper.selectExamineExaminePlanDto(deviceExaminePlanId);
        // æŸ¥è¯¢è®¾å¤‡æ ¸æŸ¥è®¡åˆ’详情
        List<DeviceExaminePlanDetails> deviceExaminePlanDetailsList = deviceExaminePlanDetailsMapper.selectList(Wrappers.<DeviceExaminePlanDetails>lambdaQuery().eq(DeviceExaminePlanDetails::getPlanId, deviceExaminePlanId));
        // è®¾ç½®åºå·
        ArrayList<DeviceExaminePlanDetailsDto> deviceExaminePlanDetailsDtoList = new ArrayList<>();
        deviceExaminePlanDetailsList.forEach(deviceExamineRecordContrastDetail -> {
            DeviceExaminePlanDetailsDto deviceExaminePlanDetailsDto = new DeviceExaminePlanDetailsDto();
            BeanUtils.copyProperties(deviceExamineRecordContrastDetail, deviceExaminePlanDetailsDto);
            deviceExaminePlanDetailsDto.setIndex(deviceExaminePlanDetailsList.indexOf(deviceExamineRecordContrastDetail) + 1);
            deviceExaminePlanDetailsDtoList.add(deviceExaminePlanDetailsDto);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/examine-plan-detail.docx");
        Configure configure = Configure.builder()
                .bind("deviceExaminePlanDetailsDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceExaminePlan", deviceExaminePlanDto);
                    put("deviceExaminePlanDetailsDtoList", deviceExaminePlanDetailsDtoList);
                    //获取核查人的签名地址
                    put("writeUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExaminePlanDto.getWriteUserId()));
                    //获取审查人的签名地址
                    put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExaminePlanDto.getRatifyUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备核查计划", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordContrastDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceExamineRecordContrastDetailsMapper;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
import com.yuanchu.mom.service.DeviceExamineRecordContrastDetailsService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:57
 */
@Service
public class DeviceExamineRecordContrastDetailsServiceImpl extends ServiceImpl<DeviceExamineRecordContrastDetailsMapper, DeviceExamineRecordContrastDetails> implements DeviceExamineRecordContrastDetailsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordContrastServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,195 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDetailsDto;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.DeviceExaminePlanDetailsMapper;
import com.yuanchu.mom.mapper.DeviceExamineRecordContrastMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrast;
import com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceExamineRecordContrastDetailsService;
import com.yuanchu.mom.service.DeviceExamineRecordContrastService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•对比表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:43
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceExamineRecordContrastServiceImpl extends ServiceImpl<DeviceExamineRecordContrastMapper, DeviceExamineRecordContrast> implements DeviceExamineRecordContrastService {
    @Resource
    private DeviceExamineRecordContrastDetailsService deviceExamineRecordContrastDetailsService;
    @Resource
    private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private UserMapper userMapper;
    /**
     * æŸ¥è¯¢æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @Override
    public DeviceExamineRecordContrastDto getExamineRecordContrast(Integer planDetailsId) {
        DeviceExamineRecordContrastDto contrastDto = baseMapper.getExamineRecordContrast(planDetailsId);
        // åˆ¤æ–­æ˜¯å¦ä¸ºç©º
        if (contrastDto == null) {
            contrastDto = new DeviceExamineRecordContrastDto();
            // æŸ¥è¯¢è®¾å¤‡è¯¦æƒ…
            DeviceExaminePlanDetails deviceExaminePlanDetails = deviceExaminePlanDetailsMapper.selectById(planDetailsId);
            contrastDto.setPlanDetailsId(deviceExaminePlanDetails.getPlanDetailsId());
        } else {
            // æŸ¥è¯¢è¯¦æƒ…
            List<DeviceExamineRecordContrastDetails> list = deviceExamineRecordContrastDetailsService.list(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery()
                    .eq(DeviceExamineRecordContrastDetails::getRecordContrastId, contrastDto.getRecordContrastId()));
            contrastDto.setRecordContrastDetailsList(list);
        }
        return contrastDto;
    }
    /**
     * æ–°å¢žæ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @Override
    public boolean addExamineRecordContrast(DeviceExamineRecordContrastDto dto) {
        if (dto.getPlanDetailsId() == null) {
            throw new ErrorException("缺少计划详细信息id");
        }
        if (dto.getRecordContrastId() == null) {
            Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
            User user = userMapper.selectById(userId);
            dto.setCheckerUserId(userId);
            dto.setCheckerUser(user.getName());
            // æŸ¥è¯¢å®¡æŸ¥äººid
            if (dto.getReviewUserId() != null) {
                User reviewUser = userMapper.selectById(dto.getReviewUserId());
                dto.setReviewUser(reviewUser.getName());
            }
        }
        this.saveOrUpdate(dto);
        // åˆ é™¤å…¨éƒ¨è¯¦æƒ…
        deviceExamineRecordContrastDetailsService.remove(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery()
                .eq(DeviceExamineRecordContrastDetails::getRecordContrastId, dto.getRecordContrastId()));
        //添加详情
        if (CollectionUtils.isNotEmpty(dto.getRecordContrastDetailsList())) {
            for (DeviceExamineRecordContrastDetails details : dto.getRecordContrastDetailsList()) {
                details.setRecordContrastId(dto.getRecordContrastId());
            }
            deviceExamineRecordContrastDetailsService.saveBatch(dto.getRecordContrastDetailsList());
        }
        return false;
    }
    /**
     * å®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     * @return
     */
    @Override
    public boolean reviewExamineRecordContrast(DeviceExamineRecordContrastDto dto) {
        if (dto.getPlanDetailsId() == null) {
            throw new ErrorException("缺少计划详细信息id");
        }
        LambdaUpdateWrapper<DeviceExamineRecordContrast> wrapper = Wrappers.<DeviceExamineRecordContrast>lambdaUpdate()
                .eq(DeviceExamineRecordContrast::getPlanDetailsId, dto.getPlanDetailsId())
                .set(DeviceExamineRecordContrast::getReviewStatus, dto.getReviewStatus())
                .set(DeviceExamineRecordContrast::getReviewRemark, dto.getReviewRemark())
                .set(DeviceExamineRecordContrast::getReviewTime, LocalDateTime.now());
        // ä¸º0清除审核人
        if (dto.getReviewStatus().equals(0)) {
            wrapper.set(DeviceExamineRecordContrast::getReviewUserId, null)
                    .set(DeviceExamineRecordContrast::getReviewUser, null);
        }
        this.update(wrapper);
        return true;
    }
    /**
     * å¯¼å‡ºå®¡æ ¸æ ¸æŸ¥å¯¹æ¯”记录
     *
     * @param planDetailsId è¯¦æƒ…id
     * @param response
     */
    @Override
    public void exportReviewExamineRecordContrast(Integer planDetailsId, HttpServletResponse response) {
        // æŸ¥è¯¢å¯¹æ¯”记录
        DeviceExamineRecordContrastDto deviceExamineRecordContrast = baseMapper.selectExamineRecordContrastDto(planDetailsId);
        // æŸ¥è¯¢å¯¹æ¯”记录详情
        List<DeviceExamineRecordContrastDetails> deviceExamineRecordContrastDetailList = deviceExamineRecordContrastDetailsService.list(Wrappers.<DeviceExamineRecordContrastDetails>lambdaQuery().eq(DeviceExamineRecordContrastDetails::getRecordContrastId, deviceExamineRecordContrast.getRecordContrastId()));
        // è®¾ç½®åºå·
        ArrayList<DeviceExamineRecordContrastDetailsDto> deviceExamineRecordContrastDetailsDtoList = new ArrayList<>();
        deviceExamineRecordContrastDetailList.forEach(deviceExamineRecordContrastDetail -> {
            DeviceExamineRecordContrastDetailsDto deviceExamineRecordContrastDetailsDto = new DeviceExamineRecordContrastDetailsDto();
            BeanUtils.copyProperties(deviceExamineRecordContrastDetail, deviceExamineRecordContrastDetailsDto);
            deviceExamineRecordContrastDetailsDto.setIndex(deviceExamineRecordContrastDetailList.indexOf(deviceExamineRecordContrastDetail) + 1);
            deviceExamineRecordContrastDetailsDtoList.add(deviceExamineRecordContrastDetailsDto);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/review-examine-record-contrast.docx");
        Configure configure = Configure.builder()
                .bind("deviceExamineRecordContrastDetailsDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceExamineRecordContrast", deviceExamineRecordContrast);
                    put("deviceExamineRecordContrastDetailsDtoList", deviceExamineRecordContrastDetailsDtoList);
                    //获取核查人的签名地址
                    put("checkerUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordContrast.getCheckerUserId()));
                    //获取审查人的签名地址
                    put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordContrast.getReviewUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "审核核查对比记录", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordDetailServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceExamineRecordDetailMapper;
import com.yuanchu.mom.pojo.DeviceExamineRecordDetail;
import com.yuanchu.mom.service.DeviceExamineRecordDetailService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:15:11
 */
@Service
public class DeviceExamineRecordDetailServiceImpl extends ServiceImpl<DeviceExamineRecordDetailMapper, DeviceExamineRecordDetail> implements DeviceExamineRecordDetailService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExamineRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,196 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceExamineRecordDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.DeviceExaminePlanDetailsMapper;
import com.yuanchu.mom.mapper.DeviceExamineRecordMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.DeviceExamineRecordDetailService;
import com.yuanchu.mom.service.DeviceExamineRecordService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡æ ¸æŸ¥è®°å½•表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 07:14:28
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceExamineRecordServiceImpl extends ServiceImpl<DeviceExamineRecordMapper, DeviceExamineRecord> implements DeviceExamineRecordService {
    @Resource
    private DeviceExamineRecordDetailService deviceExamineRecordDetailService;
    @Resource
    private DeviceExaminePlanDetailsMapper deviceExaminePlanDetailsMapper;
    @Resource
    private DeviceMapper deviceMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private UserMapper userMapper;
    /**
     * æŸ¥è¯¢æ ¸æŸ¥è®°å½•
     *
     * @return
     */
    @Override
    public DeviceExamineRecordDto getExamineRecord(Integer planDetailsId) {
        DeviceExamineRecordDto deviceExamineRecord = baseMapper.getExamineRecord(planDetailsId);
        // åˆ¤æ–­æ˜¯å¦ä¸ºç©º
        if (deviceExamineRecord == null) {
            deviceExamineRecord = new DeviceExamineRecordDto();
            // æŸ¥è¯¢è®¾å¤‡è¯¦æƒ…
            DeviceExaminePlanDetails deviceExaminePlanDetails = deviceExaminePlanDetailsMapper.selectById(planDetailsId);
            Device device = deviceMapper.selectById(deviceExaminePlanDetails.getDeviceId());
            if (device != null) {
                deviceExamineRecord.setDeviceName(device.getDeviceName());
                deviceExamineRecord.setDeviceNumber(device.getManagementNumber());
                deviceExamineRecord.setPlanDetailsId(deviceExaminePlanDetails.getPlanDetailsId());
            }
        } else {
            // æŸ¥è¯¢è¯¦æƒ…
            List<DeviceExamineRecordDetail> list = deviceExamineRecordDetailService.list(Wrappers.<DeviceExamineRecordDetail>lambdaQuery()
                    .eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecord.getRecordId()));
            deviceExamineRecord.setRecordDetailList(list);
        }
        return deviceExamineRecord;
    }
    /**
     * æ–°å¢žæ ¸æŸ¥è®°å½•
     *
     * @return
     */
    @Override
    public boolean addExamineRecord(DeviceExamineRecordDto deviceExamineRecordDto) {
        if (deviceExamineRecordDto.getPlanDetailsId() == null) {
            throw new ErrorException("缺少计划详细信息id");
        }
        if (deviceExamineRecordDto.getRecordId() == null) {
            Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
            User user = userMapper.selectById(userId);
            deviceExamineRecordDto.setCheckerUserId(userId);
            deviceExamineRecordDto.setCheckerUser(user.getName());
            // æŸ¥è¯¢å®¡æŸ¥äººid
            if (deviceExamineRecordDto.getReviewUserId() != null) {
                User reviewUser = userMapper.selectById(deviceExamineRecordDto.getReviewUserId());
                deviceExamineRecordDto.setReviewUser(reviewUser.getName());
            }
        }
        this.saveOrUpdate(deviceExamineRecordDto);
        // åˆ é™¤å…¨éƒ¨è¯¦æƒ…
        deviceExamineRecordDetailService.remove(Wrappers.<DeviceExamineRecordDetail>lambdaQuery()
                .eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecordDto.getRecordId()));
        //添加详情
        if (CollectionUtils.isNotEmpty(deviceExamineRecordDto.getRecordDetailList())) {
            for (DeviceExamineRecordDetail deviceExamineRecordDetail : deviceExamineRecordDto.getRecordDetailList()) {
                deviceExamineRecordDetail.setRecordId(deviceExamineRecordDto.getRecordId());
            }
            deviceExamineRecordDetailService.saveBatch(deviceExamineRecordDto.getRecordDetailList());
        }
        return true;
    }
    /**
     * å¤æ ¸æ ¸æŸ¥è®°å½•
     *
     * @return
     */
    @Override
    public boolean reviewExamineRecord(DeviceExamineRecordDto dto) {
        if (dto.getPlanDetailsId() == null) {
            throw new ErrorException("缺少计划详细信息id");
        }
        LambdaUpdateWrapper<DeviceExamineRecord> wrapper = Wrappers.<DeviceExamineRecord>lambdaUpdate()
                .eq(DeviceExamineRecord::getPlanDetailsId, dto.getPlanDetailsId())
                .set(DeviceExamineRecord::getReviewStatus, dto.getReviewStatus())
                .set(DeviceExamineRecord::getReviewRemark, dto.getReviewRemark());
        // ä¸º0清除审核人
        if (dto.getReviewStatus().equals(0)) {
            wrapper.set(DeviceExamineRecord::getReviewUserId, null)
                    .set(DeviceExamineRecord::getReviewUser, null);
        }
        this.update(wrapper);
        return true;
    }
    /**
     * å¯¼å‡ºå¤æ ¸æ ¸æŸ¥è®°å½•
     *
     * @param planDetailsId å¤æ ¸æ ¸æŸ¥è®°å½•id
     * @return
     */
    @Override
    public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response) {
        // æŸ¥è¯¢å¤æ ¸æ ¸æŸ¥è®°å½•
        DeviceExamineRecordDto deviceExamineRecordDto = baseMapper.selectReviewExamineRecordDto(planDetailsId);
        // æŸ¥è¯¢å¤æ ¸æ ¸æŸ¥è®°å½•详情
        List<DeviceExamineRecordDetail> deviceExamineRecordDetailList = deviceExamineRecordDetailService.list(Wrappers.<DeviceExamineRecordDetail>lambdaQuery().eq(DeviceExamineRecordDetail::getRecordId, deviceExamineRecordDto.getRecordId()));
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/examine-record.docx");
        Configure configure = Configure.builder()
                .bind("deviceExamineRecordDetailList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceExamineRecordDto", deviceExamineRecordDto);
                    put("deviceExamineRecordDetailList", deviceExamineRecordDetailList);
                    //获取核查人的签名地址
                    put("checkerUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getCheckerUserId()));
                    //获取审查人的签名地址
                    put("reviewUserUrl", UserUtils.getFinalUserSignatureUrl(deviceExamineRecordDto.getReviewUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String deviceName = StringUtils.isNotEmpty(deviceExamineRecordDto.getDeviceName()) ? deviceExamineRecordDto.getDeviceName() : "";
            String fileName = URLEncoder.encode(
                    deviceName+ "核查记录", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceExternalApplyServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.mapper.DeviceExternalApplyMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceExternalApply;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceExternalApplyService;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.HashMap;
/**
 * <p>
 * åˆ©ç”¨å¤–部设备申请表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 10:28:43
 */
@Service
public class DeviceExternalApplyServiceImpl extends ServiceImpl<DeviceExternalApplyMapper, DeviceExternalApply> implements DeviceExternalApplyService {
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    /**
     * åˆ©ç”¨å¤–部设备申请列表
     * @param page
     * @param deviceExternalApply
     * @return
     */
    @Override
    public IPage<DeviceExternalApply> pageDeviceExternalApply(Page page, DeviceExternalApply deviceExternalApply) {
        return baseMapper.pageDeviceExternalApply(page, QueryWrappers.queryWrappers(deviceExternalApply));
    }
    /**
     * æ–°å¢žåˆ©ç”¨å¤–部设备申请
     * @param deviceExternalApply
     * @return
     */
    @Override
    public boolean addDeviceExternalApply(DeviceExternalApply deviceExternalApply) {
        DeviceExternalApply apply = new DeviceExternalApply();
        // å½“前登录用户信息和部门
        User user = userMapper.selectById(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        switch (deviceExternalApply.getFlowType()) {
            case 0:
                BeanUtils.copyProperties(deviceExternalApply, apply);
                // ç”³è¯·
                apply.setUseReason(deviceExternalApply.getUseReason());
                apply.setApplicantUserId(user.getId());
                apply.setApplicantUser(user.getName());
                apply.setApplicantDate(LocalDate.now());
                // å¤„理人信息
                User departmentHeadUser = userMapper.selectById(deviceExternalApply.getDepartmentHeadUserId());
                apply.setApplicantUserId(departmentHeadUser.getId());
                apply.setApplicantUser(departmentHeadUser.getName());
                baseMapper.insert(apply);
                break;
            case 1:
                apply.setExternalApplyId(deviceExternalApply.getExternalApplyId());
                // ç”³è¯·éƒ¨é—¨è´Ÿè´£äººæ„è§
                apply.setDepartmentHeadOpinion(deviceExternalApply.getDepartmentHeadOpinion());
                apply.setDepartmentHeadDate(LocalDate.now());
                // è®¡é‡å®¤ä¿¡æ¯
                User meteringRoomUser = userMapper.selectById(deviceExternalApply.getMeteringRoomUserId());
                apply.setMeteringRoomUserId(meteringRoomUser.getId());
                apply.setMeteringRoomUser(meteringRoomUser.getName());
                baseMapper.updateById(apply);
                break;
            case 2:
                apply.setExternalApplyId(deviceExternalApply.getExternalApplyId());
                // è®¡é‡å®¤æ„è§
                apply.setMeteringRoomOpinion(deviceExternalApply.getMeteringRoomOpinion());
                apply.setMeteringRoomDate(LocalDate.now());
                // æ‰¹å‡†äººä¿¡æ¯
                User approverUser = userMapper.selectById(deviceExternalApply.getApproverUserId());
                apply.setApproverUserId(approverUser.getId());
                apply.setApproverUser(approverUser.getName());
                baseMapper.updateById(apply);
                break;
            case 3:
                apply.setExternalApplyId(deviceExternalApply.getExternalApplyId());
                //批准人
                apply.setApproverOpinion(deviceExternalApply.getApproverOpinion());
                apply.setApproverDate(LocalDate.now());
                apply.setIsFinish(1);
                baseMapper.updateById(apply);
                break;
        }
        return true;
    }
    /**
     * å¯¼å‡ºåˆ©ç”¨å¤–部设备申请
     *
     * @param externalApplyId å¤–部设备申请id
     * @param response
     */
    @Override
    public void exportDeviceExternalApply(Integer externalApplyId, HttpServletResponse response) {
        // æŸ¥è¯¢å¤–部设备申请
        DeviceExternalApply deviceAccidentReport = baseMapper.selectDeviceExternalById(externalApplyId);
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-external-apply.docx");
        Configure configure = Configure.builder()
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceAccidentReport", deviceAccidentReport);
                    // ç”³è¯·äººç­¾å
                    put("applicantUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getApplicantUserId()));
                    // éƒ¨é—¨è´Ÿè´£äººç­¾å
                    put("departmentHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId()));
                    // è®¡é‡å®¤äººç­¾å
                    put("meteringRoomUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getMeteringRoomUserId()));
                    // æ‰¹å‡†äººç­¾å
                    put("approverUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getApproverUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "利用外部设备申请", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceFaultOneServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.dto.DeviceFaultOneDto;
import com.yuanchu.mom.mapper.DeviceFaultOneMapper;
import com.yuanchu.mom.pojo.DeviceFaultOne;
import com.yuanchu.mom.service.DeviceFaultOneService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ•…障表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 02:03:29
 */
@Service
public class DeviceFaultOneServiceImpl extends ServiceImpl<DeviceFaultOneMapper, DeviceFaultOne> implements DeviceFaultOneService {
    @Override
    public IPage<DeviceFaultOneDto> deviceFaultOnePage(Integer deviceId, Page page, String processNumber) {
        return baseMapper.deviceFaultOnePage(deviceId, page, processNumber);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceFaultServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.DeviceFaultService;
import com.yuanchu.mom.service.EnumService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class DeviceFaultServiceImpl extends ServiceImpl<DeviceFaultMapper, DeviceFault> implements DeviceFaultService {
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private QrShowServiceImpl qrShowService;
    @Autowired
    private DeviceMaintenanceMapper deviceMaintenanceMapper;
    @Autowired
    private StructureItemParameterMapper structureItemParameterMapper;
    @Autowired
    private DeviceFaultOneMapper deviceFaultOneMapper;
    @Autowired
    private EnumService enumService;
    @Override
    public Map<String,Object> findByDeviceId(Integer deviceId) {
        Map<String,Object> map = new HashMap<>();
        if(Objects.isNull(deviceId)){
            return map;
        }
        //查询设备主表信息
        Device device = deviceMapper.selectById(deviceId);
        if(!Objects.isNull(device)){
            //查询设备校准信息
            DeviceMetricRecord calibrate = qrShowService.getDeviceMetricRecord(device.getId(), "calibrate");
            //查询设备核查信息
            DeviceMetricRecord examine = qrShowService.getDeviceMetricRecord(device.getId(), "examine");
            //查询设备维护记录
            DeviceMaintenance deviceMaintenance = Optional.ofNullable(deviceMaintenanceMapper.selectOne(Wrappers.<DeviceMaintenance>lambdaQuery()
                    .eq(DeviceMaintenance::getDeviceId, device.getId())
                    .orderByDesc(DeviceMaintenance::getId)
                    .last("limit 1"))).orElse(new DeviceMaintenance());
            //查询设备故障信息
            List<DeviceFaultOne> deviceFaultOneList = Optional.ofNullable(deviceFaultOneMapper.selectList(Wrappers.<DeviceFaultOne>lambdaQuery()
                    .eq(DeviceFaultOne::getDeviceId, device.getId())
                    .orderByDesc(DeviceFaultOne::getId))).orElse(new ArrayList<>());
            //查询设备状态字典
            List<Enums> deviceStatus = enumService.selectEnumByCategory("设备状态");
            Enums findEnum = deviceStatus.stream().filter(e-> Integer.parseInt(e.getValue()) ==device.getDeviceStatus()).findFirst().orElse(new Enums());
            map.put("progress",qrShowService.calcDeviceNextCheckRatio(calibrate.getCalibrationDate(),calibrate.getNextCalibrationDate()));//距离下次校准日期的天数百分比
            map.put("deviceName",device.getDeviceName());//设备名称
            map.put("deviceCode",device.getManagementNumber());//设备编号
            map.put("usedYears",qrShowService.calcUsedYears(device.getActivationDate()));//启用时长(å¹´)
            map.put("deviceStatus",findEnum.getLabel());//设备运行状态
            map.put("faultCount",deviceFaultOneList.size());//故障次数
            String faultDate = !deviceFaultOneList.isEmpty() ?qrShowService.formatDate(deviceFaultOneList.get(0).getFaultDate(),"yyyy-MM-dd"):"";
            map.put("faultDate",faultDate);//最近故障日期
            map.put("lastCalibrationDate",qrShowService.formatDate(calibrate.getCalibrationDate(),"yyyy-MM-dd"));//最近校准日期
            map.put("nextCalibrationDate",qrShowService.formatDate(calibrate.getNextCalibrationDate(),"yyyy-MM-dd"));//下次校准日期
            String calibrateStatus = "0yes".equals(calibrate.getStatus())?"合格":"1no".equals(calibrate.getStatus())?"不合格":"其他";
            map.put("calibrateStatus",Objects.isNull(calibrate.getCalibrationDate())?"":calibrateStatus);//校准总结论
            map.put("lastExamineDate",examine.getCalibrationDate());//最近核查日期
            map.put("nextExamineDate",examine.getNextCalibrationDate());//下次核查日期
            String examineStatus = "0yes".equals(examine.getStatus())?"合格":"1no".equals(examine.getStatus())?"不合格":"其他";
            map.put("examineStatus",Objects.isNull(examine.getCalibrationDate())?"":examineStatus);//核查总结论
            map.put("maintenanceDate",deviceMaintenance.getDate());//最近维护日期
            map.put("nextMaintenanceDate",deviceMaintenance.getNextDate());//下次维护日期
            String maintenanceType = "";
            if(!Objects.isNull(deviceMaintenance.getMaintenanceType())){
                maintenanceType = 0==deviceMaintenance.getMaintenanceType()?"使用前维护":"使用后维护";
            }
            map.put("maintenanceType",maintenanceType);//维护总结论
            //测量项目
            String insProduct = "";
            if(StringUtils.isNotBlank(device.getInsProductIds())){
                String[] ids = device.getInsProductIds().split(",");
                List<StructureItemParameter> parameters = structureItemParameterMapper.selectBatchIds(Arrays.asList(ids));
                List<String> itemList = parameters.stream().map(StructureItemParameter::getInspectionItem).distinct().collect(Collectors.toList());
                insProduct = String.join(",",itemList);
            }
            map.put("insProduct",insProduct);//测量项目
        }
        return map;
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceInspectionRecordDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceInspectionRecordDetailsMapper;
import com.yuanchu.mom.pojo.DeviceInspectionRecordDetails;
import com.yuanchu.mom.service.DeviceInspectionRecordDetailsService;
import org.springframework.stereotype.Service;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:27:32
 */
@Service
public class DeviceInspectionRecordDetailsServiceImpl extends ServiceImpl<DeviceInspectionRecordDetailsMapper, DeviceInspectionRecordDetails> implements DeviceInspectionRecordDetailsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceInspectionRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,223 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceInspectionRecordDto;
import com.yuanchu.mom.mapper.DeviceInspectionRecordMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceInspectionRecord;
import com.yuanchu.mom.pojo.DeviceInspectionRecordDetails;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceInspectionRecordDetailsService;
import com.yuanchu.mom.service.DeviceInspectionRecordService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡ç‚¹æ£€è®°å½•表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 04:25:14
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceInspectionRecordServiceImpl extends ServiceImpl<DeviceInspectionRecordMapper, DeviceInspectionRecord> implements DeviceInspectionRecordService {
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private DeviceMapper deviceMapper;
    @Resource
    private DeviceInspectionRecordDetailsService deviceInspectionRecordDetailsService;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param page å½“前页码
     */
    @Override
    public Result<IPage<DeviceInspectionRecord>> getDeviceInspectionRecordByPage(IPage page, DeviceInspectionRecordDto deviceInspectionRecordDto) {
        IPage<DeviceInspectionRecord> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceInspectionRecordDto));
        return Result.success(iPage);
    }
    /**
     * æŸ¥è¯¢ç‚¹æ£€è¯¦æƒ…
     * @param inspectionRecordId
     * @return
     */
    @Override
    public Result getDeviceInspectionRecord(Integer inspectionRecordId) {
        DeviceInspectionRecord deviceInspectionRecord = baseMapper.selectById(inspectionRecordId);
        DeviceInspectionRecordDto dto = new DeviceInspectionRecordDto();
        BeanUtils.copyProperties(deviceInspectionRecord, dto);
        List<DeviceInspectionRecordDetails> list = deviceInspectionRecordDetailsService.list(Wrappers.<DeviceInspectionRecordDetails>lambdaQuery().eq(DeviceInspectionRecordDetails::getInspectionRecordId, inspectionRecordId));
        dto.setDetails(list);
        return Result.success(dto);
    }
    /**
     * æ–°å¢žè®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result addDeviceInspectionRecord(DeviceInspectionRecordDto deviceInspectionRecord) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        deviceInspectionRecord.setRecorderId(userId);
        deviceInspectionRecord.setRecorder(user.getName());
        // æŸ¥è¯¢å¤æ ¸äººid
        if (deviceInspectionRecord.getReviewerId() != null) {
            User reviewUser = userMapper.selectById(deviceInspectionRecord.getReviewerId());
            deviceInspectionRecord.setReviewer(reviewUser.getName());
        }
        this.saveOrUpdate(deviceInspectionRecord);
        if (CollectionUtils.isNotEmpty(deviceInspectionRecord.getDetails())) {
            for (DeviceInspectionRecordDetails detail : deviceInspectionRecord.getDetails()) {
                detail.setInspectionRecordId(deviceInspectionRecord.getInspectionRecordId());
            }
            deviceInspectionRecordDetailsService.saveBatch( deviceInspectionRecord.getDetails());
        }
        return Result.success();
    }
    /**
     * ä¿®æ”¹è®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @Override
    public Result updateInspectionRecordAndDetails(DeviceInspectionRecordDto deviceInspectionRecord) {
        // æŸ¥è¯¢å¤æ ¸äººid
        if (deviceInspectionRecord.getReviewerId() != null) {
            User reviewUser = userMapper.selectById(deviceInspectionRecord.getReviewerId());
            deviceInspectionRecord.setReviewer(reviewUser.getName());
        }
        this.saveOrUpdate(deviceInspectionRecord);
        deviceInspectionRecordDetailsService.remove(Wrappers.<DeviceInspectionRecordDetails>lambdaQuery().eq(DeviceInspectionRecordDetails::getInspectionRecordId, deviceInspectionRecord.getInspectionRecordId()));
        if (CollectionUtils.isNotEmpty(deviceInspectionRecord.getDetails())) {
            for (DeviceInspectionRecordDetails detail : deviceInspectionRecord.getDetails()) {
                detail.setInspectionRecordId(deviceInspectionRecord.getInspectionRecordId());
            }
            deviceInspectionRecordDetailsService.saveBatch( deviceInspectionRecord.getDetails());
        }
        return Result.success();
    }
    /**
     * åˆ é™¤è®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecord è®¾å¤‡ç‚¹æ£€è®°å½•
     */
    @Override
    public Result deleteDeviceInspectionRecordOrDetails(DeviceInspectionRecordDto deviceInspectionRecord) {
        this.removeById(deviceInspectionRecord);
        deviceInspectionRecordDetailsService.remove(Wrappers.<DeviceInspectionRecordDetails>lambdaQuery().eq(DeviceInspectionRecordDetails::getInspectionRecordId, deviceInspectionRecord.getInspectionRecordId()));
        return Result.success();
    }
    /**
     * å¤æ ¸ç‚¹æ£€è®°å½•
     * @param dto
     * @return
     */
    @Override
    public Result reviewDeviceInspectionRecord(DeviceInspectionRecordDto dto) {
        LambdaUpdateWrapper<DeviceInspectionRecord> wrapper = Wrappers.<DeviceInspectionRecord>lambdaUpdate()
                .eq(DeviceInspectionRecord::getInspectionRecordId, dto.getInspectionRecordId())
                .set(DeviceInspectionRecord::getStatus, dto.getStatus())
                .set(DeviceInspectionRecord::getReviewerRemark, dto.getReviewerRemark());
        // ä¸º0清除审核人
        if (dto.getStatus().equals(0)) {
            wrapper.set(DeviceInspectionRecord::getReviewerId, null)
                    .set(DeviceInspectionRecord::getReviewer, null);
        }
        this.update(wrapper);
        return Result.success();
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ç‚¹æ£€è®°å½•
     *
     * @param deviceInspectionRecordId è®¾å¤‡ç‚¹æ£€è®°å½•id
     * @param response                 å“åº”
     */
    @Override
    public Result exportDeviceInspectionRecord(Integer deviceInspectionRecordId, HttpServletResponse response) {
        DeviceInspectionRecord deviceInspectionRecord = baseMapper.selectById(deviceInspectionRecordId);
        DeviceInspectionRecordDto deviceInspectionRecordDto = new DeviceInspectionRecordDto();
        BeanUtils.copyProperties(deviceInspectionRecord, deviceInspectionRecordDto);
        DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        deviceInspectionRecordDto.setTestDateString(deviceInspectionRecord.getTestDate() == null ? null : deviceInspectionRecord.getTestDate().format(dateFormatter));
        List<DeviceInspectionRecordDetails> deviceInspectionRecordDetailsList = deviceInspectionRecordDetailsService.list(Wrappers.<DeviceInspectionRecordDetails>lambdaQuery().eq(DeviceInspectionRecordDetails::getInspectionRecordId, deviceInspectionRecordId));
        Integer deviceId = deviceInspectionRecord.getDeviceId();
        Device device = deviceMapper.selectById(deviceId);
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-inspection-record.docx");
        Configure configure = Configure.builder()
                .bind("deviceInspectionRecordDetailsList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceInspectionRecord", deviceInspectionRecordDto);
                    put("deviceInspectionRecordDetailsList", deviceInspectionRecordDetailsList);
                    put("device", device);
                    put("recorderUrl", UserUtils.getFinalUserSignatureUrl(deviceInspectionRecordDto.getRecorderId()));
                    put("reviewerUrl", UserUtils.getFinalUserSignatureUrl(deviceInspectionRecordDto.getReviewerId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    device.getDeviceName() + "点检记录", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceLeaseServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceLeaseMapper;
import com.yuanchu.mom.pojo.DeviceLease;
import com.yuanchu.mom.service.IDeviceLeaseService;
import org.springframework.stereotype.Service;
@Service
public class DeviceLeaseServiceImpl extends ServiceImpl<DeviceLeaseMapper, DeviceLease> implements IDeviceLeaseService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceLogServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceLogMapper;
import com.yuanchu.mom.pojo.DeviceLog;
import com.yuanchu.mom.service.IDeviceLogService;
import org.springframework.stereotype.Service;
@Service
public class DeviceLogServiceImpl extends ServiceImpl<DeviceLogMapper, DeviceLog> implements IDeviceLogService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenanceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.excel.DeviceMaintenanceExport;
import com.yuanchu.mom.mapper.DeviceMaintenanceMapper;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.pojo.DeviceMaintenance;
import com.yuanchu.mom.service.DeviceMaintenanceService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
@Service
public class DeviceMaintenanceImpl extends ServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements DeviceMaintenanceService {
    @Resource
    DeviceMaintenanceMapper deviceMaintenanceMapper;
    @Resource
    private DeviceMapper deviceMapper;
    @Override
    public IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber) {
        return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
                .eq(DeviceMaintenance::getDeviceId, deviceId)
                .like(DeviceMaintenance::getDeviceNumber, deviceNumber));
    }
    @Override
    public List<DeviceMaintenanceExport> deviceMaintenanceExport(Integer deviceId) {
        return baseMapper.deviceMaintenanceExport(deviceId);
    }
    @Override
    public void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response) {
        // æŸ¥è¯¢cnas设备维修记录
        List<DeviceMaintenance> deviceMaintenanceList = baseMapper.selectList(Wrappers.<DeviceMaintenance>lambdaQuery()
                .eq(DeviceMaintenance::getDeviceId, deviceId)
                .select(DeviceMaintenance::getDate,
                        DeviceMaintenance::getDeviceNumber,
                        DeviceMaintenance::getDeviceName,
                        DeviceMaintenance::getManagementNumber,
                        DeviceMaintenance::getContent,
                        DeviceMaintenance::getName,
                        DeviceMaintenance::getComments));
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/maintenance-records.docx");
        Configure configure = Configure.builder()
                .bind("deviceMaintenanceList", new HackLoopTableRenderPolicy())
                .build();
        // èŽ·å–è®¾å¤‡ åç§° å’Œ ç¼–号
        DeviceMaintenance deviceMaintenance = deviceMaintenanceList.get(0);
        String deviceName = deviceMaintenance.getDeviceName();
        String managementNumber = deviceMaintenance.getManagementNumber();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceMaintenanceList", deviceMaintenanceList);
                    put("deviceName", deviceName);
                    put("managementNumber", managementNumber);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备维护保养记录", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
//    @Override
//    public List<DeviceMaintenance> getDeviceMaintenanceParam() {
//        Map<String, Object> map = new HashMap<>();
//        map.put("head",PrintChina.printChina(DeviceMaintenance.class));
//        IPage<DeviceMaintenance> iPage = deviceMaintenanceMapper.getDeviceMaintenanceParam(page, QueryWrappers.queryWrappers(itemParameter));
//        map.put("body",page);
//        return deviceMaintenanceMapper.getDeviceMaintenanceParam();
//    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenancePlanDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceMaintenancePlanDetailsMapper;
import com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails;
import com.yuanchu.mom.service.DeviceMaintenancePlanDetailsService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:11:46
 */
@Service
public class DeviceMaintenancePlanDetailsServiceImpl extends ServiceImpl<DeviceMaintenancePlanDetailsMapper, DeviceMaintenancePlanDetails> implements DeviceMaintenancePlanDetailsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMaintenancePlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,239 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDetailsDto;
import com.yuanchu.mom.dto.DeviceMaintenancePlanDto;
import com.yuanchu.mom.mapper.DeviceMaintenancePlanDetailsMapper;
import com.yuanchu.mom.mapper.DeviceMaintenancePlanMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceMaintenancePlan;
import com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceMaintenancePlanDetailsService;
import com.yuanchu.mom.service.DeviceMaintenancePlanService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.Result;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 * è®¾å¤‡ä¿å…»è®¡åˆ’表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-16 06:10:52
 */
@Service
public class DeviceMaintenancePlanServiceImpl extends ServiceImpl<DeviceMaintenancePlanMapper, DeviceMaintenancePlan> implements DeviceMaintenancePlanService {
    @Resource
    private DeviceMaintenancePlanDetailsService deviceMaintenancePlanDetailsService;
    @Resource
    private DeviceMaintenancePlanDetailsMapper deviceMaintenancePlanDetailsMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private UserMapper userMapper;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param page
     * @return
     */
    @Override
    public Result<IPage<DeviceMaintenancePlan>> selectDeviceMaintenancePlanByPage(IPage page, DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        IPage<DeviceMaintenancePlan> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceMaintenancePlanDto));
        return Result.success(iPage);
    }
    /**
     * æ–°å¢žè®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @Override
    public Result addMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        deviceMaintenancePlanDto.setCompilerId(userId);
        deviceMaintenancePlanDto.setCompiler(user.getName());
        deviceMaintenancePlanDto.setDatePreparation(LocalDateTime.now());
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceMaintenancePlanDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceMaintenancePlanDto.getAuditId());
            deviceMaintenancePlanDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceMaintenancePlanDto);
        // è¯¦æƒ…赋值并保存
        List<DeviceMaintenancePlanDetailsDto> deviceMaintenancePlanDetails = deviceMaintenancePlanDto.getDeviceMaintenancePlanDetails();
        if (CollectionUtils.isNotEmpty(deviceMaintenancePlanDetails)) { // è¯¦æƒ…不为空
            List<DeviceMaintenancePlanDetails> collect = deviceMaintenancePlanDetails.stream().map(deviceMaintenancePlanDetail -> { // éåŽ†è¯¦æƒ…
                deviceMaintenancePlanDetail.setDeviceId(deviceMaintenancePlanDto.getDeviceId()); // è®¾å¤‡ID
                deviceMaintenancePlanDetail.setMaintenancePlanId(deviceMaintenancePlanDto.getMaintenancePlanId()); // ä¿å…»è®¡åˆ’ID
                DeviceMaintenancePlanDetails planDetails = new DeviceMaintenancePlanDetails();
                BeanUtils.copyProperties(deviceMaintenancePlanDetail, planDetails);
                return planDetails;
            }).collect(Collectors.toList());
            deviceMaintenancePlanDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * ä¿®æ”¹è®¾å¤‡ä¿å…»è®¡åˆ’
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @Override
    public Result updateMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceMaintenancePlanDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceMaintenancePlanDto.getAuditId());
            deviceMaintenancePlanDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceMaintenancePlanDto);
        // åˆ é™¤åŽŸæœ¬çš„è¯¦æƒ…
        deviceMaintenancePlanDetailsService.remove(Wrappers.<DeviceMaintenancePlanDetails>lambdaQuery().eq(DeviceMaintenancePlanDetails::getMaintenancePlanId, deviceMaintenancePlanDto.getMaintenancePlanId()));
        // è¯¦æƒ…赋值并保存
        List<DeviceMaintenancePlanDetailsDto> deviceMaintenancePlanDetails = deviceMaintenancePlanDto.getDeviceMaintenancePlanDetails();
        if (CollectionUtils.isNotEmpty(deviceMaintenancePlanDetails)) { // è¯¦æƒ…不为空
            List<DeviceMaintenancePlanDetails> collect = deviceMaintenancePlanDetails.stream().map(deviceMaintenancePlanDetail -> { // éåŽ†è¯¦æƒ…
                deviceMaintenancePlanDetail.setDeviceId(deviceMaintenancePlanDto.getDeviceId()); // è®¾å¤‡ID
                deviceMaintenancePlanDetail.setMaintenancePlanId(deviceMaintenancePlanDto.getMaintenancePlanId()); // ä¿å…»è®¡åˆ’ID
                DeviceMaintenancePlanDetails planDetails = new DeviceMaintenancePlanDetails();
                BeanUtils.copyProperties(deviceMaintenancePlanDetail, planDetails);
                return planDetails;
            }).collect(Collectors.toList());
            deviceMaintenancePlanDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * åˆ é™¤è®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @Override
    public Result deleteMaintenancePlan(DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        this.removeById(deviceMaintenancePlanDto);
        deviceMaintenancePlanDetailsService.remove(Wrappers.<DeviceMaintenancePlanDetails>lambdaQuery().eq(DeviceMaintenancePlanDetails::getMaintenancePlanId, deviceMaintenancePlanDto.getMaintenancePlanId()));
        return Result.success();
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param maintenancePlanId è®¾å¤‡ä¿å…»è®¡åˆ’id
     * @param response          å“åº”
     */
    @Override
    public Result exportDeviceMaintenancePlanDto(Integer maintenancePlanId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
        DeviceMaintenancePlanDto deviceMaintenancePlan = baseMapper.selectMaintenancePlanById(maintenancePlanId);
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
        List<DeviceMaintenancePlanDetailsDto> deviceMaintenancePlanDetailsDtoList = deviceMaintenancePlanDetailsMapper.deviceInspectionRecordDetailsList(maintenancePlanId);
        // è®¾ç½®åºå·
        deviceMaintenancePlanDetailsDtoList.forEach(deviceInspectionRecordDetails -> {
            deviceInspectionRecordDetails.setIndex(deviceMaintenancePlanDetailsDtoList.indexOf(deviceInspectionRecordDetails) + 1);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/maintenance-plan.docx");
        Configure configure = Configure.builder()
                .bind("deviceMaintenancePlanDetailsDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceMaintenancePlan", deviceMaintenancePlan);
                    put("deviceMaintenancePlanDetailsDtoList", deviceMaintenancePlanDetailsDtoList);
                    // ç¼–制人签名地址
                    put("compilerUrl", UserUtils.getFinalUserSignatureUrl(deviceMaintenancePlan.getCompilerId()));
                    // å®¡æ ¸äººç­¾ååœ°å€
                    put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceMaintenancePlan.getAuditId()));
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备保养计划表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        return Result.success();
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
     *
     * @param maintenancePlanId è®¾å¤‡ä¿å…»è®¡åˆ’id
     */
    @Override
    public Result<DeviceMaintenancePlanDto> getMaintenancePlanDetail(Integer maintenancePlanId) {
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
        DeviceMaintenancePlan deviceMaintenancePlan = baseMapper.selectById(maintenancePlanId);
        // æŸ¥è¯¢è¯¦æƒ…
        DeviceMaintenancePlanDto deviceMaintenancePlanDto = new DeviceMaintenancePlanDto();
        BeanUtils.copyProperties(deviceMaintenancePlan, deviceMaintenancePlanDto);
        deviceMaintenancePlanDto.setDeviceMaintenancePlanDetails(deviceMaintenancePlanDetailsMapper.deviceInspectionRecordDetailsList(maintenancePlanId));
        return Result.success(deviceMaintenancePlanDto);
    }
    /**
     * å®¡æ ¸è®¾å¤‡ä¿å…»è®¡åˆ’
     *
     * @param deviceMaintenancePlanDto è®¾å¤‡ä¿å…»è®¡åˆ’
     */
    @Override
    public Result reviewMaintenancePlanStatus(DeviceMaintenancePlanDto deviceMaintenancePlanDto) {
        LambdaUpdateWrapper<DeviceMaintenancePlan> wrapper = Wrappers.<DeviceMaintenancePlan>lambdaUpdate()
                .eq(DeviceMaintenancePlan::getMaintenancePlanId, deviceMaintenancePlanDto.getMaintenancePlanId())
                .set(DeviceMaintenancePlan::getStatus, deviceMaintenancePlanDto.getStatus())        // å®¡æ ¸çŠ¶æ€
                .set(DeviceMaintenancePlan::getAuditRemark, deviceMaintenancePlanDto.getAuditRemark());// å®¡æ ¸å¤‡æ³¨
        // ä¸º0清除审核人
        if (deviceMaintenancePlanDto.getStatus().equals(0)) {
            wrapper.set(DeviceMaintenancePlan::getAuditId, null)
                    .set(DeviceMaintenancePlan::getAudit, null);
        }
        this.update(wrapper); // æ›´æ–°
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceMetricRecordMapper;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
import com.yuanchu.mom.service.DeviceMetricRecordService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:01
 */
@Service
public class DeviceMetricRecordServiceImpl extends ServiceImpl<DeviceMetricRecordMapper, DeviceMetricRecord> implements DeviceMetricRecordService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceMetricMapper;
import com.yuanchu.mom.pojo.DeviceMetric;
import com.yuanchu.mom.service.IDeviceMetricService;
import org.springframework.stereotype.Service;
@Service
public class DeviceMetricServiceImpl extends ServiceImpl<DeviceMetricMapper, DeviceMetric> implements IDeviceMetricService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceMetricsCopyServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceMetricsCopyMapper;
import com.yuanchu.mom.pojo.DeviceMetricsCopy;
import com.yuanchu.mom.service.DeviceMetricsCopyService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-27 10:20:11
 */
@Service
public class DeviceMetricsCopyServiceImpl extends ServiceImpl<DeviceMetricsCopyMapper, DeviceMetricsCopy> implements DeviceMetricsCopyService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,142 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceRecordDto;
import com.yuanchu.mom.dto.DeviceRecordExportWord;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.DeviceRecordMapper;
import com.yuanchu.mom.mapper.LaboratoryMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceRecord;
import com.yuanchu.mom.service.DeviceRecordService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * cnas设备使用记录表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-21 11:06:47
 */
@Service
public class DeviceRecordServiceImpl extends ServiceImpl<DeviceRecordMapper, DeviceRecord> implements DeviceRecordService {
    @Resource
    private LaboratoryMapper laboratoryMapper;
    @Resource
    private DeviceMapper deviceMapper;
    @Resource
    private GetLook getLook;
    @Override
    public IPage<DeviceRecordDto> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("deviceRecordPage");
        Integer userId = null;
        if (map1.get("look") == 1) {
            //个人
            userId = map1.get("userId");
        }
        return baseMapper.deviceRecordPage(deviceId, page, sampleCode, managementNumber, userId);
    }
    @Override
    public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response) {
        // æŸ¥è¯¢cnas设备使用记录
        List<DeviceRecord> deviceList = baseMapper.selectExportList(deviceId, exportDate);
        // è®¾å¤‡ä¿¡æ¯
        Device device = deviceMapper.selectById(deviceId);
        // æŸ¥è¯¢è®¾å¤‡å±žäºŽå“ªä¸ªå®žéªŒå®¤
        String laboratoryName = "装备线缆实验室";
        // è¦æ˜ å°„到word数据
        List<DeviceRecordExportWord> deviceExportList = new ArrayList<>();
        // deviceExportList èµ‹å€¼
        for (DeviceRecord deviceRecord : deviceList) {
            // å¤„理设备 å¼€å§‹ä½¿ç”¨æ—¶é—´ å’Œ ç»“束时间
            String startTime = "";
            String endTime = "";
            String operationDate = "";
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
            if (deviceRecord.getUseStartDate() != null) {
                startTime = deviceRecord.getUseStartDate().format(formatter);
                endTime = deviceRecord.getUseEndDate().format(formatter);
                String[] startTimeSplit = startTime.split(" ");
                String[] endTimeSplit = endTime.split(" ");
                startTime = startTimeSplit[1];
                if (startTimeSplit[0].equals(endTimeSplit[0])) {
                    endTime = endTimeSplit[1];
                } else {
                    endTime = endTimeSplit[0] + '\n' + endTimeSplit[1];
                }
                DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy.M.d");
                operationDate = deviceRecord.getUseStartDate().format(formatter2);
            }
            // å¤„理使用前和使用后
            String useBeforeString = deviceRecord.getUseBefore() == 0? "异常" : "良好";
            String useAfterString = deviceRecord.getUseAfter() == 0 ? "异常" : "良好";
            DeviceRecordExportWord deviceRecordExportWord = new DeviceRecordExportWord();
            // è¿›è¡Œèµ‹å€¼
            BeanUtils.copyProperties(deviceRecord, deviceRecordExportWord);
            deviceRecordExportWord.setUseBeforeString(useBeforeString); // ä½¿ç”¨å‰
            deviceRecordExportWord.setUseAfterString(useAfterString); // ä½¿ç”¨åŽ
            deviceRecordExportWord.setOperationDate(operationDate); // è®¾å¤‡æ“ä½œæ—¥æœŸ
            deviceRecordExportWord.setUseStartDateString(startTime); // å¼€å§‹æ—¶é—´
            deviceRecordExportWord.setUseEndDateString(endTime); // ç»“束时间
            deviceExportList.add(deviceRecordExportWord);
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/use-record.docx");
        Configure configure = Configure.builder()
                .bind("useRecord", new HackLoopTableRenderPolicy())
                .build();
        String deviceName = device.getDeviceName();
        String managementNumber = device.getManagementNumber();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("useRecord", deviceExportList);
                    put("deviceName", deviceName);
                    put("managementNumber", managementNumber);
                    put("laboratory", laboratoryName);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "仪器使用记录表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceScrappedServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,181 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceScrappedDto;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.DeviceScrappedMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.Device;
import com.yuanchu.mom.pojo.DeviceScrapped;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceScrappedService;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.Result;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.HashMap;
/**
 * <p>
 * è®¾å¤‡æŠ¥åºŸç”³è¯·è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-17 01:53:47
 */
@Service
public class DeviceScrappedServiceImpl extends ServiceImpl<DeviceScrappedMapper, DeviceScrapped> implements DeviceScrappedService {
    @Resource
    private DeviceMapper deivceMapper;
    @Resource
    private UserMapper userMapper;
    @Resource
    private GetLook getLook;
    /**
     * è®¾å¤‡æŠ¥åºŸç”³è¯·åˆ—表
     *
     * @param deviceScrapped
     * @return
     */
    @Override
    public IPage<DeviceScrapped> pageDeviceScrapped(Page page, DeviceScrapped deviceScrapped) {
        return baseMapper.pageDeviceScrapped(page, QueryWrappers.queryWrappers(deviceScrapped));
    }
    /**
     * æ–°å¢žè®¾å¤‡æŠ¥åºŸç”³è¯·
     *
     * @return
     */
    @Override
    public boolean addDeviceScrapped(DeviceScrapped deviceScrapped) {
        DeviceScrapped scrapped = new DeviceScrapped();
        // å½“前登录用户信息和部门
        User user = userMapper.selectById(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        switch (deviceScrapped.getFlowType()) {
            case 0:
                BeanUtils.copyProperties(deviceScrapped, scrapped);
                // ç”³è¯·
                scrapped.setReasonsForScrap(deviceScrapped.getReasonsForScrap());
                scrapped.setApplicantUserId(user.getId());
                scrapped.setApplicantUser(user.getName());
                scrapped.setApplicantDate(LocalDate.now());
                // å¤„理人信息
                User departmentHeadUser = userMapper.selectById(deviceScrapped.getDepartmentHeadUserId());
                scrapped.setApplicantUserId(departmentHeadUser.getId());
                scrapped.setApplicantUser(departmentHeadUser.getName());
                baseMapper.insert(scrapped);
                break;
            case 1:
                scrapped.setScrappedId(deviceScrapped.getScrappedId());
                // ç”³è¯·éƒ¨é—¨è´Ÿè´£äººæ„è§
                scrapped.setDepartmentHeadOpinion(deviceScrapped.getDepartmentHeadOpinion());
                scrapped.setDepartmentHeadDate(LocalDate.now());
                // è®¡é‡å®¤ä¿¡æ¯
                User meteringRoomUser = userMapper.selectById(deviceScrapped.getMeteringRoomUserId());
                scrapped.setMeteringRoomUserId(meteringRoomUser.getId());
                scrapped.setMeteringRoomUser(meteringRoomUser.getName());
                baseMapper.updateById(scrapped);
                break;
            case 2:
                scrapped.setScrappedId(deviceScrapped.getScrappedId());
                // è®¡é‡å®¤æ„è§
                scrapped.setMeteringRoomOpinion(deviceScrapped.getMeteringRoomOpinion());
                scrapped.setMeteringRoomDate(LocalDate.now());
                // æ‰¹å‡†äººä¿¡æ¯
                User approverUser = userMapper.selectById(deviceScrapped.getApproverUserId());
                scrapped.setApproverUserId(approverUser.getId());
                scrapped.setApproverUser(approverUser.getName());
                baseMapper.updateById(scrapped);
                break;
            case 3:
                scrapped.setScrappedId(deviceScrapped.getScrappedId());
                //批准人
                scrapped.setApproverOpinion(deviceScrapped.getApproverOpinion());
                scrapped.setApproverDate(LocalDate.now());
                scrapped.setIsFinish(1);
                baseMapper.updateById(scrapped);
                break;
        }
        return true;
    }
    /**
     * å¯¼å‡ºè®¾å¤‡æŠ¥åºŸç”³è¯·
     *
     * @param scrappedId è®¾å¤‡æŠ¥åºŸç”³è¯·id
     * @param response   å“åº”
     * @return ç»“æžœ
     */
    @Override
    public Result<?> exportDeviceScrapped(Integer scrappedId, HttpServletResponse response) {
        // æŸ¥è¯¢æŠ¥åºŸæ•°æ®
        DeviceScrappedDto deviceScrapped = baseMapper.selectDeviceScrappedById(scrappedId);
        if (deviceScrapped == null) {
            return Result.fail("设备报废申请不存在");
        }
        Device device = null;
        if (deviceScrapped.getDeviceId() != null) {
            device = deivceMapper.selectById(deviceScrapped.getDeviceId());
            device = device == null ? new Device() : device;
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-scrapped.docx");
        Configure configure = Configure.builder()
                .build();
        Device finalDevice = device;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceScrapped", deviceScrapped);
                    put("device", finalDevice);
                    // ç”³è¯·äººç­¾å
                    put("applicantUrl", UserUtils.getFinalUserSignatureUrl(deviceScrapped.getApplicantUserId()));
                    // éƒ¨é—¨è´Ÿè´£äººç­¾å
                    put("headUrl", UserUtils.getFinalUserSignatureUrl(deviceScrapped.getDepartmentHeadUserId()));
                    // è®¡é‡å®¤ç­¾å
                    put("metrologyRoomUrl", UserUtils.getFinalUserSignatureUrl(deviceScrapped.getMeteringRoomUserId()));
                    // æ‰¹å‡†äººç­¾å
                    put("approverUrl", UserUtils.getFinalUserSignatureUrl(deviceScrapped.getApproverUserId()));
                }});
        try {
            response.setContentType("application/msword");
            String deviceName = device.getDeviceName() == null ? "" : device.getDeviceName();
            String fileName = URLEncoder.encode(
                    deviceName + "设备报废申请", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java
@@ -62,12 +62,12 @@
    }
    @Override
    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) {
    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter,Boolean laboratoryNameIsNull) {
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(DeviceDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter");
        if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId"));
        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter));
        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter),laboratoryNameIsNull);
        map.put("body", iPage);
        return map;
    }
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceStateServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.Pictures;
import com.yuanchu.mom.dto.DeviceStateDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.DeviceStateMapper;
import com.yuanchu.mom.mapper.LaboratoryMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceState;
import com.yuanchu.mom.pojo.Laboratory;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceStateService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
/**
 * <p>
 * è®¾å¤‡åœç”¨/启用 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-09-26 09:51:40
 */
@Service
public class DeviceStateServiceImpl extends ServiceImpl<DeviceStateMapper, DeviceState> implements DeviceStateService {
    @Resource
    private LaboratoryMapper laboratoryMapper;
    @Resource
    private UserMapper userMapper;
    @Value("${file.path}")
    private String imgUrl;
    @Override
    public IPage<DeviceStateDto> getDeviceStatePage(Integer deviceId, Page page, String processNumber) {
        return baseMapper.getDeviceStatePage(deviceId, page, processNumber);
    }
    @Override
    public void exportDeviceStatus(Integer deviceId, String processNumber, HttpServletResponse response) {
        // æ ¹æ®æµç¨‹ç¼–号 æŸ¥è¯¢cnas设备状态
        DeviceStateDto deviceStateDto = baseMapper.getDeviceStatePage(deviceId,new Page<DeviceStateDto>(1,1), processNumber).getRecords().get(0);
        // å¯¹æ—¶é—´è¿›è¡Œä¿®æ”¹
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyå¹´MM月dd日");
        deviceStateDto.setSubmitDateString(deviceStateDto.getSubmitDate() != null ? deviceStateDto.getSubmitDate().format(format) : "  å¹´ æœˆ æ—¥");
        deviceStateDto.setDepartmentDateString(deviceStateDto.getDepartmentDate() != null? deviceStateDto.getDepartmentDate().format(format) : "  å¹´ æœˆ æ—¥");
        deviceStateDto.setMeasuringRoomDateString(deviceStateDto.getMeasuringRoomDate() != null? deviceStateDto.getMeasuringRoomDate().format(format) : "  å¹´ æœˆ æ—¥");
        deviceStateDto.setApprovalDateString(deviceStateDto.getApprovalDate() != null? deviceStateDto.getApprovalDate().format(format) : "  å¹´ æœˆ æ—¥");
        // æŸ¥è¯¢è®¾å¤‡å±žäºŽå“ªä¸ªå®žéªŒå®¤
        String laboratoryName;
        String largeCategory = deviceStateDto.getLargeCategory();
        if (StringUtils.isNotBlank(largeCategory)) {
            largeCategory = largeCategory.substring(0, 1);
            Laboratory laboratory = laboratoryMapper.selectOne(Wrappers.<Laboratory>lambdaQuery()
                    .eq(Laboratory::getLaboratoryNumber, largeCategory)
                    .select(Laboratory::getLaboratoryName));
            laboratoryName = laboratory.getLaboratoryName();
        } else {
            laboratoryName = "";
        }
        //todo: è®¾å¤‡çŠ¶æ€æŸ¥è¯¢ç­¾ååœ°å€ æš‚时人名查询
        //获取申请人的签名地址
        String applicantUrl = null;
        if (deviceStateDto.getSubmitOperatingPersonnel() != null) {
            applicantUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getName, deviceStateDto.getSubmitOperatingPersonnel()))
                    .getSignatureUrl();
            if (StringUtils.isBlank(applicantUrl)) {
                throw new ErrorException("找不到申请人的签名");
            }
        }
        //获取部门负责人的签名地址
        String headOfDepartmentUrl = null;
        if (deviceStateDto.getDepartmentNextPesponsible() != null) {
            headOfDepartmentUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                    .eq(User::getName, deviceStateDto.getDepartmentNextPesponsible()))
                    .getSignatureUrl();
            if (StringUtils.isBlank(headOfDepartmentUrl)) {
                throw new ErrorException("找不到部门负责人的签名");
            }
        }
        //获取计量室复测人的签名地址
        String measurementRoomUrl = null;
        if (deviceStateDto.getMeasuringRoomNextPesponsible() != null) {
            measurementRoomUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getName, deviceStateDto.getMeasuringRoomNextPesponsible()))
                    .getSignatureUrl();
            if (StringUtils.isBlank(measurementRoomUrl)) {
                throw new ErrorException("找不到计量室复测人的签名");
            }
        }
        //获取批准人的签名地址
        String approvedUrl = null;
        if (deviceStateDto.getApprovalNextPesponsible() != null) {
            approvedUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getName, deviceStateDto.getApprovalNextPesponsible()))
                    .getSignatureUrl();
            if (StringUtils.isBlank(approvedUrl)) {
                throw new ErrorException("找不到批准人的签名");
            }
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-status.docx");
        Configure configure = Configure.builder()
                .build();
        String finalApplicantUrl = applicantUrl; // ç”³è¯·äººçš„签名地址
        String finalHeadOfDepartmentUrl = headOfDepartmentUrl; // éƒ¨é—¨è´Ÿè´£äººçš„签名地址
        String finalMeasurementRoomUrl = measurementRoomUrl; // è®¡é‡å®¤å¤æµ‹äººçš„签名地址
        String finalApprovedUrl = approvedUrl; // æ‰¹å‡†äººçš„签名地址
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceStateDto", deviceStateDto);
                    put("submitOperatingPersonnelUrl", StringUtils.isNotBlank(finalApplicantUrl) ? Pictures.ofLocal(imgUrl + "/" + finalApplicantUrl).create() : null);
                    put("departmentNextPesponsibleUrl", StringUtils.isNotBlank(finalHeadOfDepartmentUrl) ? Pictures.ofLocal(imgUrl + "/" + finalHeadOfDepartmentUrl).create() : null);
                    put("measuringRoomNextPesponsibleUrl", StringUtils.isNotBlank(finalMeasurementRoomUrl) ? Pictures.ofLocal(imgUrl + "/" + finalMeasurementRoomUrl).create() : null);
                    put("approvalNextPesponsibleUrl", StringUtils.isNotBlank(finalApprovedUrl) ? Pictures.ofLocal(imgUrl + "/" + finalApprovedUrl).create() : null);
                    put("laboratory", laboratoryName);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备维护保养记录", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceTraceabilityManagementDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DeviceTraceabilityManagementDetailsMapper;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails;
import com.yuanchu.mom.service.DeviceTraceabilityManagementDetailsService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:58
 */
@Service
public class DeviceTraceabilityManagementDetailsServiceImpl extends ServiceImpl<DeviceTraceabilityManagementDetailsMapper, DeviceTraceabilityManagementDetails> implements DeviceTraceabilityManagementDetailsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceTraceabilityManagementServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,244 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDetailsDto;
import com.yuanchu.mom.dto.DeviceTraceabilityManagementDto;
import com.yuanchu.mom.mapper.DeviceTraceabilityManagementDetailsMapper;
import com.yuanchu.mom.mapper.DeviceTraceabilityManagementMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagement;
import com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.DeviceTraceabilityManagementDetailsService;
import com.yuanchu.mom.service.DeviceTraceabilityManagementService;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.UserUtils;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.vo.Result;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-12-20 02:27:44
 */
@Service
public class DeviceTraceabilityManagementServiceImpl extends ServiceImpl<DeviceTraceabilityManagementMapper, DeviceTraceabilityManagement> implements DeviceTraceabilityManagementService {
    @Resource
    private DeviceTraceabilityManagementDetailsService deviceTraceabilityManagementDetailsService;
    @Resource
    private DeviceTraceabilityManagementDetailsMapper deviceTraceabilityManagementDetailsMapper;
    @Resource
    private GetLook getLook;
    @Resource
    private UserMapper userMapper;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param page
     * @return
     */
    @Override
    public Result<IPage<DeviceTraceabilityManagement>> selectDeviceTraceabilityManagementByPage(IPage page, DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        IPage<DeviceTraceabilityManagement> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceTraceabilityManagementDto));
        return Result.success(iPage);
    }
    /**
     * æ–°å¢žè®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param deviceTraceabilityManagementDto è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     */
    @Override
    public Result addTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        deviceTraceabilityManagementDto.setCompilerId(userId);
        deviceTraceabilityManagementDto.setCompiler(user.getName());
        deviceTraceabilityManagementDto.setDatePreparation(LocalDateTime.now());
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceTraceabilityManagementDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceTraceabilityManagementDto.getAuditId());
            deviceTraceabilityManagementDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceTraceabilityManagementDto);
        // è¯¦æƒ…赋值并保存
        List<DeviceTraceabilityManagementDetailsDto> deviceTraceabilityManagementDetails = deviceTraceabilityManagementDto.getDeviceTraceabilityManagementDetails();
        if (CollectionUtils.isNotEmpty(deviceTraceabilityManagementDetails)) { // è¯¦æƒ…不为空
            List<DeviceTraceabilityManagementDetails> collect = deviceTraceabilityManagementDetails.stream().map(detailsDto -> {
                detailsDto.setTraceabilityManagementId(deviceTraceabilityManagementDto.getTraceabilityManagementId()); // é‡å€¼æº¯æºè®¡åˆ’ID
                DeviceTraceabilityManagementDetails details = new DeviceTraceabilityManagementDetails();
                BeanUtils.copyProperties(detailsDto, details);
                return details;
            }).collect(Collectors.toList());
            deviceTraceabilityManagementDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * ä¿®æ”¹è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param deviceTraceabilityManagementDto è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     */
    @Override
    public Result updateTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceTraceabilityManagementDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceTraceabilityManagementDto.getAuditId());
            deviceTraceabilityManagementDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceTraceabilityManagementDto);
        // åˆ é™¤åŽŸæœ¬çš„è¯¦æƒ…
        deviceTraceabilityManagementDetailsService.remove(Wrappers.<DeviceTraceabilityManagementDetails>lambdaQuery().eq(DeviceTraceabilityManagementDetails::getTraceabilityManagementId, deviceTraceabilityManagementDto.getTraceabilityManagementId()));
        // è¯¦æƒ…赋值并保存
        List<DeviceTraceabilityManagementDetailsDto> deviceTraceabilityManagementDetails = deviceTraceabilityManagementDto.getDeviceTraceabilityManagementDetails();
        if (CollectionUtils.isNotEmpty(deviceTraceabilityManagementDetails)) { // è¯¦æƒ…不为空
            List<DeviceTraceabilityManagementDetails> collect = deviceTraceabilityManagementDetails.stream().map(detailsDto -> {
                detailsDto.setTraceabilityManagementId(deviceTraceabilityManagementDto.getTraceabilityManagementId()); // é‡å€¼æº¯æºè®¡åˆ’ID
                DeviceTraceabilityManagementDetails details = new DeviceTraceabilityManagementDetails();
                BeanUtils.copyProperties(detailsDto, details);
                return details;
            }).collect(Collectors.toList());
            deviceTraceabilityManagementDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * åˆ é™¤è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param deviceTraceabilityManagementDto è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     */
    @Override
    public Result deleteTraceabilityManagement(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        this.removeById(deviceTraceabilityManagementDto);
        deviceTraceabilityManagementDetailsService.remove(Wrappers.<DeviceTraceabilityManagementDetails>lambdaQuery().eq(DeviceTraceabilityManagementDetails::getTraceabilityManagementId, deviceTraceabilityManagementDto.getTraceabilityManagementId()));
        return Result.success();
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情
     *
     * @param traceabilityManagementId è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’id
     */
    @Override
    public Result<DeviceTraceabilityManagementDto> getTraceabilityManagementDetail(Integer traceabilityManagementId) {
        // æŸ¥è¯¢è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
        DeviceTraceabilityManagement deviceTraceabilityManagement = baseMapper.selectById(traceabilityManagementId);
        // æŸ¥è¯¢è¯¦æƒ…
        DeviceTraceabilityManagementDto deviceTraceabilityManagementDto = new DeviceTraceabilityManagementDto();
        BeanUtils.copyProperties(deviceTraceabilityManagement, deviceTraceabilityManagementDto);
        deviceTraceabilityManagementDto.setDeviceTraceabilityManagementDetails(deviceTraceabilityManagementDetailsMapper.deviceTraceabilityManagementDetailsList(traceabilityManagementId));
        return Result.success(deviceTraceabilityManagementDto);
    }
    /**
     * å®¡æ ¸è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param deviceTraceabilityManagementDto è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     */
    @Override
    public Result reviewTraceabilityManagementStatus(DeviceTraceabilityManagementDto deviceTraceabilityManagementDto) {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        User user = userMapper.selectById(userId);
        LambdaUpdateWrapper<DeviceTraceabilityManagement> wrapper = Wrappers.<DeviceTraceabilityManagement>lambdaUpdate()
                .eq(DeviceTraceabilityManagement::getTraceabilityManagementId, deviceTraceabilityManagementDto.getTraceabilityManagementId())
                .set(DeviceTraceabilityManagement::getAuditDate, LocalDateTime.now())
                .set(DeviceTraceabilityManagement::getAuditId, user.getId())
                .set(DeviceTraceabilityManagement::getAudit, user.getName())
                .set(DeviceTraceabilityManagement::getStatus, deviceTraceabilityManagementDto.getStatus())        // å®¡æ ¸çŠ¶æ€
                .set(DeviceTraceabilityManagement::getAuditRemark, deviceTraceabilityManagementDto.getAuditRemark());// å®¡æ ¸å¤‡æ³¨
        // ä¸º0清除审核人
        if (deviceTraceabilityManagementDto.getStatus().equals(0)) {
            wrapper.set(DeviceTraceabilityManagement::getAuditId, null)
                    .set(DeviceTraceabilityManagement::getAudit, null);
        }
        this.update(wrapper); // æ›´æ–°
        return Result.success();
    }
    /**
     * å¯¼å‡ºè®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’
     *
     * @param traceabilityManagementId è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’id
     */
    @Override
    public Result exportDeviceTraceabilityManagementDto(Integer traceabilityManagementId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’
        DeviceTraceabilityManagementDto deviceTraceabilityManagement = baseMapper.selectDeviceTraceabilityManagementById(traceabilityManagementId);
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
        List<DeviceTraceabilityManagementDetailsDto> deviceTraceabilityManagementDetailsDtoList = deviceTraceabilityManagementDetailsMapper.deviceTraceabilityManagementDetailsList(traceabilityManagementId);
        // è®¾ç½®åºå·
        deviceTraceabilityManagementDetailsDtoList.forEach(deviceTraceabilityManagementDetails -> {
            deviceTraceabilityManagementDetails.setIndex(deviceTraceabilityManagementDetailsDtoList.indexOf(deviceTraceabilityManagementDetails) + 1);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/traceability-management-details.docx");
        Configure configure = Configure.builder()
                .bind("deviceTraceabilityManagementDetailsDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceTraceabilityManagement", deviceTraceabilityManagement);
                    put("deviceTraceabilityManagementDetailsDtoList", deviceTraceabilityManagementDetailsDtoList);
                    // ç¼–制人签名地址
                    put("compilerUrl", UserUtils.getFinalUserSignatureUrl(deviceTraceabilityManagement.getCompilerId()));
                    // å®¡æ ¸äººç­¾ååœ°å€
                    put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceTraceabilityManagement.getAuditId()));
                }});
        try {
            response.setContentType("application/msword");
            String finalFileName = deviceTraceabilityManagement.getFileName() == null ? "" : deviceTraceabilityManagement.getFileName() + "_";
            String fileName = URLEncoder.encode(
                    finalFileName+ "设备量值溯源计划", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        return Result.success();
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/DocumentServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.DocumentDao;
import com.yuanchu.mom.pojo.Document;
import com.yuanchu.mom.service.DocumentService;
import org.springframework.stereotype.Service;
@Service
public class DocumentServiceImpl extends ServiceImpl<DocumentDao, Document> implements DocumentService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentAcceptanceCheckServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.IncidentAcceptanceCheckMapper;
import com.yuanchu.mom.pojo.IncidentAcceptanceCheck;
import com.yuanchu.mom.service.IncidentAcceptanceCheckService;
import org.springframework.stereotype.Service;
@Service
public class IncidentAcceptanceCheckServiceImpl extends ServiceImpl<IncidentAcceptanceCheckMapper, IncidentAcceptanceCheck> implements IncidentAcceptanceCheckService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentFileServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.IncidentFileMapper;
import com.yuanchu.mom.pojo.IncidentFile;
import com.yuanchu.mom.service.IncidentFileService;
import org.springframework.stereotype.Service;
@Service
public class IncidentFileServiceImpl extends ServiceImpl<IncidentFileMapper, IncidentFile> implements IncidentFileService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentInstallServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.IncidentInstallMapper;
import com.yuanchu.mom.pojo.IncidentInstall;
import com.yuanchu.mom.service.IncidentInstallService;
import org.springframework.stereotype.Service;
@Service
public class IncidentInstallServiceImpl extends ServiceImpl<IncidentInstallMapper, IncidentInstall> implements IncidentInstallService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentReportServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,187 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.Pictures;
import com.yuanchu.mom.dto.IncidentReportAddDto;
import com.yuanchu.mom.dto.IncidentReportExportWordDto;
import com.yuanchu.mom.excel.IncidentReportExport;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.IncidentReportMapper;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
/**
 * <p>
 * è®¾å¤‡éªŒæ”¶æ·»åŠ éªŒæ”¶å­—æ®µè¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-19 03:54:49
 */
@Service
//@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class IncidentReportServiceImpl extends ServiceImpl<IncidentReportMapper, IncidentReport> implements IncidentReportService {
    private UserMapper userMapper;
    private IncidentSparePartsService incidentSparePartsService;
    private IncidentFileService incidentFileService;
    private IncidentInstallService incidentInstallService;
    private IncidentAcceptanceCheckService incidentAcceptanceCheckService;
    private final NumberGenerator<IncidentReport> numberGenerator;
    @Value("${file.path}")
    private String imgUrl;
    public IncidentReportServiceImpl(UserMapper userMapper, IncidentSparePartsService incidentSparePartsService, IncidentFileService incidentFileService, IncidentInstallService incidentInstallService, IncidentAcceptanceCheckService incidentAcceptanceCheckService, NumberGenerator<IncidentReport> numberGenerator) {
        this.userMapper = userMapper;
        this.incidentSparePartsService = incidentSparePartsService;
        this.incidentFileService = incidentFileService;
        this.incidentInstallService = incidentInstallService;
        this.incidentAcceptanceCheckService = incidentAcceptanceCheckService;
        this.numberGenerator = numberGenerator;
    }
    @Override
    public void saveIncidentReportData(IncidentReportAddDto incidentReportAddDto) {
        if (ObjectUtils.isEmpty(incidentReportAddDto.getProcessNumber())) {
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-07FM " + month + "-" + year + month, IncidentReport::getProcessNumber);
            incidentReportAddDto.setProcessNumber(processNumber);
        }
        this.saveOrUpdate(incidentReportAddDto);
        // å¤‡ä»¶ç¡®è®¤List
        if (ObjectUtils.isNotEmpty(incidentReportAddDto.getSparePartsConfirmationList())) {
            incidentReportAddDto.getSparePartsConfirmationList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId()));
            incidentSparePartsService.saveOrUpdateBatch(incidentReportAddDto.getSparePartsConfirmationList());
        }
        // æ–‡ä»¶ç¡®è®¤List
        if (ObjectUtils.isNotEmpty(incidentReportAddDto.getFileClassConfirmationList())) {
            incidentReportAddDto.getFileClassConfirmationList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId()));
            incidentFileService.saveOrUpdateBatch(incidentReportAddDto.getFileClassConfirmationList());
        }
        // å®‰è£…验收记录
        if (ObjectUtils.isNotEmpty(incidentReportAddDto.getInstallationAcceptanceRecordList())) {
            incidentReportAddDto.getInstallationAcceptanceRecordList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId()));
            incidentInstallService.saveOrUpdateBatch(incidentReportAddDto.getInstallationAcceptanceRecordList());
        }
        // éªŒæ”¶æ ¸æŸ¥è®°å½•
        if (ObjectUtils.isNotEmpty(incidentReportAddDto.getAcceptanceCheckRecordList())) {
            incidentReportAddDto.getAcceptanceCheckRecordList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId()));
            incidentAcceptanceCheckService.saveOrUpdateBatch(incidentReportAddDto.getAcceptanceCheckRecordList());
        }
    }
    @Override
    public IPage<IncidentReportAddDto> getByDeviceId(Integer deviceId, Page page, String processNumber) {
        return baseMapper.getByDeviceId(page, deviceId, processNumber);
    }
    @Override
    public void deleteIncidentReport(Integer id) {
        baseMapper.deleteById(id);
        incidentSparePartsService.remove(Wrappers.<IncidentSpareParts>lambdaQuery().eq(IncidentSpareParts::getIncidentId, id));
        incidentFileService.remove(Wrappers.<IncidentFile>lambdaQuery().eq(IncidentFile::getIncidentId, id));
        incidentInstallService.remove(Wrappers.<IncidentInstall>lambdaQuery().eq(IncidentInstall::getIncidentId, id));
        incidentAcceptanceCheckService.remove(Wrappers.<IncidentAcceptanceCheck>lambdaQuery().eq(IncidentAcceptanceCheck::getIncidentId, id));
    }
    @Override
    public IncidentReportAddDto getShowIncidentReport(Integer id) {
        return baseMapper.getShowIncidentReport(id);
    }
    @Override
    public void deleteIncidentReportAll(Integer sparePartsId, Integer fileId, Integer installId, Integer acceptanceCheckId) {
        if (ObjectUtils.isNotEmpty(sparePartsId)) {
            incidentSparePartsService.removeById(sparePartsId);
        }
        if (ObjectUtils.isNotEmpty(fileId)) {
            incidentFileService.removeById(fileId);
        }
        if (ObjectUtils.isNotEmpty(installId)) {
            incidentInstallService.removeById(installId);
        }
        if (ObjectUtils.isNotEmpty(acceptanceCheckId)) {
            incidentAcceptanceCheckService.removeById(acceptanceCheckId);
        }
    }
    @Override
    public List<IncidentReportExport> incidentReportExport(Integer deviceId) {
        return baseMapper.incidentReportExport(deviceId);
    }
    /**
     * å¯¼å‡ºéªŒæ”¶æŠ¥å‘Š
     * @param deviceId  è®¾å¤‡id
     * @param processNumber  æµç¨‹å·
     * @param response  å“åº”Word文档
     */
    @Override
    public void acceptanceCertificateExport(Integer deviceId, String processNumber, HttpServletResponse response) {
        IncidentReportExportWordDto incidentReport = baseMapper.acceptanceCertificateExport(deviceId, processNumber);
        String submitOperatingPersonnel = incidentReport.getSubmitOperatingPersonnel();
        String operatingPersonnelNameUrl = null;
        if (submitOperatingPersonnel != null) {
            operatingPersonnelNameUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getName, submitOperatingPersonnel))
                    .getSignatureUrl();
            if (StringUtils.isBlank(operatingPersonnelNameUrl)) {
                throw new ErrorException("找不到申请人的签名");
            }
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/incident-report.docx");
        Configure configure = Configure.builder()
                .build();
        String fileOperatingPersonnelNameUrl = operatingPersonnelNameUrl;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("incidentReport", incidentReport);
                    put("submitOperatingPersonnelUrl", StringUtils.isNotBlank(fileOperatingPersonnelNameUrl) ? Pictures.ofLocal( imgUrl + "/" + fileOperatingPersonnelNameUrl).create() : null);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备验收报告", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/IncidentSparePartsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.IncidentSparePartsMapper;
import com.yuanchu.mom.pojo.IncidentSpareParts;
import com.yuanchu.mom.service.IncidentSparePartsService;
import org.springframework.stereotype.Service;
@Service
public class IncidentSparePartsServiceImpl extends ServiceImpl<IncidentSparePartsMapper, IncidentSpareParts> implements IncidentSparePartsService {
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/InstructionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.InstructionDto;
import com.yuanchu.mom.dto.OperationInstructionDto;
import com.yuanchu.mom.mapper.InstructionMapper;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.Instruction;
import com.yuanchu.mom.service.InstructionService;
import com.yuanchu.mom.service.OperationInstructionService;
import com.yuanchu.mom.utils.QueryWrappers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
/**
 * <p>
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:29:18
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class InstructionServiceImpl extends ServiceImpl<InstructionMapper, Instruction> implements InstructionService {
    @Autowired
    private OperationInstructionService operationInstructionService;
    @Autowired
    private NumberGenerator<Instruction> numberGenerator;
    @Autowired
    private GetLook getLook;
    @Override
    public IPage<Instruction> pageByPageQueryOfHomeworkInstructions(Page page, OperationInstructionDto operationInstructionDto) {
        return baseMapper.pageByPageQueryOfHomeworkInstructions(page, QueryWrappers.queryWrappers(operationInstructionDto));
    }
    @Override
    public void newHomeworkGuidebookAdded(InstructionDto instructionDto) {
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
        if (ObjectUtils.isEmpty(instructionDto.getApplicationNumber())) {
            String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
            String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
            String day = new SimpleDateFormat("dd", Locale.CHINESE).format(new Date());
            String processNumber = numberGenerator.generateNumberWithPrefix(3, "WJSK" + year + month + day, Instruction::getApplicationNumber);
            instructionDto.setApplicationNumber(processNumber);
        }
        saveOrUpdate(instructionDto);
        if (ObjectUtils.isNotEmpty(instructionDto.getFeTempHumRecordList())) {
            instructionDto.getFeTempHumRecordList().forEach(i -> {
                i.setInstructionId(instructionDto.getId());
                i.setUploader(map1.get("userId"));
                i.setUpdateTime(LocalDateTime.now());
            });
            operationInstructionService.saveOrUpdateBatch(instructionDto.getFeTempHumRecordList());
        }
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/OperationInstructionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.mapper.OperationInstructionMapper;
import com.yuanchu.mom.pojo.OperationInstruction;
import com.yuanchu.mom.service.OperationInstructionService;
import com.yuanchu.mom.vo.OperationInstructionVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-04 10:43:32
 */
@Service
public class OperationInstructionServiceImpl extends ServiceImpl<OperationInstructionMapper, OperationInstruction> implements OperationInstructionService {
    @Override
    public List<OperationInstructionVo> homeworkGuidebookEditor(Integer instructionId) {
        return baseMapper.homeworkGuidebookEditor(instructionId);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/QrShowServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,218 @@
package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.DeviceMetricRecord;
import com.yuanchu.mom.service.CustomService;
import com.yuanchu.mom.service.InsOrderService;
import com.yuanchu.mom.service.ProductService;
import com.yuanchu.mom.service.QrShowService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Objects;
import java.util.Optional;
@Service
public class QrShowServiceImpl implements QrShowService {
    @Autowired
    private InsOrderService insOrderService;
    @Autowired
    private ProductService productService;
    @Autowired
    private CustomService customService;
    @Autowired
    private InsOrderMapper insOrderMapper;
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private DeviceMetricRecordMapper deviceMetricRecordMapper;
    @Autowired
    private DeviceMaintenanceMapper deviceMaintenanceMapper;
    @Autowired
    private StructureItemParameterMapper structureItemParameterMapper;
    @Value("${spring.profiles.active}")
    private String active;
    private String getIp(){
        if(StringUtils.isNotBlank(active)){
            return "prod".equals(active)?"https://zttx-lims.ztt.cn:8021/lims/":"http://114.132.189.42:8001/";
        }
        return "http://192.168.1.124:8001/lims/";
    }
    @Override
    public void transformModelByType(Model model, String code, String type) {
//        if(StringUtils.isNotBlank(type)){
//            switch (type){
//                case "word":
//                    InsOrder insOrder = insOrderService.getOne(Wrappers.<InsOrder>lambdaQuery()
//                            .eq(InsOrder::getEntrustCode, code));
//                    Product product = productService.getOne(Wrappers.<Product>lambdaQuery()
//                            .eq(Product::getName, insOrder.getSample()));
//                    String insOrderModel = productService.getWordQrModel(insOrder.getId());
//                    Custom company = customService.getOne(Wrappers.<Custom>lambdaQuery()
//                            .eq(Custom::getCompany, insOrder.getCompany()));
//                    String orderType = insOrderMapper.getEnumLabelByValue(insOrder.getOrderType());
//                    String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
//                    model.addAttribute("entrustCode", code);
//                    model.addAttribute("productName",product.getName());
//                    model.addAttribute("productNameEn",product.getNameEn());
//                    model.addAttribute("insOrderModel", insOrderModel);
//                    model.addAttribute("company", company.getCompany());
//                    model.addAttribute("companyEn", company.getCompanyEn());
//                    model.addAttribute("getTime", insOrder.getExamineTime().format(DateTimeFormatter.ofPattern("yyyyå¹´MM月dd日")));
//                    String getTimeEn = monthNames[insOrder.getExamineTime().getMonthValue() - 1] + " " + insOrder.getExamineTime().getDayOfMonth() + ", " + insOrder.getExamineTime().getYear();
//                    model.addAttribute("getTimeEn", getTimeEn);
//                    model.addAttribute("issuingDate", insOrder.getIssuingDate().format(DateTimeFormatter.ofPattern("yyyyå¹´MM月dd日")));
//                    String issuingDateEn = monthNames[insOrder.getIssuingDate().getMonthValue() - 1] + " " + insOrder.getIssuingDate().getDayOfMonth() + ", " + insOrder.getIssuingDate().getYear();
//                    model.addAttribute("issuingDateEn", issuingDateEn);
//                    model.addAttribute("orderType", orderType);
//                    model.addAttribute("orderTypeEn", insOrder.getOrderType());
//                    break;
//                case "device":
//                    //查询设备主表信息
//                    Device device = deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getManagementNumber, code));
//                    if(!Objects.isNull(device)){
//                        //查询设备校准信息
//                        DeviceMetricRecord calibrate = getDeviceMetricRecord(device.getId(), "calibrate");
//                        //查询设备核查信息
//                        DeviceMetricRecord examine = getDeviceMetricRecord(device.getId(), "examine");
//                        //查询设备维护记录
//                        DeviceMaintenance deviceMaintenance = Optional.ofNullable(deviceMaintenanceMapper.selectOne(Wrappers.<DeviceMaintenance>lambdaQuery()
//                                .eq(DeviceMaintenance::getDeviceId, device.getId())
//                                .orderByDesc(DeviceMaintenance::getId)
//                                .last("limit 1"))).orElse(new DeviceMaintenance());
//                        model.addAttribute("progress",calcDeviceNextCheckRatio(calibrate.getCalibrationDate(),calibrate.getNextCalibrationDate()));//距离下次校准日期的天数百分比
//                        model.addAttribute("deviceName",device.getDeviceName());//设备名称
//                        model.addAttribute("deviceCode",device.getManagementNumber());//设备编号
//                        model.addAttribute("usedYears",calcUsedYears(device.getActivationDate()));//启用时长(å¹´)
//                        model.addAttribute("runStatus",device.getDeviceStatus());//设备运行状态
//                        model.addAttribute("lastCalibrationDate",formatDate(calibrate.getCalibrationDate(),"yyyy-MM-dd"));//最近校准日期
//                        model.addAttribute("nextCalibrationDate",formatDate(calibrate.getNextCalibrationDate(),"yyyy-MM-dd"));//下次校准日期
//                        String calibrateStatus = "0yes".equals(calibrate.getStatus())?"合格":"1no".equals(calibrate.getStatus())?"不合格":"其他";
//                        model.addAttribute("calibrateStatus",Objects.isNull(calibrate.getCalibrationDate())?"":calibrateStatus);//校准总结论
//                        model.addAttribute("lastExamineDate",formatDate(examine.getCalibrationDate(),"yyyy-MM-dd"));//最近核查日期
//                        model.addAttribute("nextExamineDate",formatDate(examine.getNextCalibrationDate(),"yyyy-MM-dd"));//下次核查日期
//                        String examineStatus = "0yes".equals(examine.getStatus())?"合格":"1no".equals(examine.getStatus())?"不合格":"其他";
//                        model.addAttribute("examineStatus",Objects.isNull(examine.getCalibrationDate())?"":examineStatus);//核查总结论
//                        model.addAttribute("maintenanceDate",formatDate(deviceMaintenance.getDate(),"yyyy-MM-dd"));//最近维护日期
//                        model.addAttribute("nextMaintenanceDate",formatDate(deviceMaintenance.getNextDate(),"yyyy-MM-dd"));//下次维护日期
//                        String maintenanceType = "";
//                        if(!Objects.isNull(deviceMaintenance.getMaintenanceType())){
//                            maintenanceType = 0==deviceMaintenance.getMaintenanceType()?"使用前维护":"使用后维护";
//                        }
//                        model.addAttribute("maintenanceType",maintenanceType);//维护总结论
//                        //测量项目
//                        String insProduct = "";
//                        if(StringUtils.isNotBlank(device.getInsProductIds())){
//                            String[] ids = device.getInsProductIds().split(",");
//                            List<StructureItemParameter> parameters = structureItemParameterMapper.selectBatchIds(Arrays.asList(ids));
//                            List<String> itemList = parameters.stream().map(StructureItemParameter::getInspectionItem).distinct().collect(Collectors.toList());
//                            insProduct = String.join(",",itemList);
//                        }
//                        model.addAttribute("insProduct",insProduct);//测量项目
//                        model.addAttribute("fileName",calibrate.getSystemFileName());
//                        model.addAttribute("downloadUrl",getIp()+"img/"+calibrate.getSystemFileName());
//                    }
//                    break;
//            }
//        }
    }
    /**
     * è®¡ç®—启用时长
     * @param activationDate
     * @return
     */
    public double calcUsedYears(LocalDateTime activationDate) {
        if(Objects.isNull(activationDate)){
            return 0;
        }
        BigDecimal defDays = BigDecimal.valueOf(365);
        BigDecimal usedDays = BigDecimal.valueOf(Duration.between(activationDate,LocalDateTime.now()).toDays());
        return usedDays.divide(defDays,2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_UP).doubleValue();
    }
    /**
     * è®¡ç®—距离下次校准日期的天数百分比
     * @param startDate
     * @param endDate
     * @return
     */
    public double calcDeviceNextCheckRatio(Date startDate, Date endDate){
        if(Objects.isNull(startDate) || Objects.isNull(endDate)){
            return 0;
        }
        LocalDateTime startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        LocalDateTime endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        long totalDays = Duration.between(startLocalDate, endLocalDate).toDays();
        long usedDays = Duration.between(startLocalDate, LocalDateTime.now()).toDays();
        BigDecimal calcVal = BigDecimal.valueOf(usedDays).divide(BigDecimal.valueOf(totalDays),2,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
        if(calcVal.compareTo(BigDecimal.ZERO)<0){
            calcVal = BigDecimal.ZERO;
        }else if(calcVal.compareTo(BigDecimal.valueOf(100))>0){
            calcVal = BigDecimal.valueOf(100);
        }
        return calcVal.doubleValue();
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡æ ¡å‡†/核查记录
     * @param deviceId
     * @param type
     * @return
     */
    public DeviceMetricRecord getDeviceMetricRecord(int deviceId,String type){
        return Optional.ofNullable(
                deviceMetricRecordMapper.selectOne(Wrappers.<DeviceMetricRecord>lambdaQuery()
                .eq(DeviceMetricRecord::getDeviceId, deviceId)
                .eq(DeviceMetricRecord::getType, type)
                .orderByDesc(DeviceMetricRecord::getCreateTime)
                .last("limit 1"))).orElse(new DeviceMetricRecord());
    }
    /**
     * æ ¼å¼åŒ–日期
     * @return
     */
    public String formatDate(Date date,String formatter){
        if(Objects.isNull(date)){
            return "";
        }
        LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        return localDateTime.format(DateTimeFormatter.ofPattern(formatter));
    }
    /**
     * æ ¼å¼åŒ–日期
     * @return
     */
    public String formatDate(LocalDate date,String formatter){
        if(Objects.isNull(date)){
            return "";
        }
        return date.format(DateTimeFormatter.ofPattern(formatter));
    }
}
cnas-server/src/main/java/com/yuanchu/mom/service/impl/ReservationServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
package com.yuanchu.mom.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.DeviceDto;
import com.yuanchu.mom.dto.ReservationDto;
import com.yuanchu.mom.mapper.DeviceMapper;
import com.yuanchu.mom.mapper.ReservationMapper;
import com.yuanchu.mom.pojo.Reservation;
import com.yuanchu.mom.service.DataConfigService;
import com.yuanchu.mom.service.ReservationService;
import com.yuanchu.mom.utils.QueryWrappers;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
 * èµ„源预定新建预定表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author baomidou
 * @since 2024-09-14
 */
@Service
public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reservation> implements ReservationService {
    @Autowired
    private GetLook getLook;
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private ReservationMapper reservationMapper;
    @Autowired
    private DataConfigService dataConfigService;
    @Override
    public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter, Boolean laboratoryNameIsNull, String starttime, String endtime) {
        ArrayList<String> dateTextList = new ArrayList<>();
        if (StringUtils.isNoneEmpty(starttime)&&StringUtils.isNoneEmpty(endtime)){
            LocalDate startDate = LocalDate.parse(starttime, DateTimeFormatter.ISO_LOCAL_DATE);
            LocalDate endDate = LocalDate.parse(endtime, DateTimeFormatter.ISO_LOCAL_DATE);
            while (!startDate.isAfter(endDate)) {
                dateTextList.add(startDate.toString());
                startDate = startDate.plusDays(1);
            }
        }
        LambdaQueryWrapper<Reservation> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.between(Reservation::getReservationTime,starttime,endtime);
        List<Reservation> reservations = reservationMapper.selectList(lambdaQueryWrapper);
        HashMap dates = new HashMap<String, Integer>();
        Map<Integer, List<Reservation>> deviceIdcollect = reservations.stream().collect(Collectors.groupingBy(Reservation::getDeviceId));
        for (Integer deviceId : deviceIdcollect.keySet()) {
            List<Reservation> deviceIdList = deviceIdcollect.get(deviceId);
            Map<String, List<Reservation>> collect = deviceIdList.stream().collect(Collectors.groupingBy(Reservation::getReservationTime));
            for (String date : collect.keySet()) {
                List<Reservation> reservations1 = collect.get(date);
                Map<String, List<Reservation>> collect1 = reservations1.stream().collect(Collectors.groupingBy(Reservation::getSpecificTime));
                for (String s : collect1.keySet()) {
                    if (!(dates.containsKey(deviceId + date + s))) {
                        dates.put(deviceId + date + s, collect1.get(s).size());
                    }
                }
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("head", PrintChina.printChina(DeviceDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDeviceParameter");
        if (map1.get("look") == 1) itemParameter.setCreateUser(map1.get("userId"));
        IPage<DeviceDto> iPage = deviceMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(itemParameter), laboratoryNameIsNull);
        List<DeviceDto> records = iPage.getRecords();
        ArrayList<JSONObject> datas = new ArrayList<>();
        String [] dateArrays={"09:00-12:00","13:00-18:00", "18:00-22:00"};
        for (DeviceDto record : records) {
            for (int i = 0; i < dateArrays.length; i++) {
                String dateArray = dateArrays[i];
                JSONObject temp = JSON.parseObject(JSON.toJSONString(record));
                temp.put("time", dateArray);
                JSONArray dataArray = new JSONArray();
                for (String date : dateTextList) {
                    JSONObject dateObject = new JSONObject();
                    dateObject.put("date", date);
                    dateObject.put("value", dates.containsKey(record.getId()+date + dateArray) ? dates.get(record.getId()+date + dateArray) : 0);
                    dataArray.add(dateObject);
                }
                temp.put("dateList", dataArray);
                datas.add(temp);
            }
        }
        map.put("body", datas);
        return map;
    }
    @Override
    public List<ReservationDto> selectReservationParameterPage(String deviceId, String reservationTime, String specificTime) {
        return reservationMapper.selectReservationParameterPage(Integer.parseInt(deviceId), reservationTime, specificTime);
    }
}
cnas-server/src/main/java/com/yuanchu/mom/vo/OperationInstructionVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.yuanchu.mom.vo;
import com.yuanchu.mom.pojo.OperationInstruction;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OperationInstructionVo extends OperationInstruction {
    @ApiModelProperty("管理编号")
    private String deviceNumber;
    @ApiModelProperty("型号")
    private String deviceModel;
    @ApiModelProperty("设备名称")
    private String deviceName;
}
cnas-server/src/main/resources/mapper/DeviceAcceptanceFileMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceAcceptanceFileMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceAcceptanceFile">
        <id column="acceptance_file_id" property="acceptanceFileId" />
        <result column="acceptance_id" property="acceptanceId" />
        <result column="type" property="type" />
        <result column="file_url" property="fileUrl" />
        <result column="file_name" property="fileName" />
        <result column="create_user" property="createUser" />
        <result column="create_time" property="createTime" />
        <result column="update_user" property="updateUser" />
        <result column="update_time" property="updateTime" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceAcceptanceMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceAcceptanceMapper">
    <!-- è®¾å¤‡éªŒæ”¶åˆ—表 -->
    <select id="pageDeviceAcceptance" resultType="com.yuanchu.mom.pojo.DeviceAcceptance">
        select * from (
        select *
        from device_acceptance
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceAccidentReportMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceAccidentReportMapper">
    <!-- è®¾å¤‡äº‹æ•…报告列表 -->
    <select id="pageDeviceAccidentReport" resultType="com.yuanchu.mom.pojo.DeviceAccidentReport">
        select * from (
        select *
        from device_accident_report
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeviceAccidentReportById" resultType="com.yuanchu.mom.dto.DeviceAccidentReportDto">
        select
            d.*,
            date_format(d.accident_date,'%Y-%m-%d') accidentDateStr, -- æ—¶é—´
            date_format(d.report_date,'%Y-%m-%d') reportDateStr, -- æŠ¥å‘Šäººå¡«å†™æ—¶é—´
            date_format(d.assessor_date,'%Y-%m-%d') assessorDateStr, -- è¯„估人填写时间
            date_format(d.department_head_date,'%Y-%m-%d') departmentHeadDateStr, -- éƒ¨é—¨è´Ÿè´£äººå¡«å†™æ—¶é—´
            date_format(d.technical_director_date,'%Y-%m-%d') technicalDirectorDateStr, -- æŠ€æœ¯è´Ÿè´£äººå¡«å†™æ—¶é—´
            date_format(d.director_head_date,'%Y-%m-%d') directorHeadDateStr -- ä¸»ä»»å¡«å†™æ—¶é—´
        from device_accident_report d
        where d.accident_report_id = #{accidentReportId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceBorrowMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceBorrowMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceBorrow">
        <id column="id" property="id"/>
        <result column="process_number" property="processNumber"/>
        <result column="device_id" property="deviceId"/>
        <result column="unify_number" property="unifyNumber"/>
        <result column="recipient_user" property="recipientUser"/>
        <result column="recipient_state" property="recipientState"/>
        <result column="recipient_time" property="recipientTime"/>
        <result column="submit_user" property="submitUser"/>
        <result column="create_time" property="createTime"/>
        <result column="now_state" property="nowState"/>
        <result column="now_user" property="nowUser"/>
        <result column="url" property="url"/>
        <result column="file_name" property="fileName"/>
        <result column="next_user" property="nextUser"/>
        <result column="submit_operation_user" property="submitOperationUser"/>
        <result column="submit_operation_time" property="submitOperationTime"/>
        <result column="reback_user" property="rebackUser"/>
        <result column="reback_time" property="rebackTime"/>
        <result column="receive_state" property="receiveState"/>
        <result column="device_user" property="deviceUser"/>
        <result column="note" property="note"/>
        <result column="receive_operation_user" property="receiveOperationUser"/>
        <result column="receive_operation_time" property="receiveOperationTime"/>
    </resultMap>
    <select id="deviceBorrowPage" resultType="com.yuanchu.mom.pojo.DeviceBorrow">
        select * from (
        select db.*,device_name
        from device_borrow db
        left join `center-lims`.device on db.device_id=device.id
        )a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="getDeviceBorrowBydeviceId" resultType="com.yuanchu.mom.pojo.DeviceBorrow">
        select db.*,device_name
        from device_borrow db
                 left join `center-lims`.device on db.device_id=device.id
        where device_id=#{deviceId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceBreakdownMaintenanceMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceBreakdownMaintenanceMapper">
    <!--设备故障维修列表-->
    <select id="pageDeviceBreakdownMaintenance" resultType="com.yuanchu.mom.pojo.DeviceBreakdownMaintenance">
        select * from (
        select *
        from device_breakdown_maintenance
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceCalibrationPlanDetailMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceCalibrationPlanDetailMapper">
    <!-- è®¾å¤‡æ ¡å‡†è®¡åˆ’详情列表 -->
    <select id="pageDeviceCalibrationPlanDetail" resultType="com.yuanchu.mom.pojo.DeviceCalibrationPlanDetail">
        select * from (
        select *
        from device_calibration_plan_detail
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceCalibrationPlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceCalibrationPlanMapper">
    <!-- è®¾å¤‡æ ¡å‡†è®¡åˆ’列表 -->
    <select id="pageDeviceCalibrationPlan" resultType="com.yuanchu.mom.dto.DeviceCalibrationPlanDto">
        select *
        from (select cqm.*,
        u1.name write_name,
        u3.name ratify_name
        from device_calibration_plan cqm
        left join user u1 on u1.id = cqm.write_user_id
        left join user u3 on u3.id = cqm.ratify_user_id
        order by cqm.create_time desc) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExaminePlanDetailsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExaminePlanDetailsMapper">
    <!--设备核查计划详情列表-->
    <select id="pageDeviceExaminePlanDetail" resultType="com.yuanchu.mom.pojo.DeviceExaminePlanDetails">
        select * from (
        select *
        from device_examine_plan_details
        order by check_time asc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExaminePlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExaminePlanMapper">
    <!-- è®¾å¤‡æ ¸æŸ¥è®¡åˆ’列表 -->
    <select id="deviceExaminePlanDetailsMapper" resultType="com.yuanchu.mom.dto.DeviceExaminePlanDto">
        select *
        from (select cqm.*,
        u1.name write_name,
        u3.name ratify_name
        from device_examine_plan cqm
        left join user u1 on u1.id = cqm.write_user_id
        left join user u3 on u3.id = cqm.ratify_user_id
        order by cqm.create_time desc) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectExamineExaminePlanDto" resultType="com.yuanchu.mom.dto.DeviceExaminePlanDto">
        select
            cqm.*,
            date_format(cqm.write_time, '%Y-%m-%d') writeTimeStr,
            date_format(cqm.ratify_time, '%Y-%m-%d') ratifyTimeStr,
            date_format(cqm.create_time, '%Y') year,
            u1.name write_name,
            u3.name ratify_name
        from device_examine_plan cqm
        left join user u1 on u1.id = cqm.write_user_id
        left join user u3 on u3.id = cqm.ratify_user_id
        where cqm.plan_id = #{deviceExaminePlanId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExamineRecordContrastDetailsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExamineRecordContrastDetailsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceExamineRecordContrastDetails">
        <id column="record_contrast_details_id" property="recordContrastDetailsId" />
        <result column="record_contrast_id" property="recordContrastId" />
        <result column="check_items" property="checkItems" />
        <result column="indication_a" property="indicationA" />
        <result column="indication_b" property="indicationB" />
        <result column="indication_c" property="indicationC" />
        <result column="d_value" property="dValue" />
        <result column="deviation" property="deviation" />
        <result column="determine" property="determine" />
        <result column="create_user" property="createUser" />
        <result column="create_time" property="createTime" />
        <result column="update_user" property="updateUser" />
        <result column="update_time" property="updateTime" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExamineRecordContrastMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExamineRecordContrastMapper">
    <!-- æŸ¥è¯¢æ ¸æŸ¥å¯¹æ¯”记录 -->
    <select id="getExamineRecordContrast" resultType="com.yuanchu.mom.dto.DeviceExamineRecordContrastDto">
        select derc.*,
               d1.device_name aDeviceName,
               d1.management_number aDeviceNumber,
               d2.device_name bDeviceName,
               d2.management_number bDeviceNumber,
               d3.device_name cDeviceName,
               d3.management_number cDeviceNumber
        from device_examine_record_contrast derc
                 left join device d1 on d1.id = derc.a_device_id
                 left join device d2 on d2.id = derc.a_device_id
                 left join device d3 on d3.id = derc.a_device_id
        where derc.plan_details_id = #{planDetailsId}
    </select>
    <select id="selectExamineRecordContrastDto"
            resultType="com.yuanchu.mom.dto.DeviceExamineRecordContrastDto">
        select derc.*,
               d1.device_name aDeviceName,
               d1.management_number aDeviceNumber,
               d2.device_name bDeviceName,
               d2.management_number bDeviceNumber,
               d3.device_name cDeviceName,
               d3.management_number cDeviceNumber,
               DATE_FORMAT(derc.create_time, '%Y-%m-%d') checkerTimeStr,
               DATE_FORMAT(derc.review_time, '%Y-%m-%d') reviewTimeStr,
               d1.storage_point labName
        from device_examine_record_contrast derc
                 left join device d1 on d1.id = derc.a_device_id
                 left join device d2 on d2.id = derc.a_device_id
                 left join device d3 on d3.id = derc.a_device_id
        where derc.plan_details_id = #{planDetailsId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExamineRecordDetailMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExamineRecordDetailMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceExamineRecordDetail">
        <id column="record_detail_id" property="recordDetailId" />
        <result column="record_id" property="recordId" />
        <result column="data_value1" property="dataValue1" />
        <result column="data_value2" property="dataValue2" />
        <result column="data_value3" property="dataValue3" />
        <result column="data_value4" property="dataValue4" />
        <result column="data_value5" property="dataValue5" />
        <result column="data_value6" property="dataValue6" />
        <result column="data_value7" property="dataValue7" />
        <result column="create_user" property="createUser" />
        <result column="create_time" property="createTime" />
        <result column="update_user" property="updateUser" />
        <result column="update_time" property="updateTime" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExamineRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExamineRecordMapper">
    <select id="getExamineRecord" resultType="com.yuanchu.mom.dto.DeviceExamineRecordDto">
        select der.*,
               d.device_name,
               d.management_number deviceNumber
        from device_examine_record der
                 left join device_examine_plan_details depd on depd.plan_details_id = der.plan_details_id
                 left join device d on d.id = depd.device_id
        where der.plan_details_id = #{planDetailsId}
    </select>
    <select id="selectReviewExamineRecordDto" resultType="com.yuanchu.mom.dto.DeviceExamineRecordDto">
        select der.*,
               Date_Format(der.update_time, '%Y-%m-%d') updateTimeStr,
               d.device_name,
               d.management_number deviceNumber
        from device_examine_record der
                 left join device_examine_plan_details depd on depd.plan_details_id = der.plan_details_id
                 left join device d on d.id = depd.device_id
        where der.plan_details_id = #{planDetailsId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceExternalApplyMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceExternalApplyMapper">
    <!--利用外部设备申请列表-->
    <select id="pageDeviceExternalApply" resultType="com.yuanchu.mom.pojo.DeviceExternalApply">
        select * from (
        select *
        from device_external_apply
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeviceExternalById" resultType="com.yuanchu.mom.pojo.DeviceExternalApply">
        select
            dea.*
        from device_external_apply dea
        where dea.external_apply_id = #{externalApplyId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceFaultOneMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceFaultOneMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceFaultOne">
        <id column="id" property="id" />
        <result column="device_id" property="deviceId" />
        <result column="process_number" property="processNumber" />
        <result column="measure_of_accuracy" property="measureOfAccuracy" />
        <result column="fault_situation" property="faultSituation" />
        <result column="file_name" property="fileName" />
        <result column="system_file_name" property="systemFileName" />
        <result column="submit_next_pesponsible" property="submitNextPesponsible" />
        <result column="submit_operating_personnel" property="submitOperatingPersonnel" />
        <result column="submit_date" property="submitDate" />
        <result column="method_cost" property="methodCost" />
        <result column="admin_audit_option" property="adminAuditOption" />
        <result column="admin_next_pesponsible" property="adminNextPesponsible" />
        <result column="admin_operating_personnel" property="adminOperatingPersonnel" />
        <result column="technical_audit_option" property="technicalAuditOption" />
        <result column="technical_next_pesponsible" property="technicalNextPesponsible" />
        <result column="technical_operating_personnel" property="technicalOperatingPersonnel" />
        <result column="technical_date" property="technicalDate" />
        <result column="maintain_situation" property="maintainSituation" />
        <result column="maintain_next_pesponsible" property="maintainNextPesponsible" />
        <result column="maintain_operating_personnel" property="maintainOperatingPersonnel" />
        <result column="maintain_date" property="maintainDate" />
        <result column="check_cal_situation" property="checkCalSituation" />
        <result column="after_maintenance_operating_personnel" property="afterMaintenanceOperatingPersonnel" />
        <result column="after_maintenance_date" property="afterMaintenanceDate" />
        <result column="current_status" property="currentState" />
        <result column="submit_person" property="submitPerson" />
        <result column="current_responsible" property="currentResponsible" />
        <result column="create_time" property="createTime" />
    </resultMap>
    <select id="deviceFaultOnePage" resultType="com.yuanchu.mom.dto.DeviceFaultOneDto">
        select dfo.*,
               d.device_name,
               d.management_number,
               d.specification_model
        from device_fault_one dfo
                 left join device d on d.id = dfo.device_id
        where dfo.device_id = #{deviceId}
        <if test="processNumber != '' and processNumber != null">
            and dfo.process_number like concat('%', #{processNumber}, '%')
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceInspectionRecordDetailsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceInspectionRecordDetailsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceInspectionRecordDetails">
        <id column="inspection_record_detail_id" property="inspectionRecordDetailId" />
        <result column="test_items" property="testItems" />
        <result column="standard_value" property="standardValue" />
        <result column="measured_value" property="measuredValue" />
        <result column="indication_error" property="indicationError" />
        <result column="allowable_error" property="allowableError" />
        <result column="single_item_conclusion" property="singleItemConclusion" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="update_user_id" property="updateUserId" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceInspectionRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceInspectionRecordMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceInspectionRecord">
        <id column="inspection_record" property="inspectionRecord" />
        <result column="material_name" property="materialName" />
        <result column="material_model" property="materialModel" />
        <result column="material_management_number" property="materialManagementNumber" />
        <result column="material_accuracy_grade" property="materialAccuracyGrade" />
        <result column="temperature" property="temperature" />
        <result column="humidity" property="humidity" />
        <result column="test_conclusion" property="testConclusion" />
        <result column="remark" property="remark" />
        <result column="recorder" property="recorder" />
        <result column="recorder_id" property="recorderId" />
        <result column="reviewer" property="reviewer" />
        <result column="reviewer_id" property="reviewerId" />
        <result column="test_date" property="testDate" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="update_user_id" property="updateUserId" />
    </resultMap>
    <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.pojo.DeviceInspectionRecord">
        SELECT
            *
        from device_inspection_record
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceMaintenanceMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMaintenanceMapper">
    <select id="getDeviceMaintenanceParam" resultType="com.yuanchu.mom.pojo.DeviceMaintenance">
        select id,device_id,device_name, device_number,management_number,content,name
        ,date from device_maintenance
    </select>
<!--    <select id="getDeviceMaintenancePage" resultType="com.yuanchu.mom.pojo.DeviceMaintenance">-->
<!--        select *-->
<!--        from device_maintenance dm-->
<!--        where dm.device_id = #{deviceId}-->
<!--    </select>-->
    <select id="deviceMaintenanceExport" resultType="com.yuanchu.mom.excel.DeviceMaintenanceExport">
        select id, device_id, device_name, device_number, management_number, content, date, if(maintenance_type = 1, '计划中维护', '使用前后维护'), next_date, name, comments
        from device_maintenance dm
        where dm.device_id = #{deviceId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMaintenancePlanDetailsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceMaintenancePlanDetails">
        <id column="maintenance_plan_detail_id" property="maintenancePlanDetailId" />
        <result column="maintenance_plan_id" property="maintenancePlanId" />
        <result column="device_id" property="deviceId" />
        <result column="maintenance_site" property="maintenanceSite" />
        <result column="maintenance_content" property="maintenanceContent" />
        <result column="maintenance_intervals" property="maintenanceIntervals" />
    </resultMap>
    <select id="deviceInspectionRecordDetailsList"
            resultType="com.yuanchu.mom.dto.DeviceMaintenancePlanDetailsDto">
        select
            dmpd.*,
            d.device_name,
            d.management_number device_number,
            d.specification_model,
            d.management_number,
            d.storage_point
        from device_maintenance_plan_details dmpd
        left join device d on dmpd.device_id = d.id
        where dmpd.maintenance_plan_id = #{maintenancePlanId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceMaintenancePlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMaintenancePlanMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceMaintenancePlan">
        <id column="maintenance_plan_id" property="maintenancePlanId" />
        <result column="create_user" property="createUser" />
        <result column="create_id" property="createId" />
        <result column="create_date" property="createDate" />
        <result column="audit_id" property="auditId" />
        <result column="audit" property="audit" />
        <result column="audit_date" property="auditDate" />
    </resultMap>
    <!-- æ ¹æ®è®¾å¤‡id查询设备的保养计划 -->
    <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.pojo.DeviceMaintenancePlan">
        select
            *
        from device_maintenance_plan
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectMaintenancePlanById" resultType="com.yuanchu.mom.dto.DeviceMaintenancePlanDto">
        select
            dmp.*,
            date_format(dmp.date_preparation, '%Y-%m-%d') as datePreparationStr,
            date_format(dmp.audit_date, '%Y-%m-%d') as auditDateStr
        from device_maintenance_plan dmp
        where dmp.maintenance_plan_id = #{maintenancePlanId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -107,7 +107,14 @@
        device d
        LEFT JOIN `user` u ON u.id = d.equipment_manager
        LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
        LEFT JOIN device_metric_record cmr ON d.id = cmr.device_id
        LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids)
        <where>
            <if test="laboratoryNameIsNull != null and laboratoryNameIsNull == true">
                l.laboratory_name is null
            </if>
            AND cmr.type = 'calibrate' or cmr.type is null or cmr.type = ''
        </where>
        GROUP BY
        d.id,
        u.name, l.laboratory_name
cnas-server/src/main/resources/mapper/DeviceMetricRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMetricRecordMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceMetricRecord">
        <id column="id" property="id" />
        <result column="unit_of_measure" property="unitOfMeasure" />
        <result column="calibration_date" property="calibrationDate" />
        <result column="next_calibration_date" property="nextCalibrationDate" />
        <result column="calculating_apparatus" property="calculatingApparatus" />
        <result column="standard_range" property="standardRange" />
        <result column="calibration_standard_uncertainty" property="calibrationStandardUncertainty" />
        <result column="by_document" property="byDocument" />
        <result column="certificate_serial_number" property="certificateSerialNumber" />
        <result column="status" property="status" />
        <result column="file_name" property="fileName" />
        <result column="system_file_name" property="systemFileName" />
        <result column="remark" property="remark" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceMetricsCopyMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceMetricsCopyMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceMetricsCopy">
        <id column="id" property="id" />
        <result column="device_id" property="deviceId" />
        <result column="measurement_parameter" property="measurementParameter" />
        <result column="range_of_measurement" property="rangeOfMeasurement" />
        <result column="max_permissible_error" property="maxPermissibleError" />
        <result column="judgment_criteria" property="judgmentCriteria" />
        <result column="created_by" property="createdBy" />
        <result column="creation_time" property="creationTime" />
        <result column="is_calibration" property="isCalibration" />
        <result column="result" property="result" />
        <result column="single_result_statement" property="singleResultStatement" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/DeviceScrappedMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceScrappedMapper">
    <!-- è®¾å¤‡æŠ¥åºŸç”³è¯·åˆ—表 -->
    <select id="pageDeviceScrapped" resultType="com.yuanchu.mom.pojo.DeviceScrapped">
        select * from (
        select *
        from device_scrapped
        order by create_time desc
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeviceScrappedById" resultType="com.yuanchu.mom.dto.DeviceScrappedDto">
        select
            *,
            date_format(applicant_date,'%Yå¹´%m月%d日') as applicantDateStr,
            date_format(department_head_date,'%Yå¹´%m月%d日') as departmentHeadDateStr,
            date_format(metering_room_date,'%Yå¹´%m月%d日') as meteringRoomDateStr,
            date_format(approver_date,'%Yå¹´%m月%d日') as approverDateStr
        from device_scrapped
        where scrapped_id = #{scrappedId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceStateMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceStateMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceState">
        <id column="state_id" property="stateId" />
        <result column="accessory_part" property="accessoryPart" />
        <result column="device_status" property="deviceStatus" />
        <result column="reason" property="reason" />
        <result column="submit_next_pesponsible" property="submitNextPesponsible" />
        <result column="submit_operating_personnel" property="submitOperatingPersonnel" />
        <result column="submit_date" property="submitDate" />
        <result column="department_review_opinion" property="departmentReviewOpinion" />
        <result column="department_next_pesponsible" property="departmentNextPesponsible" />
        <result column="department_operating_personnel" property="departmentOperatingPersonnel" />
        <result column="department_date" property="departmentDate" />
        <result column="measuring_room_review_opinion" property="measuringRoomReviewOpinion" />
        <result column="measuring_room_next_pesponsible" property="measuringRoomNextPesponsible" />
        <result column="measuring_room_operating_personnel" property="measuringRoomOperatingPersonnel" />
        <result column="measuring_room_date" property="measuringRoomDate" />
        <result column="approval_opinion" property="approvalOpinion" />
        <result column="approval_next_pesponsible" property="approvalNextPesponsible" />
        <result column="approval_operating_personnel" property="approvalOperatingPersonnel" />
        <result column="approval_date" property="approvalDate" />
        <result column="current_state" property="currentState" />
        <result column="device_id" property="deviceId" />
        <result column="current_responsible" property="currentResponsible" />
    </resultMap>
    <select id="getDeviceStatePage" resultType="com.yuanchu.mom.dto.DeviceStateDto">
        select ds.*,
               d.device_name,
               d.management_number,
               d.specification_model,
               d.large_category
        from device_state ds
                 left join device d on d.id = ds.device_id
        where ds.device_id = #{deviceId}
        <if test="processNumber != '' and processNumber != null">
            and ds.process_number like concat('%', #{processNumber}, '%')
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceTraceabilityManagementDetailsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceTraceabilityManagementDetails">
        <id column="traceability_management_detail_id" property="traceabilityManagementDetailId" />
        <result column="traceability_management_id" property="traceabilityManagementId" />
        <result column="device_id" property="deviceId" />
        <result column="technical_index_parameters" property="technicalIndexParameters" />
        <result column="technical_requirements" property="technicalRequirements" />
        <result column="verification_cycle" property="verificationCycle" />
        <result column="verification_unit" property="verificationUnit" />
        <result column="remark" property="remark" />
        <result column="create_user" property="createUser" />
        <result column="create_time" property="createTime" />
        <result column="update_user" property="updateUser" />
        <result column="update_time" property="updateTime" />
    </resultMap>
    <select id="deviceTraceabilityManagementDetailsList"
            resultType="com.yuanchu.mom.dto.DeviceTraceabilityManagementDetailsDto">
        select
            dtmd.*,
            d.device_name,
            d.device_name,
            d.specification_model,
            d.management_number
        from device_traceability_management_details dtmd
                 left join device d on dtmd.device_id = d.id
        where dtmd.traceability_management_id = #{traceabilityManagementId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/DeviceTraceabilityManagementMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceTraceabilityManagementMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.DeviceTraceabilityManagement">
        <id column="traceability_management_id" property="traceabilityManagementId" />
        <result column="compiler_id" property="compilerId" />
        <result column="compiler" property="compiler" />
        <result column="date_preparation" property="datePreparation" />
        <result column="status" property="status" />
        <result column="update_user" property="updateUser" />
        <result column="update_time" property="updateTime" />
        <result column="audit_id" property="auditId" />
        <result column="audit" property="audit" />
        <result column="audit_date" property="auditDate" />
        <result column="audit_remark" property="auditRemark" />
        <result column="create_user" property="createUser" />
        <result column="create_time" property="createTime" />
    </resultMap>
    <select id="selectDeviceParameterPage" resultType="com.yuanchu.mom.pojo.DeviceTraceabilityManagement">
        select
        *
        from device_traceability_management
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeviceTraceabilityManagementById"
            resultType="com.yuanchu.mom.dto.DeviceTraceabilityManagementDto">
        select
            dtm.*,
            date_format(dtm.date_preparation, '%Y-%m-%d') as datePreparationStr,
            date_format(dtm.audit_date, '%Y-%m-%d') as auditDateStr
        from device_traceability_management dtm
        where dtm.traceability_management_id = #{traceabilityManagementId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/IncidentAcceptanceCheckMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.IncidentAcceptanceCheckMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.IncidentAcceptanceCheck">
        <id column="acceptance_checkId" property="acceptanceCheckId" />
        <result column="instrument_module" property="instrumentModule" />
        <result column="verification_parameter" property="verificationParameter" />
        <result column="acceptable_limit" property="acceptableLimit" />
        <result column="verification_result" property="verificationResult" />
        <result column="verification_conclusion" property="verificationConclusion" />
        <result column="incident_id" property="incidentId" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/IncidentFileMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.IncidentFileMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.IncidentFile">
        <id column="file_id" property="fileId" />
        <result column="expected_copies" property="expectedCopies" />
        <result column="actual_copies" property="actualCopies" />
        <result column="incident_id" property="incidentId" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/IncidentInstallMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.IncidentInstallMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.IncidentInstall">
        <id column="install_id" property="installId" />
        <result column="installation_project" property="installationProject" />
        <result column="installation_situation" property="installationSituation" />
        <result column="installation_completed" property="installationCompleted" />
        <result column="incident_id" property="incidentId" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/IncidentReportMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.IncidentReportMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.IncidentReport">
        <id column="id" property="id" />
        <result column="process_number" property="processNumber" />
        <result column="device_id" property="deviceId" />
        <result column="serial_number" property="serialNumber" />
        <result column="device_class" property="deviceClass" />
        <result column="check_outer_packaging" property="checkOuterPackaging" />
        <result column="file_name" property="fileName" />
        <result column="system_file_name" property="systemFileName" />
        <result column="unpacking_acceptance_conclusion" property="unpackingAcceptanceConclusion" />
        <result column="submit_next_pesponsible" property="submitNextPesponsible" />
        <result column="submit_remarks" property="submitRemarks" />
        <result column="submit_operating_personnel" property="submitOperatingPersonnel" />
        <result column="submit_date" property="submitDate" />
        <result column="unpacking_review_opinion" property="unpackingReviewOpinion" />
        <result column="unpacking_next_pesponsible" property="unpackingNextPesponsible" />
        <result column="unpacking_operating_personnel" property="unpackingOperatingPersonnel" />
        <result column="unpacking_date" property="unpackingDate" />
        <result column="install_location" property="installLocation" />
        <result column="install_remarks" property="installRemarks" />
        <result column="install_next_pesponsible" property="installNextPesponsible" />
        <result column="install_operating_personnel" property="installOperatingPersonnel" />
        <result column="install_date" property="installDate" />
        <result column="installation_acceptance_compound_opinion" property="installationAcceptanceCompoundOpinion" />
        <result column="installation_acceptance_next_pesponsible" property="installationAcceptanceNextPesponsible" />
        <result column="installation_acceptance_operating_personnel" property="installationAcceptanceOperatingPersonnel" />
        <result column="installation_acceptance_date" property="installationAcceptanceDate" />
        <result column="acceptance_check_unpacking_conclusion" property="acceptanceCheckUnpackingConclusion" />
        <result column="acceptance_check_next_pesponsible" property="acceptanceCheckNextPesponsible" />
        <result column="acceptance_check_operating_personnel" property="acceptanceCheckOperatingPersonnel" />
        <result column="acceptance_check_date" property="acceptanceCheckDate" />
        <result column="acceptance_audit_operating_personnel" property="acceptanceAuditOperatingPersonnel" />
        <result column="acceptance_audit_date" property="acceptanceAuditDate" />
        <result column="create_user" property="createUser" />
        <result column="current_state" property="currentState" />
        <result column="create_time" property="createTime" />
        <result column="current_responsible" property="currentResponsible" />
        <result column="acceptance_audit_audit_opinion" property="acceptanceAuditAuditOpinion" />
    </resultMap>
    <resultMap id="IncidentReportAddDtoMap" type="com.yuanchu.mom.dto.IncidentReportAddDto" extends="BaseResultMap">
        <result column="device_name" property="deviceName" />
        <result column="management_number" property="managementNumber" />
        <result column="manufacturer" property="manufacturer" />
        <result column="specification_model" property="specificationModel" />
        <collection property="sparePartsConfirmationList" ofType="com.yuanchu.mom.pojo.IncidentSpareParts">
            <id column="spare_parts_id" property="sparePartsId" />
            <result column="name" property="name" />
            <result column="number" property="number" />
            <result column="note" property="note" />
            <result column="incident_id" property="incidentId" />
        </collection>
        <collection property="fileClassConfirmationList" ofType="com.yuanchu.mom.pojo.IncidentFile">
            <id column="file_id" property="fileId" />
            <result column="expected_copies" property="expectedCopies" />
            <result column="actual_copies" property="actualCopies" />
            <result column="incident_id" property="incidentId" />
        </collection>
        <collection property="installationAcceptanceRecordList" ofType="com.yuanchu.mom.pojo.IncidentInstall">
            <id column="install_id" property="installId" />
            <result column="installation_project" property="installationProject" />
            <result column="installation_situation" property="installationSituation" />
            <result column="installation_completed" property="installationCompleted" />
            <result column="incident_id" property="incidentId" />
        </collection>
        <collection property="acceptanceCheckRecordList" ofType="com.yuanchu.mom.pojo.IncidentAcceptanceCheck">
            <id column="acceptance_check_id" property="acceptanceCheckId" />
            <result column="instrument_module" property="instrumentModule" />
            <result column="verification_parameter" property="verificationParameter" />
            <result column="acceptable_limit" property="acceptableLimit" />
            <result column="verification_result" property="verificationResult" />
            <result column="verification_conclusion" property="verificationConclusion" />
            <result column="incident_id" property="incidentId" />
        </collection>
    </resultMap>
    <select id="getByDeviceId" resultType="com.yuanchu.mom.dto.IncidentReportAddDto">
        select dir.*, d.device_name, d.management_number, u.name submitUser
        from device_incident_report dir
                 left join device d on d.id = dir.device_id
            left join user u on u.id = dir.create_user
        where dir.device_id = #{deviceId}
        <if test="processNumber != '' and processNumber != null">
            and dir.process_number like concat('%', #{processNumber}, '%')
        </if>
    </select>
    <select id="getShowIncidentReport" resultMap="IncidentReportAddDtoMap">
        select dir.*, d.device_name, d.management_number, d.manufacturer, d.specification_model,
               diac.acceptance_check_id, diac.instrument_module,diac.verification_parameter, diac.acceptable_limit, diac.verification_result, diac.verification_conclusion,
               disp.spare_parts_id, disp.name, disp.number, disp.note,
               dif.file_id, dif.expected_copies, dif.actual_copies,
               dii.install_id, dii.installation_completed, dii.installation_project, dii.installation_situation
        from device_incident_report dir
                 left join device d on d.id = dir.device_id
                 left join device_incident_acceptance_check diac on diac.incident_id = dir.id
                 left join device_incident_file dif on dif.incident_id = dir.id
                 left join device_incident_install dii on dii.incident_id = dir.id
                 left join device_incident_spare_parts disp on disp.incident_id = dir.id
        where dir.id = #{id}
    </select>
    <select id="incidentReportExport" resultType="com.yuanchu.mom.excel.IncidentReportExport">
        select dir.*, d.device_name, d.management_number, d.manufacturer, d.specification_model
        from device_incident_report dir
                 left join device d on d.id = dir.device_id
        where dir.device_id = #{deviceId}
    </select>
    <select id="acceptanceCertificateExport" resultType="com.yuanchu.mom.dto.IncidentReportExportWordDto">
        select
    </select>
</mapper>
cnas-server/src/main/resources/mapper/IncidentSparePartsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.IncidentSparePartsMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.IncidentSpareParts">
        <id column="spare_parts_id" property="sparePartsId" />
        <result column="name" property="name" />
        <result column="number" property="number" />
        <result column="note" property="note" />
        <result column="incident_id" property="incidentId" />
    </resultMap>
</mapper>
cnas-server/src/main/resources/mapper/InsOrderDeviceRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.DeviceRecordMapper">
    <select id="deviceRecordPage" resultType="com.yuanchu.mom.dto.DeviceRecordDto">
        select dr.*,
               d.device_name,
               d.management_number
        from device_record dr
                 left join device d on d.id = dr.device_id
        where 1=1
        <if test="deviceId != null">
            and dr.device_id = #{deviceId}
        </if>
        <if test="sampleCode != '' and sampleCode != null">
            and dr.sample_code like concat('%', #{sampleCode}, '%')
        </if>
        <if test="managementNumber != '' and managementNumber != null">
            and d.management_number like concat('%', #{managementNumber}, '%')
        </if>
        <if test="userId != null">
            and dr.use_person_id = #{userId}
            and dr.use_start_date is null
        </if>
        ORDER BY (dr.use_start_date IS NULL) desc , dr.use_start_date DESC
    </select>
    <select id="selectNotFilled" resultType="com.yuanchu.mom.dto.DeviceRecordDto">
        select dr.*,
               d.device_name,
               d.management_number
        from device_record dr
                 left join device d on d.id = dr.device_id
        where dr.use_start_date is null
    </select>
    <!-- æŸ¥è¯¢å¯¼å‡ºè®¾å¤‡ä½¿ç”¨è®°å½• -->
    <select id="selectExportList" resultType="com.yuanchu.mom.pojo.DeviceRecord">
        select dr.*
        from device_record dr
        where dr.use_start_date is not null
        <if test="deviceId != null">
            and dr.device_id = #{deviceId}
        </if>
        <if test="exportDate != '' and exportDate != null">
            and DATE_FORMAT(dr.use_start_date, '%Y-%m') = #{exportDate};
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/InstructionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.InstructionMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.Instruction">
        <id column="id" property="id" />
        <result column="application_number" property="applicationNumber" />
        <result column="person_liable" property="personLiable" />
        <result column="controlled_application_description" property="controlledApplicationDescription" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
    </resultMap>
    <select id="pageByPageQueryOfHomeworkInstructions" resultType="com.yuanchu.mom.dto.OperationInstructionDto">
        SELECT
            doi.*,di.*,d.device_name, d.management_number device_number, d.specification_model device_model, u.name uploader_name, u1.name approver_name
        FROM
            device_operation_instruction doi
                LEFT JOIN device_instruction di ON di.id = doi.instruction_id
                left join device d on d.id = doi.device_id
                left join user u on u.id = doi.uploader
                left join user u1 on u1.id = doi.approver_id
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-server/src/main/resources/mapper/OperationInstructionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.OperationInstructionMapper">
    <select id="homeworkGuidebookEditor" resultType="com.yuanchu.mom.vo.OperationInstructionVo">
        SELECT
            doi.*,d.device_name, d.management_number device_number, d.specification_model device_model
        FROM
            device_operation_instruction doi
                left join device d on d.id = doi.device_id
        where doi.instruction_id = #{instructionId}
    </select>
</mapper>
cnas-server/src/main/resources/mapper/ReservationMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.ReservationMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.Reservation">
        <id column="id" property="id" />
        <result column="device_id" property="deviceId" />
        <result column="device_name" property="deviceName" />
        <result column="customer_name" property="customerName" />
        <result column="reservation_time" property="reservationTime" />
        <result column="specific_time" property="specificTime" />
        <result column="link_person" property="linkPerson" />
        <result column="phone" property="phone" />
        <result column="device_number" property="deviceNumber" />
        <result column="reservation_specification" property="reservationSpecification" />
        <result column="create_user" property="createUser" />
        <result column="create_date" property="createDate" />
    </resultMap>
    <select id="selectReservationParameterPage" resultType="com.yuanchu.mom.dto.ReservationDto">
        SELECT
        a.id,
        a.create_date,
        a.create_user,
        a.customer_name,
        a.device_id,
        a.device_name,
        a.device_number,
        a.link_person,
        a.phone ,
        a.reservation_specification,
        b.name
        FROM
        device_reservation a
        INNER JOIN USER b ON a.create_user = b.id
        where a.device_id = #{deviceId} and  a.reservation_time = #{reservationTime} and a.specific_time=#{specificTime}
    </select>
</mapper>
cnas-server/src/main/resources/static/word/acceptance-certificate.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-accident-report.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-breakdown-maintenance.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-calibration-plan.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-document.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-external-apply.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-inspection-record.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-scrapped.docx
Binary files differ
cnas-server/src/main/resources/static/word/device-status.docx
Binary files differ
cnas-server/src/main/resources/static/word/examine-plan-detail.docx
Binary files differ
cnas-server/src/main/resources/static/word/examine-record.docx
Binary files differ
cnas-server/src/main/resources/static/word/incident-report.docx
Binary files differ
cnas-server/src/main/resources/static/word/maintenance-plan.docx
Binary files differ
cnas-server/src/main/resources/static/word/maintenance-records.docx
Binary files differ
cnas-server/src/main/resources/static/word/quipment-details.docx
Binary files differ
cnas-server/src/main/resources/static/word/review-examine-record-contrast.docx
Binary files differ
cnas-server/src/main/resources/static/word/traceability-management-details.docx
Binary files differ
cnas-server/src/main/resources/static/word/use-record.docx
Binary files differ
framework/src/main/java/com/yuanchu/mom/enums/QrModelType.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.mom.enums;
import org.apache.commons.lang3.StringUtils;
public enum QrModelType {
    WORD_TYPE("word","word_qr_show"),
    DEVICE_TYPE("device","device_qr_show");
    String type,value;
    QrModelType(String desc, String value) {
        this.type = desc;
        this.value = value;
    }
    public String getType() {
        return type;
    }
    public String getValue() {
        return value;
    }
    /**
     * æ ¹æ®ç±»åž‹èŽ·å–æžšä¸¾å€¼
     * @param type
     * @return
     */
    public static String getValueByType(String type){
        for (QrModelType qrModelType : QrModelType.values()) {
            if(StringUtils.isNotBlank(type) && type.equals(qrModelType.getType())){
                return qrModelType.getValue();
            }
        }
        throw new IllegalArgumentException();
    }
}
inspect-server/src/main/java/com/yuanchu/mom/utils/UserUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.yuanchu.mom.utils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.Pictures;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
 * Author: yuan
 * Date: 2024-12-17 æ˜ŸæœŸäºŒ 10:35:50
 * Description: User工具类
 */
@Component
public class UserUtils {
    private static UserMapper userMapper;
    private static String imgUrl;
    @Autowired
    public void setUserMapper(UserMapper userMapper) {
        UserUtils.userMapper = userMapper;
    }
    @Autowired
    public void setImgUrl(@Value("${file.path}") String imgUrl) {
        UserUtils.imgUrl = imgUrl;
    }
    /**
     * é€šè¿‡äººå‘˜id获取用户签名地址
     * @param userId äººå‘˜id
     * @return ç”¨æˆ·ç­¾ååœ°å€
     */
    public static String getUserSignatureUrl(Integer userId) {
        String userSignatureUrl = null;
        if (userId != null) {
            userSignatureUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getId, userId))
                    .getSignatureUrl();
            if (StringUtils.isBlank(userSignatureUrl)) {
                throw new ErrorException("找不到该人员签名");
            }
            return imgUrl + "\\" + userSignatureUrl;
        } else {
            return null;
        }
    }
    /**
     * é€šè¿‡äººå‘˜id获取渲染Word用户签名对象
     * @param userId äººå‘˜id
     * @return ç”¨æˆ·ç­¾åå¯¹è±¡ or null
     */
    public static PictureRenderData getFinalUserSignatureUrl(Integer userId) {
        String userSignatureUrl = null;
        if (userId != null) {
            userSignatureUrl = userMapper.selectById(userId)
                    .getSignatureUrl();
            if (StringUtils.isBlank(userSignatureUrl)) {
                throw new ErrorException("找不到该人员签名");
            }
        }
        return StringUtils.isNotBlank(userSignatureUrl) ? Pictures.ofLocal(imgUrl + "/" + userSignatureUrl).create() : null;
    }
    /**
     * é€šè¿‡åå­—获取渲染Word用户签名对象
     * @param userName äººå‘˜åå­—
     * @return ç”¨æˆ·ç­¾åå¯¹è±¡ or null
     */
    public static PictureRenderData getFinalUserSignatureUrl(String userName) {
        String userSignatureUrl = null;
        if (userName != null) {
            userSignatureUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
                            .eq(User::getName, userName))
                    .getSignatureUrl();
            if (StringUtils.isBlank(userSignatureUrl)) {
                throw new ErrorException("找不到该人员签名");
            }
        }
        return StringUtils.isNotBlank(userSignatureUrl) ? Pictures.ofLocal(imgUrl + "/" + userSignatureUrl).create() : null;
    }
}