zhuo
2025-04-23 234b0ac195934b34c06045b2d2ef0f10e239dd8e
系统合并
已修改370个文件
已删除7个文件
已添加24个文件
4639 ■■■■ 文件已修改
README.md 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/StandardTreeMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceMaintenanceDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricsCopyMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceStateMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/mapper/OperationInstructionMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpowerDetails.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceInstruction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMaintenance.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetricRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetricsCopy.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceState.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/pojo/OperationInstruction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerDetailsService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMaintenanceService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMetricRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMetricsCopyService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceOperationInstructionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/DeviceStateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java 299 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java 168 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricsCopyServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceOperationInstructionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/mapper/DeviceBorrowMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/mapper/DeviceImpowerMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/mapper/DeviceMaintenanceMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/static/word/device-impower.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-device/src/main/resources/static/word/device-maintenance.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalCorrectController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalMeetingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalPlanController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageControlPlanListController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentAlterController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentControlledController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentIssueRecycleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentListController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageMeetingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageMeetingParticipantsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCheckController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewReportController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRiskAssessmentResultsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalCorrectFileMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalCorrectMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalMeetingDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalMeetingMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalPlanDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalPlanMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageControlPlanListMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentAlterMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentCancelMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentControlledMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentIssueRecycleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentListMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageMeetingMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageMeetingParticipantsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordAuditMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordCancelMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordCheckMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIntervalsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIntervalsTotalMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIssueRecycleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordTotalMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordVerifyMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewProgramFileMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewProgramMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewReportMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRiskAssessmentResultsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalCorrect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalCorrectFile.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalMeeting.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalMeetingDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalPlan.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalPlanDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageControlPlanList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentAlter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentCancel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentControlled.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentIssueRecycle.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageMeeting.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageMeetingParticipants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordAudit.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordCancel.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordCheck.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIntervals.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIntervalsTotal.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIssueRecycle.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordTotal.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordVerify.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgramFile.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewReport.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRiskAssessmentResults.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalCorrectFileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalCorrectService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalMeetingDetailService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalMeetingService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalPlanDetailService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalPlanService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageControlPlanListService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentAlterService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentCancelService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentControlledService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentIssueRecycleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentListService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageMeetingParticipantsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageMeetingService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordAuditService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordCancelService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordCheckService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIntervalsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIntervalsTotalService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIssueRecycleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordTotalService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordVerifyService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewProgramFileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewProgramService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewReportService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRiskAssessmentResultsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectFileServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentControlledServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentIssueRecycleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingParticipantsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramFileServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderDeviceController.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrderDevice.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderDeviceService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderDeviceServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java 375 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java 394 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessOrderDeviceMapper.xml 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessReportMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/static/report-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/static/sample-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/static/sample-receive.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeIlluminationController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeLightningProtectionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FePowerStableController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ForeignRegisterController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/InternalWastesController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/SupplierManagementController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeIlluminationDetectionAreaMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeIlluminationMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeLightningProtectionMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeMeasuredQuantityMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FePowerStableMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumDateMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ForeignRegisterMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/InternalWastesDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/InternalWastesMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesListMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/SupplierManagementMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeIllumination.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeIlluminationDetectionArea.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeLightningProtection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeMeasuredQuantity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FePowerStable.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ForeignRegister.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/InternalWastes.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/InternalWastesDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/SupplierManagement.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeIlluminationDetectionAreaService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeIlluminationService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeLightningProtectionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeMeasuredQuantityService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FePowerStableService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeTempHumDateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/FeTempHumRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ForeignRegisterService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/InternalWastesDetailService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/InternalWastesService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesListService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/SupplierManagementService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationDetectionAreaServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeLightningProtectionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeMeasuredQuantityServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesListServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsProductDeviationWarningController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsReportController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsReportExport.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningDetailMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarning.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarningDetail.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductDeviationWarningDetailService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductDeviationWarningService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductDeviationWarningDetailServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductDeviationWarningServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderMapper.xml 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsReportMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/constant/DeviceImpowerConstants.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/ssoAuth/SsoCodeAuthenticationProvider.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/UserMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md
@@ -1,95 +0,0 @@
<p align="center">
    <img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.9</h1>
<h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4>
<p align="center">
    <a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a>
    <a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.9-brightgreen.svg"></a>
    <a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
</p>
## å¹³å°ç®€ä»‹
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
* å‰ç«¯é‡‡ç”¨Vue、Element UI。
* åŽç«¯é‡‡ç”¨Spring Boot、Spring Security、Redis & Jwt。
* æƒé™è®¤è¯ä½¿ç”¨Jwt,支持多终端认证系统。
* æ”¯æŒåŠ è½½åŠ¨æ€æƒé™èœå•ï¼Œå¤šæ–¹å¼è½»æ¾æƒé™æŽ§åˆ¶ã€‚
* é«˜æ•ˆçŽ‡å¼€å‘ï¼Œä½¿ç”¨ä»£ç ç”Ÿæˆå™¨å¯ä»¥ä¸€é”®ç”Ÿæˆå‰åŽç«¯ä»£ç ã€‚
* æä¾›äº†æŠ€æœ¯æ ˆï¼ˆ[Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://gitcode.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
* æä¾›äº†å•应用版本[RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
* ä¸åˆ†ç¦»ç‰ˆæœ¬ï¼Œè¯·ç§»æ­¥[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
* é˜¿é‡Œäº‘折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)&nbsp;&nbsp;
## å†…置功能
1.  ç”¨æˆ·ç®¡ç†ï¼šç”¨æˆ·æ˜¯ç³»ç»Ÿæ“ä½œè€…,该功能主要完成系统用户配置。
2.  éƒ¨é—¨ç®¡ç†ï¼šé…ç½®ç³»ç»Ÿç»„织机构(公司、部门、小组),树结构展现支持数据权限。
3.  å²—位管理:配置系统用户所属担任职务。
4.  èœå•管理:配置系统菜单,操作权限,按钮权限标识等。
5.  è§’色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6.  å­—典管理:对系统中经常使用的一些较为固定的数据进行维护。
7.  å‚数管理:对系统动态配置常用参数。
8.  é€šçŸ¥å…¬å‘Šï¼šç³»ç»Ÿé€šçŸ¥å…¬å‘Šä¿¡æ¯å‘布维护。
9.  æ“ä½œæ—¥å¿—:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. ç™»å½•日志:系统登录日志记录查询包含登录异常。
11. åœ¨çº¿ç”¨æˆ·ï¼šå½“前系统中活跃用户状态监控。
12. å®šæ—¶ä»»åŠ¡ï¼šåœ¨çº¿ï¼ˆæ·»åŠ ã€ä¿®æ”¹ã€åˆ é™¤)任务调度包含执行结果日志。
13. ä»£ç ç”Ÿæˆï¼šå‰åŽç«¯ä»£ç çš„生成(java、html、xml、sql)支持CRUD下载 ã€‚
14. ç³»ç»ŸæŽ¥å£ï¼šæ ¹æ®ä¸šåŠ¡ä»£ç è‡ªåŠ¨ç”Ÿæˆç›¸å…³çš„api接口文档。
15. æœåŠ¡ç›‘æŽ§ï¼šç›‘è§†å½“å‰ç³»ç»ŸCPU、内存、磁盘、堆栈等相关信息。
16. ç¼“存监控:对系统的缓存信息查询,命令统计等。
17. åœ¨çº¿æž„建器:拖动表单元素生成相应的HTML代码。
18. è¿žæŽ¥æ± ç›‘视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
## åœ¨çº¿ä½“验
- admin/admin123
- é™†é™†ç»­ç»­æ”¶åˆ°ä¸€äº›æ‰“赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
演示地址:http://vue.ruoyi.vip
文档地址:http://doc.ruoyi.vip
## æ¼”示图
<table>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
    </tr>
    <tr>
        <td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
        <td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
    </tr>
</table>
## è‹¥ä¾å‰åŽç«¯åˆ†ç¦»äº¤æµç¾¤
QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/已满-160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [![加入QQ群](https://img.shields.io/badge/已满-170801498-blue.svg)](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [![加入QQ群](https://img.shields.io/badge/已满-108482800-blue.svg)](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [![加入QQ群](https://img.shields.io/badge/已满-101046199-blue.svg)](https://jq.qq.com/?_wv=1027&k=SpyH2875) [![加入QQ群](https://img.shields.io/badge/已满-136919097-blue.svg)](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [![加入QQ群](https://img.shields.io/badge/已满-143961921-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [![加入QQ群](https://img.shields.io/badge/已满-174951577-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [![加入QQ群](https://img.shields.io/badge/已满-161281055-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [![加入QQ群](https://img.shields.io/badge/已满-138988063-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [![加入QQ群](https://img.shields.io/badge/已满-151450850-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [![加入QQ群](https://img.shields.io/badge/已满-224622315-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [![加入QQ群](https://img.shields.io/badge/已满-287842588-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [![加入QQ群](https://img.shields.io/badge/187944233-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) ç‚¹å‡»æŒ‰é’®å…¥ç¾¤ã€‚
basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
@@ -121,4 +121,7 @@
    @ApiModelProperty("免检")
    private Integer isExemption;
    @ApiModelProperty("原材料id(导出用)")
    private String ids;
}
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -94,6 +94,14 @@
     * @return
     */
    List<SampleDto> getStandardTree3(@Param("sampleType") String sampleType);
    /**
     * æ ¹æ®åŽŸææ–™id列表查询原材料信息
     * @param ifsIds
     * @return
     */
    List<IfsInventoryQuantitySupplierDto> getIfsByIds(@Param("ifsIds") List<String> ifsIds);
}
basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -389,4 +389,13 @@
        where sample_type = #{sampleType}
          and sample is null
    </select>
    <!-- æ ¹æ®åŽŸææ–™id列表查询原材料信息 -->
    <select id="getIfsByIds" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto">
        <include refid="getIfsOrder"/>
        where id in
        <foreach item="id" collection="ifsIds" open="(" separator="," close=")">
            #{id}
        </foreach>
    </select>
</mapper>
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceImpowerController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
package com.ruoyi.device.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.pojo.DeviceImpower;
import com.ruoyi.device.service.DeviceImpowerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡ä½¿ç”¨æŽˆæƒè¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:23
 */
@Api(tags = "设备使用授权表")
@RestController
@RequestMapping("/deviceImpower")
public class DeviceImpowerController {
    @Resource
    private DeviceImpowerService deviceImpowerService;
    /**
     * åˆ†é¡µæŸ¥è¯¢ä½¿ç”¨æŽˆæƒ
     * @return
     */
    @ApiOperation("分页查询使用授权")
    @GetMapping("selectDeviceImpowerByPage")
    public Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(Page page, DeviceImpowerDto itemParameter){
        return deviceImpowerService.selectDeviceImpowerByPage(page, itemParameter);
    }
    /**
     * æ–°å¢žä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    @ApiOperation("新增使用授权")
    @PostMapping("/addImpower")
    public Result addImpower(@RequestBody DeviceImpowerDto deviceImpowerDto) {
        return deviceImpowerService.addImpower(deviceImpowerDto);
    }
    /**
     * ä¿®æ”¹ä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    @ApiOperation("修改使用授权")
    @PostMapping("/updateImpower")
    public Result updateImpower(@RequestBody DeviceImpowerDto deviceImpowerDto) {
        return deviceImpowerService.updateImpower(deviceImpowerDto);
    }
    /**
     * åˆ é™¤ä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    @ApiOperation("删除使用授权")
    @DeleteMapping("/deleteImpower")
    public Result deleteImpower(DeviceImpowerDto deviceImpowerDto) {
        return deviceImpowerService.deleteImpower(deviceImpowerDto);
    }
    /**
     * æŸ¥è¯¢ä½¿ç”¨æŽˆæƒè¯¦æƒ…
     */
    @ApiOperation("查询使用授权详情")
    @GetMapping("/getImpowerDetail")
    public Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId) {
        return deviceImpowerService.getImpowerDetail(impowerId);
    }
    /**
     * æäº¤æ‰¹å‡†
     */
    @ApiOperation("提交批准通知")
    @PostMapping("/submitReviewImpowerStatus")
    public Result submitReviewImpowerStatus(@RequestBody DeviceImpowerDto deviceImpowerDto) {
        return deviceImpowerService.submitReviewImpowerStatus(deviceImpowerDto);
    }
    /**
     * ä½¿ç”¨æŽˆæƒæ‰¹å‡†
     */
    @ApiOperation("授权批准")
    @PostMapping("/reviewImpowerStatus")
    public Result reviewImpowerStatus(@RequestBody DeviceImpowerDto deviceImpowerDto) {
        return deviceImpowerService.reviewImpowerStatus(deviceImpowerDto);
    }
    /**
     * å¯¼å‡ºä½¿ç”¨æŽˆæƒ
     */
    @ApiOperation("导出使用授权")
    @GetMapping("/exportDeviceImpower")
    public Result exportDeviceImpower(@RequestParam("impowerId") Integer impowerId, HttpServletResponse response) {
        return deviceImpowerService.exportDeviceImpowerDto(impowerId, response);
    }
}
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceInstructionController.java
@@ -27,7 +27,7 @@
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:29:18
 */
@RestController
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
@@ -1,27 +1,18 @@
package com.ruoyi.device.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.ruoyi.common.core.domain.Result;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.device.excel.DeviceMaintenanceExport;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.device.dto.DeviceMaintenanceDto;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.DeviceMaintenanceService;
import com.ruoyi.system.mapper.UserMapper;
import io.swagger.annotations.Api;
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;
/**
 * todo: å­™æ²³æ»¨
@@ -35,51 +26,56 @@
    private DeviceMaintenanceService deviceMaintenanceService;
    @Autowired
    private NumberGenerator<DeviceMaintenance> numberGenerator;
    private UserMapper userMapper;
    /**
     * æ–°å¢žè®¾å¤‡ç»´æŠ¤ä¿å…»
     * è®¾å¤‡ç»´æŠ¤åˆ†é¡µæŸ¥è¯¢
     * @param deviceMaintenance
     * @return
     */
    @ApiOperation(value = "新增设备维护保养")
    @PostMapping("/addDeviceMaintenance")
    public Result addDeviceMaintenance(@RequestBody 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));
    @ApiOperation(value = "设备维护分页查询")
    @GetMapping("/selectDeviceMaintenancePage")
    public Result selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance){
        return Result.success(deviceMaintenanceService.selectDeviceMaintenancePage(page, deviceMaintenance));
    }
    /**
     * é€šè¿‡è®¾å¤‡id查询设备维护保养信息
     * @param deviceId
     * @param page
     * @param deviceNumber
     * æ–°å¢žä¿®æ”¹è®¾å¤‡ç»´æŠ¤ä¿å…»
     * @param deviceMaintenance
     * @return
     */
    @ApiOperation(value = "通过设备id查询设备维护保养信息")
    @GetMapping("/getDeviceMaintenancePage")
    public Result getDeviceMaintenancePage(@RequestParam("deviceId") Integer deviceId, Page page, String deviceNumber){
        return Result.success(deviceMaintenanceService.getDeviceMaintenancePage(page, deviceId, deviceNumber));
    @ApiOperation(value = "新增修改设备维护保养")
    @PostMapping("/addDeviceMaintenance")
    public Result addDeviceMaintenance(@RequestBody DeviceMaintenance deviceMaintenance){
        if (deviceMaintenance.getDeviceId() == null) {
            throw new RuntimeException("缺少设备id");
        }
        User user = userMapper.selectById(deviceMaintenance.getMaintenanceUserId());
        deviceMaintenance.setMaintenanceUserName(user.getName());
        return Result.success(deviceMaintenanceService.saveOrUpdate(deviceMaintenance));
    }
    /**
     * åˆ é™¤è®¾å¤‡ç»´æŠ¤ä¿å…»
     * åˆ é™¤ä¿®æ”¹è®¾å¤‡ç»´æŠ¤ä¿å…»
     * @param id
     * @return
     */
    @ApiOperation(value = "新增设备维护保养")
    @ApiOperation(value = "删除修改设备维护保养")
    @DeleteMapping("/deleteDeviceMaintenance")
    public void deleteDeviceMaintenance( Integer id) {
        deviceMaintenanceService.removeById(id);
    public Result deleteDeviceMaintenance(Integer id){
        return Result.success(deviceMaintenanceService.removeById(id));
    }
    @ApiOperation(value = "设备维护记录导出")
    @GetMapping("/exportMaintenanceRecord")
    public void exportMaintenanceRecord(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception {
        deviceMaintenanceService.exportMaintenanceRecord(deviceId, response);
    /**
     * å¯¼å‡ºè®¾å¤‡ç»´æŠ¤ä¿å…»
     */
    @ApiOperation("导出设备维护保养")
    @GetMapping("/exportDeviceMaintenance")
    public void exportDeviceMaintenance(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) {
        deviceMaintenanceService.exportDeviceMaintenance(deviceId, response);
    }
}
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMetricRecordController.java
@@ -26,7 +26,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:01
 */
@Api(tags = "设备 - è®¾å¤‡æ ¡å‡†")
cnas-device/src/main/java/com/ruoyi/device/controller/DeviceStateController.java
@@ -28,7 +28,7 @@
 * è®¾å¤‡åœç”¨/启用 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-26 09:51:40
 */
@RestController
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDetailsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.device.dto;
import com.ruoyi.device.pojo.DeviceImpowerDetails;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2025/4/17
 */
@Data
public class DeviceImpowerDetailsDto extends DeviceImpowerDetails {
    @ApiModelProperty("序号")
    private Integer index;
    @ApiModelProperty("仪器设备名称")
    private String deviceName;
    @ApiModelProperty("仪器设备型号")
    private String specificationModel;
    @ApiModelProperty("仪器编号")
    private String managementNumber;
}
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceImpowerDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.device.dto;
import com.ruoyi.device.pojo.DeviceImpower;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
 * @Author zhuo
 * @Date 2025/4/17
 */
@Data
public class DeviceImpowerDto extends DeviceImpower {
    @ApiModelProperty("详情")
    private List<DeviceImpowerDetailsDto> deviceImpowerDetails;
    @ApiModelProperty("授权日期中文")
    private String auditDateCH;
    @ApiModelProperty("授权日期英文")
    private String auditDateEN;
}
cnas-device/src/main/java/com/ruoyi/device/dto/DeviceMaintenanceDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.device.dto;
import com.ruoyi.device.pojo.DeviceMaintenance;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2025/4/17
 */
@Data
public class DeviceMaintenanceDto extends DeviceMaintenance {
    @ApiModelProperty("设备名称")
    private String deviceName;
    @ApiModelProperty("设备编号")
    private String managementNumber;
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerDetailsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.device.mapper;
import com.ruoyi.device.dto.DeviceImpowerDetailsDto;
import com.ruoyi.device.pojo.DeviceImpowerDetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:39
 */
public interface DeviceImpowerDetailsMapper extends BaseMapper<DeviceImpowerDetails> {
    /**
     * æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨è¯¦æƒ…
     * @param impowerId
     * @return
     */
    List<DeviceImpowerDetailsDto> deviceImpowerDetailsList(@Param("impowerId") Integer impowerId);
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceImpowerMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
package com.ruoyi.device.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.dto.DeviceTraceabilityManagementDto;
import com.ruoyi.device.pojo.DeviceImpower;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’表 Mapper æŽ¥å£
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:23
 */
public interface DeviceImpowerMapper extends BaseMapper<DeviceImpower> {
    /**
     * åˆ†é¡µæŸ¥è¯¢ä½¿ç”¨æŽˆæƒ
     * @param page
     * @param deviceImpowerDtoQueryWrapper
     * @return
     */
    IPage<DeviceImpower> selectDeviceParameterPage(@Param("page") Page page, @Param("ew") QueryWrapper<DeviceImpowerDto> deviceImpowerDtoQueryWrapper);
    /**
     * æ ¹æ®id查询设备使用授权
     * @param traceabilityManagementId
     * @return
     */
    DeviceTraceabilityManagementDto selectDeviceTraceabilityManagementById(@Param("traceabilityManagementId") Integer traceabilityManagementId);
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java
@@ -1,12 +1,14 @@
package com.ruoyi.device.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.device.excel.DeviceMaintenanceExport;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.device.dto.DeviceMaintenanceDto;
import com.ruoyi.device.pojo.DeviceMaintenance;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
/**
 * è®¾å¤‡ç»´æŠ¤ä¿å…»
@@ -14,4 +16,11 @@
@Mapper
public interface DeviceMaintenanceMapper extends BaseMapper<DeviceMaintenance> {
    /**
     * è®¾å¤‡ç»´æŠ¤åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @return
     */
    IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(@Param("page") Page page, @Param("ew") QueryWrapper<DeviceMaintenanceDto> ew);
}
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricRecordMapper.java
@@ -8,7 +8,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:01
 */
public interface DeviceMetricRecordMapper extends BaseMapper<DeviceMetricRecord> {
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMetricsCopyMapper.java
@@ -8,7 +8,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:11
 */
public interface DeviceMetricsCopyMapper extends BaseMapper<DeviceMetricsCopy> {
cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceStateMapper.java
@@ -12,7 +12,7 @@
 * è®¾å¤‡åœç”¨/启用 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-26 09:51:40
 */
public interface DeviceStateMapper extends BaseMapper<DeviceState> {
cnas-device/src/main/java/com/ruoyi/device/mapper/InstructionMapper.java
@@ -15,7 +15,7 @@
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:29:18
 */
public interface InstructionMapper extends BaseMapper<DeviceInstruction> {
cnas-device/src/main/java/com/ruoyi/device/mapper/OperationInstructionMapper.java
@@ -11,7 +11,7 @@
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:43:32
 */
public interface OperationInstructionMapper extends BaseMapper<OperationInstruction> {
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceImpower.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.device.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * è®¾å¤‡ä½¿ç”¨æŽˆæƒè¡¨
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:23
 */
@Getter
@Setter
@TableName("device_impower")
@ApiModel(value = "DeviceImpower对象", description = "设备使用授权表")
public class DeviceImpower implements Serializable {
    @ApiModelProperty("授权id")
    @TableId(value = "impower_id", type = IdType.AUTO)
    private Integer impowerId;
    @ApiModelProperty("计划年份")
    private String impowerYear;
    @ApiModelProperty("编制人id")
    private Integer compilerId;
    @ApiModelProperty("编制人")
    private String compiler;
    @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("创建人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-device/src/main/java/com/ruoyi/device/pojo/DeviceImpowerDetails.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.device.pojo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:39
 */
@Getter
@Setter
@TableName("device_impower_details")
@ApiModel(value = "DeviceImpowerDetails对象", description = "设备量值溯源计划详情表")
public class DeviceImpowerDetails implements Serializable {
    @ApiModelProperty("设备量值溯源计划详情id")
    @TableId(value = "impower_detail_id", type = IdType.AUTO)
    private Integer impowerDetailId;
    @ApiModelProperty("设备量值溯源计划id")
    private Integer impowerId;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    @ApiModelProperty("检测项目")
    private String inspectionItem;
    @ApiModelProperty("被授权人")
    private String delegatedUser;
    @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-device/src/main/java/com/ruoyi/device/pojo/DeviceInstruction.java
@@ -14,7 +14,7 @@
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:29:18
 */
@Getter
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMaintenance.java
@@ -1,44 +1,65 @@
package com.ruoyi.device.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
import com.deepoove.poi.data.PictureRenderData;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * è®¾å¤‡ç»´æŠ¤ä¿å…»
 * è®¾å¤‡ç»´æŠ¤æ·»åŠ ç»´æŠ¤è®°å½•è¡¨
 *
 * @author makejava
 * @since 2025-04-17 11:28:56
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("device_maintenance")
public class DeviceMaintenance {
    //设备id
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("设备id")
    private Integer deviceId;
    private String deviceName;
    //编号
    private String deviceNumber;
    //统一编号
    private String managementNumber;
    //维护内容
    private String content;
    //维护日期
    @ApiModelProperty("维护日期")
    private LocalDate maintenanceDate;
    @ApiModelProperty("维护内容")
    private String maintenanceContent;
    @ApiModelProperty("维护人id")
    private Integer maintenanceUserId;
    @ApiModelProperty("维护人")
    private String maintenanceUserName;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("创建日期")
    @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;
    private LocalDateTime createTime;
    @ApiModelProperty("创建人id")
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("更新人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @TableField(select = false, exist = false)
    @ApiModelProperty("维护人图片")
    private PictureRenderData maintenanceUserUrlRender;
}
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetricRecord.java
@@ -16,7 +16,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:01
 */
@Getter
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMetricsCopy.java
@@ -16,7 +16,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›®
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:11
 */
@Getter
cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceState.java
@@ -15,7 +15,7 @@
 * è®¾å¤‡åœç”¨/启用
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-26 09:51:40
 */
@Getter
cnas-device/src/main/java/com/ruoyi/device/pojo/OperationInstruction.java
@@ -14,7 +14,7 @@
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:43:32
 */
@Getter
cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerDetailsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.device.service;
import com.ruoyi.device.pojo.DeviceImpowerDetails;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:39
 */
public interface DeviceImpowerDetailsService extends IService<DeviceImpowerDetails> {
}
cnas-device/src/main/java/com/ruoyi/device/service/DeviceImpowerService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.ruoyi.device.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.pojo.DeviceImpower;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.device.pojo.DeviceImpower;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse;
/**
 * <p>
 * è®¾å¤‡ä½¿ç”¨æŽˆæƒè¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:23
 */
public interface DeviceImpowerService extends IService<DeviceImpower> {
    /**
     * åˆ†é¡µæŸ¥è¯¢ä½¿ç”¨æŽˆæƒ
     * @param page åˆ†é¡µå‚æ•°
     * @param itemParameter ä½¿ç”¨æŽˆæƒ
     * @return
     */
    Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(@Param("page") Page page, @Param("itemParameter") DeviceImpowerDto itemParameter);
    /**
     * æ–°å¢žä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    Result addImpower(DeviceImpowerDto deviceImpowerDto);
    /**
     * ä¿®æ”¹ä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    Result updateImpower(DeviceImpowerDto deviceImpowerDto);
    /**
     * åˆ é™¤ä½¿ç”¨æŽˆæƒ
     * @param deviceImpowerDto ä½¿ç”¨æŽˆæƒ
     */
    Result deleteImpower(DeviceImpowerDto deviceImpowerDto);
    /**
     * æŸ¥è¯¢ä½¿ç”¨æŽˆæƒè¯¦æƒ…
     */
    Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId);
    /**
     * æäº¤æ‰¹å‡†
     * @param deviceImpowerDto
     * @return
     */
    Result submitReviewImpowerStatus(DeviceImpowerDto deviceImpowerDto);
    /**
     * ä½¿ç”¨æŽˆæƒå®¡æ ¸
     */
    Result reviewImpowerStatus(DeviceImpowerDto deviceImpowerDto);
    /**
     * ä½¿ç”¨æŽˆæƒå¯¼å‡º
     */
    Result exportDeviceImpowerDto(Integer impowerId, HttpServletResponse response);
}
cnas-device/src/main/java/com/ruoyi/device/service/DeviceInstructionService.java
@@ -14,7 +14,7 @@
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:29:18
 */
public interface DeviceInstructionService extends IService<DeviceInstruction> {
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMaintenanceService.java
@@ -3,21 +3,28 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.device.excel.DeviceMaintenanceExport;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.dto.DeviceMaintenanceDto;
import com.ruoyi.device.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);
    /**
     * å¯¼å‡ºWord设备维护记录
     *
 * è®¾å¤‡ç»´æŠ¤ä¿å…»
 */
public interface DeviceMaintenanceService extends IService<DeviceMaintenance> {
    /**
     * è®¾å¤‡ç»´æŠ¤åˆ†é¡µæŸ¥è¯¢
     * @return
     */
    IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance);
    /**
     * å¯¼å‡ºè®¾å¤‡ç»´æŠ¤ä¿å…»
     * @param deviceId
     * @param response
     * @return
     */
    void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response);
    void exportDeviceMaintenance(Integer deviceId, HttpServletResponse response);
}
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMetricRecordService.java
@@ -8,7 +8,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:01
 */
public interface DeviceMetricRecordService extends IService<DeviceMetricRecord> {
cnas-device/src/main/java/com/ruoyi/device/service/DeviceMetricsCopyService.java
@@ -8,7 +8,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:11
 */
public interface DeviceMetricsCopyService extends IService<DeviceMetricsCopy> {
cnas-device/src/main/java/com/ruoyi/device/service/DeviceOperationInstructionService.java
@@ -11,7 +11,7 @@
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:43:32
 */
public interface DeviceOperationInstructionService extends IService<OperationInstruction> {
cnas-device/src/main/java/com/ruoyi/device/service/DeviceStateService.java
@@ -13,7 +13,7 @@
 * è®¾å¤‡åœç”¨/启用 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-26 09:51:40
 */
public interface DeviceStateService extends IService<DeviceState> {
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerDetailsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.ruoyi.device.service.impl;
import com.ruoyi.device.pojo.DeviceImpowerDetails;
import com.ruoyi.device.mapper.DeviceImpowerDetailsMapper;
import com.ruoyi.device.service.DeviceImpowerDetailsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * è®¾å¤‡é‡å€¼æº¯æºè®¡åˆ’详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:39
 */
@Service
public class DeviceImpowerDetailsServiceImpl extends ServiceImpl<DeviceImpowerDetailsMapper, DeviceImpowerDetails> implements DeviceImpowerDetailsService {
}
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceImpowerServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,299 @@
package com.ruoyi.device.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.plugins.pagination.Page;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.constant.MenuJumpPathConstants;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.InformationNotification;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.device.dto.DeviceImpowerDetailsDto;
import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.mapper.DeviceImpowerDetailsMapper;
import com.ruoyi.device.pojo.DeviceImpower;
import com.ruoyi.device.mapper.DeviceImpowerMapper;
import com.ruoyi.device.pojo.DeviceImpower;
import com.ruoyi.device.pojo.DeviceImpowerDetails;
import com.ruoyi.device.service.DeviceImpowerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.device.service.DeviceImpowerDetailsService;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.inspect.util.UserUtils;
import com.ruoyi.system.mapper.UserMapper;
import com.ruoyi.system.service.InformationNotificationService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
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.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
 * è®¾å¤‡ä½¿ç”¨è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:23:23
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DeviceImpowerServiceImpl extends ServiceImpl<DeviceImpowerMapper, DeviceImpower> implements DeviceImpowerService {
    @Resource
    private DeviceImpowerDetailsService deviceImpowerDetailsService;
    @Resource
    private DeviceImpowerDetailsMapper deviceImpowerDetailsMapper;
    @Resource
    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
    @Resource
    private InformationNotificationService informationNotificationService;
    @Resource
    private UserMapper userMapper;
    /**
     * åˆ†é¡µæŸ¥è¯¢è®¾å¤‡ä½¿ç”¨
     *
     * @param page
     * @return
     */
    @Override
    public Result<IPage<DeviceImpower>> selectDeviceImpowerByPage(Page page, DeviceImpowerDto deviceImpowerDto) {
        IPage<DeviceImpower> iPage = baseMapper.selectDeviceParameterPage(page, QueryWrappers.queryWrappers(deviceImpowerDto));
        return Result.success(iPage);
    }
    /**
     * æ–°å¢žè®¾å¤‡ä½¿ç”¨
     *
     * @param deviceImpowerDto è®¾å¤‡ä½¿ç”¨
     */
    @Override
    public Result addImpower(DeviceImpowerDto deviceImpowerDto) {
        Integer userId = SecurityUtils.getUserId().intValue();
        User user = userMapper.selectById(userId);
        deviceImpowerDto.setCompilerId(userId);
        deviceImpowerDto.setCompiler(user.getName());
        deviceImpowerDto.setDatePreparation(LocalDateTime.now());
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceImpowerDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceImpowerDto.getAuditId());
            deviceImpowerDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceImpowerDto);
        // è¯¦æƒ…赋值并保存
        List<DeviceImpowerDetailsDto> deviceImpowerDetails = deviceImpowerDto.getDeviceImpowerDetails();
        if (CollectionUtils.isNotEmpty(deviceImpowerDetails)) { // è¯¦æƒ…不为空
            List<DeviceImpowerDetails> collect = deviceImpowerDetails.stream().map(detailsDto -> {
                detailsDto.setImpowerId(deviceImpowerDto.getImpowerId()); // ä½¿ç”¨ID
                DeviceImpowerDetails details = new DeviceImpowerDetails();
                BeanUtils.copyProperties(detailsDto, details);
                return details;
            }).collect(Collectors.toList());
            deviceImpowerDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * ä¿®æ”¹è®¾å¤‡ä½¿ç”¨
     *
     * @param deviceImpowerDto è®¾å¤‡ä½¿ç”¨
     */
    @Override
    public Result updateImpower(DeviceImpowerDto deviceImpowerDto) {
        // æŸ¥è¯¢å®¡æ ¸äººid
        if (deviceImpowerDto.getAuditId() != null) {
            User auditUser = userMapper.selectById(deviceImpowerDto.getAuditId());
            deviceImpowerDto.setAudit(auditUser.getName());
        }
        this.saveOrUpdate(deviceImpowerDto);
        // åˆ é™¤åŽŸæœ¬çš„è¯¦æƒ…
        deviceImpowerDetailsService.remove(Wrappers.<DeviceImpowerDetails>lambdaQuery().eq(DeviceImpowerDetails::getImpowerId, deviceImpowerDto.getImpowerId()));
        // è¯¦æƒ…赋值并保存
        List<DeviceImpowerDetailsDto> deviceImpowerDetails = deviceImpowerDto.getDeviceImpowerDetails();
        if (CollectionUtils.isNotEmpty(deviceImpowerDetails)) { // è¯¦æƒ…不为空
            List<DeviceImpowerDetails> collect = deviceImpowerDetails.stream().map(detailsDto -> {
                detailsDto.setImpowerId(deviceImpowerDto.getImpowerId()); // ä½¿ç”¨ID
                DeviceImpowerDetails details = new DeviceImpowerDetails();
                BeanUtils.copyProperties(detailsDto, details);
                return details;
            }).collect(Collectors.toList());
            deviceImpowerDetailsService.saveBatch(collect);
        }
        return Result.success();
    }
    /**
     * åˆ é™¤è®¾å¤‡ä½¿ç”¨
     *
     * @param deviceImpowerDto è®¾å¤‡ä½¿ç”¨
     */
    @Override
    public Result deleteImpower(DeviceImpowerDto deviceImpowerDto) {
        this.removeById(deviceImpowerDto);
        deviceImpowerDetailsService.remove(Wrappers.<DeviceImpowerDetails>lambdaQuery().eq(DeviceImpowerDetails::getImpowerId, deviceImpowerDto.getImpowerId()));
        return Result.success();
    }
    /**
     * æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨è¯¦æƒ…
     *
     * @param impowerId è®¾å¤‡ä½¿ç”¨id
     */
    @Override
    public Result<DeviceImpowerDto> getImpowerDetail(Integer impowerId) {
        // æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨
        DeviceImpower deviceImpower = baseMapper.selectById(impowerId);
        // æŸ¥è¯¢è¯¦æƒ…
        DeviceImpowerDto deviceImpowerDto = new DeviceImpowerDto();
        BeanUtils.copyProperties(deviceImpower, deviceImpowerDto);
        deviceImpowerDto.setDeviceImpowerDetails(deviceImpowerDetailsMapper.deviceImpowerDetailsList(impowerId));
        return Result.success(deviceImpowerDto);
    }
    /**
     * æäº¤æ‰¹å‡†
     * @param deviceImpowerDto
     * @return
     */
    @Override
    public Result submitReviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) {
        User audit = userMapper.selectById(deviceImpowerDto.getAuditId());
        this.update(Wrappers.<DeviceImpower>lambdaUpdate()
                .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId())
                .set(DeviceImpower::getAuditId, audit.getId())
                .set(DeviceImpower::getAudit, audit.getName())
                .set(DeviceImpower::getAuditDate, null)
                .set(DeviceImpower::getStatus, null)
                .set(DeviceImpower::getAuditRemark, null));
        DeviceImpower deviceImpower = baseMapper.selectById(deviceImpowerDto.getImpowerId());
//        // å‘送消息
//        Integer userId = SecurityUtils.getUserId().intValue();
//        User user = userMapper.selectById(userId);
//        // æ¶ˆæ¯å‘送
//        InformationNotification info = new InformationNotification();
//        // å‘送人
//        info.setCreateUser(user.getName());
//        info.setMessageType("6");
//        info.setTheme("CNAS设备使用批准通知");
//        info.setContent(deviceImpower.getPlanYear() + "年的设备使用待批准");
//        info.setSenderId(userId);
//        // æŽ¥æ”¶äºº
//        info.setConsigneeId(audit.getId());
//        info.setJumpPath(MenuJumpPathConstants.DEVICE);
//        informationNotificationService.addInformationNotification(info);
//
//        // å‘送企业微信通知
//        threadPoolTaskExecutor.execute(() -> {
//            String message = "";
//            message += "CNAS设备使用核通知";
//            message += "\n请去资源管理-设备一层目录-设备使用填写";
//            message += "\n" + deviceImpower.getPlanYear() + "年的设备使用待批准";
//            //发送企业微信消息通知
//            try {
//                WxCpUtils.inform(audit.getAccount(), message, null);
//            } catch (Exception e) {
//                throw new RuntimeException(e);
//            }
//        });
        return Result.success();
    }
    /**
     *
     *
     * @param deviceImpowerDto
     */
    @Override
    public Result reviewImpowerStatus(DeviceImpowerDto deviceImpowerDto) {
        LambdaUpdateWrapper<DeviceImpower> wrapper = Wrappers.<DeviceImpower>lambdaUpdate()
                .eq(DeviceImpower::getImpowerId, deviceImpowerDto.getImpowerId())
                .set(DeviceImpower::getAuditDate, LocalDateTime.now())
                .set(DeviceImpower::getStatus, deviceImpowerDto.getStatus())        // å®¡æ ¸çŠ¶æ€
                .set(DeviceImpower::getAuditRemark, deviceImpowerDto.getAuditRemark());// å®¡æ ¸å¤‡æ³¨
        this.update(wrapper); // æ›´æ–°
        return Result.success();
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ä½¿ç”¨
     *
     * @param impowerId è®¾å¤‡ä½¿ç”¨id
     */
    @Override
    public Result exportDeviceImpowerDto(Integer impowerId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨æŽˆæƒè®¡åˆ’
        DeviceImpower deviceImpower = baseMapper.selectById(impowerId);
        DeviceImpowerDto deviceImpowerDto = new DeviceImpowerDto();
        BeanUtils.copyProperties(deviceImpower, deviceImpowerDto);
        // æ ¼å¼åŒ–日期中英文
        DateTimeFormatter formatterCH = DateTimeFormatter.ofPattern("yyyy å¹´ MM æœˆ dd æ—¥");
        DateTimeFormatter formatterEN = DateTimeFormatter.ofPattern("yyyy 'Year' MM 'Month' dd 'Day'");
        deviceImpowerDto.setAuditDateCH(deviceImpower.getAuditDate() == null ? null : deviceImpower.getAuditDate().format(formatterCH));
        deviceImpowerDto.setAuditDateEN(deviceImpower.getAuditDate() == null ? null : deviceImpower.getAuditDate().format(formatterEN));
        // æŸ¥è¯¢è®¾å¤‡ä¿å…»è®¡åˆ’详情
        List<DeviceImpowerDetailsDto> deviceImpowerDetailsDtoList = deviceImpowerDetailsMapper.deviceImpowerDetailsList(impowerId);
        // è®¾ç½®åºå·
        deviceImpowerDetailsDtoList.forEach(deviceImpowerDetails -> {
            deviceImpowerDetails.setIndex(deviceImpowerDetailsDtoList.indexOf(deviceImpowerDetails) + 1);
        });
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-impower.docx");
        Configure configure = Configure.builder()
                .bind("deviceImpowerDetailsDtoList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("deviceImpower", deviceImpowerDto);
                    put("deviceImpowerDetailsDtoList", deviceImpowerDetailsDtoList);
                    // æŽˆæƒäººåœ°å€
                    put("auditUrl", UserUtils.getFinalUserSignatureUrl(deviceImpower.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();
    }
}
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceInstructionServiceImpl.java
@@ -28,7 +28,7 @@
 * ä½œä¸šæŒ‡å¯¼ä¹¦æ·»åŠ å—æŽ§æ–‡ä»¶è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:29:18
 */
@Service
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -1,18 +1,34 @@
package com.ruoyi.device.service.impl;
import cn.hutool.core.util.StrUtil;
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.ruoyi.device.excel.DeviceMaintenanceExport;
import com.deepoove.poi.data.Pictures;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.device.dto.DeviceImpowerDetailsDto;
import com.ruoyi.device.dto.DeviceImpowerDto;
import com.ruoyi.device.dto.DeviceMaintenanceDto;
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
import com.ruoyi.device.mapper.DeviceMapper;
import com.ruoyi.device.pojo.Device;
import com.ruoyi.device.pojo.DeviceImpower;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.DeviceMaintenanceService;
import com.ruoyi.device.service.DeviceService;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import org.apache.commons.lang3.ObjectUtils;
import com.ruoyi.inspect.util.UserUtils;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -20,57 +36,99 @@
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;
/**
 * è®¾å¤‡ç»´æŠ¤ä¿å…»
 */
@Service
public class DeviceMaintenanceImpl extends ServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements DeviceMaintenanceService {
    @Resource
    private DeviceService deviceService;
    @Resource
    private ISysDictTypeService iSysDictTypeService;
    @Value("${file.path}")
    private String imgUrl;
    /**
     * è®¾å¤‡ç»´æŠ¤åˆ†é¡µæŸ¥è¯¢
     * @return
     */
    @Override
    public IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber) {
        if (ObjectUtils.isEmpty(deviceNumber)){
            return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
                    .eq(DeviceMaintenance::getDeviceId, deviceId));
    public IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance) {
        if (deviceMaintenance.getDeviceId() == null) {
            return new Page();
        }
       else return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery()
                .eq(DeviceMaintenance::getDeviceId, deviceId)
                .like(DeviceMaintenance::getDeviceNumber, deviceNumber));
        return baseMapper.selectDeviceMaintenancePage(page, QueryWrappers.queryWrappers(deviceMaintenance));
    }
    /**
     * å¯¼å‡ºè®¾å¤‡ç»´æŠ¤ä¿å…»
     * @param deviceId
     * @param response
     */
    @Override
    public void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response) {
        // æŸ¥è¯¢cnas设备维修记录
    public void exportDeviceMaintenance(Integer deviceId, HttpServletResponse response) {
        // æŸ¥è¯¢è®¾å¤‡ç»´æŠ¤ä¿å…»
        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));
                .eq(DeviceMaintenance::getDeviceId, deviceId));
        // èŽ·å–åˆ°ç¬¬ä¸€ä¸ªè®¾å¤‡ä½¿ç”¨æŽˆæƒ
        DeviceMaintenanceDto deviceMaintenanceDto = new DeviceMaintenanceDto();
        List<SysDictData> sysDictDataList = null;
        if (CollectionUtils.isNotEmpty(deviceMaintenanceList)) {
            BeanUtils.copyProperties(deviceMaintenanceList.get(0), deviceMaintenanceDto);
            // æŸ¥è¯¢è®¾å¤‡ä¿¡æ¯
            Device device = deviceService.getById(deviceId);
            deviceMaintenanceDto.setDeviceName(device.getDeviceName());
            deviceMaintenanceDto.setManagementNumber(device.getManagementNumber());
            //查询维护保养导出字典值
            sysDictDataList = getDeviceMaintenanceDict(device);
        }
        // æ·»åŠ å­—å…¸æžšä¸¾å€¼
        for (DeviceMaintenance deviceMaintenance : deviceMaintenanceList) {
            StringBuilder maintenanceContent = new StringBuilder(deviceMaintenance.getMaintenanceContent());
            if (CollectionUtils.isNotEmpty(sysDictDataList) && StringUtils.isNotBlank(deviceMaintenance.getMaintenanceContent())) {
                maintenanceContent = new StringBuilder();
                List<String> splitList = StrUtil.split(deviceMaintenance.getMaintenanceContent(), ',');
                // å¾ªçŽ¯åˆ¤æ–­æ˜¯å¦æœ‰ä¸€æ ·key
                for (SysDictData sysDictData : sysDictDataList) {
                    if (splitList.contains(sysDictData.getDictLabel())) {
                        maintenanceContent.append("☑").append(sysDictData.getDictLabel()).append(" ");
                    } else {
                        maintenanceContent.append("□").append(sysDictData.getDictLabel()).append(" ");
                    }
                }
            }
            deviceMaintenance.setMaintenanceContent(maintenanceContent.toString());
            // æ·»åŠ ç»´æŠ¤äººå›¾ç‰‡
            deviceMaintenance.setMaintenanceUserUrlRender(UserUtils.getFinalUserSignatureUrl(deviceMaintenance.getMaintenanceUserId()));
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/maintenance-records.docx");
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word/device-maintenance.docx");
        Configure configure = Configure.builder()
                .bind("deviceMaintenanceList", new HackLoopTableRenderPolicy())
                .bind("deviceMaintenances", 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);
                    put("device", deviceMaintenanceDto);
                    put("deviceMaintenances", deviceMaintenanceList);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "设备维护保养记录", "UTF-8");
                    "设备保养维护", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
@@ -81,6 +139,58 @@
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
    }
    /**
     * ****查询维护保养导出字典值***
     * @param device
     */
    private List<SysDictData> getDeviceMaintenanceDict(Device device) {
        List<SysDictData> sysDictDataList = new ArrayList<>();
        // æŸ¥è¯¢ç»´æŠ¤ä¿å…»å¯¼å‡ºå­—典值
        if (StringUtils.isNotBlank(device.getStoragePoint())) {
            String dictType = null;
            switch (device.getStoragePoint()) {
                case "老化室":
                    dictType = "aging_maintenance_content";
                    break;
                case "老化实验室":
                    dictType = "aging_maintenance_content";
                    break;
                case "电性能实验室":
                    dictType = "electrical_maintenance_content";
                    break;
                case "环境实验室":
                    dictType = "environmental_maintenance_content";
                    break;
                case "燃烧实验室":
                    dictType = "burn_maintenance_content";
                    break;
                case "混炼实验室":
                    dictType = "mixing_maintenance_content";
                    break;
                case "检测中心电性能实验室":
                    dictType = "center_electrical_maintenance_content";
                    break;
                case "恒温二":
                    dictType = "temperature2_maintenance_content";
                    break;
                case "恒温一":
                    dictType = "temperature1_maintenance_content";
                    break;
                case "化学实验室":
                    dictType = "chemistry_maintenance_content";
                    break;
                case "制样室":
                    dictType = "sample_maintenance_content";
                    break;
                case "低温实验室":
                    dictType = "hypothermia_maintenance_content";
                    break;
            }
            sysDictDataList = iSysDictTypeService.selectDictDataByType(dictType);
        }
        return sysDictDataList;
    }
}
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricRecordServiceImpl.java
@@ -11,7 +11,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:01
 */
@Service
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMetricsCopyServiceImpl.java
@@ -11,7 +11,7 @@
 * è®¾å¤‡æ ¡å‡† - æ ¡å‡†è®°å½• - æ ¡å‡†æ¡ç›® æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-27 10:20:11
 */
@Service
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceOperationInstructionServiceImpl.java
@@ -14,7 +14,7 @@
 * è®¾å¤‡ - ä½œä¸šæŒ‡å¯¼ä¹¦ æ·»åŠ å—æŽ§æ–‡ä»¶ å­ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-04 10:43:32
 */
@Service
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -44,6 +44,7 @@
import java.io.OutputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -396,11 +397,11 @@
                DeviceMaintenance deviceMaintenance = deviceMaintenanceList.get(i);
                DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                // ç»´ä¿®æ—¥æœŸ
                deviceMetricRecordAndMaintenanceDto.setMaintenanceDateString(deviceMaintenance.getDate().format(dateTimeFormatter));
                deviceMetricRecordAndMaintenanceDto.setMaintenanceDateString(deviceMaintenance.getMaintenanceDate().format(dateTimeFormatter));
                // å¤„理方法
                deviceMetricRecordAndMaintenanceDto.setHandlingMethod(deviceMaintenance.getContent());
                deviceMetricRecordAndMaintenanceDto.setHandlingMethod(deviceMaintenance.getMaintenanceContent());
                // å¤‡æ³¨
                deviceMetricRecordAndMaintenanceDto.setComments(deviceMaintenance.getComments());
                deviceMetricRecordAndMaintenanceDto.setComments(deviceMaintenance.getRemark());
            }
            deviceMetricRecordAndMaintenanceDtoList.add(deviceMetricRecordAndMaintenanceDto);
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceStateServiceImpl.java
@@ -33,7 +33,7 @@
 * è®¾å¤‡åœç”¨/启用 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-09-26 09:51:40
 */
@Service
cnas-device/src/main/java/com/ruoyi/device/task/DeviceRecordSchedule.java
@@ -31,7 +31,7 @@
     * æé†’填写设备使用记录
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 9 * * 6") // æ¯å‘¨å…­æ‰§è¡Œä¸€æ¬¡
    @Scheduled(cron = "0 0 9 * * 6") // æ¯å‘¨å…­æ‰§è¡Œä¸€æ¬¡
    public void task1() {
        // æŸ¥è¯¢æœªå¡«å†™çš„设备使用记录
        List<DeviceRecordDto> deviceRecords = deviceRecordMapper.selectNotFilled();
cnas-device/src/main/resources/mapper/DeviceBorrowMapper.xml
@@ -6,7 +6,7 @@
        select * from (
        select db.*,device_name
        from device_borrow db
        left join `center-lims`.device on db.device_id=device.id
        left join device on db.device_id=device.id
        )a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
@@ -15,7 +15,7 @@
    <select id="getDeviceBorrowBydeviceId" resultType="com.ruoyi.device.pojo.DeviceBorrow">
        select db.*,device_name
        from device_borrow db
                 left join `center-lims`.device on db.device_id=device.id
                 left join device on db.device_id=device.id
        where device_id=#{deviceId}
    </select>
</mapper>
cnas-device/src/main/resources/mapper/DeviceImpowerDetailsMapper.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.ruoyi.device.mapper.DeviceImpowerDetailsMapper">
    <!-- æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨è¯¦æƒ… -->
    <select id="deviceImpowerDetailsList" resultType="com.ruoyi.device.dto.DeviceImpowerDetailsDto">
        select
            did.*,
            d.device_name,
            d.specification_model,
            d.management_number
        from device_impower_details did
                 left join device d on did.device_id = d.id
        where did.impower_id = #{impowerId}
    </select>
</mapper>
cnas-device/src/main/resources/mapper/DeviceImpowerMapper.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.ruoyi.device.mapper.DeviceImpowerMapper">
    <select id="selectDeviceParameterPage" resultType="com.ruoyi.device.pojo.DeviceImpower">
        select
        *
        from device_impower
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-device/src/main/resources/mapper/DeviceMaintenanceMapper.xml
@@ -3,4 +3,18 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.device.mapper.DeviceMaintenanceMapper">
    <!-- è®¾å¤‡ç»´æŠ¤åˆ†é¡µæŸ¥è¯¢ -->
    <select id="selectDeviceMaintenancePage" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto">
        select * from (
        select db.*,
        d.device_name,
        d.management_number
        from device_maintenance db
        left join device d on db.device_id = d.id)a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
        order by maintenance_date desc
    </select>
</mapper>
cnas-device/src/main/resources/mapper/DeviceTraceabilityManagementDetailsMapper.xml
@@ -7,7 +7,6 @@
        select
            dtmd.*,
            d.device_name,
            d.device_name,
            d.specification_model,
            d.management_number
        from device_traceability_management_details dtmd
cnas-device/src/main/resources/static/word/device-impower.docx
Binary files differ
cnas-device/src/main/resources/static/word/device-maintenance.docx
Binary files differ
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalCorrectController.java
@@ -26,7 +26,7 @@
 * å†…审管理纠正处理表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:15
 */
@Api(tags = "内审纠正措施")
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalMeetingController.java
@@ -23,7 +23,7 @@
 * å†…审会议表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:50:44
 */
@Api(tags = "内审会议")
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalPlanController.java
@@ -24,7 +24,7 @@
 * å†…审年度计划 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:27:47
 */
@Api(tags = "内审年度计划")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageControlPlanListController.java
@@ -28,7 +28,7 @@
 * é‡å¤§é£Žé™©å› ç´ åˆ†æžåŠæŽ§åˆ¶è®¡åˆ’清单 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:30
 */
@Api(tags = "重大风险因素分析及控制计划清单")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentAlterController.java
@@ -24,7 +24,7 @@
 * æ–‡ä»¶å˜æ›´ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 11:04:01
 */
@Api(tags = "管理体系文件的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java
@@ -23,7 +23,7 @@
 * æ–‡ä»¶ä½œåºŸ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 02:37:35
 */
@Api(tags = "管理体系文件的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentControlledController.java
@@ -23,7 +23,7 @@
 * æ–‡ä»¶å—控 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 02:54:44
 */
@Api(tags = "管理体系文件的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentIssueRecycleController.java
@@ -24,7 +24,7 @@
 * æ–‡ä»¶å‘放回收 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 09:18:24
 */
@Api(tags = "管理体系文件的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentListController.java
@@ -27,7 +27,7 @@
 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 11:08:11
 */
@Api(tags = "管理体系文件的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageMeetingController.java
@@ -19,7 +19,7 @@
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:33:47
 */
@Api(tags = "管理评审会议")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageMeetingParticipantsController.java
@@ -18,7 +18,7 @@
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:34:27
 */
@Api(tags = "管理评审会议")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java
@@ -23,7 +23,7 @@
 * æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 10:29:18
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java
@@ -25,7 +25,7 @@
 * ä½œåºŸæ–‡ä»¶é”€é­‚记录 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 01:27:22
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCheckController.java
@@ -24,7 +24,7 @@
 * æ–‡ä»¶å®¡æ‰¹è®°å½•(含修订后再次审批记录) å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:31:36
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsController.java
@@ -24,7 +24,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 10:54:31
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java
@@ -21,7 +21,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•总历史记录表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 01:12:11
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java
@@ -24,7 +24,7 @@
 * æ‰€æœ‰æ–‡ä»¶(内、外部文件)的发放与回收记录 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 09:11:05
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java
@@ -21,7 +21,7 @@
 * å¤–来文件确认记录总历史记录表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:30:08
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java
@@ -23,7 +23,7 @@
 * å¤–来文件确认记录 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:29:44
 */
@Api(tags = "记录的控制")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramController.java
@@ -19,7 +19,7 @@
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 03:05:42
 */
@Api(tags = "管理评审计划")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java
@@ -19,7 +19,7 @@
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 04:15:47
 */
@Api(tags = "管理评审计划文件")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewReportController.java
@@ -19,7 +19,7 @@
 * ç®¡ç†è¯„审报告 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 04:44:39
 */
@Api(tags = "管理评审报告")
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRiskAssessmentResultsController.java
@@ -33,7 +33,7 @@
 * å±é™©å› ç´ è¾¨è¯†ä¸Žé£Žé™©è¯„价结果一览表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:51
 */
@Api(tags = "危险因素辨识与风险评价结果一览表")
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalCorrectFileMapper.java
@@ -9,7 +9,7 @@
 * å†…审管理纠正措施附件表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:38
 */
@Mapper
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalCorrectMapper.java
@@ -13,7 +13,7 @@
 * å†…审管理纠正处理表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:15
 */
@Mapper
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalMeetingDetailMapper.java
@@ -8,7 +8,7 @@
 * å†…审会议详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:56:13
 */
public interface InternalMeetingDetailMapper extends BaseMapper<InternalMeetingDetail> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalMeetingMapper.java
@@ -13,7 +13,7 @@
 * å†…审会议表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:50:44
 */
public interface InternalMeetingMapper extends BaseMapper<InternalMeeting> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalPlanDetailMapper.java
@@ -9,7 +9,7 @@
 * å†…审年度计划详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:28:48
 */
@Mapper
cnas-manage/src/main/java/com/ruoyi/manage/mapper/InternalPlanMapper.java
@@ -14,7 +14,7 @@
 * å†…审年度计划 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:27:47
 */
@Mapper
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageControlPlanListMapper.java
@@ -12,7 +12,7 @@
 * é‡å¤§é£Žé™©å› ç´ åˆ†æžåŠæŽ§åˆ¶è®¡åˆ’清单 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:30
 */
public interface ManageControlPlanListMapper extends BaseMapper<ManageControlPlanList> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentAlterMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å˜æ›´ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 11:04:01
 */
public interface ManageDocumentAlterMapper extends BaseMapper<ManageDocumentAlter> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentCancelMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶ä½œåºŸ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 02:37:35
 */
public interface ManageDocumentCancelMapper extends BaseMapper<ManageDocumentCancel> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentControlledMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å—控 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 02:54:44
 */
public interface ManageDocumentControlledMapper extends BaseMapper<ManageDocumentControlled> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentIssueRecycleMapper.java
@@ -13,7 +13,7 @@
 * æ–‡ä»¶å‘放回收 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 09:18:24
 */
public interface ManageDocumentIssueRecycleMapper extends BaseMapper<ManageDocumentIssueRecycle> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageDocumentListMapper.java
@@ -13,7 +13,7 @@
 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 11:08:11
 */
public interface ManageDocumentListMapper extends BaseMapper<ManageDocumentList> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageMeetingMapper.java
@@ -12,7 +12,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:33:47
 */
public interface ManageMeetingMapper extends BaseMapper<ManageMeeting> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageMeetingParticipantsMapper.java
@@ -8,7 +8,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:34:27
 */
public interface ManageMeetingParticipantsMapper extends BaseMapper<ManageMeetingParticipants> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordAuditMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 10:29:18
 */
public interface ManageRecordAuditMapper extends BaseMapper<ManageRecordAudit> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordCancelMapper.java
@@ -12,7 +12,7 @@
 * ä½œåºŸæ–‡ä»¶é”€é­‚记录 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 01:27:22
 */
public interface ManageRecordCancelMapper extends BaseMapper<ManageRecordCancel> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordCheckMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å®¡æ‰¹è®°å½•(含修订后再次审批记录) Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:31:36
 */
public interface ManageRecordCheckMapper extends BaseMapper<ManageRecordCheck> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIntervalsMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 10:54:31
 */
public interface ManageRecordIntervalsMapper extends BaseMapper<ManageRecordIntervals> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIntervalsTotalMapper.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•总历史记录表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 01:12:11
 */
public interface ManageRecordIntervalsTotalMapper extends BaseMapper<ManageRecordIntervalsTotal> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordIssueRecycleMapper.java
@@ -12,7 +12,7 @@
 * æ‰€æœ‰æ–‡ä»¶(内、外部文件)的发放与回收记录 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 09:11:05
 */
public interface ManageRecordIssueRecycleMapper extends BaseMapper<ManageRecordIssueRecycle> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordTotalMapper.java
@@ -12,7 +12,7 @@
 * å¤–来文件确认记录总历史记录表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:30:08
 */
public interface ManageRecordTotalMapper extends BaseMapper<ManageRecordTotal> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRecordVerifyMapper.java
@@ -12,7 +12,7 @@
 * å¤–来文件确认记录 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:29:44
 */
public interface ManageRecordVerifyMapper extends BaseMapper<ManageRecordVerify> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewProgramFileMapper.java
@@ -8,7 +8,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 04:15:47
 */
public interface ManageReviewProgramFileMapper extends BaseMapper<ManageReviewProgramFile> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewProgramMapper.java
@@ -11,7 +11,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 03:05:42
 */
public interface ManageReviewProgramMapper extends BaseMapper<ManageReviewProgram> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageReviewReportMapper.java
@@ -11,7 +11,7 @@
 * ç®¡ç†è¯„审报告 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 04:44:39
 */
public interface ManageReviewReportMapper extends BaseMapper<ManageReviewReport> {
cnas-manage/src/main/java/com/ruoyi/manage/mapper/ManageRiskAssessmentResultsMapper.java
@@ -12,7 +12,7 @@
 * å±é™©å› ç´ è¾¨è¯†ä¸Žé£Žé™©è¯„价结果一览表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:51
 */
public interface ManageRiskAssessmentResultsMapper extends BaseMapper<ManageRiskAssessmentResults> {
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalCorrect.java
@@ -13,7 +13,7 @@
 * å†…审管理纠正处理表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:15
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalCorrectFile.java
@@ -12,7 +12,7 @@
 * å†…审管理纠正措施附件表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:38
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalMeeting.java
@@ -12,7 +12,7 @@
 * å†…审会议表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:50:44
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalMeetingDetail.java
@@ -12,7 +12,7 @@
 * å†…审会议详情表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:56:13
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalPlan.java
@@ -12,7 +12,7 @@
 * å†…审年度计划
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:27:47
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/InternalPlanDetail.java
@@ -12,7 +12,7 @@
 * å†…审年度计划详情表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:28:48
 */
@Data
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageControlPlanList.java
@@ -17,7 +17,7 @@
 * é‡å¤§é£Žé™©å› ç´ åˆ†æžåŠæŽ§åˆ¶è®¡åˆ’清单
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:30
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentAlter.java
@@ -20,7 +20,7 @@
 * æ–‡ä»¶å˜æ›´
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 11:04:01
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentCancel.java
@@ -21,7 +21,7 @@
 * æ–‡ä»¶ä½œåºŸ
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 02:37:35
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentControlled.java
@@ -20,7 +20,7 @@
 * æ–‡ä»¶å—控
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 02:54:44
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentIssueRecycle.java
@@ -21,7 +21,7 @@
 * æ–‡ä»¶å‘放回收
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 09:18:24
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageDocumentList.java
@@ -21,7 +21,7 @@
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 11:08:11
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageMeeting.java
@@ -14,7 +14,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:33:47
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageMeetingParticipants.java
@@ -14,7 +14,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:34:27
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordAudit.java
@@ -20,7 +20,7 @@
 * æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 10:29:18
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordCancel.java
@@ -19,7 +19,7 @@
 * ä½œåºŸæ–‡ä»¶é”€é­‚记录
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 01:27:22
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordCheck.java
@@ -21,7 +21,7 @@
 * æ–‡ä»¶å®¡æ‰¹è®°å½•(含修订后再次审批记录)
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:31:36
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIntervals.java
@@ -16,7 +16,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 10:54:31
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIntervalsTotal.java
@@ -21,7 +21,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•总历史记录表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 01:12:11
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordIssueRecycle.java
@@ -21,7 +21,7 @@
 * æ‰€æœ‰æ–‡ä»¶(内、外部文件)的发放与回收记录
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 09:11:05
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordTotal.java
@@ -21,7 +21,7 @@
 * å¤–来文件确认记录总历史记录表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:30:08
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRecordVerify.java
@@ -20,7 +20,7 @@
 * å¤–来文件确认记录
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:29:44
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java
@@ -14,7 +14,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 03:05:42
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgramFile.java
@@ -14,7 +14,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 04:15:47
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewReport.java
@@ -14,7 +14,7 @@
 * ç®¡ç†è¯„审报告
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 04:44:39
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageRiskAssessmentResults.java
@@ -18,7 +18,7 @@
 * å±é™©å› ç´ è¾¨è¯†ä¸Žé£Žé™©è¯„价结果一览表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:51
 */
@Getter
cnas-manage/src/main/java/com/ruoyi/manage/schedule/ManageRecordTotalSchedule.java
@@ -20,7 +20,7 @@
    @Resource
    private ManageRecordIntervalsTotalService manageRecordIntervalsTotalService;
//    @Scheduled(cron = "0 0 2 1 1 ?") //每年1月1号2点
    @Scheduled(cron = "0 0 2 1 1 ?") //每年1月1号2点
    public void manageRecordTotal() {
        ManageRecordTotal manageRecordTotal = new ManageRecordTotal();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalCorrectFileService.java
@@ -8,7 +8,7 @@
 * å†…审管理纠正措施附件表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:38
 */
public interface InternalCorrectFileService extends IService<InternalCorrectFile> {
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalCorrectService.java
@@ -15,7 +15,7 @@
 * å†…审管理纠正处理表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:15
 */
public interface InternalCorrectService extends IService<InternalCorrect> {
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalMeetingDetailService.java
@@ -8,7 +8,7 @@
 * å†…审会议详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:56:13
 */
public interface InternalMeetingDetailService extends IService<InternalMeetingDetail> {
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalMeetingService.java
@@ -13,7 +13,7 @@
 * å†…审会议表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:50:44
 */
public interface InternalMeetingService extends IService<InternalMeeting> {
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalPlanDetailService.java
@@ -8,7 +8,7 @@
 * å†…审年度计划详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:28:48
 */
public interface InternalPlanDetailService extends IService<InternalPlanDetail> {
cnas-manage/src/main/java/com/ruoyi/manage/service/InternalPlanService.java
@@ -13,7 +13,7 @@
 * å†…审年度计划 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:27:47
 */
public interface InternalPlanService extends IService<InternalPlan> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageControlPlanListService.java
@@ -13,7 +13,7 @@
 * é‡å¤§é£Žé™©å› ç´ åˆ†æžåŠæŽ§åˆ¶è®¡åˆ’清单 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:30
 */
public interface ManageControlPlanListService extends IService<ManageControlPlanList> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentAlterService.java
@@ -13,7 +13,7 @@
 * æ–‡ä»¶å˜æ›´ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 11:04:01
 */
public interface ManageDocumentAlterService extends IService<ManageDocumentAlter> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentCancelService.java
@@ -13,7 +13,7 @@
 * æ–‡ä»¶ä½œåºŸ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 02:37:35
 */
public interface ManageDocumentCancelService extends IService<ManageDocumentCancel> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentControlledService.java
@@ -13,7 +13,7 @@
 * æ–‡ä»¶å—控 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 02:54:44
 */
public interface ManageDocumentControlledService extends IService<ManageDocumentControlled> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentIssueRecycleService.java
@@ -14,7 +14,7 @@
 * æ–‡ä»¶å‘放回收 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 09:18:24
 */
public interface ManageDocumentIssueRecycleService extends IService<ManageDocumentIssueRecycle> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageDocumentListService.java
@@ -15,7 +15,7 @@
 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 11:08:11
 */
public interface ManageDocumentListService extends IService<ManageDocumentList> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageMeetingParticipantsService.java
@@ -9,7 +9,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:34:27
 */
public interface ManageMeetingParticipantsService extends IService<ManageMeetingParticipants> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageMeetingService.java
@@ -13,7 +13,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:33:47
 */
public interface ManageMeetingService extends IService<ManageMeeting> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordAuditService.java
@@ -13,7 +13,7 @@
 * æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 10:29:18
 */
public interface ManageRecordAuditService extends IService<ManageRecordAudit> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordCancelService.java
@@ -14,7 +14,7 @@
 * ä½œåºŸæ–‡ä»¶é”€é­‚记录 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 01:27:22
 */
public interface ManageRecordCancelService extends IService<ManageRecordCancel> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordCheckService.java
@@ -14,7 +14,7 @@
 * æ–‡ä»¶å®¡æ‰¹è®°å½•(含修订后再次审批记录) æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:31:36
 */
public interface ManageRecordCheckService extends IService<ManageRecordCheck> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIntervalsService.java
@@ -14,7 +14,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 10:54:31
 */
public interface ManageRecordIntervalsService extends IService<ManageRecordIntervals> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIntervalsTotalService.java
@@ -12,7 +12,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•总历史记录表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 01:12:11
 */
public interface ManageRecordIntervalsTotalService extends IService<ManageRecordIntervalsTotal> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordIssueRecycleService.java
@@ -14,7 +14,7 @@
 * æ‰€æœ‰æ–‡ä»¶(内、外部文件)的发放与回收记录 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 09:11:05
 */
public interface ManageRecordIssueRecycleService extends IService<ManageRecordIssueRecycle> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordTotalService.java
@@ -12,7 +12,7 @@
 * å¤–来文件确认记录总历史记录表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:30:08
 */
public interface ManageRecordTotalService extends IService<ManageRecordTotal> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRecordVerifyService.java
@@ -13,7 +13,7 @@
 * å¤–来文件确认记录 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:29:44
 */
public interface ManageRecordVerifyService extends IService<ManageRecordVerify> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewProgramFileService.java
@@ -10,7 +10,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 04:15:47
 */
public interface ManageReviewProgramFileService extends IService<ManageReviewProgramFile> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewProgramService.java
@@ -12,7 +12,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 03:05:42
 */
public interface ManageReviewProgramService extends IService<ManageReviewProgram> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageReviewReportService.java
@@ -12,7 +12,7 @@
 * ç®¡ç†è¯„审报告 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 04:44:39
 */
public interface ManageReviewReportService extends IService<ManageReviewReport> {
cnas-manage/src/main/java/com/ruoyi/manage/service/ManageRiskAssessmentResultsService.java
@@ -13,7 +13,7 @@
 * å±é™©å› ç´ è¾¨è¯†ä¸Žé£Žé™©è¯„价结果一览表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:51
 */
public interface ManageRiskAssessmentResultsService extends IService<ManageRiskAssessmentResults> {
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectFileServiceImpl.java
@@ -11,7 +11,7 @@
 * å†…审管理纠正措施附件表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:38
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalCorrectServiceImpl.java
@@ -43,7 +43,7 @@
 * å†…审管理纠正处理表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 04:00:15
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingDetailServiceImpl.java
@@ -11,7 +11,7 @@
 * å†…审会议详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:56:13
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalMeetingServiceImpl.java
@@ -39,7 +39,7 @@
 * å†…审会议表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:50:44
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanDetailServiceImpl.java
@@ -11,7 +11,7 @@
 * å†…审年度计划详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:28:48
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/InternalPlanServiceImpl.java
@@ -44,7 +44,7 @@
 * å†…审年度计划 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:27:47
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageControlPlanListServiceImpl.java
@@ -35,7 +35,7 @@
 * é‡å¤§é£Žé™©å› ç´ åˆ†æžåŠæŽ§åˆ¶è®¡åˆ’清单 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:30
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java
@@ -42,7 +42,7 @@
 * æ–‡ä»¶å˜æ›´ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 11:04:01
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentCancelServiceImpl.java
@@ -38,7 +38,7 @@
 * æ–‡ä»¶ä½œåºŸ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 02:37:35
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentControlledServiceImpl.java
@@ -34,7 +34,7 @@
 * æ–‡ä»¶å—控 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 02:54:44
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentIssueRecycleServiceImpl.java
@@ -41,7 +41,7 @@
 * æ–‡ä»¶å‘放回收 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 09:18:24
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentListServiceImpl.java
@@ -36,7 +36,7 @@
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-08 11:08:11
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingParticipantsServiceImpl.java
@@ -18,7 +18,7 @@
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:34:27
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageMeetingServiceImpl.java
@@ -38,7 +38,7 @@
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-11 09:33:47
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordAuditServiceImpl.java
@@ -43,7 +43,7 @@
 * æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 10:29:18
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCancelServiceImpl.java
@@ -46,7 +46,7 @@
 * ä½œåºŸæ–‡ä»¶é”€é­‚记录 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 01:27:22
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordCheckServiceImpl.java
@@ -48,7 +48,7 @@
 * æ–‡ä»¶å®¡æ‰¹è®°å½•(含修订后再次审批记录) æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 02:31:36
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsServiceImpl.java
@@ -44,7 +44,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 10:54:31
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIntervalsTotalServiceImpl.java
@@ -46,7 +46,7 @@
 * æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½•总历史记录表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 01:12:11
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordIssueRecycleServiceImpl.java
@@ -46,7 +46,7 @@
 * æ‰€æœ‰æ–‡ä»¶(内、外部文件)的发放与回收记录 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 09:11:05
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordTotalServiceImpl.java
@@ -48,7 +48,7 @@
 * å¤–来文件确认记录总历史记录表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:30:08
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRecordVerifyServiceImpl.java
@@ -37,7 +37,7 @@
 * å¤–来文件确认记录 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 10:29:44
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramFileServiceImpl.java
@@ -22,7 +22,7 @@
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 04:15:47
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewProgramServiceImpl.java
@@ -35,7 +35,7 @@
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 03:05:42
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageReviewReportServiceImpl.java
@@ -33,7 +33,7 @@
 * ç®¡ç†è¯„审报告 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-12 04:44:39
 */
@Service
cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java
@@ -30,7 +30,7 @@
 * å±é™©å› ç´ è¾¨è¯†ä¸Žé£Žé™©è¯„价结果一览表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:58:51
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java
@@ -18,7 +18,7 @@
 * æ²Ÿé€šè®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 12:00:57
 */
@Api(tags = "人员 - æ²Ÿé€šè®°å½•")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java
@@ -18,7 +18,7 @@
 * å²—位职责 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 02:07:49
 */
@Api(tags = "人员 - å²—位职责")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java
@@ -21,7 +21,7 @@
 * äººå‘˜èƒ½åŠ› å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-10 11:26:18
 */
@Api(tags = "人员 - äººå‘˜èƒ½åŠ›")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java
@@ -19,7 +19,7 @@
 * ä»»èŒæŽˆæƒè®°å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 10:48:17
 */
@Api(tags = "人员 - ä»»èŒæŽˆæƒè®°å½•")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java
@@ -26,7 +26,7 @@
 * å¥–惩记录 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-08 11:25:02
 */
@Api(tags = "人员 - å¥–惩记录")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java
@@ -32,7 +32,7 @@
 * åŸ¹è®­è®¡åˆ’ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
@Api(tags = "人员 - åŸ¹è®­è®¡åˆ’")
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java
@@ -20,7 +20,7 @@
 * åŸ¹è®­è®¡åˆ’ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
@Api(tags = "人员 - åŸ¹è®­è®°å½•")
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java
@@ -12,7 +12,7 @@
 * æ²Ÿé€šèƒ½åŠ› Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 12:00:57
 */
public interface PersonCommunicationAbilityMapper extends BaseMapper<PersonCommunicationAbility> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java
@@ -12,7 +12,7 @@
 * å²—位职责 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 02:07:49
 */
public interface PersonJobResponsibilitiesMapper extends BaseMapper<PersonJobResponsibilities> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java
@@ -13,7 +13,7 @@
 * äººå‘˜èƒ½åŠ› Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-10 11:26:18
 */
public interface PersonPersonnelCapacityMapper extends BaseMapper<PersonPersonnelCapacity> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java
@@ -12,7 +12,7 @@
 * ä»»èŒæŽˆæƒè®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 10:48:17
 */
public interface PersonPostAuthorizationRecordMapper extends BaseMapper<PersonPostAuthorizationRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java
@@ -16,7 +16,7 @@
 * å¥–惩记录 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-08 11:25:02
 */
public interface PersonRewardPunishmentRecordMapper extends BaseMapper<PersonRewardPunishmentRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java
@@ -14,7 +14,7 @@
 * åŸ¹è®­è®¡åˆ’详情 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:46:27
 */
public interface PersonTrainingDetailedMapper extends MyBaseMapper<PersonTrainingDetailed> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java
@@ -12,7 +12,7 @@
 * åŸ¹è®­è®¡åˆ’ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
public interface PersonTrainingMapper extends BaseMapper<PersonTraining> {
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java
@@ -16,7 +16,7 @@
 * åŸ¹è®­è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-12 04:50:48
 */
public interface PersonTrainingRecordMapper extends BaseMapper<PersonTrainingRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java
@@ -15,7 +15,7 @@
 * æ²Ÿé€šè®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 12:00:57
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java
@@ -14,7 +14,7 @@
 * å²—位职责
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 02:07:49
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java
@@ -14,7 +14,7 @@
 * äººå‘˜èƒ½åŠ›
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-10 11:26:18
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java
@@ -14,7 +14,7 @@
 * ä»»èŒæŽˆæƒè®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 10:48:17
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java
@@ -14,7 +14,7 @@
 * å¥–惩记录
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-08 11:25:02
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java
@@ -14,7 +14,7 @@
 * åŸ¹è®­è®¡åˆ’
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java
@@ -15,7 +15,7 @@
 * åŸ¹è®­è®¡åˆ’详情
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:46:27
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java
@@ -15,7 +15,7 @@
 * åŸ¹è®­è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-12 04:50:48
 */
@Getter
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java
@@ -13,7 +13,7 @@
 * æ²Ÿé€šèƒ½åŠ› æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 12:00:57
 */
public interface PersonCommunicationAbilityService extends IService<PersonCommunicationAbility> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java
@@ -13,7 +13,7 @@
 * å²—位职责 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 02:07:49
 */
public interface PersonJobResponsibilitiesService extends IService<PersonJobResponsibilities> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java
@@ -13,7 +13,7 @@
 * äººå‘˜èƒ½åŠ› æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-10 11:26:18
 */
public interface PersonPersonnelCapacityService extends IService<PersonPersonnelCapacity> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java
@@ -13,7 +13,7 @@
 * ä»»èŒæŽˆæƒè®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 10:48:17
 */
public interface PersonPostAuthorizationRecordService extends IService<PersonPostAuthorizationRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java
@@ -15,7 +15,7 @@
 * å¥–惩记录 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-08 11:25:02
 */
public interface PersonRewardPunishmentRecordService extends IService<PersonRewardPunishmentRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java
@@ -14,7 +14,7 @@
 * åŸ¹è®­è®¡åˆ’详情 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:46:27
 */
public interface PersonTrainingDetailedService extends IService<PersonTrainingDetailed> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java
@@ -17,7 +17,7 @@
 * åŸ¹è®­è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-12 04:50:48
 */
public interface PersonTrainingRecordService extends IService<PersonTrainingRecord> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java
@@ -17,7 +17,7 @@
 * åŸ¹è®­è®¡åˆ’ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
public interface PersonTrainingService extends IService<PersonTraining> {
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java
@@ -31,7 +31,7 @@
 * æ²Ÿé€šèƒ½åŠ› æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 12:00:57
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java
@@ -29,7 +29,7 @@
 * å²—位职责 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 02:07:49
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java
@@ -39,7 +39,7 @@
 * äººå‘˜èƒ½åŠ› æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-10 11:26:18
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java
@@ -31,7 +31,7 @@
 * ä»»èŒæŽˆæƒè®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-09 10:48:17
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java
@@ -18,7 +18,7 @@
 * å¥–惩记录 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-08 11:25:02
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java
@@ -29,7 +29,7 @@
 * åŸ¹è®­è®¡åˆ’详情 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:46:27
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
@@ -41,7 +41,7 @@
 * åŸ¹è®­è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-12 04:50:48
 */
@Transactional(rollbackFor = Exception.class)
cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java
@@ -62,7 +62,7 @@
 * åŸ¹è®­è®¡åˆ’ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-10-11 01:11:49
 */
@Service
cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java
@@ -31,7 +31,7 @@
     * æé†’填写设备使用记录
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 9 1 * *") // æ¯æœˆä¸€å·æ‰§è¡Œ
    @Scheduled(cron = "0 0 9 1 * *") // æ¯æœˆä¸€å·æ‰§è¡Œ
    public void task1() {
        // æŸ¥è¯¢å½“月培训计划
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java
@@ -19,7 +19,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:20
 */
@Api(tags = "不符合项的分布")
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java
@@ -18,7 +18,7 @@
 * æŠ•诉 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 09:29:11
 */
@RestController
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java
@@ -1,5 +1,6 @@
package com.ruoyi.process.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.utils.JackSonUtil;
@@ -17,7 +18,7 @@
 * æ£€æµ‹æˆ–校准物品的处置 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 02:50:19
 */
@RestController
@@ -28,34 +29,23 @@
    @Resource
    private ProcessDealService processDealService;
    @ApiOperation(value = "查询检测或校准物品的处置详情")
    @GetMapping("/pageProcessDeal")
    public Result pageProcessDeal(ProcessDeal processDeal, Page page) throws Exception {
        return Result.success(processDealService.pageProcessDeal(page, processDeal));
    }
    @ApiOperation(value = "新增检测或校准物品的处置")
    @PostMapping("/addProcessDeal")
    public Result addProcessDeal(@RequestBody ProcessDeal processDeal) {
        return Result.success(processDealService.addProcessDeal(processDeal));
        return Result.success(processDealService.saveOrUpdate(processDeal));
    }
    @ApiOperation(value = "删除检测或校准物品的处置")
    @DeleteMapping("/delProcessDeal")
    public Result delProcessDeal(Integer id) {
        return Result.success(processDealService.delProcessDeal(id));
        return Result.success(processDealService.removeById(id));
    }
    @ApiOperation(value = "修改检测或校准物品的处置")
    @PostMapping("/doProcessDeal")
    public Result doProcessDeal(@RequestBody ProcessDeal processDeal) {
        return Result.success(processDealService.doProcessDeal(processDeal));
    }
    @ApiOperation(value = "查看检测或校准物品的处置")
    @GetMapping("/getProcessDeal")
    public Result getProcessDeal(Integer id) {
        return Result.success(processDealService.getById(id));
        return Result.success(processDealService.list(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getTotaldealId,id)));
    }
}
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java
@@ -18,7 +18,7 @@
 * æµ‹é‡ä¸ç¡®å®šåº¦çš„评价 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 01:10:43
 */
@RestController
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderDeviceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.ruoyi.process.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.device.pojo.DeviceRecord;
import com.ruoyi.device.service.DeviceRecordService;
import com.ruoyi.process.pojo.ProcessOrderDevice;
import com.ruoyi.process.service.ProcessOrderDeviceService;
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设备使用记录表(7.1检验委托单) å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author
 * @since 2025-04-17 03:51:48
 */
@Api(tags = "cnas设备使用记录")
@RestController
@RequestMapping("/processOrderDevice")
public class ProcessOrderDeviceController {
    @Autowired
    private ProcessOrderDeviceService processOrderDeviceService;
    @ApiOperation(value = "设备使用记录查询")
    @GetMapping("/deviceRecordPage")
    public Result deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
        return Result.success(processOrderDeviceService.deviceRecordPage(deviceId, page, sampleCode, managementNumber));
    }
    @ApiOperation(value = "新增")
    @PostMapping("/saveDeviceRecord")
    public Result saveDeviceRecords(@RequestBody ProcessOrderDevice processOrderDevice) {
        return Result.success(processOrderDeviceService.save(processOrderDevice));
    }
    /**
     * ç¼–辑设备使用记录
     * @param processOrderDevice
     * @return
     */
    @ApiOperation(value = "修改")
    @PostMapping("/updateDeviceRecord")
    public Result updateDeviceRecord(@RequestBody ProcessOrderDevice processOrderDevice) {
        return Result.success(processOrderDeviceService.updateById(processOrderDevice));
    }
    @DeleteMapping("/deleteDeviceRecord")
    public Result deleteDeviceRecords(@RequestParam("id") Integer id) {
        return Result.success(processOrderDeviceService.removeById(id));
    }
    @ApiOperation(value = "设备使用记录导出")
    @GetMapping("/exportUseRecord")
    public void exportUseRecord(Integer deviceId, String exportDate, HttpServletResponse response){
        //processOrderDeviceService.exportUseRecord(deviceId, exportDate, response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
@@ -10,14 +10,18 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
 * æ£€éªŒæŠ¥å‘Šå‘放登记表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-05 08:58:39
 */
@RestController
@@ -30,7 +34,7 @@
    @ApiOperation(value = "查询检验报告发放登记列表")
    @GetMapping("/pageProcessReport")
    public Result pageProcessReport(ProcessReport processReport , Page page) throws Exception {
    public Result pageProcessReport(ProcessReport processReport , Page page) {
        return Result.success(processReportService.pageProcessReport(page, processReport));
    }
@@ -60,8 +64,11 @@
    @ApiOperation(value = "导出检验报告发放登记表")
    @GetMapping("/exportProcessReport")
    public Result exportProcessReport(ProcessReportDto processReportDto) {
        return Result.success(processReportService.exportProcessReport(processReportDto.getIds()));
    public void exportProcessReport(String ids, HttpServletResponse response) {
        List<Integer> list = Arrays.stream(ids.split(","))
                .map(Integer::parseInt)
                .collect(Collectors.toList());
        processReportService.exportProcessReport(list, response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -16,7 +17,7 @@
 * æ ·å“æŽ¥æ”¶ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-12 05:02:49
 */
@RestController
@@ -29,32 +30,27 @@
    @ApiOperation(value = "查询样品接收详情")
    @GetMapping("/pageProcessSample")
    public Result pageProcessSample(ProcessSample processSample, Page page) throws Exception {
    public Result pageProcessSample(ProcessSample processSample, Page page){
        return Result.success(processSampleService.pageProcessSample(page, processSample));
    }
    @ApiOperation(value = "新增样品接收详情")
    @PostMapping("/addProcessSample")
    public Result addProcessSample(@RequestBody ProcessSample processSample) {
        return Result.success(processSampleService.addProcessSample(processSample));
        return Result.success(processSampleService.saveOrUpdate(processSample));
    }
    @ApiOperation(value = "删除样品接收")
    @DeleteMapping("/delProcessSample")
    public Result delProcessSample(Integer id) {
        return Result.success(processSampleService.delProcessSample(id));
        return Result.success(processSampleService.removeById(id));
    }
    @ApiOperation(value = "修改样品接收")
    @PostMapping("/doProcessSample")
    public Result doProcessSample(@RequestBody ProcessSample processSample) {
        return Result.success(processSampleService.doProcessSample(processSample));
    }
    @ApiOperation(value = "查看样品接收")
    @GetMapping("/getProcessSample")
    public Result getProcessSample(Integer id) {
        return Result.success(processSampleService.getById(id));
    @ApiOperation(value = "导出样品接收")
    @GetMapping("/exportProcessSample")
    public void exportProcessSample(ProcessSample processSample, HttpServletResponse response) {
        processSampleService.exportProcessSample(processSample,response);
    }
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -16,7 +17,7 @@
 * æ£€æµ‹æˆ–校准物品的处置总表(历史) å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 03:59:09
 */
@RestController
@@ -31,6 +32,13 @@
    @GetMapping("/pageProcessTotaldeal")
    public Result pageProcessTotaldeal(ProcessTotaldeal processTotaldeal , Page page) throws Exception {
        return Result.success(processTotaldealService.pageProcessTotaldeal(page, processTotaldeal));
    }
    @ApiOperation(value = "新增检测或校准物品的处置")
    @PostMapping("/addProcessTotaldeal")
    public Result addProcessTotaldeal(@RequestBody Map<String, String> param) {
        String month = param.get("month");
        return Result.success(processTotaldealService.addProcessTotaldeal(month));
    }
    @ApiOperation(value = "提交检测或校准物品的处置")
@@ -56,5 +64,11 @@
        return Result.success(processTotaldealService.ratifyProcessTotaldeal(id,state));
    }
    @ApiOperation(value = "导出检测或校准物品的处置")
    @GetMapping("/exportProcessTotaldeal")
    public void exportProcessTotaldeal(Integer id, HttpServletResponse response) {
        processTotaldealService.exportProcessTotaldeal(id,response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java
@@ -9,7 +9,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布详情 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:33
 */
@Mapper
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java
@@ -14,7 +14,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:20
 */
@Mapper
cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java
@@ -9,6 +9,9 @@
import com.ruoyi.process.pojo.InspectionOrder;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * æ£€éªŒå§”托单 Mapper æŽ¥å£
@@ -34,4 +37,5 @@
     * @return
     */
    IPage<InsOrder> getInsOrderOnInspection(Page page, @Param("ew") QueryWrapper<InsOrder> insOrderQueryWrapper);
}
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java
@@ -13,7 +13,7 @@
 * æŠ•诉 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 09:29:11
 */
public interface ProcessComplainMapper extends BaseMapper<ProcessComplain> {
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
@@ -7,15 +7,20 @@
import com.ruoyi.process.pojo.ProcessDeal;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * æ£€æµ‹æˆ–校准物品的处置 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 02:50:19
 */
public interface ProcessDealMapper extends BaseMapper<ProcessDeal> {
    IPage<ProcessDeal> pageProcessDeal(Page page, @Param("ew") QueryWrapper<ProcessDeal> queryWrappers);
    List<ProcessDeal> selectDeal(@Param("id") Integer id);
}
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java
@@ -12,7 +12,7 @@
 * æµ‹é‡ä¸ç¡®å®šåº¦çš„评价 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 01:10:43
 */
public interface ProcessEvaluateMapper extends BaseMapper<ProcessEvaluate> {
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderDeviceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.ruoyi.process.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.process.pojo.ProcessOrderDevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
 * <p>
 * cnas设备使用记录表(7.1检验委托单) Mapper æŽ¥å£
 * </p>
 *
 * @author
 * @since 2025-04-17 03:51:48
 */
public interface ProcessOrderDeviceMapper extends BaseMapper<ProcessOrderDevice> {
    Set<String> selectDeviceNumber(@Param("inspectionOrderId") Integer inspectionOrderId);
    List<Integer> selectDeviceIdsByNumbers(@Param("orderDeviceNumbers") Set<String> orderDeviceNumbers);
    IPage<ProcessOrderDevice> deviceRecordPage(@Param("deviceId") Integer deviceId, @Param("page") Page page, @Param("sampleCode") String sampleCode, @Param("managementNumber") String managementNumber);
}
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
@@ -14,7 +14,7 @@
 * æ£€éªŒæŠ¥å‘Šå‘放登记表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-05 08:58:39
 */
public interface ProcessReportMapper extends BaseMapper<ProcessReport> {
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java
@@ -12,7 +12,7 @@
 * æ ·å“æŽ¥æ”¶ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-12 05:02:49
 */
public interface ProcessSampleMapper extends BaseMapper<ProcessSample> {
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java
@@ -12,7 +12,7 @@
 * æ£€æµ‹æˆ–校准物品的处置总表(历史) Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 03:59:09
 */
public interface ProcessTotaldealMapper extends BaseMapper<ProcessTotaldeal> {
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java
@@ -12,7 +12,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:20
 */
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java
@@ -13,7 +13,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布详情
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:33
 */
@Data
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java
@@ -18,7 +18,7 @@
 * æŠ•诉
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 09:29:11
 */
@Getter
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
@@ -16,7 +16,7 @@
 * æ£€æµ‹æˆ–校准物品的处置
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 02:50:19
 */
@Getter
@@ -62,4 +62,11 @@
    @ApiModelProperty("关联的历史总表id")
    private Integer totaldealId;
    @ApiModelProperty("关联的样品接收id")
    private Integer processSampleId;
    @ApiModelProperty("序号")
    @TableField(select = false,exist = false)
    private String indexs;
}
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java
@@ -18,7 +18,7 @@
 * æµ‹é‡ä¸ç¡®å®šåº¦çš„评价
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 01:10:43
 */
@Getter
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrderDevice.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.ruoyi.process.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * cnas设备使用记录表(7.1检验委托单)
 * </p>
 *
 * @author
 * @since 2025-04-17 03:51:48
 */
@Getter
@Setter
@TableName("cnas_process_order_device")
@ApiModel(value = "ProcessOrderDevice对象", description = "cnas设备使用记录表(7.1检验委托单)")
public class ProcessOrderDevice implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private Integer deviceId;
    @ApiModelProperty("委托单id")
    private Integer inspectionOrderId;
    @ApiModelProperty("样品编号")
    private String sampleCode;
    @ApiModelProperty("使用前0代表不正常1代表正常")
    private Integer useBefore;
    @ApiModelProperty("使用后0代表不正常1代表正常")
    private Integer useAfter;
    @ApiModelProperty("异常情况")
    private String abnormal;
    @ApiModelProperty("使用开始日期")
    private LocalDateTime useStartDate;
    @ApiModelProperty("使用人id")
    private Integer usePersonId;
    @ApiModelProperty("使用人")
    private String usePerson;
    @ApiModelProperty("备注")
    private String remark;
    @ApiModelProperty("使用结束时间")
    private LocalDateTime useEndDate;
    @ApiModelProperty("设备名称")
    @TableField(select = false,exist = false)
    private String deviceName;
    @ApiModelProperty("设备编号")
    @TableField(select = false,exist = false)
    private String managementNumber;
}
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
@@ -17,7 +17,7 @@
 * æ£€éªŒæŠ¥å‘Šå‘放登记表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-05 08:58:39
 */
@Getter
@@ -26,6 +26,9 @@
@ApiModel(value = "ProcessReport对象", description = "检验报告发放登记表")
public class ProcessReport  implements Serializable {
    @TableField(select = false,exist = false)
    //导出序号
    private Integer indexs;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
@@ -79,4 +82,7 @@
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("委托单id")
    private Integer inspectionOrderId;
}
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java
@@ -19,7 +19,7 @@
 * æ ·å“æŽ¥æ”¶
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-12 05:02:49
 */
@Getter
@@ -59,8 +59,8 @@
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("关联总表历史id")
    private Integer totalSampleId;
    @ApiModelProperty("委托单id")
    private Integer inspectionOrderId;
    @ApiModelProperty("收样日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java
@@ -18,7 +18,7 @@
 * æ£€æµ‹æˆ–校准物品的处置总表(历史)
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 03:59:09
 */
@Getter
@@ -37,10 +37,6 @@
    @ApiModelProperty("审核结果")
    private String examineState;
    @ApiModelProperty("审核人电子签名url")
    private String examineUrl;
    @TableField(select = false, exist = false)
    private String examineUserName;
@@ -49,9 +45,6 @@
    @ApiModelProperty("批准结果")
    private String ratifyState;
    @ApiModelProperty("批准人电子签名url")
    private String ratifyUrl;
    @TableField(select = false, exist = false)
    private String ratifyUserName;
@@ -64,15 +57,7 @@
    @ApiModelProperty("提交结果")
    private String submitState;
    @ApiModelProperty("提交人电子签名url")
    private String submitUrl;
    @ApiModelProperty("总数量")
    private Integer totalNum;
    @ApiModelProperty("月份")
    private String month;
    @ApiModelProperty("生成申请表的路径")
    private String url;
}
cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java
@@ -8,7 +8,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布详情 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:33
 */
public interface InconsistentDistributionDetailService extends IService<InconsistentDistributionDetail> {
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java
@@ -14,7 +14,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:20
 */
public interface InconsistentDistributionService extends IService<InconsistentDistribution> {
cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java
@@ -14,7 +14,7 @@
 * æŠ•诉 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 09:29:11
 */
public interface ProcessComplainService extends IService<ProcessComplain> {
cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java
@@ -12,16 +12,8 @@
 * æ£€æµ‹æˆ–校准物品的处置 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 02:50:19
 */
public interface ProcessDealService extends IService<ProcessDeal> {
    IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal);
    int addProcessDeal(ProcessDeal processDeal);
    int delProcessDeal(Integer id);
    int doProcessDeal(ProcessDeal processDeal);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java
@@ -14,7 +14,7 @@
 * æµ‹é‡ä¸ç¡®å®šåº¦çš„评价 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 01:10:43
 */
public interface ProcessEvaluateService extends IService<ProcessEvaluate> {
cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderDeviceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.ruoyi.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.process.pojo.ProcessOrderDevice;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * cnas设备使用记录表(7.1检验委托单) æœåŠ¡ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:51:48
 */
public interface ProcessOrderDeviceService extends IService<ProcessOrderDevice> {
    IPage<ProcessOrderDevice> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.pojo.ProcessReport;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -13,12 +14,12 @@
 * æ£€éªŒæŠ¥å‘Šå‘放登记表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-05 08:58:39
 */
public interface ProcessReportService extends IService<ProcessReport> {
    IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport);
    String exportProcessReport(List<Integer> ids);
    void exportProcessReport(List<Integer> ids, HttpServletResponse response);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.pojo.ProcessSample;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -12,16 +13,12 @@
 * æ ·å“æŽ¥æ”¶ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-12 05:02:49
 */
public interface ProcessSampleService extends IService<ProcessSample> {
    IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample);
    int addProcessSample(ProcessSample processSample);
    int delProcessSample(Integer id);
    int doProcessSample(ProcessSample processSample);
    void exportProcessSample(ProcessSample processSample, HttpServletResponse response);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.pojo.ProcessTotaldeal;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -12,7 +13,7 @@
 * æ£€æµ‹æˆ–校准物品的处置总表(历史) æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 03:59:09
 */
public interface ProcessTotaldealService extends IService<ProcessTotaldeal> {
@@ -24,4 +25,8 @@
    int submitProcessTotaldeal(Integer id);
    int ratifyProcessTotaldeal(Integer id, String state);
    int addProcessTotaldeal(String month);
    void exportProcessTotaldeal(Integer id, HttpServletResponse response);
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java
@@ -11,7 +11,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布详情 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:33
 */
@Service
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
@@ -35,7 +35,7 @@
 * ä¸ç¬¦åˆé¡¹çš„分布 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 09:53:20
 */
@Service
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
@@ -1,5 +1,8 @@
package com.ruoyi.process.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -7,20 +10,24 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.pojo.InsOrder;
import com.ruoyi.inspect.pojo.InsReport;
import com.ruoyi.inspect.dto.InsOrderDeviceRecordDto;
import com.ruoyi.inspect.mapper.InsProductResultMapper;
import com.ruoyi.inspect.mapper.InsSampleMapper;
import com.ruoyi.inspect.pojo.*;
import com.ruoyi.inspect.service.InsOrderService;
import com.ruoyi.inspect.service.InsReportService;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.process.dto.InspectionOrderDto;
import com.ruoyi.process.dto.InspectionOrderExportDto;
import com.ruoyi.process.mapper.InspectionOrderMapper;
import com.ruoyi.process.pojo.InspectionOrder;
import com.ruoyi.process.pojo.InspectionOrderDetail;
import com.ruoyi.process.service.InspectionOrderDetailService;
import com.ruoyi.process.service.InspectionOrderService;
import com.ruoyi.process.mapper.ProcessOrderDeviceMapper;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.pojo.*;
import com.ruoyi.process.service.*;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -37,10 +44,11 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
@@ -58,9 +66,27 @@
    @Resource
    private InsOrderService insOrderService;
    @Resource
    private InsSampleMapper insSampleMapper;
    @Resource
    private InsReportService insReportService;
    @Value("${wordUrl}")
    private String wordUrl;
    @Resource
    private ProcessReportService processReportService;
    @Resource
    private ProcessOrderDeviceMapper processOrderDeviceMapper;
    @Resource
    private InsProductResultMapper insProductResultMapper;
    @Resource
    private ProcessOrderDeviceService processOrderDeviceService;
    @Resource
    private UserMapper userMapper;
    @Resource
    private ProcessSampleService processSampleService;
    @Resource
    private ProcessSampleMapper processSampleMapper;
    @Resource
    private ProcessDealService processDealService;
    /**
@@ -117,8 +143,88 @@
            }
            inspectionOrderDetailService.saveBatch(inspectionOrder.getOrderDetailList());
        }
        /*新增7.8报告结果*/
        ProcessReport processReport = new ProcessReport();
        processReport.setInspectionOrderId(inspectionOrder.getInsOrderId());
        processReport.setInsReportCode(inspectionOrder.getEntrustCode());//报告编号=委托编号
        //页数
        try {
            com.aspose.words.Document doc = new com.aspose.words.Document(path);
            processReport.setPages(doc.getPageCount()+"");
        } catch (Exception e) {
        }
        processReport.setNumber("1");//发送份数默认1
        processReport.setSend(inspectionOrder.getCommissionUnit());//发往何处=委托单位
        processReport.setMethod(inspectionOrder.getSend()==1?"自取":"其他");//发送方式
        processReport.setSendTime(insReport.getRatifyTime().toLocalDate());//发送日期
        processReport.setSendUser(64);//发送人固定
        processReport.setSignatory(inspectionOrder.getCommissionUser());//签收人=委托人
        processReportService.save(processReport);
        /*新增7.1委托单对应的设备使用记录*/
        addDeviceRecord(inspectionOrder,insReport.getWriteUserId());
        /*新增7.4样品接收*/
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, inspectionOrder.getInsOrderId()));
        if (insSamples.size()>0){
            List<ProcessSample> processSamples = new ArrayList<>();
            for (InsSample insSample : insSamples) {
                ProcessSample processSample = new ProcessSample();
                processSample.setReceiveDate(inspectionOrder.getSampleData());//收样日期=领样日期
                processSample.setSampleCode(insSample.getSampleCode());//样品编号
                processSample.setSampleName(insSample.getSample());//样品名称
                processSample.setNum(1);//样品数量=1
                processSample.setSampleSupplier(inspectionOrder.getCommissionUnit());//来样单位
                LocalDate plusMonths = inspectionOrder.getSampleData() == null ? null : inspectionOrder.getSampleData().plusMonths(1);
                processSample.setLeaveDate(plusMonths);//留样日期=收样日期往后延一个月
                processSample.setSampleState(inspectionOrder.getSampleStatus());//样品状态
                processSample.setDealTime(plusMonths);//退样日期=留样日期
                processSample.setInspectionOrderId(inspectionOrder.getInspectionOrderId());//委托单id
                processSamples.add(processSample);
            }
            processSampleService.saveBatch(processSamples);
        }
        return true;
    }
    private synchronized void addDeviceRecord(InspectionOrder inspectionOrder,Integer userId) {
        // æŸ¥è¯¢è®¾å¤‡ä½¿ç”¨è®°å½•查询该订单的使用记录
        Set<String> recordCodeset = processOrderDeviceMapper.selectDeviceNumber(inspectionOrder.getInspectionOrderId());
        // èŽ·å–è®¢å•è®¾å¤‡ç¼–å·
        List<InsProductResult> resultList = insProductResultMapper.selectResultByOrderId(inspectionOrder.getInsOrderId());
        Set<String> deviceCodeSet = new HashSet<>();
        for (InsProductResult result : resultList) {
            // æ·»åŠ è®¾å¤‡ç¼–å·
            List<JSONObject> jsonObjects = JSON.parseArray(result.getEquipValue(), JSONObject.class);
            for (JSONObject jsonObject : jsonObjects) {
                if (!"".equals(jsonObject.get("v") + "")) {
                    List<String> v = StrUtil.split(jsonObject.get("v") + "", ",");
                    deviceCodeSet.addAll(v);
                }
            }
        }
        // 1.判断是否有没有添加的使用记录
        Set<String> orderDeviceNumbers = getDeviceDifference(deviceCodeSet, recordCodeset);
        // æ·»åŠ ä½¿ç”¨è®°å½•, æ ¹æ®ç¼–号查询设备id
        if (CollectionUtils.isNotEmpty(orderDeviceNumbers)) {
            List<Integer> orderDeviceIds = processOrderDeviceMapper.selectDeviceIdsByNumbers(orderDeviceNumbers);
            List<ProcessOrderDevice> collect = orderDeviceIds.stream().map(deviceId -> {
                ProcessOrderDevice processOrderDevice = new ProcessOrderDevice();
                processOrderDevice.setInspectionOrderId(inspectionOrder.getInspectionOrderId());
                processOrderDevice.setDeviceId(deviceId);
                processOrderDevice.setSampleCode(inspectionOrder.getEntrustCode());
                processOrderDevice.setUseBefore(1);
                processOrderDevice.setUseAfter(1);
                processOrderDevice.setUsePerson(userMapper.selectById(userId).getName());//使用人
                processOrderDevice.setUsePersonId(userId);//使用人id
                return processOrderDevice;
            }).collect(Collectors.toList());
            processOrderDeviceService.saveBatch(collect);
        }
    }
    private static Set<String> getDeviceDifference(Set<String> number1, Set<String> number2) {
        return number1.stream().filter(s1 -> number2.stream().noneMatch(s2 -> s1.equals(s2)))
                .collect(Collectors.toSet());
    }
    /**
@@ -140,6 +246,11 @@
        }
        inspectionOrderDetailService.saveBatch(InspectionOrder.getOrderDetailList());
        //修改7.9报告结果
        ProcessReport processReport = processReportService.getOne(Wrappers.<ProcessReport>lambdaQuery().eq(ProcessReport::getInspectionOrderId, InspectionOrder.getInspectionOrderId()));
        processReport.setInsReportCode(InspectionOrder.getEntrustCode());//报告编号=委托编号
        processReportService.updateById(processReport);
        return true;
    }
@@ -153,6 +264,23 @@
        inspectionOrderDetailService.remove(Wrappers.<InspectionOrderDetail>lambdaQuery()
                .eq(InspectionOrderDetail::getInspectionOrderId, inspectionOrderId));
        baseMapper.deleteById(inspectionOrderId);
        //删除7.8报告
        processReportService.remove(Wrappers.<ProcessReport>lambdaQuery()
                .eq(ProcessReport::getInspectionOrderId, inspectionOrderId));
        //删除对应的设备使用记录
        processOrderDeviceService.remove(Wrappers.<ProcessOrderDevice>lambdaQuery()
                .eq(ProcessOrderDevice::getInspectionOrderId, inspectionOrderId));
        //删除对应的7.4的样品申请
        List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery()
                .eq(ProcessSample::getInspectionOrderId, inspectionOrderId));
        if (processSamples.size()>0){
            List<Integer> list = processSamples.stream().map(ProcessSample::getId).collect(Collectors.toList());
            processDealService.remove(Wrappers.<ProcessDeal>lambdaQuery()
                    .in(ProcessDeal::getProcessSampleId,list));
        }
        //删除对应7.4的样品接收
        processSampleService.remove(Wrappers.<ProcessSample>lambdaQuery()
                .eq(ProcessSample::getInspectionOrderId,inspectionOrderId));
        return true;
    }
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java
@@ -37,7 +37,7 @@
 * æŠ•诉 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 09:29:11
 */
@Service
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java
@@ -26,86 +26,11 @@
 * æ£€æµ‹æˆ–校准物品的处置 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 02:50:19
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class ProcessDealServiceImpl extends ServiceImpl<ProcessDealMapper, ProcessDeal> implements ProcessDealService {
    @Resource
    private ProcessDealMapper processDealMapper;
    @Autowired
    private UserMapper userMapper;
    @Resource
    private ProcessTotaldealMapper processTotaldealMapper;
    @Override
    public IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal) {
        Integer userId = SecurityUtils.getUserId().intValue();
        processDeal.setCreateUser(userId);
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())) {
            //获取当前月份
            LocalDate currentDate = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = currentDate.format(formatter);
            //查询历史
            ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth, currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }
        return processDealMapper.pageProcessDeal(page, QueryWrappers.queryWrappers(processDeal));
    }
    @Override
    public int addProcessDeal(ProcessDeal processDeal) {
        ProcessTotaldeal processTotaldeal;
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())){
            LocalDate dealTime = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = dealTime.format(formatter);
            processTotaldeal= processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth,currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }else {
            processTotaldeal= processTotaldealMapper.selectById(processDeal.getTotaldealId());
        }
        processDealMapper.insert(processDeal);
        processTotaldeal.setTotalNum(processDeal.getNum()+processTotaldeal.getTotalNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int delProcessDeal(Integer id) {
        ProcessDeal processDeal = processDealMapper.selectById(id);
        processDealMapper.deleteById(id);
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
        processTotaldeal.setTotalNum(processTotaldeal.getTotalNum()-processDeal.getNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int doProcessDeal(ProcessDeal processDeal) {
        if (ObjectUtils.isNotEmpty(processDeal.getNum())) {
            ProcessDeal oldProcessDeal = processDealMapper.selectById(processDeal.getId());
            if(null != processDeal.getTotaldealId()){
                ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
                int totalNum = ObjectUtils.isEmpty(processTotaldeal) ? 0 : processTotaldeal.getTotalNum();
                processTotaldeal.setTotalNum(totalNum - oldProcessDeal.getNum() + processDeal.getNum());
                processTotaldealMapper.updateById(processTotaldeal);
            }
        }
        return processDealMapper.updateById(processDeal);
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java
@@ -31,7 +31,7 @@
 * æµ‹é‡ä¸ç¡®å®šåº¦çš„评价 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 01:10:43
 */
@Service
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderDeviceServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.process.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.process.pojo.ProcessOrderDevice;
import com.ruoyi.process.mapper.ProcessOrderDeviceMapper;
import com.ruoyi.process.service.ProcessOrderDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * cnas设备使用记录表(7.1检验委托单) æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author
 * @since 2025-04-17 03:51:48
 */
@Service
public class ProcessOrderDeviceServiceImpl extends ServiceImpl<ProcessOrderDeviceMapper, ProcessOrderDevice> implements ProcessOrderDeviceService {
    @Override
    public IPage<ProcessOrderDevice> deviceRecordPage(Integer deviceId, Page page, String sampleCode, String managementNumber) {
        return baseMapper.deviceRecordPage(deviceId, page, sampleCode, managementNumber);
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
@@ -14,18 +14,22 @@
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.process.mapper.ProcessReportMapper;
import com.ruoyi.process.pojo.ProcessReport;
import com.ruoyi.process.service.ProcessReportService;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -39,7 +43,7 @@
 * æ£€éªŒæŠ¥å‘Šå‘放登记表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-05 08:58:39
 */
@Service
@@ -74,350 +78,41 @@
    }
    @Override
    public String exportProcessReport(List<Integer> ids) {
    public void exportProcessReport(List<Integer> ids, HttpServletResponse response) {
        List<ProcessReport> processReports = processReportMapper.getIds(ids);
        for (ProcessReport processReport : processReports) {
            List<String> name = new ArrayList<>();
            for (String s : processReport.getSignatory().split(",")) {
                User user = userMapper.selectById(Integer.parseInt(s));
                name.add(user.getName());
            }
            String signatoryName = name.stream().collect(Collectors.joining(","));
            processReport.setSignatoryName(signatoryName);
        }
        //生成检验报告发放登记表
        String url;
        try {
//        for (ProcessReport record : processReports) {
//            List<String> name = new ArrayList<>();
//            if(StringUtils.isNotBlank(record.getSignatory())){
//                for (String s : record.getSignatory().split(",")) {
//                    User user = userMapper.selectById(Integer.parseInt(s));
//                    name.add(user.getName());
//                }
//                String signatoryName = name.stream().collect(Collectors.joining(","));
//                record.setSignatoryName(signatoryName);
//            }
//        }
        // èŽ·å–è·¯å¾„
            InputStream inputStream = this.getClass().getResourceAsStream("/static/report-deal.docx");
            File file = File.createTempFile("temp", ".tmp");
            OutputStream outputStream = new FileOutputStream(file);
            IOUtils.copy(inputStream, outputStream);
            url = file.getAbsolutePath();
        } catch (FileNotFoundException e) {
            throw new ErrorException("找不到模板文件");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        List<Map<String, Object>> reportList = new ArrayList<>();
        Integer index = 1;
        Integer index1 = 1;
        for (int c = 0; c < processReports.size(); c++) {
            //超过15行换页
            if (c % 15 == 0) {
                List<RowRenderData> rows = new ArrayList<>();
                //表格的行数
                for (int i = 0; i < 16; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //表格的列数
                    for (int j = 0; j < 10; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            if (j == 0) {
                                //第一列序号
                                textRenderData.setText("序号@No.");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                //第二列
                                textRenderData.setText("检验报告编号@Inspection report number");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 2) {
                                //第三列
                                textRenderData.setText("页数@Pages");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 3) {
                                //第四列
                                textRenderData.setText("发送份数@Number of copies sent");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 4) {
                                //第五列
                                textRenderData.setText("发往何处@Where to send to");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 5) {
                                //第六列
                                textRenderData.setText("发送方式@Send method");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 6) {
                                //第七列
                                textRenderData.setText("发送日期@Date sent");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }else if (j == 7) {
                                //第八列
                                textRenderData.setText("发送人@Sender");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }else if (j == 8) {
                                //第九列
                                textRenderData.setText("签收人@Signatory");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }else{
                                //第十列
                                textRenderData.setText("备注@Remark");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                        else {
                            //其他行
                            if (j == 0) {
                                //第一列
                                try{
                                    String insReportCode = processReports.get((i-1) + (index1 - 1) * 20).getInsReportCode();
                                    textRenderData.setText(index + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                index++;
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getInsReportCode());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 2) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getPages());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 3) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getNumber());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 4) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSend());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 5) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getMethod());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 6) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSendTime()+"");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 7) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSendUserName());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else if (j == 8) {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSignatoryName());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                            else {
                                try{
                                    textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getRemark());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(14);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table = new HashMap<>();
                table.put("report", tableRenderData);
                table.put("index1", index1);
                reportList.add(table);
                index1++;
            }
        }
        Integer finalIndex = index1;
        XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
        Configure configure = Configure.builder()
                .bind("reportList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("reportList", reportList);
                    put("reportList", processReports);
                }});
        String name = UUID.randomUUID() + "_检验报告发放登记表" + ".docx";
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
        } catch (IOException e) {
            throw new RuntimeException(e);
            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("导出失败");
        }
        //处理中英文换行的问题
        String path = wordUrl + "/" + name;
        try {
            FileInputStream stream1 = new FileInputStream(path);
            XWPFDocument document1 = new XWPFDocument(stream1);
            List<XWPFTable> xwpfTables1 = document1.getTables();
            for (int i = 0; i < xwpfTables1.size(); i++) {
                for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
                    for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
                        if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
                            String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
                            String[] split = text.split("@");
                            xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
                            XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
                            XWPFRun run = xwpfParagraph.createRun();
                            run.setText(split[0]);
                            if (ObjectUtils.isNotNull(split[1])) {
                                run.addBreak();
                                run.setText(split[1]);
                            }
                            xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
                        }
                    }
                }
            }
            FileOutputStream fileOutputStream1 = new FileOutputStream(path);
            document1.write(fileOutputStream1);
            fileOutputStream1.close();
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return name;
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
@@ -1,28 +1,32 @@
package com.ruoyi.process.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.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.FilePictureRenderData;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.mapper.ProcessTotalSampleMapper;
import com.ruoyi.process.pojo.ProcessSample;
import com.ruoyi.process.pojo.ProcessTotalSample;
import com.ruoyi.process.service.ProcessSampleService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
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 èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-12 05:02:49
 */
@Service
@@ -31,64 +35,35 @@
    @Resource
    private ProcessSampleMapper processSampleMapper;
    @Resource
    private ProcessTotalSampleMapper processTotalSampleMapper;
    @Override
    public IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample) {
        //todo:仅看我
        if (ObjectUtils.isEmpty(processSample.getTotalSampleId())) {
            //获取当前月份
            LocalDate currentDate = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = currentDate.format(formatter);
            //查询历史
            ProcessTotalSample processTotalSample = processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth, currentMonth));
            processSample.setTotalSampleId(processTotalSample.getId());
        }
        return processSampleMapper.pageProcessSample(page, QueryWrappers.queryWrappers(processSample));
    }
    @Override
    public int addProcessSample(ProcessSample processSample) {
        ProcessTotalSample processTotalSample;
        if (ObjectUtils.isEmpty(processSample.getTotalSampleId())){
            LocalDate dealTime = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = dealTime.format(formatter);
            processTotalSample= processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth,currentMonth));
            processSample.setTotalSampleId(processTotalSample.getId());
        }else {
            processTotalSample= processTotalSampleMapper.selectById(processSample.getTotalSampleId());
    public void exportProcessSample(ProcessSample processSample, HttpServletResponse response) {
        List<ProcessSample> processSampleList = pageProcessSample(new Page(-1, -1), processSample).getRecords();
        InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-receive.docx");
        Configure configure = Configure.builder()
                .bind("sampleList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("sampleList", processSampleList);
                }});
        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("导出失败");
        }
        processSampleMapper.insert(processSample);
        processTotalSample.setTotalNum(processSample.getNum()+processTotalSample.getTotalNum());
        return processTotalSampleMapper.updateById(processTotalSample);
    }
    @Override
    public int delProcessSample(Integer id) {
        ProcessSample processSample = processSampleMapper.selectById(id);
        processSampleMapper.deleteById(id);
        ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
        processTotalSample.setTotalNum(processTotalSample.getTotalNum()-processSample.getNum());
        return processTotalSampleMapper.updateById(processTotalSample);
    }
    @Override
    public int doProcessSample(ProcessSample processSample) {
        if (ObjectUtils.isNotEmpty(processSample.getNum())) {
            ProcessSample oldProcessSample = processSampleMapper.selectById(processSample.getId());
            ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
            processTotalSample.setTotalNum(processTotalSample.getTotalNum() - oldProcessSample.getNum() + processSample.getNum());
            processTotalSampleMapper.updateById(processTotalSample);
        }
        return processSampleMapper.updateById(processSample);
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
@@ -15,22 +15,36 @@
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.inspect.util.UserUtils;
import com.ruoyi.process.mapper.InspectionOrderMapper;
import com.ruoyi.process.mapper.ProcessDealMapper;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.mapper.ProcessTotaldealMapper;
import com.ruoyi.process.pojo.InspectionOrder;
import com.ruoyi.process.pojo.ProcessDeal;
import com.ruoyi.process.pojo.ProcessSample;
import com.ruoyi.process.pojo.ProcessTotaldeal;
import com.ruoyi.process.service.ProcessDealService;
import com.ruoyi.process.service.ProcessTotaldealService;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.xml.soap.SAAJMetaFactory;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -41,7 +55,7 @@
 * æ£€æµ‹æˆ–校准物品的处置总表(历史) æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-02 03:59:09
 */
@Service
@@ -52,10 +66,16 @@
    private ProcessTotaldealMapper processTotaldealMapper;
    @Resource
    private ProcessDealMapper processDealMapper;
    private ProcessSampleMapper processSampleMapper;
    @Value("${wordUrl}")
    private String wordUrl;
    @Resource
    private ProcessDealService processDealService;
    @Resource
    private InspectionOrderMapper inspectionOrderMapper;
   @Resource
   private ProcessDealMapper processDealMapper;
    @Value("${file.path}")
    private String imgUrl;
@@ -80,9 +100,6 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setSubmitUser(userId);
        processTotaldeal.setSubmitState("已提交");
        processTotaldeal.setSubmitUrl(user.getSignatureUrl());
        //生成样品处理申请表并将填表人的电子签名印上
        processTotaldeal.setUrl(processTotaldeal(id, user.getSignatureUrl()));
        return processTotaldealMapper.updateById(processTotaldeal);
    }
@@ -96,14 +113,9 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setExamineUser(userId);
        processTotaldeal.setExamineState(state);
        processTotaldeal.setExamineUrl(user.getSignatureUrl());
        if (state.equals("不通过")) {
            processTotaldeal.setSubmitState("待提交");
        }
        //将审核人的电子签名印上
        wordInsertUrl(new HashMap<String, Object>() {{
            put("examineUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + user.getSignatureUrl()));
        }}, wordUrl + "/" + processTotaldeal.getUrl());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
@@ -117,300 +129,90 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setRatifyUser(userId);
        processTotaldeal.setRatifyState(state);
        processTotaldeal.setRatifyUrl(user.getSignatureUrl());
        if (state.equals("不通过")) {
            processTotaldeal.setExamineState(state);
            processTotaldeal.setSubmitState("待提交");
        }
        //将批准人的签名印上
        wordInsertUrl(new HashMap<String, Object>() {{
            put("ratifyUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + user.getSignatureUrl()));
        }}, wordUrl + "/" + processTotaldeal.getUrl());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    //生成样品处理表word
    private String processTotaldeal(Integer id, String signatureUrl) {
        List<ProcessDeal> processDeals = processDealMapper.selectList(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getTotaldealId, id));
        String url;
        try {
    @Override
    public int addProcessTotaldeal(String month) {
        //新增总表
        ProcessTotaldeal processTotaldeal = new ProcessTotaldeal();
        List<ProcessTotaldeal> processTotaldeals = processTotaldealMapper.selectList(Wrappers.<ProcessTotaldeal>lambdaQuery()
                .eq(ProcessTotaldeal::getMonth, month));
        if (processTotaldeals.size()<=0) {
            processTotaldeal.setMonth(month);//月份
            processTotaldeal.setSubmitState("待提交");
            processTotaldealMapper.insert(processTotaldeal);
        }else {
            processTotaldeal=processTotaldeals.get(0);
        }
        //新增详情表
        //1.获取该月份的第一天和最后一天
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
        YearMonth yearMonth = YearMonth.parse(month, formatter);
        LocalDate firstDay = yearMonth.atDay(1);
        LocalDate lastDay = yearMonth.atEndOfMonth();
        //2.查询在这个时间范围内的所有样品登记的数据
        List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery()
                .between(ProcessSample::getLeaveDate, firstDay, lastDay));
        if (processSamples.size()>0){
            //获取处理方式
            InspectionOrder inspectionOrder = inspectionOrderMapper.selectById(processSamples.get(0).getInspectionOrderId());
            List<ProcessDeal> processDeals = new ArrayList<>();
            for (ProcessSample processSample : processSamples) {
                long count = processDealService.count(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getProcessSampleId, processSample.getId()));
                if (count>0){
                    continue;
                }
                ProcessDeal processDeal = new ProcessDeal();
                processDeal.setSampleName(processSample.getSampleName());//样品名称
                processDeal.setSampleCode(processSample.getSampleCode());//样品编号
                processDeal.setSampleSupplier(processSample.getSampleSupplier());//供样单位
                processDeal.setNum(processSample.getNum());//样品数量
                processDeal.setDealMethod(inspectionOrder.getProcessing()==1?"实验室处理":"委托单位取回");//处理方式
                processDeal.setDealTime(LocalDate.now());//时间=当前时间
                processDeal.setTotaldealId(processTotaldeal.getId());//总表id
                processDeal.setProcessSampleId(processSample.getId());//样品接收id
                processDeals.add(processDeal);
            }
            processDealService.saveBatch(processDeals);
        }
        return 0;
    }
    @Override
    public void exportProcessTotaldeal(Integer id, HttpServletResponse response) {
        List<ProcessDeal> sampleDealDtos = processDealMapper.selectDeal(id);
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        // èŽ·å–è·¯å¾„
            InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-deal.docx");
            File file = File.createTempFile("temp", ".tmp");
            OutputStream outputStream = new FileOutputStream(file);
            IOUtils.copy(inputStream, outputStream);
            url = file.getAbsolutePath();
        } catch (FileNotFoundException e) {
            throw new ErrorException("找不到模板文件");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        List<Map<String, Object>> sampleList = new ArrayList<>();
        Integer index = 1;
        Integer index1 = 1;
        for (int c = 0; c < processDeals.size(); c++) {
            //超过20行换页
            if (c % 20 == 0) {
                List<RowRenderData> rows = new ArrayList<>();
                //表格的行数
                for (int i = 0; i < 21; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //表格的列数
                    for (int j = 0; j < 7; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            if (j == 0) {
                                //第一列序号
                                textRenderData.setText("序号@No.");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                //第二列样品名称
                                textRenderData.setText("样品名称@Sample name");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 2) {
                                //第三列样品编号
                                textRenderData.setText("样品编号@Sample number");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 3) {
                                //第四列供样单位
                                textRenderData.setText("供样单位@Sample unit");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 4) {
                                //第五列数量
                                textRenderData.setText("数量@Quantity");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 5) {
                                //第六列处理方式
                                textRenderData.setText("处理方式@Processing");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                //第七列时间
                                textRenderData.setText("时间@Date");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        } else {
                            //其他行
                            if (j == 0) {
                                //第一列
                                try {
                                    String sampleName = processDeals.get((i - 1) + (index1 - 1) * 20).getSampleName();
                                    textRenderData.setText(index + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                index++;
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleName());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 2) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleCode());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 3) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleSupplier());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 4) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getNum() + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 5) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getDealMethod());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getDealTime() + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(14);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table = new HashMap<>();
                table.put("sample", tableRenderData);
                table.put("index1", index1);
                sampleList.add(table);
                index1++;
            }
        }
        Integer finalIndex = index1;
        XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
        Configure configure = Configure.builder()
                .bind("sampleList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("sampleList", sampleList);
                    put("size", finalIndex);
                    put("examineUrl", null);
                    put("ratifyUrl", null);
                    put("writeUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + signatureUrl));
                    put("sampleList", sampleDealDtos);
                    put("writeUrl",UserUtils.getFinalUserSignatureUrl(processTotaldeal.getSubmitUser()));//提交人
                    put("examineUrl", UserUtils.getFinalUserSignatureUrl(processTotaldeal.getExamineUser()));//审核人
                    put("ratifyUrl", UserUtils.getFinalUserSignatureUrl(processTotaldeal.getRatifyUser()));//批准人
                }});
        String name = UUID.randomUUID() + "_样品处理申请表" + ".docx";
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
        } catch (IOException e) {
            throw new RuntimeException(e);
            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("导出失败");
        }
        //处理中英文换行的问题
        String path = wordUrl + "/" + name;
        try {
            FileInputStream stream1 = new FileInputStream(path);
            XWPFDocument document1 = new XWPFDocument(stream1);
            List<XWPFTable> xwpfTables1 = document1.getTables();
            for (int i = 0; i < xwpfTables1.size(); i++) {
                for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
                    for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
                        if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
                            String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
                            String[] split = text.split("@");
                            xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
                            XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
                            XWPFRun run = xwpfParagraph.createRun();
                            run.setText(split[0]);
                            if (ObjectUtils.isNotNull(split[1])) {
                                run.addBreak();
                                run.setText(split[1]);
                            }
                            xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
                        }
                    }
                }
            }
            FileOutputStream fileOutputStream1 = new FileOutputStream(path);
            document1.write(fileOutputStream1);
            fileOutputStream1.close();
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return name;
    }
    public int wordInsertUrl(Map<String, Object> map, String url) {
        XWPFTemplate template = XWPFTemplate.compile(url).render(map);
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(url)));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return 1;
    }
}
cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java
@@ -32,7 +32,7 @@
     * æé†’填写设备使用记录
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 9 1 * *") // æ¯æœˆ1号执行
    @Scheduled(cron = "0 0 9 1 * *") // æ¯æœˆ1号执行
    public void task1() {
        // æŸ¥è¯¢å½“月监督计划
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml
@@ -24,5 +24,4 @@
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
@@ -23,4 +23,17 @@
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeal" resultType="com.ruoyi.process.pojo.ProcessDeal">
        select ROW_NUMBER() OVER (ORDER BY id) AS indexs,
               id,
               sample_name,
               sample_code,
               sample_supplier,
               num,
               deal_method,
               deal_time
        from cnas_process_deal
        where totaldeal_id = #{id}
    </select>
</mapper>
cnas-process/src/main/resources/mapper/ProcessOrderDeviceMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
<?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.ruoyi.process.mapper.ProcessOrderDeviceMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessOrderDevice">
        <id column="id" property="id" />
        <result column="device_id" property="deviceId" />
        <result column="inspection_order_id" property="inspectionOrderId" />
        <result column="sample_code" property="sampleCode" />
        <result column="use_before" property="useBefore" />
        <result column="use_after" property="useAfter" />
        <result column="abnormal" property="abnormal" />
        <result column="use_start_date" property="useStartDate" />
        <result column="use_person_id" property="usePersonId" />
        <result column="use_person" property="usePerson" />
        <result column="remark" property="remark" />
        <result column="use_end_date" property="useEndDate" />
    </resultMap>
    <select id="selectDeviceNumber" resultType="java.lang.String">
        select distinct d.management_number
        from  cnas_process_order_device cpod
                 left join device d on d.id = cpod.device_id
        where cpod.inspection_order_id = #{inspectionOrderId}
    </select>
    <select id="selectDeviceIdsByNumbers" resultType="java.lang.Integer">
        select id
        from device
        where management_number in
        <foreach collection="deviceNumbers" index="index" open="(" separator="," close=")" item="val">
            #{val}
        </foreach>
    </select>
    <select id="deviceRecordPage" resultType="com.ruoyi.process.pojo.ProcessOrderDevice">
        select cpod.*,
        d.device_name,
        d.management_number
        from cnas_process_order_device cpod
        left join device d on d.id = cpod.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>
        ORDER BY (cpod.use_start_date IS NULL) desc , cpod.use_start_date DESC
    </select>
</mapper>
cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
@@ -28,7 +28,8 @@
        </if>
    </select>
    <select id="getIds" resultType="com.ruoyi.process.pojo.ProcessReport">
        select cpr.* ,
        select ROW_NUMBER() OVER (ORDER BY cpr.id) AS indexs,
        cpr.* ,
        u1.name sendUserName
        from cnas_process_report cpr
        left join user u1 on send_user=u1.id
cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml
@@ -14,7 +14,6 @@
        <result column="update_user" property="updateUser" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="total_sample_id" property="totalSampleId" />
        <result column="receive_date" property="receiveDate" />
        <result column="leave_date" property="leaveDate" />
        <result column="deal_time" property="dealTime" />
cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml
ÎļþÒÑɾ³ý
cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml
@@ -6,19 +6,14 @@
        <id column="id" property="id"/>
        <result column="examine_user" property="examineUser"/>
        <result column="examine_state" property="examineState"/>
        <result column="examine_url" property="examineUrl"/>
        <result column="examineUserName" property="examineUserName"/>
        <result column="ratify_user" property="ratifyUser"/>
        <result column="ratify_state" property="ratifyState"/>
        <result column="ratify_url" property="ratifyUrl"/>
        <result column="ratifyUserName" property="ratifyUserName"/>
        <result column="submit_user" property="submitUser"/>
        <result column="submit_state" property="submitState"/>
        <result column="submit_url" property="submitUrl"/>
        <result column="submitUserName" property="submitUserName"/>
        <result column="total_num" property="totalNum"/>
        <result column="month" property="month"/>
        <result column="url" property="url"/>
    </resultMap>
    <select id="pageProcessTotaldeal" resultType="com.ruoyi.process.pojo.ProcessTotaldeal">
        select *
cnas-process/src/main/resources/static/report-deal.docx
Binary files differ
cnas-process/src/main/resources/static/sample-deal.docx
Binary files differ
cnas-process/src/main/resources/static/sample-receive.docx
Binary files differ
cnas-require/src/main/java/com/ruoyi/require/controller/FeCalibrationScheduleController.java
@@ -26,7 +26,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 02:53:05
 */
@Api(tags = "量值溯源计划")
cnas-require/src/main/java/com/ruoyi/require/controller/FeIlluminationController.java
@@ -23,7 +23,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:15:57
 */
@RestController
cnas-require/src/main/java/com/ruoyi/require/controller/FeLightningProtectionController.java
@@ -24,7 +24,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-防雷检测 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:36
 */
@Api(tags = "设施和环境条件要求-防雷检测")
cnas-require/src/main/java/com/ruoyi/require/controller/FePowerStableController.java
@@ -24,7 +24,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:52
 */
@Api(tags = "设施和环境条件-设施和环境条件要求-电源稳定性")
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceAcceptanceController.java
@@ -22,7 +22,7 @@
 * æ ‡å‡†ç‰©è´¨éªŒæ”¶ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:29:41
 */
@Api(tags = "标准物质验收")
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceController.java
@@ -23,7 +23,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:58:59
 */
@Api(tags = "标准物质清单")
cnas-require/src/main/java/com/ruoyi/require/controller/FeStandardSubstanceRecordController.java
@@ -18,7 +18,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单借用归还记录表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 01:49:11
 */
@Api(tags = "标准物质清单借用归还记录")
cnas-require/src/main/java/com/ruoyi/require/controller/FeTempHumDateController.java
@@ -22,7 +22,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度 åŒºåŸŸ -父 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 11:02:18
 */
@Api(tags = "温湿度记录")
cnas-require/src/main/java/com/ruoyi/require/controller/ForeignRegisterController.java
@@ -20,7 +20,7 @@
 * å¤–来人员登记 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 07:17:35
 */
@Api(tags = "外来人员登记")
cnas-require/src/main/java/com/ruoyi/require/controller/InternalWastesController.java
@@ -20,7 +20,7 @@
 * å®‰å…¨å†…务三废登记 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:27
 */
@Api(tags = "安全内务三废登记")
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java
@@ -14,7 +14,7 @@
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 03:47:19
 */
@Api(tags = "服务和供应品采购耗材消耗")
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java
@@ -24,7 +24,7 @@
 * æœåŠ¡ä¸Žä¾›åº”å•† è€—材列表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 04:04:32
 */
@Api(tags = "服务和供应品采购耗材")
cnas-require/src/main/java/com/ruoyi/require/controller/SupplierManagementController.java
@@ -22,7 +22,7 @@
 * å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:46:45
 */
@Api(tags = "供应商管理")
cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java
@@ -18,7 +18,7 @@
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-17 06:14:51
 */
@Api(tags = "供应商管理树")
cnas-require/src/main/java/com/ruoyi/require/mapper/FeCalibrationScheduleMapper.java
@@ -11,7 +11,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 02:53:05
 */
public interface FeCalibrationScheduleMapper extends BaseMapper<FeCalibrationSchedule> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeIlluminationDetectionAreaMapper.java
@@ -8,7 +8,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表-检测区域 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:28
 */
public interface FeIlluminationDetectionAreaMapper extends BaseMapper<FeIlluminationDetectionArea> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeIlluminationMapper.java
@@ -12,7 +12,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:15:57
 */
public interface FeIlluminationMapper extends BaseMapper<FeIllumination> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeLightningProtectionMapper.java
@@ -11,7 +11,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-防雷检测 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:36
 */
public interface FeLightningProtectionMapper extends BaseMapper<FeLightningProtection> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeMeasuredQuantityMapper.java
@@ -8,7 +8,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性-测定量 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:44
 */
public interface FeMeasuredQuantityMapper extends BaseMapper<FeMeasuredQuantity> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FePowerStableMapper.java
@@ -16,7 +16,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:52
 */
public interface FePowerStableMapper extends BaseMapper<FePowerStable> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceInspectionMapper.java
@@ -8,7 +8,7 @@
 * éªŒæ”¶å¼€ç®±è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:30:09
 */
public interface FeStandardSubstanceAcceptanceInspectionMapper extends BaseMapper<FeStandardSubstanceAcceptanceInspection> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceAcceptanceMapper.java
@@ -12,7 +12,7 @@
 * æ ‡å‡†ç‰©è´¨éªŒæ”¶ Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:29:41
 */
public interface FeStandardSubstanceAcceptanceMapper extends BaseMapper<FeStandardSubstanceAcceptance> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceMapper.java
@@ -11,7 +11,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:58:59
 */
public interface FeStandardSubstanceMapper extends BaseMapper<FeStandardSubstance> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeStandardSubstanceRecordMapper.java
@@ -12,7 +12,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单借用归还记录表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 01:49:11
 */
public interface FeStandardSubstanceRecordMapper extends BaseMapper<FeStandardSubstanceRecord> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumDateMapper.java
@@ -13,7 +13,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度 åŒºåŸŸ -父 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 11:02:18
 */
public interface FeTempHumDateMapper extends BaseMapper<FeTempHumDate> {
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java
@@ -15,7 +15,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度记录 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:28:52
 */
public interface FeTempHumRecordMapper extends BaseMapper<FeTempHumRecord> {
cnas-require/src/main/java/com/ruoyi/require/mapper/ForeignRegisterMapper.java
@@ -15,7 +15,7 @@
 * å¤–来人员登记 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 07:17:35
 */
public interface ForeignRegisterMapper extends BaseMapper<ForeignRegister> {
cnas-require/src/main/java/com/ruoyi/require/mapper/InternalWastesDetailMapper.java
@@ -8,7 +8,7 @@
 * å®‰å…¨å†…务三废登记详情 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:54
 */
public interface InternalWastesDetailMapper extends BaseMapper<InternalWastesDetail> {
cnas-require/src/main/java/com/ruoyi/require/mapper/InternalWastesMapper.java
@@ -14,7 +14,7 @@
 * å®‰å…¨å†…务三废登记 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:27
 */
@Mapper
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java
@@ -8,7 +8,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 03:47:19
 */
public interface ProcurementSuppliesExpendsMapper extends BaseMapper<ProcurementSuppliesExpends> {
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesListMapper.java
@@ -15,7 +15,7 @@
 * æœåŠ¡ä¸Žä¾›åº”å•† è€—材列表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 04:04:32
 */
@Mapper
cnas-require/src/main/java/com/ruoyi/require/mapper/SupplierManagementMapper.java
@@ -15,7 +15,7 @@
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:46:45
 */
@Mapper
cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java
@@ -8,7 +8,7 @@
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-17 06:14:51
 */
public interface SuppliersDirectoryContentsMapper extends BaseMapper<SuppliersDirectoryContents> {
cnas-require/src/main/java/com/ruoyi/require/pojo/FeCalibrationSchedule.java
@@ -14,7 +14,7 @@
 * ä»ªå™¨è®¾å¤‡æ£€å®š/校准计划表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 02:53:05
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeIllumination.java
@@ -15,7 +15,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:15:57
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeIlluminationDetectionArea.java
@@ -16,7 +16,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表-检测区域
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:28
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeLightningProtection.java
@@ -17,7 +17,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-防雷检测
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:36
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeMeasuredQuantity.java
@@ -14,7 +14,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性-测定量
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:44
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FePowerStable.java
@@ -15,7 +15,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:52
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstance.java
@@ -14,7 +14,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:58:59
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptance.java
@@ -18,7 +18,7 @@
 * æ ‡å‡†ç‰©è´¨éªŒæ”¶
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:29:41
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceAcceptanceInspection.java
@@ -13,7 +13,7 @@
 * éªŒæ”¶å¼€ç®±è®°å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:30:09
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeStandardSubstanceRecord.java
@@ -14,7 +14,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单借用归还记录表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 01:49:11
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumDate.java
@@ -13,7 +13,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度 åŒºåŸŸ -父
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 11:02:18
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/FeTempHumRecord.java
@@ -17,7 +17,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度记录
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:28:52
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/ForeignRegister.java
@@ -14,7 +14,7 @@
 * å¤–来人员登记
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 07:17:35
 */
@Data
cnas-require/src/main/java/com/ruoyi/require/pojo/InternalWastes.java
@@ -12,7 +12,7 @@
 * å®‰å…¨å†…务三废登记
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:27
 */
@Data
cnas-require/src/main/java/com/ruoyi/require/pojo/InternalWastesDetail.java
@@ -12,7 +12,7 @@
 * å®‰å…¨å†…务三废登记详情
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:54
 */
@Data
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java
@@ -15,7 +15,7 @@
 * 
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 03:47:19
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesList.java
@@ -17,7 +17,7 @@
 * æœåŠ¡ä¸Žä¾›åº”å•† è€—材列表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 04:04:32
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/SupplierManagement.java
@@ -14,7 +14,7 @@
 * 
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:46:45
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java
@@ -15,7 +15,7 @@
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-17 06:14:51
 */
@Getter
cnas-require/src/main/java/com/ruoyi/require/service/FeCalibrationScheduleService.java
@@ -11,7 +11,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 02:53:05
 */
public interface FeCalibrationScheduleService extends IService<FeCalibrationSchedule> {
cnas-require/src/main/java/com/ruoyi/require/service/FeIlluminationDetectionAreaService.java
@@ -8,7 +8,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表-检测区域 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:28
 */
public interface FeIlluminationDetectionAreaService extends IService<FeIlluminationDetectionArea> {
cnas-require/src/main/java/com/ruoyi/require/service/FeIlluminationService.java
@@ -13,7 +13,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:15:57
 */
public interface FeIlluminationService extends IService<FeIllumination> {
cnas-require/src/main/java/com/ruoyi/require/service/FeLightningProtectionService.java
@@ -11,7 +11,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-防雷检测 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:36
 */
public interface FeLightningProtectionService extends IService<FeLightningProtection> {
cnas-require/src/main/java/com/ruoyi/require/service/FeMeasuredQuantityService.java
@@ -8,7 +8,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性-测定量 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:44
 */
public interface FeMeasuredQuantityService extends IService<FeMeasuredQuantity> {
cnas-require/src/main/java/com/ruoyi/require/service/FePowerStableService.java
@@ -15,7 +15,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:52
 */
public interface FePowerStableService extends IService<FePowerStable> {
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceInspectionService.java
@@ -8,7 +8,7 @@
 * éªŒæ”¶å¼€ç®±è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:30:09
 */
public interface FeStandardSubstanceAcceptanceInspectionService extends IService<FeStandardSubstanceAcceptanceInspection> {
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceAcceptanceService.java
@@ -15,7 +15,7 @@
 * æ ‡å‡†ç‰©è´¨éªŒæ”¶ æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:29:41
 */
public interface FeStandardSubstanceAcceptanceService extends IService<FeStandardSubstanceAcceptance> {
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceRecordService.java
@@ -13,7 +13,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单借用归还记录表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 01:49:11
 */
public interface FeStandardSubstanceRecordService extends IService<FeStandardSubstanceRecord> {
cnas-require/src/main/java/com/ruoyi/require/service/FeStandardSubstanceService.java
@@ -10,7 +10,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:58:59
 */
public interface FeStandardSubstanceService extends IService<FeStandardSubstance> {
cnas-require/src/main/java/com/ruoyi/require/service/FeTempHumDateService.java
@@ -13,7 +13,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度 åŒºåŸŸ -父 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 11:02:18
 */
public interface FeTempHumDateService extends IService<FeTempHumDate> {
cnas-require/src/main/java/com/ruoyi/require/service/FeTempHumRecordService.java
@@ -11,7 +11,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度记录 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:28:52
 */
public interface FeTempHumRecordService extends IService<FeTempHumRecord> {
cnas-require/src/main/java/com/ruoyi/require/service/ForeignRegisterService.java
@@ -13,7 +13,7 @@
 * å¤–来人员登记 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 07:17:35
 */
public interface ForeignRegisterService extends IService<ForeignRegister> {
cnas-require/src/main/java/com/ruoyi/require/service/InternalWastesDetailService.java
@@ -8,7 +8,7 @@
 * å®‰å…¨å†…务三废登记详情 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:54
 */
public interface InternalWastesDetailService extends IService<InternalWastesDetail> {
cnas-require/src/main/java/com/ruoyi/require/service/InternalWastesService.java
@@ -13,7 +13,7 @@
 * å®‰å…¨å†…务三废登记 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:27
 */
public interface InternalWastesService extends IService<InternalWastes> {
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java
@@ -12,7 +12,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 03:47:19
 */
public interface ProcurementSuppliesExpendsService extends IService<ProcurementSuppliesExpends> {
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesListService.java
@@ -13,7 +13,7 @@
 * æœåŠ¡ä¸Žä¾›åº”å•† è€—材列表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 04:04:32
 */
public interface ProcurementSuppliesListService extends IService<ProcurementSuppliesList> {
cnas-require/src/main/java/com/ruoyi/require/service/SupplierManagementService.java
@@ -13,7 +13,7 @@
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:46:45
 */
public interface SupplierManagementService extends IService<SupplierManagement> {
cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java
@@ -12,7 +12,7 @@
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-17 06:14:51
 */
public interface SuppliersDirectoryContentsService extends IService<SuppliersDirectoryContents> {
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeCalibrationScheduleServiceImpl.java
@@ -23,7 +23,7 @@
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 02:53:05
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationDetectionAreaServiceImpl.java
@@ -11,7 +11,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表-检测区域 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:28
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeIlluminationServiceImpl.java
@@ -36,7 +36,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-照度记录表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:15:57
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeLightningProtectionServiceImpl.java
@@ -14,7 +14,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-防雷检测 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:36
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeMeasuredQuantityServiceImpl.java
@@ -11,7 +11,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性-测定量 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:44
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FePowerStableServiceImpl.java
@@ -36,7 +36,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-电源稳定性 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:16:52
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceInspectionServiceImpl.java
@@ -11,7 +11,7 @@
 * éªŒæ”¶å¼€ç®±è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:30:09
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceAcceptanceServiceImpl.java
@@ -35,7 +35,7 @@
 * æ ‡å‡†ç‰©è´¨éªŒæ”¶ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 03:29:41
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceRecordServiceImpl.java
@@ -24,7 +24,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单借用归还记录表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-14 01:49:11
 */
@Transactional(rollbackFor = Exception.class)
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeStandardSubstanceServiceImpl.java
@@ -13,7 +13,7 @@
 * æ ‡å‡†ç‰©è´¨æ¸…单 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-13 03:58:59
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumDateServiceImpl.java
@@ -41,7 +41,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度 åŒºåŸŸ -父 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-09 11:02:18
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/FeTempHumRecordServiceImpl.java
@@ -15,7 +15,7 @@
 * è®¾æ–½å’ŒçŽ¯å¢ƒæ¡ä»¶-设施和环境条件要求-温湿度记录 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-07 04:28:52
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/ForeignRegisterServiceImpl.java
@@ -30,7 +30,7 @@
 * å¤–来人员登记 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 07:17:35
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesDetailServiceImpl.java
@@ -11,7 +11,7 @@
 * å®‰å…¨å†…务三废登记详情 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:54
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java
@@ -31,7 +31,7 @@
 * å®‰å…¨å†…务三废登记 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-19 06:39:27
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java
@@ -26,7 +26,7 @@
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 03:47:19
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesListServiceImpl.java
@@ -32,7 +32,7 @@
 * æœåŠ¡ä¸Žä¾›åº”å•† è€—材列表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 04:04:32
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/SupplierManagementServiceImpl.java
@@ -27,7 +27,7 @@
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-11-15 02:46:45
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java
@@ -18,7 +18,7 @@
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2024-12-17 06:14:51
 */
@Service
cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
@@ -86,7 +86,7 @@
     * èŽ·å–æ¸©åº¦æ¹¿åº¦
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 9 * * 1-6") // æ¯å¤©9点执行一次 é™¤äº†æ˜ŸæœŸå¤©
    @Scheduled(cron = "0 0 9 * * 1-6") // æ¯å¤©9点执行一次 é™¤äº†æ˜ŸæœŸå¤©
    public void task1() {
        checkLaboratoriesSchedule();
        // æ ¹æ®æ—¶é—´é™åºï¼ŒèŽ·å–åˆ°æœ€æ–°çš„ä¸€æ¡æ•°æ®
@@ -183,7 +183,7 @@
     * èŽ·å–æ¸©åº¦æ¹¿åº¦
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 14 * * 1-5") // æ¯å¤©14点执行一次 é™¤äº†æ˜ŸæœŸå…­å’Œæ˜ŸæœŸå¤©
    @Scheduled(cron = "0 0 14 * * 1-5") // æ¯å¤©14点执行一次 é™¤äº†æ˜ŸæœŸå…­å’Œæ˜ŸæœŸå¤©
    public void task2() {
        // æ£€æŸ¥å®žéªŒå®¤æ˜¯å¦æœ‰ä»»åŠ¡ å¦‚果没有新增任务
@@ -295,7 +295,7 @@
     * èŽ·å–æ¸©åº¦æ¹¿åº¦
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 9 * * 7") //
    @Scheduled(cron = "0 0 9 * * 7") //
    public void task3() {
        checkLaboratoriesSchedule();
@@ -338,7 +338,7 @@
     *
     */
//    @Scheduled(cron = "0/5 * * * * *")
//    @Scheduled(cron = "0 0 16 * * 1-6") // æ¯å¤©15点执行一次 é™¤äº†æ˜ŸæœŸå¤©
    @Scheduled(cron = "0 0 16 * * 1-6") // æ¯å¤©15点执行一次 é™¤äº†æ˜ŸæœŸå¤©
    public void affirmTempHum() {
        // æŸ¥è¯¢æœ‰æ—¥æœŸä½†æ˜¯æœªå¡«å†™åå­—çš„
        List<FeTempHumRecordDto> feTempHumRecordList = feTempHumRecordMapper.selectNoaffirm(LocalDate.now());
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsProductDeviationWarningController.java
@@ -23,7 +23,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警主表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:02
 */
@RestController
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsReportController.java
@@ -167,4 +167,18 @@
        Integer id = (Integer) param.get("id");
        return Result.success(insReportService.sendBackTask(id));
    }
    /**
     * æŠ¥å‘Šå¯¼å‡º
     * @param dto
     * @param response
     * @throws Exception
     */
    @ApiOperation(value = "报告导出")
    @GetMapping("/reportAllExport")
    @PreAuthorize("@ss.hasPermi('business:reportPreparation')")
    @PersonalScope(permsName = "business:reportPreparation", objectName = ReportPageDto.class, paramName = "createOrderUser")
    public void reportAllExport(ReportPageDto dto, HttpServletResponse response) throws Exception {
        insReportService.reportAllExport(dto,response);
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsReportExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.inspect.dto;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Author zhuo
 * @Date 2025/4/18
 */
@Data
@ExcelIgnoreUnannotated
public class InsReportExport {
    @ExcelProperty(value = "报告编号")
    @ApiModelProperty("委托编号")
    private String code;
    @ExcelProperty(value = "下单类型")
    @ApiModelProperty("下单类型")
    private String typeSource;
    @ExcelProperty(value = "检验类型")
    @ApiModelProperty("检验类型")
    private String orderType;
    @ExcelProperty(value = "创建时间")
    @ApiModelProperty("创建时间")
    private String createTime;
    @ExcelProperty(value = "提交人")
    @ApiModelProperty("提交人")
    private String writeUserName;
    @ExcelProperty(value = "提交时间")
    @ApiModelProperty("提交时间")
    private String writeTime;
    @ExcelProperty(value = "提交状态")
    @ApiModelProperty("提交状态")
    private String state;
    @ExcelProperty(value = "审核人")
    @ApiModelProperty("审核人")
    private String examineUser;
    @ExcelProperty(value = "审核时间")
    @ApiModelProperty("审核时间")
    private String examineTime;
    @ExcelProperty(value = "审核状态")
    @ApiModelProperty("审核状态")
    private String isExamine;
    @ExcelProperty(value = "审核备注")
    @ApiModelProperty("审核备注")
    private String examineTell;
    @ExcelProperty(value = "批准人")
    @ApiModelProperty("批准人")
    private String ratifyUser;
    @ExcelProperty(value = "批准时间")
    @ApiModelProperty("批准时间")
    private String ratifyTime;
    @ExcelProperty(value = "批准状态")
    @ApiModelProperty("批准状态")
    private String isRatify;
    @ExcelProperty(value = "批准备注")
    @ApiModelProperty("批准备注")
    private String ratifyTell;
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -92,7 +92,8 @@
    @ApiModelProperty("总价")
    private String totalPrice;
    @ApiModelProperty("订单id(导出用)")
    private String ids;
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -110,6 +110,10 @@
     */
    List<InsOrderPrintingVo> labelOrderPrinting(@Param("ids") List<Integer> ids);
    /**
     * æŸ¥è¯¢å¯¼å‡ºä¿¡æ¯
     * @return
     */
    List<SampleOrderDto> rawAllInsOrderExport(@Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory, @Param("isOrderAll") String isOrderAll);
    /**
@@ -119,5 +123,17 @@
     */
    String selectLaboratoryByOrderId(@Param("insOrderId") Integer insOrderId);
    /**
     * æŸ¥è¯¢è®¢å•信息
     * @param insSampleId
     * @return
     */
    InsOrder selectFirstSubmit(@Param("insSampleId") Integer insSampleId);
    /**
     * æ ¹æ®è®¢å•id查询订单导出信息
     * @param orderIds
     * @return
     */
    List<SampleOrderDto> getInsOrderExportByIds(@Param("orderIds") List<String> orderIds);
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningDetailMapper.java
@@ -8,7 +8,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警详情表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:58
 */
public interface InsProductDeviationWarningDetailMapper extends BaseMapper<InsProductDeviationWarningDetail> {
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningMapper.java
@@ -13,7 +13,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警主表 Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:02
 */
public interface InsProductDeviationWarningMapper extends BaseMapper<InsProductDeviationWarning> {
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
@@ -3,9 +3,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.inspect.dto.InsReportExport;
import com.ruoyi.inspect.dto.ReportPageDto;
import com.ruoyi.inspect.pojo.InsReport;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Administrator
@@ -31,6 +34,14 @@
    String getLaboratoryByName(@Param("name") String name, @Param("type") String type);
    /**
     * æŠ¥å‘ŠæŠ¥è¡¨å¯¼å‡º
     * @return
     */
    List<InsReportExport> reportAllExport(@Param("ew") QueryWrapper<ReportPageDto> ew,
                                          @Param("userId") Integer userId,
                                          @Param("queryStatus") String queryStatus,
                                          @Param("createOrderUser") Integer createOrderUser);
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarning.java
@@ -17,7 +17,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警主表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:02
 */
@Getter
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarningDetail.java
@@ -17,7 +17,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警详情表
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:58
 */
@Getter
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductDeviationWarningDetailService.java
@@ -8,7 +8,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警详情表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:58
 */
public interface InsProductDeviationWarningDetailService extends IService<InsProductDeviationWarningDetail> {
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductDeviationWarningService.java
@@ -12,7 +12,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警主表 æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:02
 */
public interface InsProductDeviationWarningService extends IService<InsProductDeviationWarning> {
inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java
@@ -8,7 +8,9 @@
import com.ruoyi.inspect.pojo.InsReport;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Map;
/**
@@ -58,4 +60,11 @@
     * @return
     */
    boolean sendBackTask(Integer id);
    /**
     * æŠ¥å‘Šå¯¼å‡º
     * @param dto
     * @param response
     */
    void reportAllExport(ReportPageDto dto, HttpServletResponse response) throws UnsupportedEncodingException;
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -822,9 +822,10 @@
        // 5.发送消息通知给复核人
        // æŸ¥è¯¢å½“前人信息
        Integer userId = SecurityUtils.getUserId().intValue();
        String userName = insProductMapper.selectUserById(userId).get("name");
        Map<String, String> userMap = insProductMapper.selectUserById(verifyUser);
        String userName = userMap.get("name");
        // æŸ¥è¯¢å‘送人信息
        String sendUserAccount = insProductMapper.selectUserById(verifyUser).get("account");
        String sendUserAccount = userMap.get("account");
        InformationNotification info = new InformationNotification();
        info.setCreateUser(userName);
        info.setMessageType("2");
@@ -938,7 +939,7 @@
            // æŸ¥è¯¢ifs信息获取获取前10个供应商一样的, æ£€éªŒé¡¹ä¸€æ ·ä¿¡æ¯
            threadPoolTaskExecutor.execute(() -> {
                // æ·»åŠ åˆ†æžæ•°æ®
                addAnalysis(productList, ifsInventoryQuantity, order, userName);
                addAnalysis(productList, ifsInventoryQuantity, order, sendUserAccount);
            });
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -992,8 +992,11 @@
     */
    @Override
    public void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response) {
        //判断全部,个人,组织的权限
        //todo:仅看我获取当前人所属实验室id
        List<SampleOrderDto> sampleOrderDtoList = new ArrayList<>();
        if (StringUtils.isNotBlank(sampleOrderDto.getIds())) {
            List<String> orderIds = StrUtil.split(sampleOrderDto.getIds(), ",");
            sampleOrderDtoList = insOrderMapper.getInsOrderExportByIds(orderIds);
        } else {
        String laboratory = null;
        // åˆ¤æ–­æ˜¯å¦æ˜¯å…¨éƒ¨
        String isOrderAll = null;
@@ -1001,7 +1004,9 @@
            isOrderAll = "1";
            sampleOrderDto.setState(null);
        }
        List<SampleOrderDto> sampleOrderDtoList = insOrderMapper.rawAllInsOrderExport(QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
            sampleOrderDto.setIds(null);
            sampleOrderDtoList = insOrderMapper.rawAllInsOrderExport(QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
        }
        // åˆ¤æ–­æ˜¯å¦æ˜¯ä¸åˆæ ¼, ä¸åˆæ ¼æŸ¥è¯¢ä¸åˆæ ¼é¡¹
        for (SampleOrderDto orderDto : sampleOrderDtoList) {
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductDeviationWarningDetailServiceImpl.java
@@ -11,7 +11,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警详情表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:58
 */
@Service
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductDeviationWarningServiceImpl.java
@@ -15,7 +15,7 @@
 * æ£€éªŒé¡¹åå·®é¢„警主表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @author
 * @since 2025-03-28 02:18:02
 */
@Service
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -1,11 +1,17 @@
package com.ruoyi.inspect.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -19,6 +25,7 @@
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.common.constant.InsOrderTypeConstants;
@@ -29,6 +36,7 @@
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.api.IfsApiUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.InsReportExport;
import com.ruoyi.inspect.dto.ReportPageDto;
import com.ruoyi.inspect.mapper.*;
import com.ruoyi.inspect.pojo.*;
@@ -48,8 +56,10 @@
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -988,6 +998,46 @@
        return false;
    }
    /**
     * æŠ¥å‘ŠæŠ¥è¡¨å¯¼å‡º
     * @param dto
     * @param response
     */
    @Override
    public void reportAllExport(ReportPageDto dto, HttpServletResponse response) throws UnsupportedEncodingException {
        Integer createOrderUser = dto.getCreateOrderUser();
        String queryStatus = dto.getQueryStatus();
        dto.setQueryStatus(null);
        dto.setCreateOrderUser(null);
        List<InsReportExport> insReportExports = insReportMapper.reportAllExport(QueryWrappers.queryWrappers(dto),
                SecurityUtils.getUserId().intValue(),
                queryStatus,
                createOrderUser);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = URLEncoder.encode("报告报表导出", "UTF-8");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            //新建ExcelWriter
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            //获取sheet0对象
            WriteSheet mainSheet = EasyExcel.writerSheet(0, "报告报表导出").head(InsReportExport.class).build();
            //向sheet0写入数据 ä¼ å…¥ç©ºlist这样只导出表头
            excelWriter.write(insReportExports, mainSheet);
            //关闭流
            excelWriter.finish();
        } catch (IOException e) {
            throw new RuntimeException("导出失败");
        }
    }
    /**
     * å…ˆä¿®æ”¹é‡‡è´­è®¢å•批次号, åŽè¿›è¡Œç§»åº“操作
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -12,6 +12,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.ruoyi.basic.dto.*;
@@ -672,12 +673,19 @@
     */
    @Override
    public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException {
        //查询导出的费用统计数据
        // åˆ¤æ–­æ˜¯å¦æ˜¯æ ¹æ®é€‰æ‹©çš„导出
        List<IfsInventoryQuantitySupplierDto> ifsByOverList = new ArrayList<>();
        if (StringUtils.isNotBlank(ifsInventoryQuantityDto.getIds())) {
            List<String> ifsIds = StrUtil.split(ifsInventoryQuantityDto.getIds(), ",");
            ifsByOverList = standardTreeMapper.getIfsByIds(ifsIds);
        } else {
        String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
        String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
        ifsInventoryQuantityDto.setBeginDeclareDate(null);
        ifsInventoryQuantityDto.setEndDeclareDate(null);
        List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
            ifsInventoryQuantityDto.setIds(null);
            ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
        }
        for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) {
            dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -45,6 +45,61 @@
        ip.cable_tag
    </sql>
    <sql id="selectInsOrderExport">
        SELECT
            io.*,
            isau.user_id assign,
            ir.id report_id,
            ir.url,
            ir.url_s,
            sample_counts.sample_num,
            CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
            io.sample_view AS sample_name,
            GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
            u.name,
            testing_name,
            case when io.type = 0 then '普通'
                 when io.type = 1 then '优先'
                 when io.type = 2 then '紧急'
                end typeString,
            case when io.ins_result = 1 then '合格'
                 when io.ins_result = 0 then '不合格'
                 else '待检验' end insResultString
        FROM
            ins_order io
                LEFT JOIN
            ins_sample isa ON io.id = isa.ins_order_id
                LEFT JOIN
            ins_sample_user isau ON isau.ins_sample_id = io.id
                LEFT JOIN
            (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
                LEFT JOIN
            user u ON io.create_user = u.id
                LEFT JOIN
            (SELECT ins_order_id, COUNT(*) AS sample_num
             FROM ins_sample
             WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
             GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
                LEFT JOIN
            (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
             FROM ins_product
                      JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
             WHERE ins_product.state = 1
             GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
                LEFT JOIN
            (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
             FROM ins_product
                      JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
             WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
             GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
                LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
                           FROM ins_sample_user u
                                    LEFT JOIN user uu ON u.user_id = uu.id
                           WHERE u.state = 0
                           GROUP BY ins_sample_id
                           ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
    </sql>
    <select id="selectInsOrderPage" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
        select *
        from (
@@ -356,59 +411,7 @@
    <!-- æŸ¥è¯¢æ£€éªŒå•数据 -->
    <select id="rawAllInsOrderExport" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
        select *
        from (
        SELECT
        io.*,
        isau.user_id assign,
        ir.id report_id,
        ir.url,
        ir.url_s,
        sample_counts.sample_num,
        CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
        io.sample_view AS sample_name,
        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
        u.name,
        testing_name,
        case when io.type = 0 then '普通'
        when io.type = 1 then '优先'
        when io.type = 2 then '紧急'
            end typeString,
        case when io.ins_result = 1 then '合格'
        when io.ins_result = 0 then '不合格'
        else '待检验' end insResultString
        FROM
        ins_order io
        LEFT JOIN
        ins_sample isa ON io.id = isa.ins_order_id
        LEFT JOIN
        ins_sample_user isau ON isau.ins_sample_id = io.id
        LEFT JOIN
        (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
        LEFT JOIN
        user u ON io.create_user = u.id
        LEFT JOIN
        (SELECT ins_order_id, COUNT(*) AS sample_num
        FROM ins_sample
        WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
        GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
        LEFT JOIN
        (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
        FROM ins_product
        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
        WHERE ins_product.state = 1
        GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
        LEFT JOIN
        (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
        FROM ins_product
        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
        WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
        GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
        LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
        FROM ins_sample_user u
        LEFT JOIN user uu ON u.user_id = uu.id
        WHERE u.state = 0
        GROUP BY ins_sample_id
        ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
        from ( <include refid="selectInsOrderExport"/>
        where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
        <if test="isOrderAll != null and isOrderAll != ''">
            AND io.state in (1, 4)
@@ -440,4 +443,16 @@
                 left join ins_sample is2 on is2.ins_order_id = io.id
        where is2.id = #{insSampleId}
    </select>
    <!-- æ ¹æ®è®¢å•id查询订单导出信息 -->
    <select id="getInsOrderExportByIds" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
        <include refid="selectInsOrderExport"/>
        where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
        and io.id in
        <foreach item="id" collection="orderIds" open="(" separator="," close=")">
            #{id}
        </foreach>
        GROUP BY io.id,type
        order by type desc,io.id desc
    </select>
</mapper>
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml
@@ -31,7 +31,8 @@
    <!-- æ ¹æ®è®¢å•id查询检验结果 -->
    <select id="selectResultByOrderId" resultType="com.ruoyi.inspect.pojo.InsProductResult">
        select ipr.equip_value
        select ipr.equip_value,
            ipr.create_user
        from ins_product_result ipr
                 left join ins_product ip on ip.id = ipr.ins_product_id
                 left join ins_sample is2 on is2.id = ip.ins_sample_id
inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -64,4 +64,74 @@
        order by s.create_time desc
        limit 1
    </select>
    <!-- æŠ¥å‘ŠæŠ¥è¡¨å¯¼å‡º -->
    <select id="reportAllExport" resultType="com.ruoyi.inspect.dto.InsReportExport">
        select code,
        case when type_source = 0 then '成品下单' else '原材料下单' end                    type_source,
        case
        when order_type = '抽检' then '抽检'
        when order_type = 'Customer-ordered test' then '委托检验'
        when order_type = '进厂检验' then '进厂检验'
        when order_type = 'Quarterly inspection' then '季度检验'
        else '' end                                                                    order_type,
        DATE_FORMAT(create_Time, '%Y-%m-%d %H:%i:%s')                                      create_Time,
        write_user_name,
        DATE_FORMAT(write_time, '%Y-%m-%d %H:%i:%s')                                       write_time,
        case when state = 0 then '待提交' when state = 1 then '已提交' else '' end         state,
        examine_user,
        DATE_FORMAT(examine_time, '%Y-%m-%d %H:%i:%s')                                     examine_time,
        case when is_examine = 0 then '不通过' when is_examine = 1 then '通过' else '' end is_examine,
        examine_tell,
        ratify_user,
        DATE_FORMAT(ratify_time, '%Y-%m-%d %H:%i:%s')                                      ratify_time,
        case when is_ratify = 0 then '不批准' when is_ratify = 1 then '批准' else '' end   is_ratify,
        ratify_tell
        from (
        select
        ir.*,
        io.entrust_code,
        u.name write_user_name,
        u1.name ratify_user,
        u2.name examine_user,
        io.type_source,
        io.order_type,
        io.laboratory,
        io.ifs_inventory_id,
        iiq.is_copper,
        ip.son_laboratory
        from ins_report ir
        left join ins_order io on io.id = ir.ins_order_id
        LEFT JOIN ifs_inventory_quantity iiq ON iiq.id = io.ifs_inventory_id
        left join user u on u.id = ir.write_user_id
        left join user u1 on u1.id = ir.ratify_user_id
        left join user u2 on u2.id = ir.examine_user_id
        left join ins_sample is2 on is2.ins_order_id = io.id
        left join ins_product ip on ip.ins_sample_id = is2.id
        where 1=1
        and ir.is_pass = 1
        <if test="createOrderUser != null and createOrderUser != ''">
            and (ir.write_user_id = #{createOrderUser} or ir.examine_user_id = #{createOrderUser} or ir.ratify_user_id = #{createOrderUser})
        </if>
        <if test="queryStatus != null and queryStatus != ''">
            <!-- å¾…提交-->
            <if test='queryStatus == 0'>
                and ir.state = 0
            </if>
            <!-- å¾…审批-->
            <if test='queryStatus == 1'>
                and ir.state = 1 and (ir.is_examine != 1 or ir.is_examine is null)
            </if>
            <!-- å¾…批准-->
            <if test='queryStatus == 2'>
                and ir.state = 1 and ir.is_examine = 1 and (ir.is_ratify != 1 or ir.is_ratify is null)
            </if>
        </if>
        group by ir.id
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
        ORDER BY a.create_time DESC
    </select>
</mapper>
ruoyi-common/src/main/java/com/ruoyi/common/constant/DeviceImpowerConstants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.common.constant;
/**
 * @Author zhuo
 * @Date 2025/4/18
 */
public class DeviceImpowerConstants {
    /**
     * è€åŒ–室维护内容
     */
    public static final String AGING_MAINTENANCE_CONTENT = "aging_maintenance_content";
    /**
     * ç”µæ€§èƒ½å®žéªŒå®¤ç»´æŠ¤å†…容
     */
    public static final String ELECTRICAL_MAINTENANCE_CONTENT = "electrical_maintenance_content";
    /**
     * çŽ¯å¢ƒå®žéªŒå®¤ç»´æŠ¤å†…å®¹
     */
    public static final String ENVIRONMENTAL_MAINTENANCE_CONTENT = "environmental_maintenance_content";
    /**
     * ç‡ƒçƒ§å®žéªŒå®¤ç»´æŠ¤å†…容
     */
    public static final String BURN_MAINTENANCE_CONTENT = "burn_maintenance_content";
    /**
     * æ··ç‚¼å®žéªŒå®¤ç»´æŠ¤å†…容
     */
    public static final String MIXING_MAINTENANCE_CONTENT = "mixing_maintenance_content";
    /**
     * æ£€æµ‹ä¸­å¿ƒç”µæ€§èƒ½å®žéªŒå®¤ç»´æŠ¤å†…容
     */
    public static final String CENTER_ELECTRICAL_MAINTENANCE_CONTENT = "center_electrical_maintenance_content";
    /**
     * æ’温二维护内容
     */
    public static final String TEMPERATURE2_MAINTENANCE_CONTENT = "temperature2_maintenance_content";
    /**
     * æ’温一维护内容
     */
    public static final String TEMPERATURE1_MAINTENANCE_CONTENT = "temperature1_maintenance_content";
    /**
     * åŒ–学实验室维护内容
     */
    public static final String CHEMISTRY_MAINTENANCE_CONTENT = "chemistry_maintenance_content";
    /**
     * åˆ¶æ ·å®¤ç»´æŠ¤å†…容
     */
    public static final String SAMPLE_MAINTENANCE_CONTENT = "sample_maintenance_content";
    /**
     * ä½Žæ¸©å®žéªŒå®¤ç»´æŠ¤å†…容
     */
    public static final String HYPOTHERMIA_MAINTENANCE_CONTENT = "hypothermia_maintenance_content";
}
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -48,7 +48,7 @@
     */
    @Autowired
    @Qualifier("UserDetailsByOpenIdServiceImpl")
    private UserDetailsService userDetailsServiceByOpenId;
    private UserDetailsService userDetailsServiceBySSO;
    /**
     * è®¤è¯å¤±è´¥å¤„理类
@@ -91,11 +91,11 @@
        daoAuthenticationProvider.setPasswordEncoder(bCryptPasswordEncoder());
        // sso登陆鉴权 Provider
        SsoCodeAuthenticationProvider wxCodeAuthenticationProvider = new SsoCodeAuthenticationProvider();
        wxCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceByOpenId);
        SsoCodeAuthenticationProvider ssoCodeAuthenticationProvider = new SsoCodeAuthenticationProvider();
        ssoCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceBySSO);
        List<AuthenticationProvider> providers = new ArrayList<>();
        providers.add(wxCodeAuthenticationProvider);
        providers.add(ssoCodeAuthenticationProvider);
        providers.add(daoAuthenticationProvider);
        return new ProviderManager(providers);
ruoyi-framework/src/main/java/com/ruoyi/framework/web/ssoAuth/SsoCodeAuthenticationProvider.java
@@ -28,7 +28,7 @@
    @Override
    public boolean supports(Class<?> authentication) {
        // åˆ¤æ–­ authentication æ˜¯ä¸æ˜¯ WxCodeAuthenticationToken çš„子类或子接口
        // åˆ¤æ–­ authentication æ˜¯ä¸æ˜¯ SsoCodeAuthenticationToken çš„子类或子接口
        return SsoCodeAuthenticationToken.class.isAssignableFrom(authentication);
    }
ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
@@ -91,7 +91,9 @@
               name_en,
               status
        from user u
        where depart_lims_id = (select u2.depart_lims_id
        where depart_lims_id is not null
          and depart_lims_id != ''
          and depart_lims_id = (select u2.depart_lims_id
                                from user u2
                                where u2.id = #{userId})
    </select>