From 07524804b9d927556c18ce68d32eacf04c0e9445 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期一, 24 二月 2025 13:36:10 +0800 Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/lims-ruoyi-after into dev_cr --- cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java | 27 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java | 21 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java | 16 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java | 16 cnas-process/src/main/resources/static/quality-monitor.docx | 0 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewBackupsService.java | 16 cnas-personnel/src/main/resources/static/supervision-record.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java | 16 ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java | 27 cnas-process/src/main/resources/mapper/ProcessMethodVerifyMethodFileMapper.xml | 6 cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java | 30 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java | 34 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java | 25 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java | 12 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewArchived.java | 63 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java | 370 + cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java | 81 cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml | 14 cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java | 88 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewArchivedServiceImpl.java | 20 cnas-personnel/src/main/resources/static/person-basic-info.docx | 0 cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderDetailService.java | 16 cnas-personnel/src/main/resources/static/supervision-control-sheet.docx | 0 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java | 15 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java | 60 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java | 68 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java | 83 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewBackupsDto.java | 62 cnas-process/src/main/resources/mapper/InspectionOrderDetailMapper.xml | 19 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java | 67 cnas-process/pom.xml | 4 cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java | 15 cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java | 66 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java | 156 cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java | 15 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java | 19 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java | 156 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java | 61 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordPersonDetailedDto.java | 26 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java | 30 cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml | 29 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java | 100 cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java | 118 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java | 15 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java | 24 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java | 113 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java | 62 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java | 74 cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java | 25 cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java | 31 cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectFileMapper.xml | 6 pom.xml | 8 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java | 28 cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java | 27 cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java | 22 cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java | 45 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java | 19 cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java | 28 cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java | 45 cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml | 13 cnas-personnel/pom.xml | 46 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewArchivedMapper.java | 28 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java | 26 cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java | 23 cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java | 160 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java | 229 cnas-personnel/src/main/resources/static/credentials-deal.docx | 0 cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java | 20 cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java | 87 cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml | 24 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java | 31 cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java | 28 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java | 25 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java | 132 cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java | 51 cnas-process/src/main/resources/static/excel/check-records.xlsx | 0 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewArchivedDto.java | 19 cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml | 15 cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java | 56 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewArchivedService.java | 16 cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml | 47 cnas-process/src/main/resources/static/report-deal.docx | 0 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java | 61 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDto.java | 23 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java | 437 + cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java | 14 cnas-personnel/src/main/resources/static/person-training.docx | 0 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java | 21 cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java | 17 cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml | 35 cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml | 118 cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java | 34 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java | 65 cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java | 30 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java | 87 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java | 59 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java | 35 cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java | 16 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java | 26 cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java | 64 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java | 53 cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml | 21 cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java | 94 cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java | 33 cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java | 88 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailedFile.java | 49 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java | 54 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordListDto.java | 37 cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java | 144 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java | 66 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDetailedDto.java | 29 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java | 20 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java | 61 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java | 21 cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java | 17 cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml | 23 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java | 20 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java | 27 cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java | 19 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java | 429 + cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java | 56 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java | 99 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java | 17 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java | 82 cnas-process/src/main/resources/mapper/ProcessDealMapper.xml | 26 cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java | 4 cnas-process/src/main/resources/static/supervision-detail-record.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java | 47 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java | 24 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java | 23 cnas-process/src/main/resources/static/quality-monitor-evaluate.docx | 0 cnas-process/src/main/resources/static/inspection-order.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordSubmitDto.java | 35 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java | 14 cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java | 37 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java | 416 + cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java | 19 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java | 19 cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml | 19 cnas-process/src/main/resources/static/quality-supervise.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java | 114 cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java | 16 cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml | 26 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java | 92 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java | 29 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java | 20 cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java | 24 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java | 454 + cnas-process/src/main/resources/static/sample-deal.docx | 0 cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java | 40 cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml | 20 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java | 55 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java | 29 cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrderDetail.java | 62 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java | 70 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedFileMapper.java | 15 cnas-process/src/main/resources/static/sample-receive.docx | 0 cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java | 23 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java | 24 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java | 1118 +++ cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java | 13 cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java | 74 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java | 246 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java | 19 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java | 74 cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java | 231 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java | 19 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java | 101 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java | 78 cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml | 126 cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java | 25 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java | 177 cnas-process/src/main/resources/static/supervise-detail-correct.docx | 0 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java | 17 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java | 30 cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx | 0 cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java | 128 cnas-personnel/src/main/resources/static/communication-deal.docx | 0 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java | 25 cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderDetailMapper.java | 16 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java | 78 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java | 29 cnas-process/src/main/resources/mapper/ProcessMethodVerifyMachineAttachmentMapper.xml | 5 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordExportDto.java | 32 cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java | 63 cnas-process/src/main/resources/static/method-verify.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordDto.java | 23 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java | 105 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java | 16 cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderDetailServiceImpl.java | 20 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java | 45 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java | 56 cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedListener.java | 42 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java | 48 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java | 9 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java | 42 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java | 38 cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java | 15 cnas-personnel/src/main/resources/static/explain-deal.docx | 0 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java | 17 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java | 42 cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedUpload.java | 35 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java | 32 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java | 48 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java | 54 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java | 85 cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml | 22 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java | 41 cnas-personnel/src/main/resources/mapper/PersonTrainingMapper.xml | 46 cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java | 310 + cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java | 15 cnas-process/src/main/resources/static/supervision-detail-according.docx | 0 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java | 99 cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml | 6 ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml | 25 cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateFileMapper.xml | 5 cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java | 353 + cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java | 15 cnas-personnel/src/main/resources/static/person-training-record.docx | 0 cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml | 26 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java | 20 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java | 23 cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java | 132 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java | 14 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java | 19 cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java | 27 cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java | 201 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java | 104 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDetailsDto.java | 65 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java | 20 cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml | 65 cnas-personnel/src/main/resources/static/personnel-capacity.docx | 0 cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java | 18 cnas-process/src/main/resources/mapper/ProcessReportMapper.xml | 41 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java | 61 cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java | 78 cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java | 29 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java | 36 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java | 128 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java | 158 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java | 82 cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java | 15 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java | 21 cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java | 43 cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml | 28 cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml | 62 cnas-process/src/main/resources/mapper/ProcessMethodSearchNewArchivedMapper.xml | 19 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java | 19 cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml | 24 cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml | 11 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java | 142 cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java | 29 cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java | 37 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java | 113 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java | 60 cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java | 295 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java | 812 ++ cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml | 36 cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java | 58 cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java | 28 cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml | 20 cnas-process/src/main/resources/static/inconsistent-distribution.docx | 0 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java | 59 cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java | 63 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java | 59 cnas-personnel/src/main/resources/static/training-record.docx | 0 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java | 133 cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrder.java | 110 cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoWorkDto.java | 16 cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java | 36 cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java | 27 cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java | 7 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java | 340 + cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java | 83 cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml | 57 cnas-personnel/src/main/resources/static/super-vise-plan.docx | 0 cnas-process/src/main/resources/mapper/ProcessMethodSearchNewBackupsMapper.xml | 16 cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml | 15 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java | 77 cnas-process/src/main/resources/mapper/QualityMonitorDetailsRatifyMapper.xml | 5 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java | 423 + cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml | 34 ruoyi-admin/pom.xml | 12 cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDto.java | 19 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewBackupsServiceImpl.java | 20 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java | 16 cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java | 70 cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java | 94 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java | 79 /dev/null | 8 cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java | 61 cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderService.java | 86 cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewBackups.java | 84 cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java | 21 cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java | 21 cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java | 27 297 files changed, 18,032 insertions(+), 10 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java index 0251cac..74f3ba3 100644 --- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java +++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ClientSatisfactionController.java @@ -71,7 +71,7 @@ */ @ApiOperation(value = "瀹㈡埛婊℃剰搴﹁皟鏌ユ柊澧�") - @GetMapping("/delClientSatisfaction") + @DeleteMapping("/delClientSatisfaction") public Result updateClientSatisfaction(Integer clientSatisfactionId){ return Result.success(clientSatisfactionService.removeById(clientSatisfactionId)); } @@ -132,7 +132,7 @@ */ @ApiOperation(value = "鍒犻櫎鎴峰垎鏋愰檮浠�") - @GetMapping("/delAnalyseFile") + @DeleteMapping("/delAnalyseFile") public Result delAnalyseFile(Integer analyseFileId){ return Result.success(clientSatisfactionAnalyseFileMapper.deleteById(analyseFileId)); } diff --git a/cnas-personnel/pom.xml b/cnas-personnel/pom.xml new file mode 100644 index 0000000..689a7a9 --- /dev/null +++ b/cnas-personnel/pom.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi</artifactId> + <version>3.8.9</version> + </parent> + + <artifactId>cnas-personnel</artifactId> + + <dependencies> + <!-- 閫氱敤宸ュ叿--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-common</artifactId> + </dependency> + + <!-- 鏍稿績妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-framework</artifactId> + </dependency> + + <!-- 绯荤粺妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>ruoyi-system</artifactId> + </dependency> + + <!-- 绯荤粺妯″潡--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>inspect-server</artifactId> + </dependency> + </dependencies> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + +</project> diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java new file mode 100644 index 0000000..01b44d4 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java @@ -0,0 +1,229 @@ +package com.ruoyi.personnel.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.core.domain.entity.DepartmentDto; +import com.ruoyi.common.utils.FileSaveUtil; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonBasicInfoDetailsDto; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.dto.UserPageDto; +import com.ruoyi.personnel.pojo.Annex; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +import com.ruoyi.personnel.service.AnnexService; +import com.ruoyi.personnel.service.PersonBasicInfoFileService; +import com.ruoyi.personnel.service.PersonBasicInfoService; +import com.ruoyi.personnel.service.PersonBasicInfoWorkService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +@Api(tags = "浜哄憳-浜哄憳鍩烘湰淇℃伅") +@RestController +@RequestMapping("/personBasicInfo") +public class PersonBasicInfoController { + + @Resource + private PersonBasicInfoService personBasicInfoService; + + @Resource + private PersonBasicInfoFileService personBasicInfoFileService; + @Resource + private PersonBasicInfoWorkService personBasicInfoWorkService; + + @Resource + private AnnexService annexService; + + + @ApiOperation(value = "鏌ヨCNAS浜哄憳渚ц竟鏍�") + @GetMapping("/selectCNSAPersonTree") + public Result<List<DepartmentDto>> selectCNSAPersonTree() { + return Result.success(personBasicInfoService.selectCNSAPersonTree()); + } + + @ApiOperation(value = "鑾峰彇CNAS浜哄憳鍩烘湰淇℃伅") + @GetMapping("/getCNASPersonnelInfo") + public Result getCNASPersonnelInfo(Integer userId) { + return Result.success(personBasicInfoService.getCNASPersonnelInfo(userId)); + } + + @ApiOperation(value = "淇濆瓨CNAS浜哄憳鍩烘湰淇℃伅") + @PostMapping("/saveCNASPersonnelInfo") + public Result saveCNASPersonnelInfo(@RequestBody PersonBasicInfoDto personBasicInfoDto) { + personBasicInfoService.saveCNASPersonnelInfo(personBasicInfoDto); + return Result.success(); + } + + @ApiOperation(value = "浜哄憳鏄庣粏鍒嗛〉鏌ヨ") + @GetMapping("basicInformationOfPersonnelSelectPage") + public Result<IPage<Map<String, Object>>> basicInformationOfPersonnelSelectPage(Page<List<PersonBasicInfoDetailsDto>> page, String name, Integer departmentId) { + return Result.success(personBasicInfoService.basicInformationOfPersonnelSelectPage(page, name, departmentId)); + } + + // 涓婁紶鏂囦欢鎺ュ彛 + @ApiOperation(value = "涓婁紶鏂囦欢鎺ュ彛") + @PostMapping("/saveCNASFile") + public Result saveFile(@RequestPart("file") MultipartFile file) { + String s = FileSaveUtil.uploadWordFile(file); + return Result.success("涓婁紶鎴愬姛", s); + } + + @GetMapping("/getAnnexByUserId") + public Result<List<Annex>> getAnnexByUserId(Integer userId) { + List<Annex> list = annexService.list(new LambdaQueryWrapper<Annex>().eq(Annex::getUserId, userId)); + return Result.success(list); + } + + // 鍒犻櫎鏂囦欢 + @DeleteMapping("/deleteCNASFile") + public Result saveFile(String fileName) { + String[] split = fileName.split(","); + for (String s : split) { + FileSaveUtil.DeleteFile(s); + } + return Result.success(); + + } + + /** + * 浜哄憳鍩烘湰淇℃伅闄勪欢鏂板 + */ + @PostMapping("/addAnnex") + public Result addAnnex(@RequestBody Annex annex) { + annexService.save(annex); + return Result.success(); + } + + @GetMapping("/getAnnex") + public Result<Annex> getAnnex(Integer id) { + return Result.success(annexService.getById(id)); + } + /** + * 浜哄憳鍩烘湰淇℃伅闄勪欢鍒犻櫎 + */ + @DeleteMapping("/deleteAnnex") + public Result deleteAnnex(Integer id) { + annexService.removeById(id); + return Result.success(); + } + + /** + * 浜哄憳鍩烘湰淇℃伅闄勪欢淇敼 + * + */ + @PostMapping("/updateAnnex") + public Result updateAnnex(@RequestBody Annex annex) { + annexService.updateById(annex); + return Result.success(); + } + + @ApiOperation(value = "瀵煎嚭浜哄憳鍩烘湰淇℃伅") + @GetMapping("/exportPersonBasicInfo") + public void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception { + personBasicInfoService.exportPersonBasicInfo(userPageDto,response); + } + + @ApiOperation(value = "涓嬭浇浜哄憳妗f鍗�") + @GetMapping("/exportPersonBasicInfoById") + public Result exportPersonBasicInfoById(Integer id, HttpServletResponse response) { + return Result.success(personBasicInfoService.exportPersonBasicInfoById(id,response)); + } + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 + * @param userId + * @param file + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板") + @PostMapping("/uploadBasicInfoFile") + public Result<?> uploadBasicInfoFile(Integer userId, MultipartFile file) { + return Result.success(personBasicInfoService.uploadBasicInfoFile(userId, file)); + } + + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒楄〃 + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒楄〃") + @GetMapping("/getBasicInfoFileList") + public Result<List<PersonBasicInfoFile>> getBasicInfoFileList(Integer userId){ + return Result.success(personBasicInfoFileService.list(Wrappers.<PersonBasicInfoFile>lambdaQuery() + .eq(PersonBasicInfoFile::getUserId, userId))); + } + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒犻櫎 + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鍒犻櫎") + @GetMapping("/delBasicInfoFileList") + public Result delBasicInfoFileList(Integer basicInfoFileId){ + return Result.success(personBasicInfoFileService.removeById(basicInfoFileId)); + } + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅宸ヤ綔缁忓巻鏂板 + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅鍩烘湰淇℃伅宸ヤ綔缁忓巻鏂板") + @PostMapping("/addBasicInfoWork") + public Result<?> addBasicInfoWork(@RequestBody PersonBasicInfoWork basicInfoWork) { + if (basicInfoWork.getUserId() == null) { + throw new ErrorException("缂哄皯浜哄憳id"); + } + basicInfoWork.setUserId(basicInfoWork.getUserId()); + return Result.success(personBasicInfoWorkService.save(basicInfoWork)); + } + + + /** + * 浜哄憳宸ヤ綔缁忓巻鍒楄〃 + * @return + */ + @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻鍒楄〃") + @GetMapping("/getBasicInfoWorkList") + public Result<List<PersonBasicInfoWork>> getBasicInfoWorkList(Integer userId){ + return Result.success(personBasicInfoWorkService.list(Wrappers.<PersonBasicInfoWork>lambdaQuery() + .eq(PersonBasicInfoWork::getUserId, userId))); + } + + /** + * 浜哄憳宸ヤ綔缁忓巻鍒犻櫎 + * @return + */ + @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻鍒犻櫎") + @GetMapping("/delBasicInfoWorkList") + public Result delBasicInfoWorkList(Integer basicInfoWorkId){ + return Result.success(personBasicInfoWorkService.removeById(basicInfoWorkId)); + } + + /** + * 浜哄憳鍩烘湰淇℃伅闄勪欢鍒犻櫎 + * @return + */ + @ApiOperation(value = "浜哄憳宸ヤ綔缁忓巻淇敼") + @PostMapping("/updateBasicInfoWorkList") + public Result updateBasicInfoWorkList(@RequestBody PersonBasicInfoWork basicInfoWork){ + return Result.success(personBasicInfoWorkService.updateById(basicInfoWork)); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java new file mode 100644 index 0000000..3aef8b9 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonCommunicationAbilityController.java @@ -0,0 +1,61 @@ +package com.ruoyi.personnel.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.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import com.ruoyi.personnel.service.PersonCommunicationAbilityService; +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> + * 娌熼�氳褰� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Api(tags = "浜哄憳 - 娌熼�氳褰�") +@RestController +@RequestMapping("/personCommunicationAbility") +public class PersonCommunicationAbilityController { + + @Autowired + private PersonCommunicationAbilityService personCommunicationAbilityService; + + @ApiOperation(value = "鏂板/鏇存柊 娌熼�氳褰�") + @PostMapping("addOrUpdatePersonCommunicationAbility") + public Result<?> addOrUpdatePersonCommunicationAbility(@RequestBody PersonCommunicationAbility personCommunicationAbility) { + personCommunicationAbilityService.saveOrUpdate(personCommunicationAbility); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎 娌熼�氳褰�") + @DeleteMapping("deletePersonCommunicationAbility") + public Result<?> deletePersonCommunicationAbility(@RequestParam("id") Integer id) { + personCommunicationAbilityService.removeById(id); + return Result.success(); + } + + + @ApiOperation(value = "鏌ヨ 娌熼�氳褰�") + @GetMapping("personPersonCommunicationAbilityPage") + public Result<IPage<PersonCommunicationAbilityDto>> personPersonCommunicationAbilityPage(Page page, + Integer departLimsId, + Integer userId, + String userName) { + return Result.success(personCommunicationAbilityService.personPersonCommunicationAbilityPage(page, departLimsId, userId, userName)); + } + + @ApiOperation(value = "瀵煎嚭娌熼�氳褰�") + @PostMapping("exportPersonCommunicationAbility") + public void exportPersonCommunicationAbility(Integer id, HttpServletResponse response) throws Exception{ + personCommunicationAbilityService.exportPersonCommunicationAbility(id,response); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java new file mode 100644 index 0000000..615af7b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonJobResponsibilitiesController.java @@ -0,0 +1,60 @@ +package com.ruoyi.personnel.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.personnel.dto.PersonJobResponsibilitiesDto; +import com.ruoyi.personnel.pojo.PersonJobResponsibilities; +import com.ruoyi.personnel.service.PersonJobResponsibilitiesService; +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> + * 宀椾綅鑱岃矗 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 02:07:49 + */ +@Api(tags = "浜哄憳 - 宀椾綅鑱岃矗") +@RestController +@RequestMapping("/personJobResponsibilities") +public class PersonJobResponsibilitiesController { + @Autowired + private PersonJobResponsibilitiesService personJobResponsibilitiesService; + + @ApiOperation(value = "鏂板/鏇存柊 宀椾綅鑱岃矗") + @PostMapping("/personJobResponsibilitiesSave") + public Result<?> personJobResponsibilitiesSave(@RequestBody PersonJobResponsibilities personJobResponsibilities) { + personJobResponsibilitiesService.saveOrUpdate(personJobResponsibilities); + return Result.success(); + } + + + @ApiOperation(value = "鍒犻櫎 宀椾綅鑱岃矗") + @DeleteMapping("/personJobResponsibilitiesDelete") + public Result<?> personJobResponsibilitiesDelete(@RequestParam("id") Integer id) { + personJobResponsibilitiesService.removeById(id); + return Result.success(); + } + + + @ApiOperation(value = "鏌ヨ 宀椾綅鑱岃矗") + @GetMapping("/personJobResponsibilitiesSelect") + public Result<IPage<PersonJobResponsibilitiesDto>> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName) { + IPage<PersonJobResponsibilitiesDto> iPage = personJobResponsibilitiesService.personJobResponsibilitiesSelect(page, userId, departmentId, userName); + return Result.success(iPage); + } + + + @ApiOperation(value = "瀵煎嚭浠昏亴宀椾綅璇存槑璇�") + @PostMapping("/exportPersonJobResponsibilities") + public void exportPersonJobResponsibilities(Integer id, HttpServletResponse response){ + personJobResponsibilitiesService.exportPersonJobResponsibilities(id,response); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java new file mode 100644 index 0000000..a066615 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPersonnelCapacityController.java @@ -0,0 +1,92 @@ +package com.ruoyi.personnel.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import com.ruoyi.personnel.service.PersonPersonnelCapacityService; +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; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鑳藉姏 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +@Api(tags = "浜哄憳 - 浜哄憳鑳藉姏") +@RestController +@RequestMapping("/personPersonnelCapacity") +public class PersonPersonnelCapacityController { + + @Autowired + private PersonPersonnelCapacityService personPersonnelCapacityService; + + + @ApiOperation(value = "鏂板/鏇存柊 浜哄憳鑳藉姏") + @PostMapping("addOrUpdatePersonPersonnelCapacity") + public Result<?> addOrUpdatePersonPersonnelCapacity(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { + personPersonnelCapacityService.saveOrUpdate(personPersonnelCapacity); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎 浜哄憳鑳藉姏") + @DeleteMapping("deletePersonPersonnelCapacity") + public Result<?> deletePersonPersonnelCapacity(@RequestParam("id") Integer id) { + // 鍒犻櫎鏁版嵁 + personPersonnelCapacityService.removeById(id); + return Result.success(); + } + + @ApiOperation(value = "鏌ヨ 浜哄憳鑳藉姏") + @GetMapping("personPersonnelCapacityPage") + public Result<IPage<PersonPersonnelCapacityDto>> personPersonnelCapacityPage(Page page, + Integer departmentId, + Integer userId, + String userName) { + return Result.success(personPersonnelCapacityService.personPersonnelCapacityPage(page, departmentId, userId, userName)); + } + + @ApiOperation(value = "纭 浜哄憳鑳藉姏") + @GetMapping("confirmPersonnelCapability") + public Result<?> confirmPersonnelCapability(@RequestParam("id") Integer id) { + Integer userId = SecurityUtils.getUserId().intValue(); + personPersonnelCapacityService.update(Wrappers.<PersonPersonnelCapacity>lambdaUpdate() + .eq(PersonPersonnelCapacity::getId, id) + .set(PersonPersonnelCapacity::getConfirmOperatingPersonnelId, userId) + .set(PersonPersonnelCapacity::getConfirmDate, LocalDateTime.now())); + return Result.success(); + } + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @return + */ + @ApiOperation(value = "瀵煎嚭浜哄憳鑳藉姏") + @GetMapping("/exportPersonnelCapacity") + public void exportPersonnelCapacity(Integer id, HttpServletResponse response){ + personPersonnelCapacityService.exportPersonnelCapacity(id, response); + } + + /** + * 鎻愪氦纭浜哄憳鑳藉姏 + * @param personPersonnelCapacity + * @return + */ + @ApiOperation(value = "鎻愪氦") + @PostMapping("submitConfirmPersonnelCapability") + public Result<?> submitConfirmPersonnelCapability(@RequestBody PersonPersonnelCapacity personPersonnelCapacity) { + personPersonnelCapacityService.submitConfirmPersonnelCapability(personPersonnelCapacity); + return Result.success(); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java new file mode 100644 index 0000000..c65f312 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonPostAuthorizationRecordController.java @@ -0,0 +1,66 @@ +package com.ruoyi.personnel.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.common.utils.FileSaveUtil; +import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto; +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; +import com.ruoyi.personnel.service.PersonPostAuthorizationRecordService; +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> + * 浠昏亴鎺堟潈璁板綍 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 10:48:17 + */ +@Api(tags = "浜哄憳 - 浠昏亴鎺堟潈璁板綍") +@RestController +@RequestMapping("/personPostAuthorizationRecord") +public class PersonPostAuthorizationRecordController { + + @Autowired + private PersonPostAuthorizationRecordService personPostAuthorizationRecordService; + + @ApiOperation(value = "鏂板/鏇存柊 浠昏亴鎺堟潈璁板綍") + @PostMapping("/addOrUpdatePersonPostAuthorizationRecord") + public Result<?> addOrUpdatePersonPostAuthorizationRecord(@RequestBody PersonPostAuthorizationRecord personRewardPunishmentRecord) { + personPostAuthorizationRecordService.saveOrUpdate(personRewardPunishmentRecord); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎 浠昏亴鎺堟潈璁板綍") + @DeleteMapping("/deletePersonPostAuthorizationRecord") + public Result<?> deletePersonPostAuthorizationRecord(@RequestParam("id") Integer id) { + // 鍒犻櫎鏂囦欢 + PersonPostAuthorizationRecord postAuthorizationRecord = personPostAuthorizationRecordService.getById(id); + FileSaveUtil.DeleteFile(postAuthorizationRecord.getSystemFileName()); + // 鍒犻櫎鏁版嵁 + personPostAuthorizationRecordService.removeById(id); + return Result.success(); + } + + + @ApiOperation(value = "鏌ヨ 浠昏亴鎺堟潈璁板綍") + @GetMapping("/PersonPostAuthorizationRecordPage") + public Result<IPage<PersonPostAuthorizationRecordDto>> PersonPostAuthorizationRecordPage(Page page, + Integer departLimsId, + Integer userId, + String userName) { + return Result.success(personPostAuthorizationRecordService.personPostAuthorizationRecordPage(page, departLimsId, userId, userName)); + } + + @ApiOperation(value = "瀵煎嚭宀椾綅鑱屼笟璧勬牸璇佷功") + @PostMapping("/exportPersonPostAuthorizationRecord") + public void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response){ + personPostAuthorizationRecordService.exportPersonPostAuthorizationRecord(id,response); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java new file mode 100644 index 0000000..72f4e43 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonRewardPunishmentRecordController.java @@ -0,0 +1,100 @@ +package com.ruoyi.personnel.controller; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto; +import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel; +import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord; +import com.ruoyi.personnel.service.PersonRewardPunishmentRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * <p> + * 濂栨儵璁板綍 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-08 11:25:02 + */ +@Api(tags = "浜哄憳 - 濂栨儵璁板綍") +@RestController +@RequestMapping("/personRewardPunishmentRecord") +public class PersonRewardPunishmentRecordController { + + @Autowired + private PersonRewardPunishmentRecordService personRewardPunishmentRecordService; + + @ApiOperation(value = "鏂板/鏇存柊 濂栨儵璁板綍") + @PostMapping("/addOrUpdateRewardPunishment") + public Result<?> PersonTrainingSave(@RequestBody PersonRewardPunishmentRecord personRewardPunishmentRecord) { + personRewardPunishmentRecordService.saveOrUpdate(personRewardPunishmentRecord); + return Result.success(); + } + + @ApiOperation(value = "鍒犻櫎濂栨儵璁板綍") + @DeleteMapping("/deleteRewardPunishment") + public Result<?> deleteRewardPunishment(@RequestParam("id") Integer id) { + personRewardPunishmentRecordService.removeById(id); + return Result.success(); + } + + @ApiOperation(value = "鏌ヨ 濂栨儵璁板綍") + @GetMapping("/rewardPunishmentPage") + @SneakyThrows + public Result<IPage<PersonRewardPunishmentRecordDto>> rewardPunishmentPage(Page page, + Integer userId, + Integer departmentId, + String userName, + @RequestParam(value = "startTime",required = false) String startTimeStr, + @RequestParam(value = "endTime",required = false) String endTimeStr) { + Date startTime = null; + Date endTime = null; + if (StringUtils.isNotEmpty(startTimeStr) || StringUtils.isNotEmpty(endTimeStr)) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + startTime = formatter.parse(startTimeStr); + endTime = formatter.parse(endTimeStr); + } + return Result.success(personRewardPunishmentRecordService.rewardPunishmentPage(page, userId, userName, startTime, endTime, departmentId)); + } + + @ApiOperation(value = "濂栨儵璁板綍瀵煎嚭") + @GetMapping("/rewardPunishmentExport") + public void rewardPunishmentExport(Integer userId, + Integer departmentId, + String userName, + @RequestParam(value = "startTime",required = false) String startTimeStr, + @RequestParam(value = "endTime",required = false) String endTimeStr, + HttpServletResponse response) throws Exception { + Date startTime = null; + Date endTime = null; + if (StringUtils.isNotEmpty(startTimeStr) || StringUtils.isNotEmpty(endTimeStr)) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + startTime = formatter.parse(startTimeStr); + endTime = formatter.parse(endTimeStr); + } + List<PersonRewardPunishmentRecordExcel> data = personRewardPunishmentRecordService.rewardPunishmentExport(userId, departmentId, userName, startTime, endTime); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader("requestType", "excel"); + response.setHeader("Access-Control-Expose-Headers", "requestType"); + // 璁剧疆鍗曞厓鏍兼牱寮� + // 淇濆瓨鍒扮涓�涓猻heet涓� + EasyExcel.write(response.getOutputStream()) + .head(PersonRewardPunishmentRecordExcel.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 鑷�傚簲鍒楀 + .sheet() + .doWrite(data); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java new file mode 100644 index 0000000..203d834 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingController.java @@ -0,0 +1,246 @@ +package com.ruoyi.personnel.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.numgen.NumberGenerator; +import com.ruoyi.personnel.dto.PersonTrainingDetailedDto; +import com.ruoyi.personnel.dto.PersonTrainingDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordSubmitDto; +import com.ruoyi.personnel.mapper.PersonTrainingDetailedFileMapper; +import com.ruoyi.personnel.pojo.PersonTraining; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import com.ruoyi.personnel.pojo.PersonTrainingDetailedFile; +import com.ruoyi.personnel.pojo.PersonTrainingRecord; +import com.ruoyi.personnel.service.PersonTrainingDetailedService; +import com.ruoyi.personnel.service.PersonTrainingRecordService; +import com.ruoyi.personnel.service.PersonTrainingService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * <p> + * 鍩硅璁″垝 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +@Api(tags = "浜哄憳 - 鍩硅璁″垝") +@RestController +@RequestMapping("/personTraining") +public class PersonTrainingController { + + @Autowired + private PersonTrainingService personTrainingService; + + @Autowired + private PersonTrainingDetailedService personTrainingDetailedService; + + @Autowired + private PersonTrainingRecordService personTrainingRecordService; + + @Autowired + private PersonTrainingDetailedFileMapper personTrainingDetailedFileMapper; + + @Autowired + private NumberGenerator<PersonTrainingDetailed> numberGenerator; + + @ApiOperation(value = "鍩硅璁″垝 瀵煎叆") + @PostMapping("personTrainingImport") + public Result<?> personTrainingImport(@RequestPart("file") MultipartFile file, PersonTraining training) { + personTrainingService.personTrainingImport(file, training); + return Result.success(); + } + + @ApiOperation(value = "鍩硅璁″垝 鍒犻櫎") + @DeleteMapping("personTrainingDelete") + public Result<?> personTrainingDelete(@RequestParam("id") Integer id) { + personTrainingService.personTrainingDelete(id); + return Result.success(); + } + + @ApiOperation(value = "鍩硅璁″垝 鏌ヨ") + @GetMapping("personTrainingSelect") + public Result<IPage<PersonTrainingDto>> personTrainingSelect(Page page, String compilerName, String departmentId) { + IPage<PersonTrainingDto> iPage = personTrainingService.personTrainingSelect(page, compilerName, departmentId); + return Result.success(iPage); + } + + @ApiOperation(value = "骞村害鍩硅璁″垝 瀹℃牳") + @PostMapping("reviewAnnualPersonnelTraining") + public Result<?> reviewAnnualPersonnelTraining(@RequestBody PersonTraining training) { + personTrainingService.reviewAnnualPersonnelTraining(training); + return Result.success(); + } + + @ApiOperation(value = "鍩硅璁″垝 鎵瑰噯") + @PostMapping("approveAnnualPersonnelTraining") + public Result<?> approveAnnualPersonnelTraining(@RequestBody PersonTraining training) { + personTrainingService.approveAnnualPersonnelTraining(training); + return Result.success(); + } + + + @ApiOperation(value = "骞村害璁″垝鏄庣粏琛� 鏂板/缂栬緫") + @PostMapping("addOrUpdatePersonTrainingDetailed") + public Result<?> addOrUpdatePersonTrainingDetailed(@RequestBody PersonTrainingDetailed personTrainingDetailed) { + if (ObjectUtils.isEmpty(personTrainingDetailed.getId())) { + personTrainingDetailed.setState(3); + } + personTrainingDetailedService.saveOrUpdate(personTrainingDetailed); + return Result.success(); + } + + + @ApiOperation(value = "骞村害璁″垝鏄庣粏琛� 鎵归噺鍒犻櫎") + @DeleteMapping("deleteAnnualPlanDetailTable") + public Result<?> deleteAnnualPlanDetailTable(String ids) { + personTrainingDetailedService.deleteAnnualPlanDetailTable(ids); + return Result.success(); + } + + + @ApiOperation(value = "骞村害璁″垝鏄庣粏琛� 鏌ヨ") + @GetMapping("queryTheAnnualPlanDetailsTable") + public Result<IPage<PersonTrainingDetailedDto>> queryTheAnnualPlanDetailsTable(Page page, + String trainingLecturerName, String courseCode, + String trainingDate, Integer id, Integer userId) { + IPage<PersonTrainingDetailedDto> iPage = personTrainingDetailedService.queryTheAnnualPlanDetailsTable(page, + trainingLecturerName, courseCode, trainingDate, id, userId); + return Result.success(iPage); + } + + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 鏌ヨ") + @GetMapping("trainingAndAssessmentRecordsPage") + public Result<List<PersonTrainingRecordDto>> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, + String userName) { + List<PersonTrainingRecordDto> list = personTrainingRecordService.trainingAndAssessmentRecordsPage(trainingDetailedId, userName); + return Result.success(list); + } + + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 鏂板浜哄憳") + @PostMapping("newPersonnelAddedToTrainingRecords") + public Result<?> newPersonnelAddedToTrainingRecords(@RequestBody List<PersonTrainingRecord> personTrainingRecord) { + personTrainingRecordService.saveBatch(personTrainingRecord); + return Result.success(); + } + + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 璁ら") + @PostMapping("claimOfTrainingAndAssessmentRecords") + public Result<?> claimOfTrainingAndAssessmentRecords(@RequestParam("claimAndClaim") Boolean claimAndClaim, + @RequestParam("courseId") Integer courseId) { + personTrainingRecordService.claimOfTrainingAndAssessmentRecords(claimAndClaim, courseId); + return Result.success(); + } + + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 鎻愪氦/鎾ら攢") + @PostMapping("trainingAndAssessmentRecordsAdded") + public Result<?> trainingAndAssessmentRecordsAdded(@RequestBody PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) { + personTrainingRecordService.trainingAndAssessmentRecordsAdded(personTrainingRecordSubmitDto); + return Result.success(); + } + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 璇勪环") + @PostMapping("trainingAndAssessmentRecordsEvaluate") + public Result<?> trainingAndAssessmentRecordsEvaluate(@RequestBody PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) { + personTrainingDetailedService.update(Wrappers.<PersonTrainingDetailed>lambdaUpdate() + .eq(PersonTrainingDetailed::getId, personTrainingRecordSubmitDto.getTrainingDetailedId()) + .set(PersonTrainingDetailed::getComprehensiveAssessment, personTrainingRecordSubmitDto.getComprehensiveAssessment()) + .set(PersonTrainingDetailed::getAssessmentDate, personTrainingRecordSubmitDto.getAssessmentDate()) + .set(PersonTrainingDetailed::getState, personTrainingRecordSubmitDto.getState())); + return Result.success(); + } + + + @ApiOperation(value = "鍩硅涓庤�冩牳璁板綍 鍒犻櫎") + @DeleteMapping("deleteTrainingAndAssessmentRecords") + public Result<?> deleteTrainingAndAssessmentRecords(String ids) { + personTrainingRecordService.deleteTrainingAndAssessmentRecords(ids); + return Result.success(); + } + + @PostMapping("outOfFocusPreservation") + public Result<?> outOfFocusPreservation(@RequestBody PersonTrainingRecord personTrainingRecord) { + personTrainingRecordService.updateById(personTrainingRecord); + return Result.success(); + } + + /** + * 瀵煎嚭浜哄憳鍩硅璁″垝 + * @return + */ + + @ApiOperation(value = "瀵煎嚭浜哄憳鍩硅璁″垝") + @GetMapping("/exportPersonTraining") + public void exportPersonTraining(Integer id, HttpServletResponse response){ + personTrainingService.exportPersonTraining(id, response); + } + + /** + * 瀵煎嚭浜哄憳鍩硅涓庤�冩牳璁板綍 + * @return + */ + @ApiOperation(value = "瀵煎嚭浜哄憳鍩硅涓庤�冩牳璁板綍") + @GetMapping("/exportPersonTrainingRecord") + public void exportPersonTrainingRecord(Integer id, HttpServletResponse response){ + personTrainingService.exportPersonTrainingRecord(id, response); + } + + /** + * 浜哄憳鍩硅璇︽儏闄勪欢鏂板 + * @param trainingDetailedId + * @param file + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅璇︽儏闄勪欢鏂板") + @PostMapping("/uploadTrainingDetailedFile") + public Result<?> uploadTrainingDetailedFile(Integer trainingDetailedId, MultipartFile file) { + return Result.success(personTrainingService.uploadTrainingDetailedFile(trainingDetailedId, file)); + } + + + /** + * 浜哄憳鍩硅璇︽儏闄勪欢鍒楄〃 + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅璇︽儏闄勪欢鍒楄〃") + @GetMapping("/getTrainingDetailedFileList") + public Result<List<PersonTrainingDetailedFile>> getTrainingDetailedFileList(Integer trainingDetailedId){ + return Result.success(personTrainingDetailedFileMapper.selectList(Wrappers.<PersonTrainingDetailedFile>lambdaQuery() + .eq(PersonTrainingDetailedFile::getTrainingDetailedId, trainingDetailedId))); + } + + /** + * 浜哄憳鍩硅璇︽儏闄勪欢鍒犻櫎 + * @return + */ + @ApiOperation(value = "浜哄憳鍩硅璇︽儏闄勪欢鍒犻櫎") + @DeleteMapping("/delTrainingDetailedFileList") + public Result delTrainingDetailedFileList(Integer detailedFileId){ + return Result.success(personTrainingDetailedFileMapper.deleteById(detailedFileId)); + } + + /** + * 鏌ヨ浠婂勾浜哄憳鍩硅淇℃伅 + * @return + */ + @ApiOperation(value = "鏌ヨ浠婂勾浜哄憳鍩硅淇℃伅") + @GetMapping("/getThisYearTrainingDetailed") + public Result<List<PersonTrainingDetailed>> getThisYearTrainingDetailed(){ + return Result.success(personTrainingService.getThisYearTrainingDetailed()); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java new file mode 100644 index 0000000..5385869 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonTrainingRecordController.java @@ -0,0 +1,59 @@ +package com.ruoyi.personnel.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.personnel.dto.PersonTrainingRecordListDto; +import com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto; +import com.ruoyi.personnel.service.PersonTrainingRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 鍩硅璁″垝 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +@Api(tags = "浜哄憳 - 鍩硅璁板綍") +@RestController +@RequestMapping("/personTrainingRecord") +public class PersonTrainingRecordController { + + @Autowired + private PersonTrainingRecordService personTrainingRecordService; + + @ApiOperation(value = "鏌ヨ浜哄憳 鍩硅璁板綍") + @GetMapping("trainingSelectTrainingRecord") + public Result<IPage<PersonTrainingRecordListDto>> trainingSelectTrainingRecord(Page page, String userName, Integer userId, Integer departmentId) { + IPage<PersonTrainingRecordListDto> iPage = personTrainingRecordService.personnelTrainingPersonnel(page, userName, userId, departmentId); + return Result.success(iPage); + } + + + @ApiOperation(value = "鏌ヨ浜哄憳鏄庣粏 鍩硅璁板綍") + @GetMapping("queryPersonnelDetails") + public Result<IPage<TrainingRecordPersonDetailedDto>> queryPersonnelDetails(Page page, Integer userId, Integer trainingDate) { + IPage<TrainingRecordPersonDetailedDto> iPage = personTrainingRecordService.queryPersonnelDetailsOfUserIdAndYear(page, userId, trainingDate); // 鏂板鏍规嵁骞翠唤鏌ヨ + return Result.success(iPage); + } + + /** + * 瀵煎嚭浜哄憳鍩硅璁板綍 + * @return + */ + @ApiOperation(value = "瀵煎嚭浜哄憳鍩硅璁板綍") + @GetMapping("/exportTrainingRecord") + public void exportTrainingRecord(Integer userId, Integer trainingDate, HttpServletResponse response){ + personTrainingRecordService.exportTrainingRecordAddTrainingDate(userId, trainingDate, response);// 鏂板鏍规嵁骞翠唤鏌ヨ + + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDetailsDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDetailsDto.java new file mode 100644 index 0000000..ffdbdcc --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDetailsDto.java @@ -0,0 +1,65 @@ +package com.ruoyi.personnel.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * Author: yuan + * Date: 2024-12-13 鏄熸湡浜� 13:52:52 + * Description: + */ +@Data +public class PersonBasicInfoDetailsDto { + + @ApiModelProperty("鐢ㄦ埛id") + private Integer userId; + + @ApiModelProperty("鐢ㄦ埛濮撳悕") + private String name; + + @ApiModelProperty("鍏ヨ亴鏃堕棿") + private String entryTimeStr; + + @ApiModelProperty("瀹為檯瀹炰範缁撴潫") + private String endPracticalPracticeStr; + + @ApiModelProperty("绫嶈疮") + private String nativePlace; + + @ApiModelProperty("韬唤璇佸彿") + private String identityCard; + + @ApiModelProperty("韬唤璇佸湴鍧�") + private String idAddress; + + @ApiModelProperty("鐢ㄦ埛鎵嬫満鍙�") + private String phone; + + @ApiModelProperty("姣曚笟闄㈡牎") + private String graduatedInstitutions1; + + @ApiModelProperty("涓撲笟") + private String major1; + + @ApiModelProperty("姣曚笟鏃堕棿1") + private LocalDateTime graduationTime1; + + @ApiModelProperty("鏈�楂樺鍘�") + private String officialAcademicRedentials; + + @ApiModelProperty("鏈�楂樺浣�") + private String highestDegree; + + @ApiModelProperty("鑱岀О") + private String professionalTitle; + + // 鑱屼笟鑳藉姏 + + @ApiModelProperty("绱ф�ヨ仈绯讳汉") + private String emergencyContact; + + @ApiModelProperty("绱ф�ヨ仈绯讳汉鐢佃瘽") + private String emergencyContactPhone; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java new file mode 100644 index 0000000..b5cd643 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoDto.java @@ -0,0 +1,47 @@ +package com.ruoyi.personnel.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.ruoyi.personnel.pojo.PersonBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +@ExcelIgnoreUnannotated +public class PersonBasicInfoDto extends PersonBasicInfo { + @ApiModelProperty(value = "璐﹀彿") + @ExcelProperty("鍛樺伐缂栧彿") + private String account; + + @ApiModelProperty(value = "濮撳悕") + @ExcelProperty("濮撳悕") + private String name; + + @ApiModelProperty(value = "濮撳悕(鑻辨枃)") + private String nameEn; + + @ApiModelProperty(value = "骞撮緞") + private Integer age; + + @ApiModelProperty(value = "鐢佃瘽鍙风爜") + @ExcelProperty("鎵嬫満鍙�") + private String phone; + + @ApiModelProperty(value = "閭") + private String email; + + @ApiModelProperty(value = "閮ㄩ棬") + private String department; + + @ApiModelProperty(value = "lims缁勭粐鏋舵瀯") + private String departLimsId; + + @ApiModelProperty(value = "绛惧悕鐓х墖鍦板潃") + private String signatureUrl; + + @ApiModelProperty(value = "鑷韩鐓х墖鍦板潃") + private String pictureUrl; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoWorkDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoWorkDto.java new file mode 100644 index 0000000..13cd08d --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonBasicInfoWorkDto.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2025/1/14 + */ +@Data +public class PersonBasicInfoWorkDto extends PersonBasicInfoWork { + + @ApiModelProperty("濉厖浣跨敤") + private String fill; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java new file mode 100644 index 0000000..d3cb18e --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonCommunicationAbilityDto.java @@ -0,0 +1,14 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import lombok.Data; + +@Data +public class PersonCommunicationAbilityDto extends PersonCommunicationAbility { + + private String userName; + + private String account; + + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java new file mode 100644 index 0000000..096f8d3 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonJobResponsibilitiesDto.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonJobResponsibilities; +import lombok.Data; + +@Data +public class PersonJobResponsibilitiesDto extends PersonJobResponsibilities { + + private String incumbentName; + + private String supervisorName; + + private String departLimsName; + + private String account; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java new file mode 100644 index 0000000..5e77690 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityDto.java @@ -0,0 +1,30 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PersonPersonnelCapacityDto extends PersonPersonnelCapacity { + + @ApiModelProperty("鎿嶄綔浜哄鍚�") + private String confirmOperatingPersonnelName; + + @ApiModelProperty("浜哄憳濮撳悕") + private String userName; + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("宀椾綅鑱岃矗") + private String responsibilities; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String placeWork; + + @ApiModelProperty("涓撲笟") + private String major; + + @ApiModelProperty(value = "鑱岀О") + private String professionalTitle; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java new file mode 100644 index 0000000..20526b6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPersonnelCapacityExportDto.java @@ -0,0 +1,101 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/28 + */ +@Data +public class PersonPersonnelCapacityExportDto extends PersonPersonnelCapacity { + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("浜哄憳濮撳悕") + private String userName; + + @ApiModelProperty("瀛﹀巻") + private String officialAcademicRedentials; + + @ApiModelProperty("涓撲笟") + private String major; + + @ApiModelProperty("鑱岀О") + private String professionalTitle; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String placeWork; + + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(1锛氱鍚�)") + private String academicConformNot1 = "鈻�"; + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String academicConformNot2 = "鈻�"; + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String academicConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relatedYearsConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relatedYearsConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relatedYearsConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relatedTrainingConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relatedTrainingConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relatedTrainingConformNot3 = "鈻�"; + + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(1锛氱鍚�)") + private String relevantExperienceConformNot1 = "鈻�"; + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String relevantExperienceConformNot2 = "鈻�"; + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String relevantExperienceConformNot3 = "鈻�"; + + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(1锛氱鍚�)") + private String workLicenseConformNot1 = "鈻�"; + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String workLicenseConformNot2 = "鈻�"; + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String workLicenseConformNot3 = "鈻�"; + + @ApiModelProperty("宀椾綅鑱岃矗1(鐔熸倝鏈矖浣嶇殑浜у搧妫�娴嬫牱鍝佸埗澶囧拰鐩稿叧浜у搧鍩虹鐭ヨ瘑)") + private String jobResponsibilities1 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗2(鐔熸倝鏈矖浣嶆牱鍝佹娴嬫祦绋�)") + private String jobResponsibilities2 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗3(姝g‘鐔熺粌鎿嶄綔鏈矖浣嶄华琛ㄨ澶�)") + private String jobResponsibilities3 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗4(鐔熸倝鏈矖浣嶇浉鍏虫娴嬫爣鍑�)") + private String jobResponsibilities4 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗5(鐔熸倝鏈矖浣嶄骇鍝佹�ц兘鍙婄粨鏋滃垽鏂�佸垎鏋�)") + private String jobResponsibilities5 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗6(瀹屾垚鐩稿簲鐨勫巶楠屻�佽璇�)") + private String jobResponsibilities6 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗7(缂栧啓鐩稿叧妫�娴嬫墜椤�)") + private String jobResponsibilities7 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗8(浜嗚В浠櫒璁惧鍩烘湰缁撴瀯涓庣畝鍗曠淮鎶や繚鍏�)") + private String jobResponsibilities8 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗9(鍏峰鎶�鑳藉煿璁殑鑳藉姏)") + private String jobResponsibilities9 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗10(鍏峰妫�娴嬩华鍣ㄦ敼閫犺兘鍔�)") + private String jobResponsibilities10 = "鈻�"; + + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(1锛氱鍚�)") + private String jobResponsibilitiesConformNot1 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(2锛氫笉绗﹀悎)") + private String jobResponsibilitiesConformNot2 = "鈻�"; + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(3锛氫笉閫傜敤)") + private String jobResponsibilitiesConformNot3 = "鈻�"; + + @ApiModelProperty("缁煎悎璇勪环1(鍙儨浠昏宀椾綅)") + private String comprehensiveAssessment1 = "鈻�"; + @ApiModelProperty("缁煎悎璇勪环2(鍙竟鍩硅杈逛笂宀�)") + private String comprehensiveAssessment2 = "鈻�"; + @ApiModelProperty("缁煎悎璇勪环3(涓嶈儨浠昏宀椾綅)") + private String comprehensiveAssessment3 = "鈻�"; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java new file mode 100644 index 0000000..33dd76c --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonPostAuthorizationRecordDto.java @@ -0,0 +1,14 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; +import lombok.Data; + +@Data +public class PersonPostAuthorizationRecordDto extends PersonPostAuthorizationRecord { + + private String userName; + + private String account; + + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java new file mode 100644 index 0000000..5be270b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonRewardPunishmentRecordDto.java @@ -0,0 +1,14 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord; +import lombok.Data; + +@Data +public class PersonRewardPunishmentRecordDto extends PersonRewardPunishmentRecord { + + private String userName; + + private String account; + + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDetailedDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDetailedDto.java new file mode 100644 index 0000000..2c6f9aa --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDetailedDto.java @@ -0,0 +1,29 @@ +package com.ruoyi.personnel.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PersonTrainingDetailedDto extends PersonTrainingDetailed { + + @ApiModelProperty("涓惧姙閮ㄩ棬鍚嶇О") + private String holdingDepartmentName; + + @ApiModelProperty("鍩硅璁插笀鍚嶇О") + private String trainingLecturerName; + + @ApiModelProperty("褰撳墠鐧诲綍浜烘槸鍚﹁棰�") + private Boolean whetherClaim; + + + @ApiModelProperty("鍩硅鏃ユ湡") + private String trainingDateString; + + // 瀵煎嚭浣跨敤 + @TableField(select = false, exist = false) + @ApiModelProperty("搴忓彿(瀵煎嚭浣跨敤)") + private Integer index; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDto.java new file mode 100644 index 0000000..c6ad50b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonTraining; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "PersonTrainingDto瀵硅薄", description = "鍩硅璁″垝") +public class PersonTrainingDto extends PersonTraining { + + @ApiModelProperty("缂栧埗浜哄鍚�") + private String compilerName; + + @ApiModelProperty("瀹℃牳浜哄鍚�") + private String reviewerName; + + @ApiModelProperty("鎵瑰噯浜哄鍚�") + private String approverName; + + @ApiModelProperty("鍒涘缓浜哄鍚�") + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordDto.java new file mode 100644 index 0000000..445bef7 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.personnel.pojo.PersonTrainingRecord; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PersonTrainingRecordDto extends PersonTrainingRecord { + @ApiModelProperty(value = "濮撳悕") + private String userName; + + @ApiModelProperty(value = "宸ュ彿") + private String account; + + @ApiModelProperty(value = "瑙掕壊") + private String roleName; + + @ApiModelProperty(value = "鐢佃瘽鍙风爜") + private String phone; + + @ApiModelProperty(value = "閮ㄩ棬") + private String department; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordListDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordListDto.java new file mode 100644 index 0000000..da61ed1 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordListDto.java @@ -0,0 +1,37 @@ +package com.ruoyi.personnel.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class PersonTrainingRecordListDto { + + @ApiModelProperty(value = "鐢ㄦ埛id") + private Integer userId; + + @ApiModelProperty("鍛樺伐缂栧彿") + private String account; + + @ApiModelProperty("鐢ㄦ埛濮撳悕") + private String name; + + @ApiModelProperty("鎵�鍦ㄩ儴闂�") + private String departLimsName; + + @ApiModelProperty("鑱岀О") + private String professionalTitle; + + @ApiModelProperty("鏈�楂樺鍘�") + private String officialAcademicRedentials; + + @ApiModelProperty("鍏ュ崟浣嶆椂闂�") + private LocalDateTime unitTime; + + @ApiModelProperty("鍏ュ崟浣嶆椂闂�") + private String unitTimeSting; + + @ApiModelProperty("涓撲笟") + private String major1; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordSubmitDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordSubmitDto.java new file mode 100644 index 0000000..e24f5d2 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/PersonTrainingRecordSubmitDto.java @@ -0,0 +1,35 @@ +package com.ruoyi.personnel.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDate; + +@Data +public class PersonTrainingRecordSubmitDto { + + @ApiModelProperty("骞村害璁″垝鏄庣粏ID") + private Integer trainingDetailedId; + + @ApiModelProperty("鍩硅鍦扮偣") + private String placeTraining; + + @ApiModelProperty("鍩硅瀹屾垚鏃堕棿") + private LocalDate openingTime; + + @ApiModelProperty("鑰冩牳鏂瑰紡") + private String assessmentMethod; + + @ApiModelProperty("鏈鍩硅缁煎悎璇勪环") + private String comprehensiveAssessment; + + @ApiModelProperty("璇勪环浜�") + private Integer assessmentUserId; + + @ApiModelProperty("璇勪环鏃堕棿") + private LocalDate assessmentDate; + + private Integer state; + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordExportDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordExportDto.java new file mode 100644 index 0000000..320af2a --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordExportDto.java @@ -0,0 +1,32 @@ +package com.ruoyi.personnel.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/25 + */ +@Data +public class TrainingRecordExportDto { + + @ApiModelProperty("鐢ㄦ埛鍚嶇О1") + private String userName1; + + @ApiModelProperty("閮ㄩ棬1") + private String department1; + + @ApiModelProperty("鑰冩牳缁撴灉1") + private String examinationResults1; + + @ApiModelProperty("鐢ㄦ埛鍚嶇О2") + private String userName2; + + @ApiModelProperty("閮ㄩ棬1") + private String department2; + + @ApiModelProperty("鑰冩牳缁撴灉1") + private String examinationResults2; + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordPersonDetailedDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordPersonDetailedDto.java new file mode 100644 index 0000000..23f0a02 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/TrainingRecordPersonDetailedDto.java @@ -0,0 +1,26 @@ +package com.ruoyi.personnel.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class TrainingRecordPersonDetailedDto { + + @ApiModelProperty("鍩硅鏃ユ湡") + private String trainingDateString; + + @ApiModelProperty("鍩硅鏃ユ湡") + private String trainingDate; + + @ApiModelProperty("鍩硅鍐呭") + private String trainingContent; + + @ApiModelProperty("璇炬椂") + private Integer classHour; + + @ApiModelProperty("鑰冩牳缁撴灉") + private String examinationResults; + + @ApiModelProperty("澶囨敞") + private String remarks; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java new file mode 100644 index 0000000..856b6f4 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/dto/UserPageDto.java @@ -0,0 +1,24 @@ +package com.ruoyi.personnel.dto; + +import com.ruoyi.common.core.domain.entity.User; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserPageDto extends User { + + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + private String createUserName; + + @ApiModelProperty(value = "鏇存柊鐢ㄦ埛") + private String updateUserName; + + @ApiModelProperty(value = "瑙掕壊") + private String roleName; + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java new file mode 100644 index 0000000..84456f3 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonRewardPunishmentRecordExcel.java @@ -0,0 +1,34 @@ +package com.ruoyi.personnel.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class PersonRewardPunishmentRecordExcel { + @ExcelProperty("鍛樺伐缂栧彿") + private String account; + + @ExcelProperty("濮撳悕") + private String userName; + + @ExcelProperty("濂栨儵绾у埆") + private String rewardPunishLevel; + + @ExcelProperty("濂栨儵鍚嶇О") + private String rewardPunishName; + + @ExcelProperty("濂栨儵鏃堕棿") + private String rewardPunishTime; + + @ExcelProperty("濂栨儵鍗曚綅") + private String rewardPunishWorkUnit; + + @ExcelProperty("濂栨儵鍐呭") + private String rewardPunishContent; + + @ExcelProperty("鍒涘缓鏃堕棿") + private String createTime; + + @ExcelProperty("鍒涘缓浜�") + private String createUserName; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedListener.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedListener.java new file mode 100644 index 0000000..9effe23 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedListener.java @@ -0,0 +1,42 @@ +package com.ruoyi.personnel.excel; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.ruoyi.personnel.service.PersonTrainingDetailedService; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class PersonTrainingDetailedListener extends AnalysisEventListener<PersonTrainingDetailedUpload> { + + private Integer planId; + + private static final int BATCH_COUNT = 1000; + List<PersonTrainingDetailedUpload> list = new ArrayList<>(); + + private PersonTrainingDetailedService personTrainingDetailedService; + + public PersonTrainingDetailedListener(PersonTrainingDetailedService personTrainingDetailedService) { + this.personTrainingDetailedService = personTrainingDetailedService; + } + + @Override + public void invoke(PersonTrainingDetailedUpload data, AnalysisContext context) { + list.add(data); + if (list.size() >= BATCH_COUNT) { + save(); + list.clear(); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + save(); + } + + private void save() { + personTrainingDetailedService.importExcel(list, this.planId); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedUpload.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedUpload.java new file mode 100644 index 0000000..7bc5876 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/excel/PersonTrainingDetailedUpload.java @@ -0,0 +1,35 @@ +package com.ruoyi.personnel.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class PersonTrainingDetailedUpload { + + @ExcelProperty("鍩硅鐩爣") + private String trainingObjectives; + + @ExcelProperty("鍩硅鍐呭") + private String trainingContent; + + @ExcelProperty("鍩硅鏂瑰紡") + private String trainingMode; + + @ExcelProperty("鍙傚姞瀵硅薄") + private String participants; + + @ExcelProperty("涓惧姙閮ㄩ棬") + private String holdingDepartment; + + @ExcelProperty("鍩硅璁插笀") + private String trainingLecturerName; + + @ExcelProperty("鍩硅鏃堕棿") + private String trainingDate; + + @ExcelProperty("璇炬椂") + private Integer classHour; + + @ExcelProperty("澶囨敞") + private String remarks; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java new file mode 100644 index 0000000..9fee604 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/AnnexMapper.java @@ -0,0 +1,9 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.Annex; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AnnexMapper extends BaseMapper<Annex> { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java new file mode 100644 index 0000000..fb0e2f5 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoFileMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +public interface PersonBasicInfoFileMapper extends BaseMapper<PersonBasicInfoFile> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java new file mode 100644 index 0000000..f23ba5f --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java @@ -0,0 +1,42 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.pojo.PersonBasicInfo; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +public interface PersonBasicInfoMapper extends BaseMapper<PersonBasicInfo> { + + List<DepartmentDto> selectLimsUser(); + + PersonBasicInfoDto getCNASPersonnelInfo(Integer userId); + + /** + * 浜哄憳鍩烘湰淇℃伅鍒嗛〉鏌ヨ + * @param page + * @param name + * @param departmentId + * @return + */ + IPage<Map<String, Object>> selectPersonBasecInfoAndUser(Page page, String name, Integer departmentId); + + /** + * 瀵煎嚭鏌ヨ浜哄憳淇℃伅 + * @param userId + * @return + */ + Map<String, Object> selectexportPersonBasic(Integer userId); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java new file mode 100644 index 0000000..df8d2d4 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoWorkMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +public interface PersonBasicInfoWorkMapper extends BaseMapper<PersonBasicInfoWork> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java new file mode 100644 index 0000000..0888b35 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonCommunicationAbilityMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 娌熼�氳兘鍔� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +public interface PersonCommunicationAbilityMapper extends BaseMapper<PersonCommunicationAbility> { + + IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, @Param("departLimsId") Integer departLimsId, @Param("userId") Integer userId, @Param("userName") String userName); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java new file mode 100644 index 0000000..a46e3bf --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonJobResponsibilitiesMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto; +import com.ruoyi.personnel.pojo.PersonJobResponsibilities; + +/** + * <p> + * 宀椾綅鑱岃矗 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 02:07:49 + */ +public interface PersonJobResponsibilitiesMapper extends BaseMapper<PersonJobResponsibilities> { + + IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java new file mode 100644 index 0000000..b2bb671 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPersonnelCapacityMapper.java @@ -0,0 +1,29 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 浜哄憳鑳藉姏 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +public interface PersonPersonnelCapacityMapper extends BaseMapper<PersonPersonnelCapacity> { + + IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName); + + /** + * 鏌ヨ浜哄憳鑳藉姏鎺ュ彛 + * @param id + * @return + */ + PersonPersonnelCapacityExportDto selectExportPersonnelCapacity(@Param("id") Integer id); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java new file mode 100644 index 0000000..1121811 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonPostAuthorizationRecordMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto; +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; + +/** + * <p> + * 浠昏亴鎺堟潈璁板綍 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 10:48:17 + */ +public interface PersonPostAuthorizationRecordMapper extends BaseMapper<PersonPostAuthorizationRecord> { + + IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, Integer departLimsId, Integer userId, String userName); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java new file mode 100644 index 0000000..a77cb79 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonRewardPunishmentRecordMapper.java @@ -0,0 +1,26 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto; +import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel; +import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord; + +import java.util.Date; +import java.util.List; + +/** + * <p> + * 濂栨儵璁板綍 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-08 11:25:02 + */ +public interface PersonRewardPunishmentRecordMapper extends BaseMapper<PersonRewardPunishmentRecord> { + + IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page, Integer userId, String userName, Date startTime, Date endTime, Integer departmentId); + + List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedFileMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedFileMapper.java new file mode 100644 index 0000000..88b2531 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedFileMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.personnel.pojo.PersonTrainingDetailedFile; + +/** + * 浜哄憳鍩硅璁″垝璇︽儏闄勪欢琛�(CnasPersonTrainingDetailedFile)$desc + * + * @author makejava + * @since 2024-12-25 14:18:22 + */ +public interface PersonTrainingDetailedFileMapper extends BaseMapper<PersonTrainingDetailedFile> { + +} + diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java new file mode 100644 index 0000000..47c397b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java @@ -0,0 +1,48 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.framework.mybatis_config.MyBaseMapper; +import com.ruoyi.personnel.dto.PersonTrainingDetailedDto; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 鍩硅璁″垝璇︽儏 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:46:27 + */ +public interface PersonTrainingDetailedMapper extends MyBaseMapper<PersonTrainingDetailed> { + + IPage<PersonTrainingDetailedDto> queryTheAnnualPlanDetailsTable(Page page, + String trainingLecturerName, + String courseCode, String trainingDate, + Integer id, + Integer userId, + Integer loginUserId); + + /** + * 鏍规嵁涓昏〃id鏌ヨ璇︽儏 + * @param trainingId + * @return + */ + List<PersonTrainingDetailedDto> selectTrainingList(@Param("trainingId") Integer trainingId); + + /** + * 鏌ヨ璇︾粏 + * @param id + * @return + */ + PersonTrainingDetailedDto selectTrainingDetail(@Param("id") Integer id); + + /** + * 鏌ヨ浠婂勾浜哄憳鍩硅淇℃伅 + * @return + */ + List<PersonTrainingDetailed> getThisYearTrainingDetailed(); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java new file mode 100644 index 0000000..f5dd8a6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonTrainingDto; +import com.ruoyi.personnel.pojo.PersonTraining; + +/** + * <p> + * 鍩硅璁″垝 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +public interface PersonTrainingMapper extends BaseMapper<PersonTraining> { + + IPage<PersonTrainingDto> personTrainingSelect(Page page, String compilerName, String departLimsId); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java new file mode 100644 index 0000000..a10ed81 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java @@ -0,0 +1,67 @@ +package com.ruoyi.personnel.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.personnel.dto.PersonTrainingRecordDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordListDto; +import com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto; +import com.ruoyi.personnel.pojo.PersonTrainingRecord; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 鍩硅璁板綍 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-12 04:50:48 + */ +public interface PersonTrainingRecordMapper extends BaseMapper<PersonTrainingRecord> { + + List<PersonTrainingRecordDto> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName); + + IPage<PersonTrainingRecordListDto> personnelTrainingPersonnel(Page page, String userName, Integer userId, Integer departLimsId); + + IPage<TrainingRecordPersonDetailedDto> queryPersonnelDetails(Page page, Integer userId); + + /** + * 鏍规嵁璇︽儏id鏌ヨ鍩硅浜哄憳 + * @param trainingDetailedId + * @return + */ + List<PersonTrainingRecordDto> selectListByTrainingDetailedId(@Param("trainingDetailedId") Integer trainingDetailedId); + + /** + * 鏌ヨ浜哄憳淇℃伅 + * @param userId + * @return + */ + PersonTrainingRecordListDto selectUserTraining(@Param("userId") Integer userId); + + /** + * 鏍规嵁鐢ㄦ埛id鏌ヨ鍩硅璁板綍 + * @param userId + * @return + */ + List<TrainingRecordPersonDetailedDto> selectPersonDetailedDtos(Integer userId); + + /** + * 鏍规嵁鐢ㄦ埛id鍜屽勾浠芥煡璇汉鍛樻槑缁� 鍩硅璁板綍 + * @param page + * @param userId + * @param year + * @return + */ + IPage<TrainingRecordPersonDetailedDto> queryPersonnelDetailsOfUserIdAndYear(Page page, Integer userId, Integer year); + + /** + * 鏍规嵁鐢ㄦ埛id鍜屽勾浠芥煡璇汉鍛樻槑缁� 鍩硅璁板綍瀵煎嚭 + * @param userId + * @param trainingDate + * @return + */ + List<TrainingRecordPersonDetailedDto> selectPersonDetailedDtosByTrainingDate(Integer userId, Integer year); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java new file mode 100644 index 0000000..bbf2017 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/Annex.java @@ -0,0 +1,48 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +@Data +@TableName("cnas_annex") +@ApiModel("浜哄憳鍩烘湰淇℃伅闄勪欢琛�") +public class Annex implements Serializable { + + @TableId(type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "user琛╥d") + private Integer userId; + + @ApiModelProperty(value = "璇佷欢鍙�") + private String idNumber; + + @ApiModelProperty(value = "鍙戣瘉鍗曚綅") + private String issueUnit; + + @ApiModelProperty(value = "鏂囦欢鍚嶇О") + private String fileName; + + @ApiModelProperty(value = "绾у埆") + private String level; + + @ApiModelProperty(value = "鏈夋晥鏈�") + private String periodValidity; + + @ApiModelProperty(value = "娣诲姞鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "澶嶅嵃浠�") + private String copy; + + @ApiModelProperty(value = "鍘熶欢") + private String original; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java new file mode 100644 index 0000000..abf3880 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfo.java @@ -0,0 +1,156 @@ +package com.ruoyi.personnel.pojo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info") +@ApiModel(value = "PersonBasicInfo瀵硅薄", description = "") +public class PersonBasicInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("褰撳墠鐘舵��") + private String currentState; + + @ApiModelProperty("鑱岀О") + @ExcelProperty("鑱岀О") + private String professionalTitle; + + @ApiModelProperty("鎬у埆") + private String sex; + + @ApiModelProperty("浜哄憳鍒嗙被") + private String personnelClassification; + + @ApiModelProperty("鍑虹敓鏃ユ湡") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime dateBirth; + + @ApiModelProperty("韬唤璇佸彿") + @ExcelProperty("璇佷欢鍙风爜") + private String identityCard; + + @ApiModelProperty("姘戞棌") + private String nation; + + @ApiModelProperty("鏀挎不闈㈣矊") + private String politicalStatus; + + @ApiModelProperty("鏈�楂樺鍘�") + @ExcelProperty("鏈�楂樺鍘�") + private String officialAcademicRedentials; + + @ApiModelProperty("姣曚笟鏃堕棿1") + @ExcelProperty("姣曚笟鏃堕棿") + private LocalDateTime graduationTime1; + + @ApiModelProperty("姣曚笟闄㈡牎1") + @ExcelProperty("姣曚笟闄㈡牎") + private String graduatedInstitutions1; + + @ApiModelProperty("涓撲笟1") + @ExcelProperty("鎵�瀛︿笓涓�") + private String major1; + + @ApiModelProperty("姣曚笟鏃堕棿2") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime graduationTime2; + + @ApiModelProperty("姣曚笟闄㈡牎2") + private String graduatedInstitutions2; + + @ApiModelProperty("涓撲笟2") + private String major2; + + @ApiModelProperty("鎵嬫満鍙�") + private String telephone; + + @ApiModelProperty("澶囨敞") + private String remarks; + + @ApiModelProperty("鐢ㄦ埛琛紙user锛塱d") + private Integer userId; + + @ApiModelProperty("鍏徃鍚嶇О") + private String corporateName; + + @ApiModelProperty("宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("鍏ラ泦鍥㈡椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + @ExcelProperty("鍏ラ泦鍥㈡椂闂�") + private LocalDateTime groupTime; + + @ApiModelProperty("鍔冲姩鍏崇郴") + private Integer laborRelations; + + @ApiModelProperty("宸ヤ綔鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime workingTime; + + @ApiModelProperty("鍚堝悓鏈夋晥鏈�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime contractLifeTime; + + @ApiModelProperty("绫嶈疮") + @ExcelProperty("绫嶈疮") + private String nativePlace; + + @ApiModelProperty("璇佷欢鏈夋晥鏈�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime validityPeriod; + + @ApiModelProperty("濠氬Щ鐘跺喌") + private Integer maritalStatus; + + @ApiModelProperty("璇佷欢鍦板潃") + @ExcelProperty("璇佷欢鍦板潃") + private String idAddress; + + @ApiModelProperty("璇佷欢璇︾粏鍦板潃") + private String idDetailAddress; + + @ApiModelProperty("鍏ュ厷/鍥㈡椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(updateStrategy = FieldStrategy.IGNORED) // 涓虹┖鍙互鏇存柊 + private LocalDateTime dumplingTime; + + @ApiModelProperty("鏈�楂樺浣�") + @ExcelProperty("鏈�楂樺浣�") + private String highestDegree; + + @ApiModelProperty("鏈�鍚庢洿鏂版椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime lastUpdateTime; + + + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java new file mode 100644 index 0000000..0b366f8 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoFile.java @@ -0,0 +1,58 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info_file") +@ApiModel(value = "PersonBasicInfoFile瀵硅薄", description = "浜哄憳鍩烘湰淇℃伅闄勪欢") +public class PersonBasicInfoFile implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "basic_info_file_id", type = IdType.AUTO) + private Integer basicInfoFileId; + + @ApiModelProperty("浜哄憳鍩烘湰淇℃伅id") + private Integer userId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java new file mode 100644 index 0000000..2d15afa --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonBasicInfoWork.java @@ -0,0 +1,53 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +@Getter +@Setter +@TableName("cnas_person_basic_info_work") +@ApiModel(value = "PersonBasicInfoWork瀵硅薄", description = "浜哄憳鍩烘湰淇℃伅") +public class PersonBasicInfoWork implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "basic_info_work_id", type = IdType.AUTO) + private Integer basicInfoWorkId; + + @ApiModelProperty("浜哄憳id") + private Integer userId; + + @ApiModelProperty("宸ヤ綔缁忓巻") + private String workExperience; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java new file mode 100644 index 0000000..4df192d --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonCommunicationAbility.java @@ -0,0 +1,61 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 娌熼�氳褰� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Getter +@Setter +@TableName("cnas_person_communication_ability") +@ApiModel(value = "PersonCommunicationAbility瀵硅薄", description = "娌熼�氳褰�") +public class PersonCommunicationAbility implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("娌熼�氫汉id") + private String userId; + + @ApiModelProperty("娌熼�氭椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime communicationTime; + + @ApiModelProperty("娌熼�氬湴鐐�") + private String communicationPlace; + + @ApiModelProperty("娌熼�氬唴瀹�") + private String communicationContent; + + @ApiModelProperty("鍒涘缓浜篿d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java new file mode 100644 index 0000000..55536fb --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonJobResponsibilities.java @@ -0,0 +1,78 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 宀椾綅鑱岃矗 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 02:07:49 + */ +@Getter +@Setter +@TableName("cnas_person_job_responsibilities") +@ApiModel(value = "PersonJobResponsibilities瀵硅薄", description = "宀椾綅鑱岃矗") +public class PersonJobResponsibilities implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("1宀椾綅鍚嶇О") + private String postName; + + @ApiModelProperty("1宸ヤ綔鐩爣") + private String jobObjective; + + @ApiModelProperty("1宀椾綅鑱岃矗") + private String jobResponsibilities; + + @ApiModelProperty("1浠昏亴浜篿d") + private String incumbentId; + + @ApiModelProperty("1 鎻愪氦鎿嶄綔浜�") + private String submittingOperator; + + @ApiModelProperty("1鎻愪氦鏃ユ湡") + private LocalDateTime submittingDate; + + @ApiModelProperty("2 浠昏亴浜� 涓荤id") + private Integer supervisorId; + + @ApiModelProperty("2 浠昏亴浜� 鎿嶄綔浜�") + private String incumbentOperator; + + @ApiModelProperty("2 浠昏亴浜� 鏃ユ湡") + private LocalDateTime incumbentDate; + + @ApiModelProperty("3 涓荤 鎿嶄綔浜�") + private String supervisorOperator; + + @ApiModelProperty("3 涓荤 鏃ユ湡") + private LocalDateTime supervisorDate; + + @ApiModelProperty(value = "鍒涘缓浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("褰撳墠鐘舵��") + private String currentState; + + @ApiModelProperty(value = "鍒涘缓鏃ユ湡 / 鎻愪氦鏃ユ湡", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("褰撳墠璐熻矗浜�") + private String currentResponsible; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java new file mode 100644 index 0000000..b7103f0 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPersonnelCapacity.java @@ -0,0 +1,114 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浜哄憳鑳藉姏 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +@Getter +@Setter +@TableName("cnas_person_personnel_capacity") +@ApiModel(value = "PersonPersonnelCapacity瀵硅薄", description = "浜哄憳鑳藉姏") +public class PersonPersonnelCapacity implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("瀛﹀巻") + private String academicDegree; + + @ApiModelProperty("瀛﹀巻 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer academicConformNot; + + @ApiModelProperty("瀛﹀巻 澶囨敞") + private String academicRemarks; + + @ApiModelProperty("鐩稿叧骞撮檺") + private String relatedYears; + + @ApiModelProperty("鐩稿叧骞撮檺 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer relatedYearsConformNot; + + @ApiModelProperty("鐩稿叧骞撮檺 澶囨敞") + private String relatedYearsRemarks; + + @ApiModelProperty("鐩稿叧鍩硅") + private String relatedTraining; + + @ApiModelProperty("鐩稿叧鍩硅 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer relatedTrainingConformNot; + + @ApiModelProperty("鐩稿叧鍩硅 澶囨敞") + private String relatedTrainingRemarks; + + @ApiModelProperty("鐩稿叧缁忛獙") + private String relevantExperience; + + @ApiModelProperty("鐩稿叧缁忛獙 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer relevantExperienceConformNot; + + @ApiModelProperty("鐩稿叧缁忛獙 澶囨敞") + private String relevantExperienceRemarks; + + @ApiModelProperty("涓婂矖璇�") + private String workLicense; + + @ApiModelProperty("涓婂矖璇� 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer workLicenseConformNot; + + @ApiModelProperty("涓婂矖璇� 澶囨敞") + private String workLicenseRemarks; + + @ApiModelProperty("宀椾綅鑱岃矗") + private String jobResponsibilities; + + @ApiModelProperty("宀椾綅鑱岃矗 绗﹀悎涓庡惁(1锛氱鍚堬紱2锛氫笉绗﹀悎锛�3锛氫笉閫傜敤)") + private Integer jobResponsibilitiesConformNot; + + @ApiModelProperty("宀椾綅鑱岃矗 澶囨敞") + private String jobResponsibilitiesRemarks; + + @ApiModelProperty("缁煎悎璇勪环") + private String comprehensiveAssessment; + + @ApiModelProperty("2 纭浜� userId涓婚敭") + private Integer confirmOperatingPersonnelId; + + @ApiModelProperty("2 纭浜� 鏃ユ湡") + private LocalDateTime confirmDate; + + @ApiModelProperty(value = "鍒涘缓鏃ユ湡", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鏇存柊鏃ユ湡", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty(value = "鍒涘缓浜�", hidden = true) + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊浜�", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty(value = "浜哄憳濮撳悕 id") + private Integer userId; + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java new file mode 100644 index 0000000..f341b83 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonPostAuthorizationRecord.java @@ -0,0 +1,74 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 浠昏亴鎺堟潈璁板綍 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 10:48:17 + */ +@Getter +@Setter +@TableName("cnas_person_post_authorization_record") +@ApiModel(value = "PersonPostAuthorizationRecord瀵硅薄", description = "浠昏亴鎺堟潈璁板綍") +public class PersonPostAuthorizationRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("璇佷功缂栧彿") + private String certificateNumber; + + @ApiModelProperty("琚换鑱屼汉鍛榠d") + private String userId; + + @ApiModelProperty("浠昏亴宀椾綅") + private String post; + + @ApiModelProperty("鎿嶄綔绫诲瀷") + private String operationType; + + @ApiModelProperty("鍘熸枃浠跺悕绉�") + private String fileName; + + @ApiModelProperty("绯荤粺鐢熸垚鏂囦欢鍚嶇О") + private String systemFileName; + + @ApiModelProperty("澶囨敞") + private String remarks; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty(value = "鏇存柊浜篿d",hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty(value = "鍒涘缓浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鐞嗚鐭ヨ瘑鑰冭瘯鎴愮哗") + private String num1; + + @ApiModelProperty("鎿嶄綔鎶�鑳借�冭瘯鎴愮哗") + private String num2; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java new file mode 100644 index 0000000..ab8bea1 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonRewardPunishmentRecord.java @@ -0,0 +1,61 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 濂栨儵璁板綍 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-08 11:25:02 + */ +@Getter +@Setter +@TableName("cnas_person_reward_punishment_record") +@ApiModel(value = "PersonRewardPunishmentRecord瀵硅薄", description = "濂栨儵璁板綍") +public class PersonRewardPunishmentRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("濂栨儵绾у埆") + private String rewardPunishLevel; + + @ApiModelProperty("濂栨儵鍚嶇О") + private String rewardPunishName; + + @ApiModelProperty("濂栨儵鏃堕棿") + private LocalDateTime rewardPunishTime; + + @ApiModelProperty("濂栨儵鍗曚綅") + private String rewardPunishWorkUnit; + + @ApiModelProperty("濂栨儵鍐呭") + private String rewardPunishContent; + + @ApiModelProperty("鐢ㄦ埛id") + private Integer userId; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime updateTime; + + @ApiModelProperty(value = "鍒涘缓浜�", hidden = true) + @TableField(fill = FieldFill.INSERT) + private Integer createUser; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java new file mode 100644 index 0000000..526d947 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTraining.java @@ -0,0 +1,83 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 鍩硅璁″垝 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +@Getter +@Setter +@TableName("cnas_person_training") +@ApiModel(value = "PersonTraining瀵硅薄", description = "鍩硅璁″垝") +public class PersonTraining implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鏂囦欢鍚嶇О") + private String fileName; + + @ApiModelProperty("璁″垝骞翠唤") + private String planYear; + + @ApiModelProperty("缂栧埗浜篿d") + private Integer compilerId; + + @ApiModelProperty("缂栧埗鏃ユ湡") + private LocalDateTime compilationDate; + + @ApiModelProperty("瀹℃牳浜篿d") + private Integer reviewerId; + + @ApiModelProperty("瀹℃牳鏃ユ湡") + private LocalDateTime auditDate; + + @ApiModelProperty("瀹℃牳鐘舵��") + private Integer reviewerStatus; + + @ApiModelProperty("瀹℃牳澶囨敞") + private String auditRemarks; + + @ApiModelProperty("鎵瑰噯浜篿d") + private Integer approverId; + + @ApiModelProperty("鎵瑰噯澶囨敞") + private String approvalRemarks; + + @ApiModelProperty("鎵瑰噯鐘舵��(1锛氭壒鍑嗭紱2锛氫笉鎵瑰噯)") + private Integer approvalStatus; + + @ApiModelProperty("鎵瑰噯鏃ユ湡") + private LocalDateTime approvalDate; + + @ApiModelProperty("鍒涘缓鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("鍒涘缓浜篿d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鏇存柊鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鏇存柊浜篿d") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java new file mode 100644 index 0000000..cac8233 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailed.java @@ -0,0 +1,99 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 鍩硅璁″垝璇︽儏 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:46:27 + */ +@Getter +@Setter +@TableName("cnas_person_training_detailed") +@ApiModel(value = "PersonTrainingDetailed瀵硅薄", description = "鍩硅璁″垝璇︽儏") +public class PersonTrainingDetailed implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("鍩硅璁″垝") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鍩硅鐩爣") + private String trainingObjectives; + + @ApiModelProperty("鍩硅鍐呭") + private String trainingContent; + + @ApiModelProperty("鍩硅鏂瑰紡") + private String trainingMode; + + @ApiModelProperty("鐘舵��(1锛氬凡瀹屾垚锛�2锛氬緟璇勪环锛�3: 鏈紑濮�)") + private Integer state; + + @ApiModelProperty("鍙傚姞瀵硅薄") + private String participants; + + @ApiModelProperty("涓惧姙閮ㄩ棬") + private String holdingDepartment; + + @ApiModelProperty("鍩硅鍦扮偣") + private String placeTraining; + + @ApiModelProperty("鍩硅璁插笀_id") + private Integer trainingLecturerId; + + @ApiModelProperty("璁″垝鍩硅鏃ユ湡") + private String trainingDate; + + @ApiModelProperty("鍩硅瀹屾垚鏃堕棿") + private LocalDate openingTime; + + @ApiModelProperty("璇炬椂") + private Integer classHour; + + @ApiModelProperty("澶囨敞") + private String remarks; + + @ApiModelProperty("鍩硅璁″垝id") + private Integer planId; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty(value = "鍒涘缓浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty(value = "鏇存柊浜篿d", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty(value = "鏇存柊鏃堕棿", hidden = true) + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鑰冩牳鏂瑰紡") + private String assessmentMethod; + + @ApiModelProperty("鏈鍩硅缁煎悎璇勪环") + private String comprehensiveAssessment; + + @ApiModelProperty("璇勪环浜�") + private Integer assessmentUserId; + + @ApiModelProperty("璇勪环鏃堕棿") + private LocalDate assessmentDate; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailedFile.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailedFile.java new file mode 100644 index 0000000..cb17cdb --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingDetailedFile.java @@ -0,0 +1,49 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 浜哄憳鍩硅璁″垝璇︽儏闄勪欢琛�(CnasPersonTrainingDetailedFile)$desc + * + * @author makejava + * @since 2024-12-25 14:18:22 + */ +@Data +@TableName("cnas_person_training_detailed_file") +public class PersonTrainingDetailedFile { + + @TableId(type = IdType.AUTO) + private Integer detailedFileId; + + @ApiModelProperty("浜哄憳浣犲煿璁鍒掕鎯卛d") + private Integer trainingDetailedId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + private Date createTime; + + @ApiModelProperty("淇敼浜�") + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + private Date updateTime; + +} + diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java new file mode 100644 index 0000000..593941b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/pojo/PersonTrainingRecord.java @@ -0,0 +1,41 @@ +package com.ruoyi.personnel.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * <p> + * 鍩硅璁板綍 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-12 04:50:48 + */ +@Getter +@Setter +@TableName("cnas_person_training_record") +@ApiModel(value = "PersonTrainingRecord瀵硅薄", description = "鍩硅璁板綍") +public class PersonTrainingRecord implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("涓婚敭id") + @TableId(value = "training_record_id", type = IdType.AUTO) + private Integer trainingRecordId; + + @ApiModelProperty("鐢ㄦ埛琛ㄦ牸锛坲ser锛変富閿�") + private Integer userId; + + @ApiModelProperty("鍩硅璁″垝璇︽儏 - 瀛� id") + private Integer courseId; + + @ApiModelProperty("鑰冩牳缁撴灉") + private String examinationResults; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java new file mode 100644 index 0000000..8de7b15 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/AnnexService.java @@ -0,0 +1,7 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.Annex; + +public interface AnnexService extends IService<Annex> { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java new file mode 100644 index 0000000..1fb5ba6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoFileService.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +public interface PersonBasicInfoFileService extends IService<PersonBasicInfoFile> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java new file mode 100644 index 0000000..fcc4d69 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoService.java @@ -0,0 +1,45 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.dto.UserPageDto; +import com.ruoyi.personnel.pojo.PersonBasicInfo; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ +public interface PersonBasicInfoService extends IService<PersonBasicInfo> { + + List<DepartmentDto> selectCNSAPersonTree(); + + Map<String,Object> getCNASPersonnelInfo(Integer userId); + + void saveCNASPersonnelInfo(PersonBasicInfoDto personBasicInfoDto); + + IPage<Map<String, Object>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId); + + void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception; + + String exportPersonBasicInfoById(Integer id, HttpServletResponse response); + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 + * @param basicInfoId + * @param file + * @return + */ + boolean uploadBasicInfoFile(Integer basicInfoId, MultipartFile file); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java new file mode 100644 index 0000000..cfd944f --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonBasicInfoWorkService.java @@ -0,0 +1,16 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +public interface PersonBasicInfoWorkService extends IService<PersonBasicInfoWork> { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java new file mode 100644 index 0000000..a5186be --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonCommunicationAbilityService.java @@ -0,0 +1,25 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 娌熼�氳兘鍔� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +public interface PersonCommunicationAbilityService extends IService<PersonCommunicationAbility> { + + IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, + Integer departLimsId, Integer userId, String userName); + + void exportPersonCommunicationAbility(Integer id, HttpServletResponse response)throws Exception; +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java new file mode 100644 index 0000000..2afa074 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonJobResponsibilitiesService.java @@ -0,0 +1,27 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto; +import com.ruoyi.personnel.pojo.PersonJobResponsibilities; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 宀椾綅鑱岃矗 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 02:07:49 + */ +public interface PersonJobResponsibilitiesService extends IService<PersonJobResponsibilities> { + + IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page, + String userId, + String departmentId, + String userName); + + void exportPersonJobResponsibilities(Integer id, HttpServletResponse response); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java new file mode 100644 index 0000000..dfff72a --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPersonnelCapacityService.java @@ -0,0 +1,35 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 浜哄憳鑳藉姏 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +public interface PersonPersonnelCapacityService extends IService<PersonPersonnelCapacity> { + + IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName); + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @param id + * @param response + */ + void exportPersonnelCapacity(Integer id, HttpServletResponse response); + + /** + * submitConfirmPersonnelCapability + * @param personPersonnelCapacity + */ + void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java new file mode 100644 index 0000000..3c23bfe --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonPostAuthorizationRecordService.java @@ -0,0 +1,27 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto; +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 浠昏亴鎺堟潈璁板綍 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 10:48:17 + */ +public interface PersonPostAuthorizationRecordService extends IService<PersonPostAuthorizationRecord> { + + IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, + Integer departLimsId, + Integer userId, + String userName); + + void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java new file mode 100644 index 0000000..0f2dfdc --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonRewardPunishmentRecordService.java @@ -0,0 +1,31 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto; +import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel; +import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord; + +import java.util.Date; +import java.util.List; + +/** + * <p> + * 濂栨儵璁板綍 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-08 11:25:02 + */ +public interface PersonRewardPunishmentRecordService extends IService<PersonRewardPunishmentRecord> { + + IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page, + Integer userId, + String userName, + Date startTime, + Date endTime, + Integer departmentId); + + List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java new file mode 100644 index 0000000..f5f52dc --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingDetailedService.java @@ -0,0 +1,29 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonTrainingDetailedDto; +import com.ruoyi.personnel.excel.PersonTrainingDetailedUpload; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; + +import java.util.List; + +/** + * <p> + * 鍩硅璁″垝璇︽儏 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:46:27 + */ +public interface PersonTrainingDetailedService extends IService<PersonTrainingDetailed> { + + void importExcel(List<PersonTrainingDetailedUpload> list, Integer planId); + + void deleteAnnualPlanDetailTable(String ids); + + IPage<PersonTrainingDetailedDto> queryTheAnnualPlanDetailsTable(Page page, + String trainingLecturerName, + String courseCode, String trainingDate, Integer id, Integer userId); +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java new file mode 100644 index 0000000..265dca6 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingRecordService.java @@ -0,0 +1,59 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonTrainingRecordDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordListDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordSubmitDto; +import com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto; +import com.ruoyi.personnel.pojo.PersonTrainingRecord; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * <p> + * 鍩硅璁板綍 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-12 04:50:48 + */ +public interface PersonTrainingRecordService extends IService<PersonTrainingRecord> { + + List<PersonTrainingRecordDto> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName); + + void deleteTrainingAndAssessmentRecords(String ids); + + IPage<PersonTrainingRecordListDto> personnelTrainingPersonnel(Page page, + String userName, Integer userId, Integer departLimsId); + + + void claimOfTrainingAndAssessmentRecords(Boolean claimAndClaim, Integer courseId); + + + /** + * 鏍规嵁鐢ㄦ埛id鍜屽勾浠芥煡璇汉鍛樻槑缁� 鍩硅璁板綍 + * @param page + * @param userId + * @param year + * @return + */ + IPage<TrainingRecordPersonDetailedDto> queryPersonnelDetailsOfUserIdAndYear(Page page, Integer userId, Integer year); + + /** + * 瀵煎嚭浜哄憳鍩硅璁板綍 + * @param userId + * @param trainingDate + * @param response + */ + void exportTrainingRecordAddTrainingDate(Integer userId, Integer trainingDate, HttpServletResponse response); + + /** + * 鍩硅鎻愪氦 + * @param personTrainingRecordSubmitDto + */ + void trainingAndAssessmentRecordsAdded(PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto); + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java new file mode 100644 index 0000000..046cf24 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java @@ -0,0 +1,63 @@ +package com.ruoyi.personnel.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.personnel.dto.PersonTrainingDto; +import com.ruoyi.personnel.pojo.PersonTraining; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * <p> + * 鍩硅璁″垝 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +public interface PersonTrainingService extends IService<PersonTraining> { + + IPage<PersonTrainingDto> personTrainingSelect(Page page, + String compilerName, String departmentId); + + void personTrainingImport(MultipartFile file, PersonTraining training); + + void personTrainingDelete(Integer id); + + void reviewAnnualPersonnelTraining(PersonTraining training); + + void approveAnnualPersonnelTraining(PersonTraining training); + + /** + * 瀵煎嚭浜哄憳鍩硅璁″垝 + * @param id + * @param response + */ + void exportPersonTraining(Integer id, HttpServletResponse response); + + /** + * 瀵煎嚭浜哄憳鍩硅涓庤�冩牳璁板綍 + * @param id + * @param response + */ + void exportPersonTrainingRecord(Integer id, HttpServletResponse response); + + /** + * 浜哄憳鍩硅璇︽儏闄勪欢鏂板 + * @param trainingDetailedId + * @param file + * @return + */ + boolean uploadTrainingDetailedFile(Integer trainingDetailedId, MultipartFile file); + + /** + * 鏌ヨ浠婂勾浜哄憳鍩硅淇℃伅 + * @return + */ + List<PersonTrainingDetailed> getThisYearTrainingDetailed(); + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java new file mode 100644 index 0000000..d944b3b --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/AnnexServiceImpl.java @@ -0,0 +1,13 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.AnnexMapper; +import com.ruoyi.personnel.pojo.Annex; +import com.ruoyi.personnel.service.AnnexService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class AnnexServiceImpl extends ServiceImpl<AnnexMapper, Annex> implements AnnexService { +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java new file mode 100644 index 0000000..a70f196 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoFileServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.PersonBasicInfoFileMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; +import com.ruoyi.personnel.service.PersonBasicInfoFileService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅闄勪欢 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:28:55 + */ +@Service +public class PersonBasicInfoFileServiceImpl extends ServiceImpl<PersonBasicInfoFileMapper, PersonBasicInfoFile> implements PersonBasicInfoFileService { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java new file mode 100644 index 0000000..0ae552c --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java @@ -0,0 +1,340 @@ +package com.ruoyi.personnel.service.impl; + +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.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.common.core.domain.entity.DepartmentLims; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.personnel.dto.PersonBasicInfoDto; +import com.ruoyi.personnel.dto.PersonBasicInfoWorkDto; +import com.ruoyi.personnel.dto.UserPageDto; +import com.ruoyi.personnel.mapper.AnnexMapper; +import com.ruoyi.personnel.mapper.PersonBasicInfoFileMapper; +import com.ruoyi.personnel.mapper.PersonBasicInfoMapper; +import com.ruoyi.personnel.mapper.PersonBasicInfoWorkMapper; +import com.ruoyi.personnel.pojo.Annex; +import com.ruoyi.personnel.pojo.PersonBasicInfo; +import com.ruoyi.personnel.pojo.PersonBasicInfoFile; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +import com.ruoyi.personnel.service.PersonBasicInfoService; +import com.ruoyi.system.mapper.DepartmentLimsMapper; +import com.ruoyi.system.mapper.UserMapper; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +/** + * <p> + * 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-08-30 09:19:57 + */ + +@Service +@Transactional(rollbackFor = Exception.class) +public class PersonBasicInfoServiceImpl extends ServiceImpl<PersonBasicInfoMapper, PersonBasicInfo> implements PersonBasicInfoService { + + @Autowired + private DepartmentLimsMapper departmentMapper; + @Value("${file.path}") + private String imgUrl; + @Value("${wordUrl}") + private String wordUrl; + @Resource + private UserMapper userMapper; + @Resource + private AnnexMapper annexMapper; + @Resource + private PersonBasicInfoFileMapper personBasicInfoFileMapper; + @Resource + private PersonBasicInfoWorkMapper personBasicInfoWorkMapper; + + @Override + public List<DepartmentDto> selectCNSAPersonTree() { + List<DepartmentDto> departments = departmentMapper.selectDepartment(); + List<DepartmentDto> limsUser = baseMapper.selectLimsUser(); + departments.addAll(limsUser); + //鑾峰彇鐖惰妭鐐� + return departments.stream().filter(m -> m.getFatherId() == null).peek( + (m) -> m.setChildren(getChildren(m, departments)) + ).collect(Collectors.toList()); + } + + @Override + public Map<String,Object> getCNASPersonnelInfo(Integer userId) { + Map<String, Object> map = new HashMap<>(); + Map<Integer,List<DepartmentLims>> childrenMap = new HashMap<>(); + List<DepartmentLims> deptS = departmentMapper.selectList(null); + for (DepartmentLims dept : deptS) { + if(!Objects.isNull(dept.getFatherId())) { + if(!childrenMap.containsKey(dept.getFatherId())) { + childrenMap.put(dept.getFatherId(),new ArrayList<>()); + } + childrenMap.get(dept.getFatherId()).add(dept); + } + } + // 鐖惰妭鐐� + List<DepartmentLims> deptF = new ArrayList<>(); + for (DepartmentLims dept : deptS) { + if(Objects.isNull(dept.getFatherId())) { + deptF.add(buildTree(dept,childrenMap)); + } + } + map.put("department",deptF); + map.put("PersonBasicInfoDto",baseMapper.getCNASPersonnelInfo(userId)); + map.put("annexList",annexMapper.selectList(new LambdaQueryWrapper<Annex>().eq(Annex::getUserId,userId))); + return map; + } + + private DepartmentLims buildTree(DepartmentLims departmentLims, Map<Integer,List<DepartmentLims>> childrenMap) { + if(childrenMap.containsKey(departmentLims.getId())) { + departmentLims.setChildren(childrenMap.get(departmentLims.getId())); + for (DepartmentLims departmentLims1 : departmentLims.getChildren()) { + buildTree(departmentLims1,childrenMap); + } + } + return departmentLims; + } + + @Override + public void saveCNASPersonnelInfo(PersonBasicInfoDto personBasicInfoDto) { + User user = new User(); + user.setId(personBasicInfoDto.getUserId()); + user.setAccount(personBasicInfoDto.getAccount()); + user.setName(personBasicInfoDto.getName()); + user.setNameEn(personBasicInfoDto.getNameEn()); + user.setAge(personBasicInfoDto.getAge()); + user.setPhone(personBasicInfoDto.getPhone()); + user.setEmail(personBasicInfoDto.getEmail()); + user.setSignatureUrl(personBasicInfoDto.getSignatureUrl()); + user.setPictureUrl(personBasicInfoDto.getPictureUrl()); + user.setDepartLimsId(personBasicInfoDto.getDepartLimsId()); + userMapper.updateById(user); + PersonBasicInfo personBasicInfo = JSONObject.parseObject(JSON.toJSONString(personBasicInfoDto), PersonBasicInfo.class); + PersonBasicInfo one = baseMapper.selectOne(new LambdaQueryWrapper<PersonBasicInfo>() + .eq(PersonBasicInfo::getUserId, personBasicInfoDto.getUserId())); + if(Objects.isNull(one)) { + baseMapper.insert(personBasicInfo); + }else { + baseMapper.updateById(personBasicInfo); + } + } + + @Override + public IPage<Map<String, Object>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId) { + return baseMapper.selectPersonBasecInfoAndUser(page, name, departmentId); + } + + @Override + public void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception { + ArrayList<PersonBasicInfoDto> data = new ArrayList<>(); + List<User> list = userMapper.selectList(null); + for (User user : list) { + PersonBasicInfoDto personBasicInfoDto = new PersonBasicInfoDto(); + PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId())); + if (ObjectUtils.isNotEmpty(personBasicInfo)) { + BeanUtils.copyProperties(personBasicInfo, personBasicInfoDto); + } + personBasicInfoDto.setName(user.getName()); + personBasicInfoDto.setAccount(user.getAccount()); + personBasicInfoDto.setPhone(ObjectUtils.isNotEmpty(user.getPhone()) ? user.getPhone() : " "); + data.add(personBasicInfoDto); + } + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + 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(); + WriteSheet mainSheet = EasyExcel.writerSheet(0, "浜哄憳鍩烘湰淇℃伅瀵煎嚭").head(PersonBasicInfoDto.class).build(); + excelWriter.write(data, mainSheet); + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + @Override + public String exportPersonBasicInfoById(Integer id, HttpServletResponse response) { + Map<String, Object> userMap = baseMapper.selectexportPersonBasic(id); + User user = userMapper.selectById(id); + PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId())); + if (ObjectUtils.isEmpty(personBasicInfo)){ + throw new ErrorException("璇ョ敤鎴风殑鍩烘湰淇℃伅娌℃湁褰曞叆,鏆傛棤娉曞鍑�"); + } + // 璇佷欢 + List<Annex> annexList = annexMapper.selectList(Wrappers.<Annex>lambdaQuery() + .eq(Annex::getUserId, id)); + // 宸ヤ綔缁忓巻 + List<PersonBasicInfoWork> personBasicInfoWorks = personBasicInfoWorkMapper.selectList(Wrappers.<PersonBasicInfoWork>lambdaQuery() + .eq(PersonBasicInfoWork::getUserId, id)); + + List<PersonBasicInfoWorkDto> workList = personBasicInfoWorks.stream().map(basicInfoWork -> { + PersonBasicInfoWorkDto personBasicInfoWorkDto = new PersonBasicInfoWorkDto(); + personBasicInfoWorkDto.setWorkExperience(basicInfoWork.getWorkExperience()); + personBasicInfoWorkDto.setFill("涓昏宸ヤ綔缁忓巻\nMain work experience鈭�1"); + return personBasicInfoWorkDto; + }).collect(Collectors.toList()); + + // 妫�鏌ュ垪琛ㄩ暱搴﹀苟濉厖绌哄璞� + while (annexList.size() < 10) { + annexList.add(new Annex()); + } + + // 妫�鏌ュ垪琛ㄩ暱搴﹀苟濉厖绌哄璞� + while (workList.size() < 4) { + workList.add(new PersonBasicInfoWorkDto()); + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/person-basic-info.docx"); + Configure configure = Configure.builder() + .bind("annexList", new HackLoopTableRenderPolicy()) + .bind("workList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("user", userMap); + put("annexList", annexList); + put("workList", workList); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + userMap.get("name") + "浜哄憳妗f", "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 null; + } + + /** + * 浜哄憳鍩硅鍩烘湰淇℃伅闄勪欢鏂板 + * @param userId + * @param file + * @return + */ + @Override + public boolean uploadBasicInfoFile(Integer userId, MultipartFile file) { + if (userId == null) { + throw new ErrorException("缂哄皯浜哄憳id"); + } + + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + PersonBasicInfoFile personBasicInfoFile = new PersonBasicInfoFile(); + personBasicInfoFile.setUserId(userId); + personBasicInfoFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + personBasicInfoFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + personBasicInfoFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + personBasicInfoFile.setFileUrl(pathName); + personBasicInfoFileMapper.insert(personBasicInfoFile); + return true; + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return false; + } + } + + /** + * 閫掑綊鏌ヨ瀛愯妭鐐� + * @param root 鏍硅妭鐐� + * @param all 鎵�鏈夎妭鐐� + * @return 鏍硅妭鐐逛俊鎭� + */ + private List<DepartmentDto> getChildren(DepartmentDto root, List<DepartmentDto> all) { + if (ObjectUtils.isNotEmpty(root.getId())) { + return all.stream().filter(m -> Objects.equals(m.getFatherId(), root.getId())).peek( + (m) -> m.setChildren(getChildren(m, all)) + ).collect(Collectors.toList()); + } else { + return Collections.emptyList(); + } + } + + // 姘村钩鍚堝苟鍗曞厓鏍� + private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { + for (int i = fromCol; i <= toCol; i++) { + if (i == fromCol) { + table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART); + } else { + table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE); + } + } + } + + // 鍨傜洿鍚堝苟鍗曞厓鏍� + private static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) { + for (int i = fromRow; i <= toRow; i++) { + if (i == fromRow) { + table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); + } else { + table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); + } + } + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java new file mode 100644 index 0000000..3ed8882 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoWorkServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.mapper.PersonBasicInfoWorkMapper; +import com.ruoyi.personnel.pojo.PersonBasicInfoWork; +import com.ruoyi.personnel.service.PersonBasicInfoWorkService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 浜哄憳鍩烘湰淇℃伅 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2025-01-09 05:45:04 + */ +@Service +public class PersonBasicInfoWorkServiceImpl extends ServiceImpl<PersonBasicInfoWorkMapper, PersonBasicInfoWork> implements PersonBasicInfoWorkService { + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java new file mode 100644 index 0000000..2c1a227 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonCommunicationAbilityServiceImpl.java @@ -0,0 +1,113 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.personnel.dto.PersonCommunicationAbilityDto; +import com.ruoyi.personnel.mapper.PersonCommunicationAbilityMapper; +import com.ruoyi.personnel.pojo.PersonCommunicationAbility; +import com.ruoyi.personnel.service.PersonCommunicationAbilityService; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.stream.Collectors; + +/** + * <p> + * 娌熼�氳兘鍔� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 12:00:57 + */ +@Service +public class PersonCommunicationAbilityServiceImpl extends ServiceImpl<PersonCommunicationAbilityMapper, PersonCommunicationAbility> implements PersonCommunicationAbilityService { + + @Resource + private UserMapper userMapper; + + @Override + public IPage<PersonCommunicationAbilityDto> personPersonCommunicationAbilityPage(Page page, Integer departLimsId, Integer userId, String userName) { + IPage<PersonCommunicationAbilityDto> personCommunicationAbilityDtoIPage = baseMapper.personPersonCommunicationAbilityPage(page, departLimsId, userId, userName); + List<PersonCommunicationAbilityDto> collect = personCommunicationAbilityDtoIPage.getRecords().stream().map(personCommunicationAbilityDto -> { + if (ObjectUtils.isNotEmpty(personCommunicationAbilityDto.getUserId())) { + List<String> account = new ArrayList<>(); + List<String> name = new ArrayList<>(); + for (String s : personCommunicationAbilityDto.getUserId().split(",")) { + User user = userMapper.selectById(Integer.parseInt(s)); + account.add(user.getAccount()); + name.add(user.getName()); + } + personCommunicationAbilityDto.setAccount(account.stream().collect(Collectors.joining(","))); + personCommunicationAbilityDto.setUserName(name.stream().collect(Collectors.joining(","))); + } + return personCommunicationAbilityDto; // 杩欓噷鍙互瀵硅繑鍥炵殑鏁版嵁杩涜澶勭悊锛屽娣诲姞涓�浜涙柊鐨勫睘鎬ф垨杞崲绛夈�� + }).collect(Collectors.toList()); + personCommunicationAbilityDtoIPage.setRecords(collect); + return personCommunicationAbilityDtoIPage; + } + + @Override + public void exportPersonCommunicationAbility(Integer id, HttpServletResponse response) throws Exception { + PersonCommunicationAbility personCommunicationAbility = baseMapper.selectById(id); + //娌熼�氫汉 + String collect = " "; + if (ObjectUtils.isNotEmpty(personCommunicationAbility.getUserId())) { + List<String> name = new ArrayList<>(); + for (String s : personCommunicationAbility.getUserId().split(",")) { + User user = userMapper.selectById(Integer.parseInt(s)); + name.add(user.getName()); + } + collect = name.stream().collect(Collectors.joining(",")); + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"); + + //鏃堕棿 + String communicationTime = ""; + if (ObjectUtils.isNotEmpty(personCommunicationAbility.getCommunicationTime())) { + communicationTime = personCommunicationAbility.getCommunicationTime().format(formatter); + } + + InputStream inputStream = this.getClass().getResourceAsStream("/static/communication-deal.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalCollect = collect; + String finalCommunicationTime = communicationTime; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("userName", finalCollect); + put("communicationTime", finalCommunicationTime); + put("communicationPlace", personCommunicationAbility.getCommunicationPlace()); + put("communicationContent", personCommunicationAbility.getCommunicationContent()); + }}); + + 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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java new file mode 100644 index 0000000..d55a3f0 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonJobResponsibilitiesServiceImpl.java @@ -0,0 +1,113 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto; +import com.ruoyi.personnel.mapper.PersonJobResponsibilitiesMapper; +import com.ruoyi.personnel.pojo.PersonJobResponsibilities; +import com.ruoyi.personnel.service.PersonJobResponsibilitiesService; +import com.ruoyi.system.mapper.UserMapper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; + +/** + * <p> + * 宀椾綅鑱岃矗 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 02:07:49 + */ +@Service +@AllArgsConstructor +public class PersonJobResponsibilitiesServiceImpl extends ServiceImpl<PersonJobResponsibilitiesMapper, PersonJobResponsibilities> implements PersonJobResponsibilitiesService { + + @Resource + private UserMapper userMapper; + + + @Override + public IPage<PersonJobResponsibilitiesDto> personJobResponsibilitiesSelect(Page page, String userId, String departmentId, String userName) { + return baseMapper.personJobResponsibilitiesSelect(page, userId, departmentId, userName); + } + + @Override + public void exportPersonJobResponsibilities(Integer id, HttpServletResponse response) { + PersonJobResponsibilities personJobResponsibilities = baseMapper.selectById(id); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"); + //宀椾綅鍚嶇О + String name = personJobResponsibilities.getPostName(); + //鎵�灞為儴闂� + String departLims = userMapper.selectUserDepartmentLimsName(Integer.parseInt(personJobResponsibilities.getIncumbentId())); + //宸ヤ綔鐩爣 + String objective = personJobResponsibilities.getJobObjective(); + //宀椾綅鑱岃矗 + String responsibilities = personJobResponsibilities.getJobResponsibilities(); + //浠昏亴浜� + User user = userMapper.selectById(Integer.parseInt(personJobResponsibilities.getIncumbentId())); + String incumbent = user.getName(); + //浠昏亴鏃堕棿 + String incumbentDate = ""; + if (ObjectUtils.isNotEmpty(personJobResponsibilities.getIncumbentDate())) { + incumbentDate = personJobResponsibilities.getIncumbentDate().format(formatter); + } + //涓荤 + String supervisor = ""; + if (ObjectUtils.isNotEmpty(personJobResponsibilities.getSupervisorId())) { + supervisor = userMapper.selectById(personJobResponsibilities.getSupervisorId()).getName(); + } + //涓荤鏃堕棿 + String supervisorDate = ""; + if (ObjectUtils.isNotEmpty(personJobResponsibilities.getSupervisorDate())) { + supervisorDate = personJobResponsibilities.getSupervisorDate().format(formatter); + } + + InputStream inputStream = this.getClass().getResourceAsStream("/static/explain-deal.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalIncumbentDate = incumbentDate; + String finalSupervisor = supervisor; + String finalSupervisorDate = supervisorDate; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("name", name); + put("account", user.getAccount()); + put("departLims", departLims); + put("objective", objective); + put("responsibilities", responsibilities); + put("incumbent", incumbent); + put("incumbentDate", finalIncumbentDate); + put("supervisor", finalSupervisor); + put("supervisorDate", finalSupervisorDate); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + name + "鐨勪换鑱屽矖浣嶈鏄庝功", "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("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java new file mode 100644 index 0000000..0c056f1 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPersonnelCapacityServiceImpl.java @@ -0,0 +1,158 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +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.config.ConfigureBuilder; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityDto; +import com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto; +import com.ruoyi.personnel.pojo.PersonPersonnelCapacity; +import com.ruoyi.personnel.mapper.PersonPersonnelCapacityMapper; +import com.ruoyi.personnel.service.PersonPersonnelCapacityService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.factory.annotation.Value; +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.util.HashMap; + +/** + * <p> + * 浜哄憳鑳藉姏 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-10 11:26:18 + */ +@Service +public class PersonPersonnelCapacityServiceImpl extends ServiceImpl<PersonPersonnelCapacityMapper, PersonPersonnelCapacity> implements PersonPersonnelCapacityService { + + @Resource + private UserMapper userMapper; + @Resource + private InformationNotificationService informationNotificationService; + + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + + + @Value("${file.path}") + private String imgUrl; + + @Override + public IPage<PersonPersonnelCapacityDto> personPersonnelCapacityPage(Page page, Integer departLimsId, Integer userId, String userName) { + return baseMapper.personPersonnelCapacityPage(page, departLimsId, userId, userName); + } + + /** + * 瀵煎嚭浜哄憳鑳藉姏 + * @param id + * @param response + */ + @Override + public void exportPersonnelCapacity(Integer id, HttpServletResponse response) { + PersonPersonnelCapacityExportDto capacityExportDto = baseMapper.selectExportPersonnelCapacity(id); + + // 纭浜� + String confirmUrl = null; + if (capacityExportDto.getConfirmOperatingPersonnelId() != null) { + confirmUrl = userMapper.selectById(capacityExportDto.getConfirmOperatingPersonnelId()).getSignatureUrl(); + if (StringUtils.isBlank(confirmUrl)) { + throw new ErrorException("缂哄皯纭浜虹鍚�"); + } + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/personnel-capacity.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalConfirmUrl = confirmUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("capacity", capacityExportDto); + put("confirmUrl", StringUtils.isNotBlank(finalConfirmUrl) ? Pictures.ofLocal(imgUrl + "/" + finalConfirmUrl).create() : null); + put("confirmDateUrl", capacityExportDto.getConfirmDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(capacityExportDto.getConfirmDate())).create() : null); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "浜哄憳鑳藉姏", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + /** + * 鎻愪氦纭浜哄憳鑳藉姏 + * @param personPersonnelCapacity + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void submitConfirmPersonnelCapability(PersonPersonnelCapacity personPersonnelCapacity) { + if (personPersonnelCapacity.getConfirmOperatingPersonnelId() == null) { + throw new ErrorException("缂哄皯纭浜�"); + } + User formUser = userMapper.selectById(personPersonnelCapacity.getUserId()); + + 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(formUser.getName() + "鐨勪汉鍛樿兘鍔涘緟纭"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(personPersonnelCapacity.getConfirmOperatingPersonnelId()); + info.setJumpPath("a6-personnel"); + informationNotificationService.addInformationNotification(info); + this.saveOrUpdate(personPersonnelCapacity); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(personPersonnelCapacity.getConfirmOperatingPersonnelId()); + + String message = ""; + message += "CNAS浜哄憳鑳藉姏纭閫氱煡"; + message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-浜哄憳鑳藉姏濉啓"; + message += "\n" + formUser.getName() + "鐨勪汉鍛樿兘鍔涘緟纭"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + } + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java new file mode 100644 index 0000000..68f2961 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java @@ -0,0 +1,132 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.FilePictureRenderData; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto; +import com.ruoyi.personnel.mapper.PersonPostAuthorizationRecordMapper; +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; +import com.ruoyi.personnel.service.PersonPostAuthorizationRecordService; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.util.HashMap; + +/** + * <p> + * 浠昏亴鎺堟潈璁板綍 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-09 10:48:17 + */ +@Service +public class PersonPostAuthorizationRecordServiceImpl extends ServiceImpl<PersonPostAuthorizationRecordMapper, PersonPostAuthorizationRecord> implements PersonPostAuthorizationRecordService { + + @Resource + private UserMapper userMapper; + + @Value("${file.path}") + private String imgUrl; + + @Override + public IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, Integer departLimsId, Integer userId, String userName) { + return baseMapper.personPostAuthorizationRecordPage(page, departLimsId, userId, userName); + } + + @Override + public void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response) { + PersonPostAuthorizationRecord personPostAuthorizationRecord = baseMapper.selectById(id); + //濮撳悕 + User user = userMapper.selectById(personPostAuthorizationRecord.getUserId()); + String name = user.getName(); + //todo: 浜哄憳浠昏亴鎺堟潈璁板綍濮撳悕鑻辨枃 +// HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); +// format.setCaseType(HanyuPinyinCaseType.LOWERCASE); +// format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); +// StringBuilder pinyinBuilder = new StringBuilder(); +// for (int i = 0; i < name.length(); i++) { +// char c = name.charAt(i); +// // 鍒ゆ柇鏄惁鏄眽瀛� +// if (Character.toString(c).matches("[\\u4E00-\\u9FFF]")) { +// // 鑾峰彇姹夊瓧鐨勬嫾闊虫暟缁� +// String[] pinyinArray = new String[0]; +// try { +// pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format); +// } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) { +// +// } +// if (pinyinArray!= null && pinyinArray.length > 0) { +// pinyinBuilder.append(pinyinArray[0]); +// } +// } else { +// pinyinBuilder.append(c); +// } +// } +// String nameEn = pinyinBuilder.toString(); + String nameEn = user.getNameEn(); + //鐞嗚鐭ヨ瘑鑰冭瘯鎴愮哗 + String num1=personPostAuthorizationRecord.getNum1(); + //鎿嶄綔鎶�鑳借�冭瘯鎴愮哗 + String num2=personPostAuthorizationRecord.getNum2(); + //璇佷功缂栧彿 + String code = personPostAuthorizationRecord.getCertificateNumber(); + //鍙戣瘉鏃堕棿 + LocalDateTime createTime = personPostAuthorizationRecord.getCreateTime(); + String year = createTime.getYear() + ""; + String mon = createTime.getMonth().getValue() + ""; + String day = createTime.getDayOfMonth() + ""; + //涓汉鐓х墖 + if (ObjectUtils.isEmpty(user.getPictureUrl())) { + throw new ErrorException(name+"鐨勪釜浜虹収鐗囨病鏈変笂浼�"); + } + String pictureUrl = user.getPictureUrl(); + + + InputStream inputStream = this.getClass().getResourceAsStream("/static/credentials-deal.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("name", name); + put("nameEn", nameEn); + put("num1", num1); + put("num2", num2); + put("code", code); + put("year", year); + put("mon", mon); + put("day", day); + put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + pictureUrl)); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + name+"鐨勫矖浣嶈亴涓氳祫鏍兼寮�", "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("瀵煎嚭澶辫触"); + } + + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java new file mode 100644 index 0000000..9393bbd --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonRewardPunishmentRecordServiceImpl.java @@ -0,0 +1,36 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto; +import com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel; +import com.ruoyi.personnel.mapper.PersonRewardPunishmentRecordMapper; +import com.ruoyi.personnel.pojo.PersonRewardPunishmentRecord; +import com.ruoyi.personnel.service.PersonRewardPunishmentRecordService; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * <p> + * 濂栨儵璁板綍 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-08 11:25:02 + */ +@Service +public class PersonRewardPunishmentRecordServiceImpl extends ServiceImpl<PersonRewardPunishmentRecordMapper, PersonRewardPunishmentRecord> implements PersonRewardPunishmentRecordService { + + @Override + public IPage<PersonRewardPunishmentRecordDto> rewardPunishmentPage(Page page, Integer userId, String userName, Date startTime, Date endTime, Integer departmentId) { + return baseMapper.rewardPunishmentPage(page, userId, userName, startTime, endTime, departmentId); + } + + @Override + public List<PersonRewardPunishmentRecordExcel> rewardPunishmentExport(Integer userId, Integer departmentId, String userName, Date startTime, Date endTime) { + return baseMapper.rewardPunishmentExport(userId, departmentId, userName, startTime, endTime); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java new file mode 100644 index 0000000..3eaf942 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingDetailedServiceImpl.java @@ -0,0 +1,85 @@ +package com.ruoyi.personnel.service.impl; + +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.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.numgen.NumberGenerator; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonTrainingDetailedDto; +import com.ruoyi.personnel.excel.PersonTrainingDetailedUpload; +import com.ruoyi.personnel.mapper.PersonTrainingDetailedMapper; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import com.ruoyi.personnel.service.PersonTrainingDetailedService; +import com.ruoyi.system.mapper.UserMapper; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * <p> + * 鍩硅璁″垝璇︽儏 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:46:27 + */ +@Service +@Transactional(rollbackFor = Exception.class) +@AllArgsConstructor +public class PersonTrainingDetailedServiceImpl extends ServiceImpl<PersonTrainingDetailedMapper, PersonTrainingDetailed> implements PersonTrainingDetailedService { + + + private UserMapper userMapper; + + @Override + public void importExcel(List<PersonTrainingDetailedUpload> list, Integer planId) { + List<PersonTrainingDetailed> personTrainingDetailedList = new ArrayList<>(); + list.forEach(i -> { + PersonTrainingDetailed personTrainingDetailed = new PersonTrainingDetailed(); + BeanUtils.copyProperties(i, personTrainingDetailed); + + // 鍖归厤璁插笀 + User user = userMapper.selectOne(Wrappers.<User>lambdaQuery() + .eq(User::getName, i.getTrainingLecturerName())); + if (ObjectUtils.isEmpty(user)) { + throw new ErrorException("鏈壘鍒拌璁插笀锛�" + i.getTrainingLecturerName()); + } + personTrainingDetailed.setTrainingLecturerId(user.getId()); + personTrainingDetailed.setPlanId(planId); + personTrainingDetailed.setState(3); + + personTrainingDetailed.setTrainingDate(i.getTrainingDate()); + + + personTrainingDetailedList.add(personTrainingDetailed); + }); + // 鎵归噺鏂板 + if (CollectionUtils.isNotEmpty(personTrainingDetailedList)) { + baseMapper.insertBatchSomeColumn(personTrainingDetailedList); + } + } + + @Override + public void deleteAnnualPlanDetailTable(String ids) { + String[] split = ids.split(","); + if (split.length > 0) { + for (String s : split) { + baseMapper.deleteById(s); + } + } + } + + @Override + public IPage<PersonTrainingDetailedDto> queryTheAnnualPlanDetailsTable(Page page, String trainingLecturerName, String courseCode, String trainingDate, Integer id, Integer userId) { + return baseMapper.queryTheAnnualPlanDetailsTable(page, trainingLecturerName, courseCode, trainingDate, id, userId, null); + } +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java new file mode 100644 index 0000000..4b11bb5 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java @@ -0,0 +1,177 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.personnel.dto.PersonTrainingRecordDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordListDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordSubmitDto; +import com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto; +import com.ruoyi.personnel.mapper.PersonTrainingRecordMapper; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import com.ruoyi.personnel.pojo.PersonTrainingRecord; +import com.ruoyi.personnel.service.PersonTrainingDetailedService; +import com.ruoyi.personnel.service.PersonTrainingRecordService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.factory.annotation.Autowired; +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.util.HashMap; +import java.util.List; + +/** + * <p> + * 鍩硅璁板綍 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-12 04:50:48 + */ +@Transactional(rollbackFor = Exception.class) +@Service +public class PersonTrainingRecordServiceImpl extends ServiceImpl<PersonTrainingRecordMapper, PersonTrainingRecord> implements PersonTrainingRecordService { + + @Autowired + private PersonTrainingDetailedService personTrainingDetailedService; + @Resource + private InformationNotificationService informationNotificationService; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private UserMapper userMapper; + + @Override + public List<PersonTrainingRecordDto> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName) { + return baseMapper.trainingAndAssessmentRecordsPage(trainingDetailedId, userName); + } + + @Override + public void deleteTrainingAndAssessmentRecords(String ids) { + String[] split = ids.split(","); + if (split.length > 0) { + for (String s : split) { + baseMapper.deleteById(s); + } + } + } + + @Override + public IPage<PersonTrainingRecordListDto> personnelTrainingPersonnel(Page page, String userName, Integer userId, Integer departLimsId) { + return baseMapper.personnelTrainingPersonnel(page, userName, userId, departLimsId); + } + + @Override + public void claimOfTrainingAndAssessmentRecords(Boolean claimAndClaim, Integer courseId) { + + } + + + @Override + public IPage<TrainingRecordPersonDetailedDto> queryPersonnelDetailsOfUserIdAndYear(Page page, Integer userId, Integer year) { + return baseMapper.queryPersonnelDetailsOfUserIdAndYear(page, userId, year); + } + + @Override + public void exportTrainingRecordAddTrainingDate(Integer userId, Integer trainingDate, HttpServletResponse response) { + // 鏌ヨ浜哄憳浜轰俊鎭� + PersonTrainingRecordListDto trainingRecordListDto = baseMapper.selectUserTraining(userId); + + // 鏌ヨ鍩硅璁板綍 + List<TrainingRecordPersonDetailedDto> personDetailedDtos = baseMapper.selectPersonDetailedDtosByTrainingDate(userId, trainingDate); + + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/training-record.docx"); + Configure configure = Configure.builder() + .bind("personnelDetailsLisat", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("traning", trainingRecordListDto); + put("personnelDetailsLisat", personDetailedDtos); + }}); + 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("瀵煎嚭澶辫触"); + } + } + + /** + * 鍩硅鎻愪氦 + * @param personTrainingRecordSubmitDto + */ + @Override + public void trainingAndAssessmentRecordsAdded(PersonTrainingRecordSubmitDto personTrainingRecordSubmitDto) { + personTrainingDetailedService.update(Wrappers.<PersonTrainingDetailed>lambdaUpdate() + .eq(PersonTrainingDetailed::getId, personTrainingRecordSubmitDto.getTrainingDetailedId()) + .set(PersonTrainingDetailed::getAssessmentMethod, personTrainingRecordSubmitDto.getAssessmentMethod()) + .set(PersonTrainingDetailed::getPlaceTraining, personTrainingRecordSubmitDto.getPlaceTraining()) + .set(PersonTrainingDetailed::getOpeningTime, personTrainingRecordSubmitDto.getOpeningTime()) + .set(PersonTrainingDetailed::getAssessmentUserId, personTrainingRecordSubmitDto.getAssessmentUserId()) + .set(PersonTrainingDetailed::getState, personTrainingRecordSubmitDto.getState())); + + // 鍙戦�佹秷鎭�氱煡 + if (personTrainingRecordSubmitDto.getState().equals(2)) { + PersonTrainingDetailed personPersonnelCapacity = personTrainingDetailedService.getById(personTrainingRecordSubmitDto.getTrainingDetailedId()); + + 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("鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(personTrainingRecordSubmitDto.getAssessmentUserId()); + info.setJumpPath("a6-personnel"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(personTrainingRecordSubmitDto.getAssessmentUserId()); + + String message = ""; + message += "CNAS浜哄憳鍩硅璁″垝寰呰瘎浠�"; + message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-浜哄憳鍩硅璁″垝"; + message += "\n" + "鍩硅鍐呭:" + personPersonnelCapacity.getTrainingContent() + "鐨勪汉鍛樺煿璁緟璇勪环"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + +} diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java new file mode 100644 index 0000000..3463126 --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingServiceImpl.java @@ -0,0 +1,429 @@ +package com.ruoyi.personnel.service.impl; + +import com.alibaba.excel.EasyExcel; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.personnel.dto.PersonTrainingDetailedDto; +import com.ruoyi.personnel.dto.PersonTrainingDto; +import com.ruoyi.personnel.dto.PersonTrainingRecordDto; +import com.ruoyi.personnel.dto.TrainingRecordExportDto; +import com.ruoyi.personnel.excel.PersonTrainingDetailedListener; +import com.ruoyi.personnel.excel.PersonTrainingDetailedUpload; +import com.ruoyi.personnel.mapper.PersonTrainingDetailedFileMapper; +import com.ruoyi.personnel.mapper.PersonTrainingDetailedMapper; +import com.ruoyi.personnel.mapper.PersonTrainingMapper; +import com.ruoyi.personnel.mapper.PersonTrainingRecordMapper; +import com.ruoyi.personnel.pojo.PersonTraining; +import com.ruoyi.personnel.pojo.PersonTrainingDetailed; +import com.ruoyi.personnel.pojo.PersonTrainingDetailedFile; +import com.ruoyi.personnel.service.PersonTrainingDetailedService; +import com.ruoyi.personnel.service.PersonTrainingService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Optional; + +/** + * <p> + * 鍩硅璁″垝 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-10-11 01:11:49 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class PersonTrainingServiceImpl extends ServiceImpl<PersonTrainingMapper, PersonTraining> implements PersonTrainingService { + + @Autowired + private PersonTrainingDetailedService personTrainingDetailedService; + @Autowired + private UserMapper userMapper; + @Autowired + private PersonTrainingDetailedMapper personTrainingDetailedMapper; + @Autowired + private PersonTrainingRecordMapper personTrainingRecordMapper; + @Autowired + private PersonTrainingDetailedFileMapper personTrainingDetailedFileMapper; + @Resource + private InformationNotificationService informationNotificationService; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Value("${file.path}") + private String imgUrl; + + @Value("${wordUrl}") + private String wordUrl; + + @Override + public IPage<PersonTrainingDto> personTrainingSelect(Page page, String compilerName, String departmentId) { + + return baseMapper.personTrainingSelect(page, compilerName, departmentId); + } + + @Override + public void personTrainingImport(MultipartFile file, PersonTraining training) { + + Integer userId = SecurityUtils.getUserId().intValue(); + // 骞村害璁″垝鐖剁骇鏂板鏁版嵁 + PersonTraining personSupervisePlan = new PersonTraining(); + String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")); + personSupervisePlan.setFileName(fileName); + personSupervisePlan.setPlanYear(training.getPlanYear()); + personSupervisePlan.setCompilerId(userId); + personSupervisePlan.setReviewerId(training.getReviewerId()); + personSupervisePlan.setCompilationDate(LocalDateTime.now()); + baseMapper.insert(personSupervisePlan); + User user = userMapper.selectById(userId); + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS鍩硅璁″垝瀹℃牳閫氱煡"); + info.setContent("鎮ㄦ湁涓�鏉″煿璁鍒掑緟瀹℃牳"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(training.getApproverId()); + info.setJumpPath("a6-personnel"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(training.getApproverId()); + + String message = ""; + message += "CNAS鍩硅璁″垝瀹℃牳閫氱煡"; + message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-鍩硅璁″垝濉啓"; + message += "\n" + fileName + "鐨勫煿璁鍒掑緟瀹℃牳"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + // 骞村害璁″垝璇︽儏 鏂板 + try { + PersonTrainingDetailedListener personSupervisePlanDetailsListener = new PersonTrainingDetailedListener(personTrainingDetailedService); + personSupervisePlanDetailsListener.setPlanId(personSupervisePlan.getId()); + EasyExcel.read(file.getInputStream(), PersonTrainingDetailedUpload.class, personSupervisePlanDetailsListener).sheet().doRead(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void personTrainingDelete(Integer id) { + personTrainingDetailedService.remove(Wrappers.<PersonTrainingDetailed>lambdaQuery() + .eq(PersonTrainingDetailed::getPlanId, id)); + baseMapper.deleteById(id); + } + + @Override + public void reviewAnnualPersonnelTraining(PersonTraining training) { + PersonTraining personTraining = new PersonTraining(); + personTraining.setId(training.getId()); + personTraining.setApproverId(training.getApproverId());// 娣诲姞鎵瑰噯浜� + personTraining.setAuditDate(LocalDateTime.now()); + personTraining.setAuditRemarks(training.getAuditRemarks()); + personTraining.setReviewerStatus(training.getReviewerStatus()); + + PersonTraining old = baseMapper.selectById(training.getId()); + + // 娑堟伅鍙戦�� + 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("鎮ㄦ湁涓�鏉″煿璁鍒掑緟鎵瑰噯"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(training.getApproverId()); + info.setJumpPath("a6-personnel"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鎺ユ敹浜� + User personnel = userMapper.selectById(training.getApproverId()); + + String message = ""; + message += "CNAS鍩硅璁″垝鎵瑰噯閫氱煡"; + message += "\n璇峰幓璧勬簮绠$悊-浜哄憳-鍩硅璁″垝濉啓"; + message += "\n" + old.getFileName() + "鐨勫煿璁鍒掑緟鎵瑰噯"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(personnel.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + baseMapper.updateById(personTraining); + } + + @Override + public void approveAnnualPersonnelTraining(PersonTraining training) { + LambdaUpdateWrapper<PersonTraining> wrapper = Wrappers.<PersonTraining>lambdaUpdate() + .eq(PersonTraining::getId, training.getId()) + .set(PersonTraining::getApprovalDate, LocalDateTime.now()) + .set(PersonTraining::getApprovalRemarks, training.getApprovalRemarks()) + .set(PersonTraining::getApprovalStatus, training.getApprovalStatus()); + baseMapper.update(new PersonTraining(), wrapper); + } + + /** + * 瀵煎嚭浜哄憳鍩硅璁″垝 + * @param id + * @param response + */ + @Override + public void exportPersonTraining(Integer id, HttpServletResponse response) { + + // 鏌ヨ璇︽儏 + PersonTraining personTraining = baseMapper.selectById(id); + + //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃 + String writeUrl = userMapper.selectById(personTraining.getCompilerId()).getSignatureUrl(); + if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) { + throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); + } + + //鑾峰彇澶嶆牳浜虹殑绛惧悕鍦板潃 + String examineUrl = null; + if (personTraining.getReviewerId() != null) { + examineUrl = userMapper.selectById(personTraining.getReviewerId()).getSignatureUrl(); + if (StringUtils.isBlank(examineUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃 + String ratifyUrl = null; + if (personTraining.getApproverId() != null) { + ratifyUrl = userMapper.selectById(personTraining.getApproverId()).getSignatureUrl(); + if (StringUtils.isBlank(ratifyUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + // 鏌ヨ璇︽儏 + List<PersonTrainingDetailedDto> detailedDtos = personTrainingDetailedMapper.selectTrainingList(id); + + int index = 1; + for (PersonTrainingDetailedDto detailedDto : detailedDtos) { + detailedDto.setTrainingDateString(detailedDto.getTrainingDate()); + detailedDto.setIndex(index); + index++; + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/person-training.docx"); + String finalExamineUrl = examineUrl; + String finalRatifyUrl = ratifyUrl; + Configure configure = Configure.builder() + .bind("trainingDetailedList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("year", personTraining.getPlanYear()); + put("trainingDetailedList", detailedDtos); + put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null); + put("examineUrl", StringUtils.isNotBlank(finalExamineUrl) ? Pictures.ofLocal(imgUrl + "/" + finalExamineUrl).create() : null); + put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("writeDateUrl", personTraining.getCompilationDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(personTraining.getCompilationDate())).create() : null); + put("examineDateUrl", personTraining.getAuditDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(personTraining.getAuditDate())).create() : null); + put("ratifyDateUrl", personTraining.getApprovalDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(personTraining.getApprovalDate())).create() : null); + }}); + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "浜哄憳鍩硅璁″垝瀵煎嚭", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + + } + + /** + * 瀵煎嚭浜哄憳鍩硅涓庤�冩牳璁板綍 + * @param id + * @param response + */ + @Override + public void exportPersonTrainingRecord(Integer id, HttpServletResponse response) { + // 鏌ヨ浜哄憳鍩硅鏄庣粏 + PersonTrainingDetailedDto detailedDto = personTrainingDetailedMapper.selectTrainingDetail(id); + + // 鏌ヨ鍩硅鐨勪汉鍛� + List<PersonTrainingRecordDto> recordDtos = personTrainingRecordMapper.selectListByTrainingDetailedId(id); + + List<TrainingRecordExportDto> exportDtoList = new ArrayList<>(); + TrainingRecordExportDto exportDto = new TrainingRecordExportDto(); + + int count = 0; + for (PersonTrainingRecordDto recordDto : recordDtos) { + switch (count) { + case 0: + exportDto.setUserName1(recordDto.getUserName()); + exportDto.setDepartment1(recordDto.getDepartment()); + exportDto.setExaminationResults1(recordDto.getExaminationResults()); + count ++; + break; + case 1: + exportDto.setUserName2(recordDto.getUserName()); + exportDto.setDepartment2(recordDto.getDepartment()); + exportDto.setExaminationResults2(recordDto.getExaminationResults()); + exportDtoList.add(exportDto); + exportDto = new TrainingRecordExportDto(); + count = 0; + break; + } + } + exportDtoList.add(exportDto); + + // 璐ㄩ噺璐熻矗浜� + String assessmentUserUrl = null; + if (detailedDto.getAssessmentUserId() != null) { + assessmentUserUrl = userMapper.selectById(detailedDto.getAssessmentUserId()).getSignatureUrl(); + if (StringUtils.isBlank(assessmentUserUrl)) { + throw new ErrorException("鎵句笉鍒拌瘎浠蜂汉鐨勭鍚�"); + } + } + + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/person-training-record.docx"); + Configure configure = Configure.builder() + .bind("trainingRecordsList", new HackLoopTableRenderPolicy()) + .build(); + String finalAssessmentUserUrl = assessmentUserUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("trainingDetail", detailedDto); + put("trainingRecordsList", exportDtoList); + put("assessmentUserUrl", StringUtils.isNotBlank(finalAssessmentUserUrl) ? Pictures.ofLocal(imgUrl + "/" + finalAssessmentUserUrl).create() : null); + }}); + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "鍩硅涓庤�冩牳璁板綍瀵煎嚭", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + + + } + + /** + * 浜哄憳鍩硅璇︽儏闄勪欢鏂板 + * @param trainingDetailedId + * @param file + * @return + */ + @Override + public boolean uploadTrainingDetailedFile(Integer trainingDetailedId, MultipartFile file) { + if (trainingDetailedId == null) { + throw new ErrorException("缂哄皯楠屾敹id"); + } + + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + PersonTrainingDetailedFile detailedFile = new PersonTrainingDetailedFile(); + detailedFile.setTrainingDetailedId(trainingDetailedId); + detailedFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + detailedFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + detailedFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + detailedFile.setFileUrl(pathName); + personTrainingDetailedFileMapper.insert(detailedFile); + return true; + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return false; + } + } + + /** + * 鏌ヨ浠婂勾浜哄憳鍩硅淇℃伅 + * @return + */ + @Override + public List<PersonTrainingDetailed> getThisYearTrainingDetailed() { + return personTrainingDetailedMapper.getThisYearTrainingDetailed(); + } +} diff --git a/cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml new file mode 100644 index 0000000..206013d --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml @@ -0,0 +1,65 @@ +<?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.personnel.mapper.PersonBasicInfoMapper"> + + <select id="selectLimsUser" resultType="com.ruoyi.common.core.domain.entity.DepartmentDto"> + SELECT u.id userId, u.name, SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1) AS fatherId + FROM user u + where u.is_custom = 0 + and u.depart_lims_id is not null + and u.depart_lims_id != '' + </select> + + <select id="getCNASPersonnelInfo" resultType="com.ruoyi.personnel.dto.PersonBasicInfoDto"> + SELECT * + FROM user u + left join cnas_person_basic_info cpbi on cpbi.user_id = u.id + where u.id = #{userId} + </select> + + <select id="selectPersonBasecInfoAndUser" resultType="java.util.Map"> + select + u.id userId, + u.`name` name, + u.account account, + DATE_FORMAT(cpbi.group_time, '%Y-%m-%d') groupTime, + cpbi.native_place nativePlace, + cpbi.identity_card identityCard, + cpbi.id_address idAddress, + u.phone telephone, + cpbi.graduated_institutions1 graduatedInstitutions1, + cpbi.major1 major1, + DATE_FORMAT(cpbi.graduation_time1, '%Y-%m-%d') graduationTime1, + cpbi.official_academic_redentials officialAcademicRedentials, + cpbi.highest_degree highestDegree, + cpbi.professional_title professionalTitle + from user u + left join cnas_person_basic_info cpbi on cpbi.user_id = u.id + left join user u1 on u1.id = u.create_user + <where> + FIND_IN_SET(#{departmentId},u.depart_lims_id) + <if test="name != null and name != ''"> + and u.name like concat('%',#{name},'%') + </if> + </where> + </select> + + <!-- 瀵煎嚭鏌ヨ浜哄憳淇℃伅 --> + <select id="selectexportPersonBasic" resultType="java.util.Map"> + select DATE_FORMAT(cpbi.last_update_time, '%Y骞�%m鏈�%d鏃�') lastUpdateTimeString, + u.account, + u.`name`, + cpbi.sex, + cpbi.post_name postName, + u.age, + DATE_FORMAT(cpbi.working_time, '%Y骞�%m鏈�') workingTimeString, + cpbi.major1, + DATE_FORMAT(cpbi.graduation_time1, '%Y骞�%m鏈�') graduationTime1string, + cpbi.official_academic_redentials officialAcademicRedentials, + cpbi.graduated_institutions1 graduatedInstitutions1, + cpbi.remarks + from user u + left join cnas_person_basic_info cpbi on cpbi.user_id = u.id + where u.id = #{userId} + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml new file mode 100644 index 0000000..2ea0c72 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonCommunicationAbilityMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.personnel.mapper.PersonCommunicationAbilityMapper"> + + + <select id="personPersonCommunicationAbilityPage" resultType="com.ruoyi.personnel.dto.PersonCommunicationAbilityDto"> + select cpca.*, us.name create_user_name + from cnas_person_communication_ability cpca + left join user us on cpca.create_user = us.id + <where> + <if test="userId != null and userId != ''"> + and FIND_IN_SET(#{userId},cpca.user_id) + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId},us.depart_lims_id) + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml new file mode 100644 index 0000000..ace613b --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonJobResponsibilitiesMapper.xml @@ -0,0 +1,24 @@ +<?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.personnel.mapper.PersonJobResponsibilitiesMapper"> + + + <select id="personJobResponsibilitiesSelect" resultType="com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto"> + select cpt.*, u.name incumbent_name, su.name supervisor_name, dl.name depart_lims_name, u.account + from cnas_person_job_responsibilities cpt + left join user u on cpt.incumbent_id = u.id + left join user su on cpt.supervisor_id = su.id + left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1) + <where> + <if test="userId != null and userId != ''"> + and cpt.incumbent_id = #{userId} + </if> + <if test="departmentId != null and departmentId != ''"> + and FIND_IN_SET(#{departmentId}, u.depart_lims_id) + </if> + <if test="userName != null and userName != ''"> + and u.name like concat('%', #{userName}, '%') + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml new file mode 100644 index 0000000..96e0358 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonPersonnelCapacityMapper.xml @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.personnel.mapper.PersonPersonnelCapacityMapper"> + + <select id="personPersonnelCapacityPage" resultType="com.ruoyi.personnel.dto.PersonPersonnelCapacityDto"> + select cppc.*, + u2.name confirm_operating_personnel_name, + u3.name user_name, + cpbi.post_name, + ecp.responsibilities, + cpbi.professional_title, + TRIM(',' FROM CONCAT(cpbi.major1, ',', cpbi.major2)) AS major + from cnas_person_personnel_capacity cppc + left join user u2 on cppc.confirm_operating_personnel_id = u2.id + left join user u3 on cppc.user_id = u3.id + -- 鍙栧矖浣� + left join cnas_person_basic_info cpbi on cpbi.user_id = cppc.user_id + -- 鍙栦汉鍛樿兘鍔涚殑宀椾綅鑱岃矗 + left join (SELECT GROUP_CONCAT(e.label) responsibilities, cppc.id + from cnas_person_personnel_capacity cppc + left join enums e on FIND_IN_SET(e.value, cppc.job_responsibilities) + where e.category = '宀椾綅鑱岃矗' + GROUP BY cppc.id) ecp on ecp.id = cppc.id + <where> + <if test="userId != null and userId != ''"> + and cppc.user_id = #{userId} + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId}, u3.depart_lims_id) + </if> + <if test="userName != null and userName != ''"> + and u3.name like concat('%', #{userName}, '%') + </if> + </where> + </select> + + <!-- 鏌ヨ浜哄憳鑳藉姏鎺ュ彛 --> + <select id="selectExportPersonnelCapacity" + resultType="com.ruoyi.personnel.dto.PersonPersonnelCapacityExportDto"> + select cppc.*, + cpbi.post_name, + u1.name userName, + cpbi.official_academic_redentials, + cpbi.major1, + cpbi.professional_title, + p.place_work, + TRIM(',' FROM CONCAT(cpbi.major1, ',', cpbi.major2)) AS major, + case when cppc.academic_conform_not = 1 then '鈽�' + else '鈻�' end academicConformNot1,-- 瀛﹀巻 + case when cppc.academic_conform_not = 2 then '鈽�' + else '鈻�' end academicConformNot2, + case when cppc.academic_conform_not = 3 then '鈽�' + else '鈻�' end academicConformNot3, + case when cppc.related_years_conform_not = 1 then '鈽�' + else '鈻�' end relatedYearsConformNot1,-- 鐩稿叧骞撮檺 + case when cppc.related_years_conform_not = 2 then '鈽�' + else '鈻�' end relatedYearsConformNot2, + case when cppc.related_years_conform_not = 3 then '鈽�' + else '鈻�' end relatedYearsConformNot3, + case when cppc.related_training_conform_not = 1 then '鈽�' + else '鈻�' end relatedTrainingConformNot1,-- 鐩稿叧鍩硅 + case when cppc.related_training_conform_not = 2 then '鈽�' + else '鈻�' end relatedTrainingConformNot2, + case when cppc.related_training_conform_not = 3 then '鈽�' + else '鈻�' end relatedTrainingConformNot3, + case when cppc.relevant_experience_conform_not = 1 then '鈽�' + else '鈻�' end relevantExperienceConformNot1,-- 鐩稿叧缁忛獙 + case when cppc.relevant_experience_conform_not = 2 then '鈽�' + else '鈻�' end relevantExperienceConformNot2, + case when cppc.relevant_experience_conform_not = 3 then '鈽�' + else '鈻�' end relevantExperienceConformNot3, + case when cppc.work_license_conform_not = 1 then '鈽�' + else '鈻�' end workLicenseConformNot1,-- 涓婂矖璇� + case when cppc.work_license_conform_not = 2 then '鈽�' + else '鈻�' end workLicenseConformNot2, + case when cppc.work_license_conform_not = 3 then '鈽�' + else '鈻�' end workLicenseConformNot3, + case when cppc.job_responsibilities_conform_not = 1 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot1,-- 宀椾綅鑱岃矗 + case when cppc.job_responsibilities_conform_not = 2 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot2, + case when cppc.job_responsibilities_conform_not = 3 then '鈽�' + else '鈻�' end jobResponsibilitiesConformNot3, + case when cppc.comprehensive_assessment = 'Qualified this position' then '鈽�' + else '鈻�' end comprehensiveAssessment1,-- 缁煎悎璇勪环 + case when cppc.comprehensive_assessment = 'You can work while training' then '鈽�' + else '鈻�' end comprehensiveAssessment2, + case when cppc.comprehensive_assessment = 'Iconpetent for the position' then '鈽�' + else '鈻�' end comprehensiveAssessment3, + case when find_in_set(1, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities1, + case when find_in_set(2, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities2, + case when find_in_set(3, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities3, + case when find_in_set(4, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities4, + case when find_in_set(5, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities5, + case when find_in_set(6, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities6, + case when find_in_set(7, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities7, + case when find_in_set(8, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities8, + case when find_in_set(9, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities9, + case when find_in_set(10, cppc.job_responsibilities) then '鈽�' + else '鈻�' end jobResponsibilities10 + from cnas_person_personnel_capacity cppc + left join user u1 on cppc.user_id = u1.id + left join cnas_person_basic_info cpbi on cpbi.user_id = cppc.user_id + left join (select GROUP_CONCAT(cptr.work_experience) place_work, cptr.user_id + from cnas_person_basic_info_work cptr + GROUP BY cptr.user_id) p on u1.id = p.user_id + where cppc.id = #{id} + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml new file mode 100644 index 0000000..bb3ef16 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonPostAuthorizationRecordMapper.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.personnel.mapper.PersonPostAuthorizationRecordMapper"> + + + <select id="personPostAuthorizationRecordPage" resultType="com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto"> + select cppar.*, us.name create_user_name, u.account account, u.name user_name + from cnas_person_post_authorization_record cppar + left join user u on cppar.user_id = u.id + left join user us on cppar.create_user = us.id + <where> + <if test="userId != null and userId != ''"> + and cppar.user_id = #{userId} + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId},u.depart_lims_id) + </if> + <if test="userName != null and userName != ''"> + and u.name like concat('%', #{userName}, '%') + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml new file mode 100644 index 0000000..d92a163 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonRewardPunishmentRecordMapper.xml @@ -0,0 +1,47 @@ +<?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.personnel.mapper.PersonRewardPunishmentRecordMapper"> + + + <select id="rewardPunishmentPage" resultType="com.ruoyi.personnel.dto.PersonRewardPunishmentRecordDto"> + select cprpr.*, us.name create_user_name, u.account account, u.name user_name + from cnas_person_reward_punishment_record cprpr + left join user u on cprpr.user_id = u.id + left join user us on cprpr.create_user = us.id + <where> + <if test="userId != null and userId != ''"> + and cprpr.user_id = #{userId} + </if> + <if test="userName != null and userName != ''"> + and u.name like concat('%', #{userName}, '%') + </if> + <if test="startTime != null and endTime != null"> + AND DATE(cprpr.reward_punish_time) BETWEEN #{startTime} AND #{endTime} + </if> + <if test="departmentId != null and departmentId != ''"> + and FIND_IN_SET(#{departmentId}, u.depart_lims_id) + </if> + </where> + </select> + + <select id="rewardPunishmentExport" resultType="com.ruoyi.personnel.excel.PersonRewardPunishmentRecordExcel"> + select cprpr.*, us.name create_user_name, u.account account, u.name user_name + from cnas_person_reward_punishment_record cprpr + left join user u on cprpr.user_id = u.id + left join user us on cprpr.create_user = us.id + <where> + <if test="userId != null and userId != ''"> + and cprpr.user_id = #{userId} + </if> + <if test="departmentId != null and departmentId != ''"> + and FIND_IN_SET(#{departmentId},u.depart_lims_id) + </if> + <if test="userName != null and userName != ''"> + and u.name like concat('%', #{userName}, '%') + </if> + <if test="startTime != null and endTime != null"> + AND DATE(cprpr.reward_punish_time) BETWEEN #{startTime} AND #{endTime} + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonTrainingMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonTrainingMapper.xml new file mode 100644 index 0000000..147b493 --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonTrainingMapper.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.personnel.mapper.PersonTrainingMapper"> + + <!-- 鏍规嵁鍒涘缓浜虹殑閮ㄩ棬绛涢�夋暟鎹紝鍙槸鍒涘缓浜哄彲鑳芥湭鍒嗛厤閮ㄩ棬涔熼渶瑕佹煡鐪� --> + <select id="personTrainingSelect" resultType="com.ruoyi.personnel.dto.PersonTrainingDto"> + SELECT + cpt.*, + u1.name compiler_name, + u2.name reviewer_name, + u3.name approver_name, + u4.name create_user_name + FROM + cnas_person_training cpt + LEFT JOIN user u1 ON cpt.compiler_id = u1.id + LEFT JOIN user u2 ON cpt.reviewer_id = u2.id + LEFT JOIN user u3 ON cpt.approver_id = u3.id + LEFT JOIN user u4 ON cpt.create_user = u4.id + <where> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId}, u4.depart_lims_id) + </if> + <if test="compilerName != null and compilerName != ''"> + and u4.name like concat('%', #{compilerName}, '%') + </if> + </where> + union + SELECT + cpt.*, + u1.name compiler_name, + u2.name reviewer_name, + u3.name approver_name, + u4.name create_user_name + FROM + cnas_person_training cpt + LEFT JOIN user u1 ON cpt.compiler_id = u1.id + LEFT JOIN user u2 ON cpt.reviewer_id = u2.id + LEFT JOIN user u3 ON cpt.approver_id = u3.id + LEFT JOIN user u4 ON cpt.create_user = u4.id + WHERE + u4.depart_lims_id is not null and length(u4.depart_lims_id) = 0 + <if test="compilerName != null and compilerName != ''"> + and u4.name like concat('%', #{compilerName}, '%') + </if> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml b/cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml new file mode 100644 index 0000000..c57dd3d --- /dev/null +++ b/cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml @@ -0,0 +1,126 @@ +<?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.personnel.mapper.PersonTrainingRecordMapper"> + + <select id="trainingAndAssessmentRecordsPage" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordDto"> + select cptr.*, u.account, u.name user_name, u.phone, r.name role_name + from cnas_person_training_record cptr + left join user u on u.id = cptr.user_id + left join role r on r.id = u.role_id + where cptr.course_id = #{trainingDetailedId} + <if test="userName != null and userName != ''"> + and u.name like concat('%', #{userName}, '%') + </if> + </select> + + <select id="personnelTrainingPersonnel" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordListDto"> + select u.name, u.account, dl.name depart_lims_name, cpbi.professional_title, + cpbi.official_academic_redentials, u.id user_id + from user u + left join cnas_person_basic_info cpbi on cpbi.user_id = u.id + left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1) + where u.is_custom = 0 + <if test="userName != '' and userName != null and userName != 'null'"> + and u.name like concat('%', #{userName}, '%') + </if> + <if test="userId != null and userId != ''"> + and u.id = #{userId} + </if> + <if test="departLimsId != null and departLimsId != ''"> + and FIND_IN_SET(#{departLimsId}, u.depart_lims_id) + </if> + </select> + + <select id="queryPersonnelDetails" resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto"> + select cptd.training_date, cptd.training_content, cptd.class_hour, cptr.examination_results, cptd.remarks + from cnas_person_training_record cptr + inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id + <where> + <if test="userId != null and userId != ''"> + and cptr.user_id = #{userId} + </if> + </where> + </select> + + <!-- 鏍规嵁璇︽儏id鏌ヨ鍩硅淇℃伅 --> + <select id="selectListByTrainingDetailedId" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordDto"> + select cptr.*, + u.name userName, + dl.name department + from cnas_person_training_record cptr + left join user u on u.id = cptr.user_id + left join department_lims dl on find_in_set(dl.id, u.depart_lims_id) and dl.id != 1 + where cptr.course_id = #{trainingDetailedId} + </select> + + <!-- 鏍规嵁id鏌ヨ浜哄憳淇℃伅 --> + <select id="selectUserTraining" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordListDto"> + select u.name, + u.account, + dl.name depart_lims_name, + cpbi.professional_title, + cpbi.official_academic_redentials, + cpbi.unit_time, + cpbi.major1, + u.id user_id, + DATE_FORMAT(cpbi.unit_time, '%Y-%m-%d') AS unitTimeSting + from user u + left join cnas_person_basic_info cpbi on cpbi.user_id = u.id + left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1) + where u.is_custom = 0 + and u.id = #{userId} + </select> + + <!-- 鏍规嵁鐢ㄦ埛id鏌ヨ浜哄憳璁板綍 --> + <select id="selectPersonDetailedDtos" resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto"> + select cptd.training_date, + cptd.training_content, + cptd.class_hour, + cptr.examination_results, + cptd.remarks, + DATE_FORMAT(cptd.training_date, '%Y-%m-%d') AS trainingDateString + from cnas_person_training_record cptr + inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id + and cptr.user_id = #{userId} + <where> + <if test="year!= null and year!= ''"> + and YEAR(cptd.training_date) = ${year} + </if> + </where> + </select> + + <!--鏍规嵁鐢ㄦ埛id鍜屽勾浠芥煡璇汉鍛樻槑缁� 鍩硅璁板綍--> + <select id="queryPersonnelDetailsOfUserIdAndYear" + resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto"> + select cptd.training_date, cptd.training_content, cptd.class_hour, cptr.examination_results, cptd.remarks + from cnas_person_training_record cptr + inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id + <where> + <if test="userId != null and userId != ''"> + and cptr.user_id = #{userId} + </if> + <if test="year!= null and year!= ''"> + and YEAR(cptd.training_date) = ${year} + </if> + </where> + </select> + + <!-- 鏍规嵁鐢ㄦ埛id鍜屽勾浠芥煡璇汉鍛樻槑缁� 鍩硅璁板綍瀵煎嚭 --> + <select id="selectPersonDetailedDtosByTrainingDate" + resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto"> + select cptd.training_date, + cptd.training_content, + cptd.class_hour, + cptr.examination_results, + cptd.remarks, + DATE_FORMAT(cptd.training_date, '%Y-%m-%d') AS trainingDateString + from cnas_person_training_record cptr + inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id + and cptr.user_id = #{userId} + <where> + <if test="year!= null and year!= ''"> + and YEAR(cptd.training_date) = ${year} + </if> + </where> + </select> +</mapper> diff --git a/cnas-personnel/src/main/resources/static/communication-deal.docx b/cnas-personnel/src/main/resources/static/communication-deal.docx new file mode 100644 index 0000000..9045072 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/communication-deal.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/credentials-deal.docx b/cnas-personnel/src/main/resources/static/credentials-deal.docx new file mode 100644 index 0000000..2fda5fd --- /dev/null +++ b/cnas-personnel/src/main/resources/static/credentials-deal.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/explain-deal.docx b/cnas-personnel/src/main/resources/static/explain-deal.docx new file mode 100644 index 0000000..7333bec --- /dev/null +++ b/cnas-personnel/src/main/resources/static/explain-deal.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/person-basic-info.docx b/cnas-personnel/src/main/resources/static/person-basic-info.docx new file mode 100644 index 0000000..6d1739a --- /dev/null +++ b/cnas-personnel/src/main/resources/static/person-basic-info.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/person-training-record.docx b/cnas-personnel/src/main/resources/static/person-training-record.docx new file mode 100644 index 0000000..3bbf0bc --- /dev/null +++ b/cnas-personnel/src/main/resources/static/person-training-record.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/person-training.docx b/cnas-personnel/src/main/resources/static/person-training.docx new file mode 100644 index 0000000..0a6bf24 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/person-training.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/personnel-capacity.docx b/cnas-personnel/src/main/resources/static/personnel-capacity.docx new file mode 100644 index 0000000..e7ad3b9 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/personnel-capacity.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/super-vise-plan.docx b/cnas-personnel/src/main/resources/static/super-vise-plan.docx new file mode 100644 index 0000000..8e5a56f --- /dev/null +++ b/cnas-personnel/src/main/resources/static/super-vise-plan.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx b/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx new file mode 100644 index 0000000..dc398e3 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/supervision-control-sheet.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx b/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx new file mode 100644 index 0000000..16775b0 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/supervision-processing-sheet.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/supervision-record.docx b/cnas-personnel/src/main/resources/static/supervision-record.docx new file mode 100644 index 0000000..ede4555 --- /dev/null +++ b/cnas-personnel/src/main/resources/static/supervision-record.docx Binary files differ diff --git a/cnas-personnel/src/main/resources/static/training-record.docx b/cnas-personnel/src/main/resources/static/training-record.docx new file mode 100644 index 0000000..1e6955d --- /dev/null +++ b/cnas-personnel/src/main/resources/static/training-record.docx Binary files differ diff --git a/cnas-process/pom.xml b/cnas-process/pom.xml index 621b5fb..56bfde2 100644 --- a/cnas-process/pom.xml +++ b/cnas-process/pom.xml @@ -25,6 +25,10 @@ <groupId>com.ruoyi</groupId> <artifactId>inspect-server</artifactId> </dependency> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-device</artifactId> + </dependency> </dependencies> </project> diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java new file mode 100644 index 0000000..c561ddd --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java @@ -0,0 +1,94 @@ +package com.ruoyi.process.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.process.dto.InconsistentDistributionDto; +import com.ruoyi.process.pojo.InconsistentDistribution; +import com.ruoyi.process.service.InconsistentDistributionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:20 + */ +@Api(tags = "涓嶇鍚堥」鐨勫垎甯�") +@AllArgsConstructor +@RestController +@RequestMapping("/inconsistentDistribution") +public class InconsistentDistributionController { + + private InconsistentDistributionService inconsistentDistributionService; + + /** + * 涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇� + * @param + * @return + */ + @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇�") + @GetMapping("/pageInconsistentDistribution") + public Result<IPage<InconsistentDistributionDto>> pageInconsistentDistribution(Page page, InconsistentDistribution inconsistentDistribution) throws Exception { + return Result.success(inconsistentDistributionService.pageInconsistentDistribution(page, inconsistentDistribution)); + } + + /** + * 涓嶇鍚堥」鐨勫垎甯冩柊澧� + * @return + */ + @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冩柊澧�") + @PostMapping("/addInconsistentDistribution") + public Result addInconsistentDistribution(@RequestBody InconsistentDistributionDto inconsistentDistribution){ + return Result.success(inconsistentDistributionService.addInconsistentDistribution(inconsistentDistribution)); + } + + /** + * 涓嶇鍚堥」鐨勫垎甯冧慨鏀� + * @return + */ + @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冧慨鏀�") + @PostMapping("/updateInconsistentDistribution") + public Result updateInconsistentDistribution(@RequestBody InconsistentDistributionDto inconsistentDistribution){ + return Result.success(inconsistentDistributionService.updateInconsistentDistribution(inconsistentDistribution)); + } + + /** + * 涓嶇鍚堥」鐨勫垎甯冨垹闄� + * @return + */ + @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冨垹闄�") + @DeleteMapping("/delInconsistentDistribution") + public Result delInconsistentDistribution(Integer distributionId){ + return Result.success(inconsistentDistributionService.delInconsistentDistribution(distributionId)); + } + + /** + * 涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯� + * @return + */ + @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯�") + @GetMapping("/getInconsistentDistributionOne") + public Result<InconsistentDistributionDto> getInconsistentDistributionOne(Integer distributionId){ + return Result.success(inconsistentDistributionService.getInconsistentDistributionOne(distributionId)); + } + + /** + * 瀵煎嚭涓嶇鍚堥」鐨勫垎甯� + * @return + */ + @ApiOperation(value = "瀵煎嚭涓嶇鍚堥」鐨勫垎甯�") + @GetMapping("/exportInconsistentDistribution") + public void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response){ + inconsistentDistributionService.exportInconsistentDistribution(distributionId, response); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java new file mode 100644 index 0000000..47bf3f2 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java @@ -0,0 +1,128 @@ +package com.ruoyi.process.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.common.utils.JackSonUtil; +import com.ruoyi.inspect.pojo.InsOrder; +import com.ruoyi.process.dto.InspectionOrderDto; +import com.ruoyi.process.pojo.InspectionOrder; +import com.ruoyi.process.service.InspectionOrderService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * <p> + * 妫�楠屽鎵樺崟 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +@Api(tags = "妫�楠屽鎵樺崟") +@AllArgsConstructor +@RestController +@RequestMapping("/inspectionOrder") +public class InspectionOrderController { + + private InspectionOrderService inspectionOrderService; + + /** + * 濮旀墭鍗曟楠屽垎椤垫煡璇� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟楠屽垎椤垫煡璇�") + @GetMapping("/pageInspectionOrder") + public Result<IPage<InspectionOrderDto>> pageInspectionOrder(InspectionOrder inspectionOrder,Page page) throws Exception { + return Result.success(inspectionOrderService.pageInspectionOrder(page, inspectionOrder)); + } + + /** + * 濮旀墭鍗曟楠屾柊澧� + * @return + */ + + @ApiOperation(value = "濮旀墭鍗曟楠屾柊澧�") + @PostMapping("/addInspectionOrder") + public Result addInspectionOrder(@RequestBody InspectionOrderDto InspectionOrder){ + return Result.success(inspectionOrderService.addInspectionOrder(InspectionOrder)); + } + + /** + * 濮旀墭鍗曟楠屼慨鏀� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟楠屼慨鏀�") + @PostMapping("/updateInspectionOrder") + public Result updateInspectionOrder(@RequestBody InspectionOrderDto InspectionOrder){ + return Result.success(inspectionOrderService.updateInspectionOrder(InspectionOrder)); + } + + /** + * 濮旀墭鍗曟楠屽垹闄� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟楠屽垹闄�") + @DeleteMapping("/delInspectionOrder") + public Result delInspectionOrder(Integer inspectionOrderId){ + return Result.success(inspectionOrderService.delInspectionOrder(inspectionOrderId)); + } + + /** + * 濮旀墭鍗曟楠屾煡鐪嬭鎯� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟楠屾煡鐪嬭鎯�") + @GetMapping("/getInspectionOrderOne") + public Result<InspectionOrderDto> getInspectionOrderOne(Integer inspectionOrderId){ + return Result.success(inspectionOrderService.getInspectionOrderOne(inspectionOrderId)); + } + + /** + * 濮旀墭鍗曟楠屾煡鐪嬭鎯� + * @return + */ + @ApiOperation(value = "鏍规嵁鎴愬搧璁㈠崟鏌ヨ濮旀墭鍗曡鎯�") + @GetMapping("/getInspectionOrderByInsOderId") + public Result<InspectionOrderDto> getInspectionOrderByInsOderId(Integer insOrderId){ + return Result.success(inspectionOrderService.getInspectionOrderByInsOderId(insOrderId)); + } + + /** + * 濮旀墭鍗曟煡璇㈡垚鍝佽鍗� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟煡璇㈡垚鍝佽鍗�") + @PostMapping("/getInsOrderOnInspection") + public Result<IPage<InsOrder>> getInsOrderOnInspection(@RequestBody Map<String, Object> data) throws Exception { + Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class); + InsOrder insOrder = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrder.class); + return Result.success(inspectionOrderService.getInsOrderOnInspection(page, insOrder)); + } + + /** + * 濮旀墭鍗曟垚鍝佹姤鍛婁笂浼� + * @return + */ + @ApiOperation(value = "濮旀墭鍗曟垚鍝佹姤鍛婁笂浼�") + @PostMapping("/uploadInspectionOrderFile") + public Result uploadInspectionOrderFile(MultipartFile file, Integer inspectionOrderId) { + return Result.success(inspectionOrderService.uploadInspectionOrderFile(file, inspectionOrderId)); + } + + /** + * 瀵煎嚭妫�楠屽鎵樺崟 + * @return + */ + @ApiOperation(value = "瀵煎嚭妫�楠屽鎵樺崟") + @GetMapping("/exportInspectionOrder") + public void exportInspectionOrder(Integer inspectionOrderId, HttpServletResponse response){ + inspectionOrderService.exportInspectionOrder(inspectionOrderId, response); + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java new file mode 100644 index 0000000..5c060ec --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java @@ -0,0 +1,68 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.utils.JackSonUtil; +import com.ruoyi.process.pojo.ProcessComplain; +import com.ruoyi.process.service.ProcessComplainService; +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; +import java.util.Map; + +/** + * <p> + * 鎶曡瘔 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 09:29:11 + */ +@RestController +@RequestMapping("/processComplain") +@Api(tags = "鎶曡瘔") +public class ProcessComplainController { + + @Resource + private ProcessComplainService processComplainService; + + @ApiOperation(value = "鎶曡瘔鎯呭喌姹囨�昏〃") + @GetMapping("/pageProcessComplain") + public Result pageProcessComplain( ProcessComplain processComplain,Page page) throws Exception { + return Result.success(processComplainService.pageProcessComplain(page, processComplain)); + } + + @ApiOperation(value = "鏂板鎶曡瘔") + @PostMapping("/addProcessComplain") + public Result addProcessComplain(@RequestBody ProcessComplain processComplain ) { + return Result.success(processComplainService.addProcessComplain(processComplain)); + } + + @ApiOperation(value = "鍒犻櫎鎶曡瘔") + @DeleteMapping("/delProcessComplain") + public Result delProcessComplain(Long id) { + return Result.success(processComplainService.removeById(id)); + } + + @ApiOperation(value = "鎶曡瘔璇︽儏") + @PostMapping("/getProcessComplain") + public Result getProcessComplain(Long id) { + return Result.success(processComplainService.getProcessComplain(id)); + } + + @ApiOperation(value = "澶勭悊鎶曡瘔") + @PostMapping("/doProcessComplain") + public Result doProcessComplain(@RequestBody ProcessComplain processComplain) { + return Result.success(processComplainService.doProcessComplain(processComplain)); + } + + @ApiOperation(value = "瀵煎嚭鍒楄〃") + @PostMapping("/exportProcessComplain") + public void exportProcessComplain(@RequestBody Map<String, Object> data,HttpServletResponse response) throws Exception { + ProcessComplain processComplain = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), ProcessComplain.class); + processComplainService.exportProcessComplain(processComplain,response); + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java new file mode 100644 index 0000000..a178f1b --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java @@ -0,0 +1,61 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.utils.JackSonUtil; +import com.ruoyi.process.pojo.ProcessDeal; +import com.ruoyi.process.service.ProcessDealService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 02:50:19 + */ +@RestController +@RequestMapping("/processDeal") +@Api(tags = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") +public class ProcessDealController { + + @Resource + private ProcessDealService processDealService; + + @ApiOperation(value = "鏌ヨ妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃鎯�") + @PostMapping("/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)); + } + + @ApiOperation(value = "鍒犻櫎妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @DeleteMapping("/delProcessDeal") + public Result delProcessDeal(Integer id) { + return Result.success(processDealService.delProcessDeal(id)); + } + + @ApiOperation(value = "淇敼妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @PostMapping("/doProcessDeal") + public Result doProcessDeal(@RequestBody ProcessDeal processDeal) { + return Result.success(processDealService.doProcessDeal(processDeal)); + } + + @ApiOperation(value = "鏌ョ湅妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @PostMapping("/getProcessDeal") + public Result getProcessDeal(Integer id) { + return Result.success(processDealService.getById(id)); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java new file mode 100644 index 0000000..e00885d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java @@ -0,0 +1,62 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.process.pojo.ProcessEvaluate; +import com.ruoyi.process.service.ProcessEvaluateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * <p> + * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 01:10:43 + */ +@RestController +@RequestMapping("/processEvaluate") +@Api(tags = "娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠�") +public class ProcessEvaluateController { + + @Resource + private ProcessEvaluateService processEvaluateService; + + @ApiOperation(value = "鏌ヨ娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹氬垪琛�") + @PostMapping("/pageProcessEvaluate") + public Result pageProcessEvaluate(ProcessEvaluate processEvaluate,Page page) throws Exception { + return Result.success(processEvaluateService.pageProcessEvaluate(page, processEvaluate)); + } + + @ApiOperation(value = "鏂板娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�") + @PostMapping("/addProcessEvaluate") + public Result addProcessEvaluate(MultipartFile file){ + return Result.success(processEvaluateService.addProcessEvaluate(file)); + } + + @ApiOperation(value = "璇勪环") + @PostMapping("/doProcessEvaluate") + public Result doProcessEvaluate(@RequestBody ProcessEvaluate processEvaluate){ + return Result.success(processEvaluateService.doProcessEvaluate(processEvaluate)); + } + + @ApiOperation(value = "鍒犻櫎娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�") + @DeleteMapping("/delProcessEvaluate") + public Result delProcessEvaluate(Long id){ + return Result.success(processEvaluateService.removeById(id)); + } + + @ApiOperation(value = "瀵煎嚭娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�") + @GetMapping("/exportProcessEvaluate") + public void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception{ + processEvaluateService.exportProcessEvaluate(processEvaluate,response); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java new file mode 100644 index 0000000..9539d5a --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java @@ -0,0 +1,128 @@ +package com.ruoyi.process.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.process.dto.ProcessMethodSearchNewArchivedDto; +import com.ruoyi.process.dto.ProcessMethodSearchNewBackupsDto; +import com.ruoyi.process.pojo.ProcessMethodSearchNew; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; +import com.ruoyi.process.service.ProcessMethodSearchNewService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 鏍囧噯鏌ユ柊 + * + * @author zhuo + * @since 2024-11-04 + */ +@Api(tags = "鏍囧噯鏌ユ柊") +@AllArgsConstructor +@RestController +@RequestMapping("/processMethodSearchNew") +public class ProcessMethodSearchNewController { + + private ProcessMethodSearchNewService processMethodSearchNewService; + + /** + * 鏂板鏍囧噯鏌ユ柊 + * @param processMethodSearchNewList + * @return + */ + @ApiOperation(value = "鏂板鏍囧噯鏌ユ柊") + @PostMapping("/addMethodSearchNew") + public Result addMethodSearchNew(@RequestBody List<ProcessMethodSearchNew> processMethodSearchNewList ) { + return Result.success(processMethodSearchNewService.addMethodSearchNew(processMethodSearchNewList)); + } + + /** + * 淇敼鏍囧噯鏌ユ柊 + * @param processMethodSearchNew + * @return + */ + @ApiOperation(value = "淇敼鏍囧噯鏌ユ柊") + @PostMapping("/updateMethodSearchNew") + public Result updateMethodSearchNew(@RequestBody ProcessMethodSearchNew processMethodSearchNew ) { + return Result.success(processMethodSearchNewService.updateById(processMethodSearchNew)); + } + + /** + * 鏍囧噯鏌ユ柊鍒楄〃 + */ + @ApiOperation(value = "鏍囧噯鏌ユ柊鍒楄〃") + @GetMapping("/pageMethodSearchNew") + public Result<IPage<ProcessMethodSearchNew>> pageMethodSearchNew(ProcessMethodSearchNewBackupsDto processMethodSearchNew,Page page) throws Exception { + return Result.success(processMethodSearchNewService.pageMethodSearchNew(page, processMethodSearchNew)); + } + + @ApiOperation(value = "鏍囧噯鏌ユ柊瀵煎嚭") + @GetMapping("/exportMethodSearchNew") + public void exportMethodSearchNew(Integer archivedId, HttpServletResponse response) throws Exception { + processMethodSearchNewService.exportMethodSearchNew(archivedId, response); + } + + /** + * 瀵煎叆鏍囧噯鏌ユ柊 + * @return + */ + @ApiOperation(value = "瀵煎叆鏍囧噯鏌ユ柊") + @GetMapping("/importMethodSearchNew") + public Result importMethodSearchNew(MultipartFile file){ + return Result.success(processMethodSearchNewService.importMethodSearchNew(file)); + } + + /** + * 鏂板瀛樻。 + * @param archived + * @return + */ + @ApiOperation(value = "鏂板瀛樻。") + @PostMapping("/addSearchNewArchived") + public Result addSearchNewApprovalProcess(@RequestBody ProcessMethodSearchNewArchived archived) { + return Result.success(processMethodSearchNewService.addSearchNewArchived(archived)); + } + + /** + * 鏂板瀛樻。 + * @return + */ + @ApiOperation(value = "鏌ヨ瀛樻。") + @GetMapping("/pageSearchNewArchived") + public Result<IPage<ProcessMethodSearchNewArchivedDto>> pageSearchNewArchived(ProcessMethodSearchNewArchivedDto archived,Page page) throws Exception { + return Result.success(processMethodSearchNewService.pageSearchNewArchived(page, archived)); + } + + /** + * 鏍囧噯鏌ユ柊鍒楄〃 + * @return + */ + @ApiOperation(value = "鏌ヨ瀛樻。澶囦唤鍒楄〃") + @GetMapping("/pageSearchNewBackups") + public Result<IPage<ProcessMethodSearchNewBackups>> pageSearchNewBackups(ProcessMethodSearchNewBackups backups,Page page) throws Exception { + return Result.success(processMethodSearchNewService.pageSearchNewBackups(page, backups)); + } + + + /** + * 瀛樻。鎵瑰噯 + * @return + */ + @ApiOperation(value = "瀛樻。鎵瑰噯") + @PostMapping("/ratifySearchNewArchivedr") + public Result ratifySearchNewArchivedr(@RequestBody ProcessMethodSearchNewArchived archived) { + return Result.success(processMethodSearchNewService.ratifySearchNewArchivedr(archived)); + } +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java new file mode 100644 index 0000000..4fa44bc --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java @@ -0,0 +1,156 @@ +package com.ruoyi.process.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.process.dto.ProcessMethodVerifyDto; +import com.ruoyi.process.pojo.ProcessMethodVerify; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; +import com.ruoyi.process.service.ProcessMethodVerifyMethodFileService; +import com.ruoyi.process.service.ProcessMethodVerifyService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +@RestController +@RequestMapping("/processMethodVerify") +@Api(tags = "鏍囧噯鏂规硶楠岃瘉") +@AllArgsConstructor +public class ProcessMethodVerifyController { + + @Resource + private ProcessMethodVerifyService processMethodVerifyService; + + @Resource + private ProcessMethodVerifyMethodFileService processMethodVerifyMethodFileService; + + + + /** + * 鏍囧噯鏌ユ柊鍒楄〃 + * @return + */ + @ApiOperation(value = "鏍囧噯鏂规硶鏇存柊楠岃瘉鍒楄〃") + @PostMapping("/pagesMethodVerify") + public Result<IPage<ProcessMethodVerify>> pagesMethodVerify(ProcessMethodVerifyDto methodVerifyDto,Page page) throws Exception { + return Result.success(processMethodVerifyService.pagesMethodVerify(page, methodVerifyDto)); + } + + /** + * 鏂板鏍囧噯鏂规硶楠岃瘉 + * @param methodVerifyDto + * @return + */ + @ApiOperation(value = "鏂板鏍囧噯鏂规硶楠岃瘉") + @PostMapping("/addMethodVerify") + public Result addMethodVerify(@RequestBody ProcessMethodVerifyDto methodVerifyDto ) { + return Result.success(processMethodVerifyService.addMethodSearchNew(methodVerifyDto)); + } + + /** + * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏 + * @param methodVerifyId + * @return + */ + @ApiOperation(value = "鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏") + @GetMapping("/getMethodVerifyOne") + public Result<ProcessMethodVerifyDto> getMethodVerifyOne(Integer methodVerifyId) { + return Result.success(processMethodVerifyService.getMethodVerifyOne(methodVerifyId)); + } + + + /** + * 淇敼鏍囧噯鏂规硶楠岃瘉 + * @param methodVerifyDto + * @return + */ + @ApiOperation(value = "淇敼鏍囧噯鏂规硶楠岃瘉") + @PostMapping("/updateMethodVerify") + public Result updateMethodVerify(@RequestBody ProcessMethodVerifyDto methodVerifyDto ) { + return Result.success(processMethodVerifyService.updateMethodVerify(methodVerifyDto)); + } + + /** + * 鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉 + * @param methodVerifyId + * @return + */ + @ApiOperation(value = "鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉") + @DeleteMapping("/delMethodVerify") + public Result delMethodVerify(Integer methodVerifyId){ + return Result.success(processMethodVerifyService.delMethodVerify(methodVerifyId)); + } + + /** + * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉 + * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id + */ + @ApiOperation(value = "瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉") + @GetMapping("/exportMethodVerify") + public void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response){ + processMethodVerifyService.exportMethodVerify(methodVerifyId, response); + } + + /** + * 楠岃瘉纭 + * @param methodVerifyId + * @return + */ + @ApiOperation(value = "楠岃瘉纭") + @GetMapping("/methodVerifyAffirm") + public Result methodVerifyAffirm(Integer methodVerifyId) { + return Result.success(processMethodVerifyService.methodVerifyAffirm(methodVerifyId)); + } + + /** + * 鏂规硶楠岃瘉鏂板鍘熷璁板綍 + * @param methodVerifyId + * @param file + * @return + */ + @ApiOperation(value = "鏂规硶楠岃瘉鏂板鍘熷璁板綍") + @PostMapping("/uploadVerifyMethodFile") + public Result<?> uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file) { + return Result.success(processMethodVerifyService.uploadVerifyMethodFile(methodVerifyId, file)); + } + + + /** + * 鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃 + * @return + */ + @ApiOperation(value = "鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃") + @GetMapping("/getVerifyMethodFileList") + public Result<List<ProcessMethodVerifyMethodFile>> getVerifyMethodFileList(Integer methodVerifyId){ + return Result.success(processMethodVerifyService.getVerifyMethodFileList(methodVerifyId)); + } + + /** + * 鏍囧噯鏂规硶鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃 + * @return + */ + @ApiOperation(value = "鏍囧噯鏂规硶鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃") + @GetMapping("/delVerifyMethodFileList") + public Result delVerifyMethodFileList(Integer methodFileId){ + return Result.success(processMethodVerifyMethodFileService.removeById(methodFileId)); + } + + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java new file mode 100644 index 0000000..a657183 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java @@ -0,0 +1,70 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.process.dto.ProcessReportDto; +import com.ruoyi.process.pojo.ProcessReport; +import com.ruoyi.process.service.ProcessReportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * <p> + * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-05 08:58:39 + */ +@RestController +@RequestMapping("/processReport") +@Api(tags = "妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃") +public class ProcessReportController { + + @Resource + private ProcessReportService processReportService; + + @ApiOperation(value = "鏌ヨ妫�楠屾姤鍛婂彂鏀剧櫥璁板垪琛�") + @PostMapping("/pageProcessReport") + public Result pageProcessReport(ProcessReport processReport , Page page) throws Exception { + return Result.success(processReportService.pageProcessReport(page, processReport)); + } + + @ApiOperation(value = "鏂板妫�楠屾姤鍛婂彂鏀剧櫥璁�") + @PostMapping("/addProcessReport") + public Result addProcessReport(@RequestBody ProcessReport processReport) { + return Result.success(processReportService.save(processReport)); + } + + @ApiOperation(value = "鍒犻櫎妫�楠屾姤鍛婂彂鏀剧櫥璁�") + @PostMapping("/delProcessReport") + public Result delProcessReport(Long id) { + return Result.success(processReportService.removeById(id)); + } + + @ApiOperation(value = "鏌ョ湅妫�楠屾姤鍛婂彂鏀剧櫥璁拌鎯�") + @PostMapping("/getProcessReport") + public Result getProcessReport(Long id) { + return Result.success(processReportService.getById(id)); + } + + @ApiOperation(value = "淇敼妫�楠屾姤鍛婂彂鏀剧櫥璁�") + @PostMapping("/doProcessReport") + public Result doProcessReport(@RequestBody ProcessReport processReport) { + return Result.success(processReportService.updateById(processReport)); + } + + @ApiOperation(value = "瀵煎嚭妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃") + @PostMapping("/exportProcessReport") + public Result exportProcessReport(@RequestBody ProcessReportDto processReportDto) { + return Result.success(processReportService.exportProcessReport(processReportDto.getIds())); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java new file mode 100644 index 0000000..572b43d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java @@ -0,0 +1,61 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.process.pojo.ProcessSample; +import com.ruoyi.process.service.ProcessSampleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * <p> + * 鏍峰搧鎺ユ敹 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:49 + */ +@RestController +@RequestMapping("/processSample") +@Api(tags = "鏍峰搧鎺ユ敹") +public class ProcessSampleController { + + @Resource + private ProcessSampleService processSampleService; + + @ApiOperation(value = "鏌ヨ鏍峰搧鎺ユ敹璇︽儏") + @GetMapping("/pageProcessSample") + public Result pageProcessSample(ProcessSample processSample, Page page) throws Exception { + return Result.success(processSampleService.pageProcessSample(page, processSample)); + } + + @ApiOperation(value = "鏂板鏍峰搧鎺ユ敹璇︽儏") + @PostMapping("/addProcessSample") + public Result addProcessSample(@RequestBody ProcessSample processSample) { + return Result.success(processSampleService.addProcessSample(processSample)); + } + + @ApiOperation(value = "鍒犻櫎鏍峰搧鎺ユ敹") + @DeleteMapping("/delProcessSample") + public Result delProcessSample(Integer id) { + return Result.success(processSampleService.delProcessSample(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)); + } + + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java new file mode 100644 index 0000000..8af7003 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java @@ -0,0 +1,54 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.process.pojo.ProcessTotalSample; +import com.ruoyi.process.service.ProcessTotalSampleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * <p> + * 鏍峰搧鎺ユ敹鎬昏〃 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:58 + */ +@RestController +@RequestMapping("/processTotalSample") +@Api(tags = "鏍峰搧鎺ユ敹鎬昏〃") +public class ProcessTotalSampleController { + + @Resource + private ProcessTotalSampleService processTotalSampleService; + + @ApiOperation(value = "鏌ヨ鏍峰搧鎺ユ敹鍒楄〃") + @GetMapping("/pageProcessTotalSample") + public Result pageProcessTotalSample(ProcessTotalSample processTotalSample,Page page) throws Exception { + return Result.success(processTotalSampleService.pageProcessTotalSample(page, processTotalSample)); + } + + @ApiOperation(value = "鎻愪氦鏍峰搧鎺ユ敹") + @PostMapping("/submitProcessTotalSample") + public Result submitProcessTotalSample(Integer id) { + return Result.success(processTotalSampleService.submitProcessTotalSample(id)); + } + + @ApiOperation(value = "瀹℃牳鏍峰搧鎺ユ敹") + @PostMapping("/checkProcessTotalSample") + public Result checkProcessTotalSample(Integer id, String state) { + return Result.success(processTotalSampleService.checkProcessTotalSample(id, state)); + } + + @ApiOperation(value = "鎵瑰噯鏍峰搧鎺ユ敹") + @PostMapping("/ratifyProcessTotalSample") + public Result ratifyProcessTotalSample(Integer id,String state) { + return Result.success(processTotalSampleService.ratifyProcessTotalSample(id,state)); + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java new file mode 100644 index 0000000..88826c0 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java @@ -0,0 +1,55 @@ +package com.ruoyi.process.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.process.pojo.ProcessTotaldeal; +import com.ruoyi.process.service.ProcessTotaldealService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鍓嶇鎺у埗鍣� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 03:59:09 + */ +@RestController +@RequestMapping("/processTotaldeal") +@Api(tags = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") +public class ProcessTotaldealController { + + @Resource + private ProcessTotaldealService processTotaldealService; + + @ApiOperation(value = "鏌ヨ妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃垪琛�") + @GetMapping("/pageProcessTotaldeal") + public Result pageProcessTotaldeal(ProcessTotaldeal processTotaldeal , Page page) throws Exception { + return Result.success(processTotaldealService.pageProcessTotaldeal(page, processTotaldeal)); + } + + @ApiOperation(value = "鎻愪氦妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @PostMapping("/submitProcessTotaldeal") + public Result submitProcessTotaldeal(Integer id) { + return Result.success(processTotaldealService.submitProcessTotaldeal(id)); + } + + @ApiOperation(value = "瀹℃牳妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @PostMapping("/checkProcessTotaldeal") + public Result checkProcessTotaldeal(Integer id, String state) { + return Result.success(processTotaldealService.checkProcessTotaldeal(id, state)); + } + + @ApiOperation(value = "鎵瑰噯妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") + @PostMapping("/ratifyProcessTotaldeal") + public Result ratifyProcessTotaldeal(Integer id,String state) { + return Result.success(processTotaldealService.ratifyProcessTotaldeal(id,state)); + } + + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java new file mode 100644 index 0000000..b47ab14 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java @@ -0,0 +1,295 @@ +package com.ruoyi.process.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.framework.exception.ErrorException; +import com.ruoyi.process.dto.QualityMonitorDto; +import com.ruoyi.process.mapper.QualityMonitorDetailsEvaluateFileMapper; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.QualityMonitorDetailsService; +import com.ruoyi.process.service.QualityMonitorService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 璐ㄩ噺鐩戞帶璁″垝涓昏〃 + * + * @author zhuo + * @since 2024-11-06 + */ +@Api(tags = "璐ㄩ噺鐩戞帶璁″垝") +@AllArgsConstructor +@RestController +@RequestMapping("/qualityMonitor") +public class QualityMonitorController { + + @Resource + private QualityMonitorService qualityMonitorService; + + @Resource + private QualityMonitorDetailsService qualityMonitorDetailsService; + + @Resource + private QualityMonitorDetailsEvaluateFileMapper qualityMonitorDetailsEvaluateFileMapper; + + /** + * 瀵煎叆鐩戞帶璁″垝 + * @return + */ + @ApiOperation(value = "瀵煎叆鐩戞帶璁″垝") + @PostMapping("/importQualityMonitor") + public Result importQualityMonitor(MultipartFile file, QualityMonitor qualityMonitor) { + return Result.success(qualityMonitorService.importQualityMonitor(file, qualityMonitor)); + } + + /** + * 鐩戞帶璁″垝瀹℃牳 + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝瀹℃牳") + @PostMapping("/examineQualityMonitor") + public Result examineQualityMonitor(@RequestBody QualityMonitor qualityMonitor) { + return Result.success(qualityMonitorService.examineQualityMonitor(qualityMonitor)); + } + + /** + * 鐩戞帶璁″垝鍒犻櫎 + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝鍒犻櫎") + @GetMapping("/delQualitySupervise") + public Result delQualitySupervise(Integer qualityMonitorId) { + return Result.success(qualityMonitorService.removeById(qualityMonitorId)); + } + + /** + * 鐩戞帶璁″垝鎵瑰噯 + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝鎵瑰噯") + @PostMapping("/ratifyQualityMonitor") + public Result ratifyQualityMonitor(@RequestBody QualityMonitor qualityMonitor) { + return Result.success(qualityMonitorService.ratifyQualityMonitor(qualityMonitor)); + } + + + /** + * 鐩戞帶璁″垝鍒楄〃 + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝鍒楄〃") + @GetMapping("/pageQualityMonitor") + public Result<IPage<QualityMonitorDto>> pageQualityMonitor(QualityMonitor qualityMonitor,Page page) throws Exception { + return Result.success(qualityMonitorService.pageQualityMonitor(page, qualityMonitor)); + } + + /** + * 鐩戞帶璁″垝璇︽儏鍒楄〃 + * @param data + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝璇︽儏鍒楄〃") + @GetMapping("/pageQualityMonitorDetail") + public Result<IPage<QualityMonitorDetails>> pageQualityMonitorDetail(QualityMonitorDetails qualityMonitorDetails,Page page) throws Exception { + return Result.success(qualityMonitorService.pageQualityMonitorDetail(page, qualityMonitorDetails)); + } + + /** + * 鏂板鐩戞帶璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "鏂板鐩戞帶璁″垝璇︽儏") + @PostMapping("/addQualityMonitorDetail") + public Result addQualityMonitorDetail(@RequestBody QualityMonitorDetails qualityMonitorDetails) { + if (qualityMonitorDetails.getQualityMonitorId() == null) { + throw new ErrorException("缂哄皯鐩戞帶璁″垝涓昏〃id"); + } + return Result.success(qualityMonitorDetailsService.save(qualityMonitorDetails)); + } + + /** + * 淇敼鐩戞帶璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "淇敼鐩戞帶璁″垝璇︽儏") + @PostMapping("/updateQualityMonitorDetail") + public Result updateQualityMonitorDetail(@RequestBody QualityMonitorDetails qualityMonitorDetails) { + return Result.success(qualityMonitorDetailsService.updateById(qualityMonitorDetails)); + } + + /** + * 鍒犻櫎鐩戞帶璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "鍒犻櫎鐩戞帶璁″垝璇︽儏") + @DeleteMapping("/delQualityMonitorDetail") + public Result delQualityMonitorDetail(Integer qualityMonitorDetailsId) { + return Result.success(qualityMonitorDetailsService.removeById(qualityMonitorDetailsId)); + } + + /** + * 瀵煎嚭鐩戞帶璁″垝 + * @return + */ + @ApiOperation(value = "瀵煎嚭鐩戞帶璁″垝") + @GetMapping("/exportQualityMonitorDetail") + public void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response) { + qualityMonitorService.exportQualityMonitorDetail(qualityMonitorId, response); + } + + + /************************************************************ 瀹炴柦 *******************************************************************/ + + /** + * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅") + @GetMapping("/getQualityMonitorRatify") + public Result<QualityMonitorDetailsRatify> getQualityMonitorRatify(Integer qualityMonitorDetailsId) { + return Result.success(qualityMonitorService.getQualityMonitorRatify(qualityMonitorDetailsId)); + } + + /** + * 鏂板鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * @return + */ + @ApiOperation(value = "鏂板鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅") + @PostMapping("/addQualityMonitorRatify") + public Result addQualityMonitorRatify(@RequestBody QualityMonitorDetailsRatify qualityMonitorDetailsRatify) { + return Result.success(qualityMonitorService.addQualityMonitorRatify(qualityMonitorDetailsRatify)); + } + + /** + * 鐩戞帶璁″垝璇︽儏鎻愪氦鎵瑰噯鎰忚 + * @return + */ + @ApiOperation(value = "鐩戞帶璁″垝璇︽儏鎻愪氦鎵瑰噯鎰忚") + @PostMapping("/addQualityMonitorRatifyOpinion") + public Result addQualityMonitorRatifyOpinion(@RequestBody QualityMonitorDetailsRatify qualityMonitorDetailsRatify) { + return Result.success(qualityMonitorService.addQualityMonitorRatifyOpinion(qualityMonitorDetailsRatify)); + } + + /** + * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * @param qualityMonitorDetailsId 鐩戞帶璁″垝璇︽儏瀹炴柦id + */ + @ApiOperation(value = "瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅") + @GetMapping("/exportQualityMonitorRatify") + public void exportQualityMonitorRatify(Integer qualityMonitorDetailsId, HttpServletResponse response){ + qualityMonitorService.exportQualityMonitorRatify(qualityMonitorDetailsId, response); + } + + /************************************************************ 璇勪环 *******************************************************************/ + + /** + * 鏌ヨ鐩戞帶璇勪环 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戞帶璇勪环") + @GetMapping("/getQualityMonitorEvaluate") + public Result<QualityMonitorDetailsEvaluate> getQualityMonitorEvaluate(Integer qualityMonitorDetailsId) { + return Result.success(qualityMonitorService.getQualityMonitorEvaluate(qualityMonitorDetailsId)); + } + + /** + * 鏂板鐩戞帶璇勪环 + * @return + */ + @ApiOperation(value = "鏂板鐩戞帶璇勪环") + @PostMapping("/addQualityMonitorEvaluate") + public Result addQualityMonitorEvaluate(@RequestBody QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) { + return Result.success(qualityMonitorService.addQualityMonitorEvaluate(qualityMonitorDetailsEvaluate)); + } + + /** + * 瀵煎嚭鐩戞帶璇勪环 + * @param qualityMonitorDetailsId 鐩戞帶璇勪环id + */ + @ApiOperation(value = "瀵煎嚭鐩戞帶璇勪环") + @GetMapping("/exportQualityMonitorEvaluate") + public void exportQualityMonitorEvaluate(Integer qualityMonitorDetailsId, HttpServletResponse response){ + qualityMonitorService.exportQualityMonitorEvaluate(qualityMonitorDetailsId, response); + } + + /** + * 鐩戞帶璇勪环鎵瑰噯鎰忚 + * @return + */ + @ApiOperation(value = "鐩戞帶璇勪环鎵瑰噯鎰忚") + @PostMapping("/addMonitorEvaluateOpinion") + public Result addMonitorEvaluateOpinion(@RequestBody QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) { + return Result.success(qualityMonitorService.addMonitorEvaluateOpinion(qualityMonitorDetailsEvaluate)); + } + + + /** + * 鏂板鐩戞帶璇勪环闄勪欢琛� + * @param detailsEvaluateId + * @param file + * @return + */ + @ApiOperation(value = "鏂板鐩戞帶璇勪环闄勪欢琛�") + @PostMapping("/uploadEvaluateFile") + public Result<?> uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) { + return Result.success(qualityMonitorService.uploadEvaluateFile(detailsEvaluateId, file)); + } + + + /** + * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃") + @GetMapping("/getEvaluateFileList") + public Result<List<QualityMonitorDetailsEvaluateFile>> getEvaluateFileList(Integer detailsEvaluateId) { + return Result.success(qualityMonitorService.getEvaluateFileList(detailsEvaluateId)); + } + + /** + * 鍒犻櫎鐩戞帶璇勪环闄勪欢琛� + * @return + */ + @ApiOperation(value = "鍒犻櫎鐩戞帶璇勪环闄勪欢琛�") + @GetMapping("/delVerifyEvaluateFileList") + public Result delVerifyMethodFileList(Integer evaluateFileId) { + return Result.success(qualityMonitorDetailsEvaluateFileMapper.deleteById(evaluateFileId)); + } + + /******************************************************** 瀹屾垚鎶ュ憡 ***************************************************************/ + + /** + * 涓婁紶鐩戞帶瀹屾垚鎶ュ憡 + * @param file + * @param qualityMonitorDetailsId + * @return + */ + @ApiOperation(value = "涓婁紶鐩戞帶瀹屾垚鎶ュ憡") + @PostMapping("/uploadFinishReport") + public Result uploadFinishReport(MultipartFile file, Integer qualityMonitorDetailsId) { + return Result.success(qualityMonitorService.uploadFinishReport(file, qualityMonitorDetailsId)); + } + + + /** + * 鐩戞帶璁″垝鎵瑰噯 + * @return + */ + @ApiOperation(value = "鎵瑰噯瀹屾垚鎶ュ憡") + @PostMapping("/ratifyFinishReport") + public Result ratifyFinishReport(@RequestBody QualityMonitorDetails qualityMonitorDetails) { + return Result.success(qualityMonitorService.ratifyFinishReport(qualityMonitorDetails)); + } +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java new file mode 100644 index 0000000..b2da7ec --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java @@ -0,0 +1,353 @@ +package com.ruoyi.process.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.framework.exception.ErrorException; +import com.ruoyi.process.dto.QualitySuperviseDetailsDto; +import com.ruoyi.process.mapper.QualitySuperviseDetailsCorrectMapper; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.QualitySuperviseDetailsService; +import com.ruoyi.process.service.QualitySuperviseService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 璐ㄩ噺鐩戠潱涓昏〃 + * + * @author zhuo + * @since 2024-11-07 + */ +@Api(tags = "璐ㄩ噺鐩戠潱璁″垝") +@AllArgsConstructor +@RestController +@RequestMapping("/qualitySupervise") +public class QualitySuperviseController { + + @Resource + private QualitySuperviseService qualitySuperviseService; + @Resource + private QualitySuperviseDetailsService qualitySuperviseDetailsService; + @Resource + private QualitySuperviseDetailsCorrectMapper qualitySuperviseDetailsCorrectMapper; + + /** + * 瀵煎叆鐩戠潱璁″垝 + * @return + */ + @ApiOperation(value = "瀵煎叆鐩戠潱璁″垝") + @PostMapping("/importQualitySupervise") + public Result importQualitySupervise(MultipartFile file, QualitySupervise qualitySupervise){ + return Result.success(qualitySuperviseService.importQualitySupervise(file, qualitySupervise)); + } + + /** + * 鐩戠潱璁″垝鍒楄〃 + * @return + */ + @ApiOperation(value = "鐩戠潱璁″垝鍒楄〃") + @GetMapping("/pageQualitySupervise") + public Result<IPage<QualitySupervise>> pageQualitySupervise(QualitySupervise qualitySupervise ,Page page) throws Exception { + return Result.success(qualitySuperviseService.pageQualitySupervise(page, qualitySupervise)); + } + + /** + * 鐩戠潱璁″垝鎵瑰噯 + * @return + */ + @ApiOperation(value = "鐩戠潱璁″垝鎵瑰噯") + @PostMapping("/ratifyQualitySupervise") + public Result ratifyQualitySupervise(@RequestBody QualitySupervise qualitySupervise){ + return Result.success(qualitySuperviseService.ratifyQualitySupervise(qualitySupervise)); + } + + /** + * 鐩戠潱璁″垝鍒犻櫎 + * @return + */ + @ApiOperation(value = "鐩戠潱璁″垝鍒犻櫎") + @DeleteMapping("/delQualitySupervise") + public Result delQualitySupervise(Integer superviseId){ + return Result.success(qualitySuperviseService.removeById(superviseId)); + } + + /** + * 鐩戠潱璁″垝璇︽儏鍒楄〃 + * @param data + * @return + */ + @ApiOperation(value = "鐩戠潱璁″垝璇︽儏鍒楄〃") + @PostMapping("/pageQualitySuperviseDetail") + public Result<IPage<QualitySuperviseDetailsDto>> pageQualitySuperviseDetail(QualitySuperviseDetailsDto qualitySuperviseDetails,Page page) throws Exception { + return Result.success(qualitySuperviseService.pageQualitySuperviseDetail(page, qualitySuperviseDetails)); + } + + /** + * 鏂板鐩戠潱璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "鏂板鐩戠潱璁″垝璇︽儏") + @PostMapping("/addQualitySuperviseDetail") + public Result addQualitySuperviseDetail(@RequestBody QualitySuperviseDetails qualitySuperviseDetails){ + if (qualitySuperviseDetails.getSuperviseId() == null) { + throw new ErrorException("缂哄皯鐩戠潱璁″垝涓昏〃id"); + } + return Result.success(qualitySuperviseDetailsService.save(qualitySuperviseDetails)); + } + + /** + * 淇敼鐩戠潱璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "淇敼鐩戠潱璁″垝璇︽儏") + @PostMapping("/updateQualitySuperviseDetail") + public Result updateQualitySuperviseDetail(@RequestBody QualitySuperviseDetails qualitySuperviseDetails){ + return Result.success(qualitySuperviseDetailsService.updateById(qualitySuperviseDetails)); + } + + /** + * 鍒犻櫎鐩戠潱璁″垝璇︽儏 + * @return + */ + @ApiOperation(value = "鍒犻櫎鐩戠潱璁″垝璇︽儏") + @GetMapping("/delQualitySuperviseDetail") + public Result delQualitySuperviseDetail(Integer superviseDetailsId){ + return Result.success(qualitySuperviseDetailsService.removeById(superviseDetailsId)); + } + + /** + * 鏌ヨ璇ヨ鍒掔洃鐫e憳 + * @return + */ + @ApiOperation(value = "鏌ヨ璇ヨ鍒掔洃鐫e憳") + @GetMapping("/getRecordUser") + public Result getRecordUser(Integer superviseDetailsId){ + return Result.success(qualitySuperviseService.getRecordUser(superviseDetailsId)); + } + + + /** + * 瀵煎嚭鐩戠潱璁″垝 + * @return + */ + @ApiOperation(value = "瀵煎嚭鐩戠潱璁″垝") + @GetMapping("/exportQualitySupervise") + public void exportQualitySupervise(Integer superviseId, HttpServletResponse response){ + qualitySuperviseService.exportQualitySupervise(superviseId, response); + } + + + /************************************************* 璁板綍 *********************************************************/ + + /** + * 鏌ヨ鐩戠潱璁板綍淇℃伅 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍淇℃伅") + @GetMapping("/getSuperviseDetailRecord") + public Result<QualitySuperviseDetailsRecord> getSuperviseDetailRecord(Integer superviseDetailsId){ + return Result.success(qualitySuperviseService.getSuperviseDetailRecord(superviseDetailsId)); + } + + /** + * 鏂板鐩戠潱璁板綍淇℃伅 + * @return + */ + @ApiOperation(value = "鏂板鐩戠潱璁板綍淇℃伅") + @PostMapping("/addSuperviseDetailRecord") + public Result addSuperviseDetailRecord(@RequestBody QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord){ + return Result.success(qualitySuperviseService.addSuperviseDetailRecord(qualitySuperviseDetailsRecord)); + } + + /** + * 鐩戠潱璁板綍鎵瑰噯 + * @return + */ + @ApiOperation(value = "鐩戠潱璁板綍鎵瑰噯") + @PostMapping("/addSuperviseRecordOpinion") + public Result addSuperviseRecordOpinion(@RequestBody QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord){ + return Result.success(qualitySuperviseService.addSuperviseRecordOpinion(qualitySuperviseDetailsRecord)); + } + + /** + * 瀵煎嚭璐ㄩ噺鐩戠潱璇︽儏璁板綍琛� + * @return + */ + @ApiOperation(value = "瀵煎嚭鐩戠潱璁板綍琛�") + @GetMapping("/exportSuperviseDetailRecord") + public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response){ + qualitySuperviseService.exportSuperviseDetailRecord(superviseDetailsId, response); + } + + /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/ + + + /** + * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @return + */ + @ApiOperation(value = "鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�") + @PostMapping("/addSuperviseDetailAccording") + public Result addSuperviseDetailAccording(@RequestBody QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording){ + return Result.success(qualitySuperviseService.addSuperviseDetailAccording(qualitySuperviseDetailsAccording)); + } + + /** + * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�(瑁呭娴佺▼) + * @return + */ + @ApiOperation(value = "(瑁呭娴佺▼)鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�") + @PostMapping("/addEquipSuperviseDetailAccording") + public Result addEquipSuperviseDetailAccording(@RequestBody QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording){ + return Result.success(qualitySuperviseService.addEquipSuperviseDetailAccording(qualitySuperviseDetailsAccording)); + } + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @return + */ + @ApiOperation(value = "(瑁呭娴佺▼)鎵瑰噯鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�") + @PostMapping("/approverEquipSuperviseDetailAccording") + public Result approverEquipSuperviseDetailAccording(@RequestBody QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording){ + return Result.success(qualitySuperviseService.approverEquipSuperviseDetailAccording(qualitySuperviseDetailsAccording)); + } + + /** + * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�") + @GetMapping("/getSuperviseDetailAccording") + public Result<QualitySuperviseDetailsAccording> getSuperviseDetailAccording(Integer superviseDetailsId){ + return Result.success(qualitySuperviseService.getSuperviseDetailAccording(superviseDetailsId)); + } + + /** + * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛� + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛�") + @GetMapping("/pageSuperviseDetailAccording") + public Result<IPage<QualitySuperviseDetailsAccording>> pageSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording,Page page) throws Exception { + return Result.success(qualitySuperviseService.pageSuperviseDetailAccording(page, detailsAccording)); + } + + /** + * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @return + */ + @ApiOperation(value = "瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�") + @GetMapping("/superviseDetailAccordingExport") + public void superviseDetailAccordingExport(@RequestParam("superviseDetailsId") Integer id, HttpServletResponse response){ + qualitySuperviseService.superviseDetailAccordingExport(id, response); + } + + + + /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/ + + + /** + * 鏂板鐩戠潱绾犳澶勭悊淇℃伅 + * @return + */ + @ApiOperation(value = "鏂板鐩戠潱绾犳澶勭悊") + @PostMapping("/addSuperviseDetailCorrect") + public Result addSuperviseDetailCorrect(@RequestBody QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect){ + return Result.success(qualitySuperviseService.addSuperviseDetailCorrect(qualitySuperviseDetailsCorrect)); + } + + /** + * (瑁呭娴佺▼)鏂板鐩戠潱绾犳澶勭悊淇℃伅 + * @return + */ + @ApiOperation(value = "(瑁呭娴佺▼)鏂板鐩戠潱绾犳澶勭悊") + @PostMapping("/addEquipSuperviseDetailCorrect") + public Result addEquipSuperviseDetailCorrect(@RequestBody QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect){ + return Result.success(qualitySuperviseService.addEquipSuperviseDetailCorrect(qualitySuperviseDetailsCorrect)); + } + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱绾犳澶勭悊 + * @return + */ + @ApiOperation(value = "(瑁呭娴佺▼)鎵瑰噯鐩戠潱绾犳澶勭悊") + @PostMapping("/approveEquipSuperviseDetailCorrect") + public Result approveEquipSuperviseDetailCorrect(@RequestBody QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect){ + return Result.success(qualitySuperviseService.approveEquipSuperviseDetailCorrect(qualitySuperviseDetailsCorrect)); + } + + /** + * 鏌ヨ鐩戠潱绾犳澶勭悊 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱绾犳澶勭悊") + @GetMapping("/getSuperviseDetailCorrect") + public Result<QualitySuperviseDetailsCorrect> getSuperviseDetailCorrect(Integer superviseDetailsId){ + return Result.success(qualitySuperviseService.getSuperviseDetailCorrect(superviseDetailsId)); + } + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃") + @GetMapping("/pageSuperviseDetailCorrect") + public Result<IPage<QualitySuperviseDetailsCorrect>> pageSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect,Page page) throws Exception { + return Result.success(qualitySuperviseService.pageSuperviseDetailCorrect(page, detailsCorrect)); + } + + /** + * 鏂板鐩戠潱绾犳鎺柦闄勪欢 + * @param superviseDetailsCorrectId + * @param file + * @return + */ + @ApiOperation(value = "鏂板鐩戠潱绾犳鎺柦闄勪欢") + @PostMapping("/uploadSuperviseDetailCorrectFile") + public Result<?> uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file) { + return Result.success(qualitySuperviseService.uploadSuperviseDetailCorrectFile(superviseDetailsCorrectId, file)); + } + + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢 + * @return + */ + @ApiOperation(value = "鏌ヨ鐩戠潱绾犳鎺柦闄勪欢") + @GetMapping("/getSuperviseDetailCorrectFileList") + public Result<List<QualitySuperviseDetailsCorrectFile>> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId){ + return Result.success(qualitySuperviseService.getSuperviseDetailCorrectFileList(superviseDetailsCorrectId)); + } + + /** + * 鍒犻櫎鐩戠潱绾犳鎺柦闄勪欢 + * @return + */ + @ApiOperation(value = "鍒犻櫎鐩戠潱绾犳鎺柦闄勪欢") + @DeleteMapping("/delSuperviseDetailCorrectFile") + public Result delSuperviseDetailCorrectFile(Integer superviseDetailsCorrectFileId){ + return Result.success(qualitySuperviseDetailsCorrectMapper.deleteById(superviseDetailsCorrectFileId)); + } + + /** + * 瀵煎嚭鐩戠潱绾犳鎺柦 + * @return + */ + @ApiOperation(value = "瀵煎嚭鐩戠潱绾犳鎺柦") + @GetMapping("/exportSuperviseDetaillCorrect") + public void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response){ + qualitySuperviseService.exportSuperviseDetaillCorrect(superviseDetailsCorrectId, response); + } +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java new file mode 100644 index 0000000..c0ba3ab --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java @@ -0,0 +1,43 @@ +package com.ruoyi.process.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.converters.string.StringImageConverter; +import com.alibaba.excel.metadata.data.WriteCellData; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.io.File; +import java.io.InputStream; +import java.net.URL; + +@Getter +@Setter +@EqualsAndHashCode +@ContentRowHeight(100) // 琛岄珮 +@ColumnWidth(100 / 8) // 鍒楀 +public class ImageDemoData { + private File file; + private InputStream inputStream; + /** + * 濡傛灉string绫诲瀷 蹇呴』鎸囧畾杞崲鍣紝string榛樿杞崲鎴恠tring + */ + @ExcelProperty(converter = StringImageConverter.class) + private String string; + private byte[] byteArray; + /** + * 鏍规嵁url瀵煎嚭 + * + * @since 2.1.1 + */ + private URL url; + + /** + * 鏍规嵁鏂囦欢瀵煎嚭 骞惰缃鍑虹殑浣嶇疆銆� + * + * @since 3.0.0-beta1 + */ + private WriteCellData<Void> writeCellDataFile; +} \ No newline at end of file diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java new file mode 100644 index 0000000..e362930 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java @@ -0,0 +1,28 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.InconsistentDistribution; +import com.ruoyi.process.pojo.InconsistentDistributionDetail; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author zhuo + * @Date 2024/11/15 + */ +@Data +public class InconsistentDistributionDto extends InconsistentDistribution { + + @ApiModelProperty("鍒嗗竷璇︽儏") + private List<InconsistentDistributionDetail> distributionDetailList; + + @ApiModelProperty("鍗犳瘮瀵硅薄") + private InconsistentDistributionProportionDto distributionProportion; + + @ApiModelProperty("鍒涘缓浜哄悕绉�") + private String createUserName; + + @ApiModelProperty("淇敼浜哄悕绉�") + private String updateUserName; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java new file mode 100644 index 0000000..a606db5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java @@ -0,0 +1,45 @@ +package com.ruoyi.process.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 鍗犳瘮瀵硅薄 + * + * @Author zhuo + * @Date 2024/11/15 + */ + +@Data +public class InconsistentDistributionProportionDto { + + @ApiModelProperty("绔犺妭鍙�") + private String chapterNumber; + + @ApiModelProperty("瑕佺礌") + private String essentials; + + @ApiModelProperty("涓讳换") + private BigDecimal director; + + @ApiModelProperty("鎶�鏈礋璐d汉") + private BigDecimal technology; + + @ApiModelProperty("璐ㄩ噺璐熻矗浜�") + private BigDecimal quality; + + @ApiModelProperty("缁煎悎瀹�") + private BigDecimal comprehensive; + + @ApiModelProperty("璇曢獙瀹�") + private BigDecimal testing; + + @ApiModelProperty("鍚堣") + private Integer total; + + @ApiModelProperty("鍗犳瘮") + private BigDecimal proportion; + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDto.java new file mode 100644 index 0000000..8e2af66 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.InspectionOrder; +import com.ruoyi.process.pojo.InspectionOrderDetail; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author zhuo + * @Date 2024/12/9 + */ +@Data +public class InspectionOrderDto extends InspectionOrder { + + @ApiModelProperty("濮旀墭妫�楠屽崟璇︽儏") + private List<InspectionOrderDetail> orderDetailList; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java new file mode 100644 index 0000000..5c698f8 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java @@ -0,0 +1,51 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.InspectionOrder; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Author: yuan + * Date: 2024-12-10 鏄熸湡浜� + * Description: + */ +@Data +public class InspectionOrderExportDto extends InspectionOrder { + @ApiModelProperty("鐣欐牱:1 鏄�") + private String isLeave1 = "鈻�"; + + @ApiModelProperty("鐣欐牱:0 鍚�") + private String isLeave2 = "鈻�"; + + @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 1锛氳嚜鍙�") + private String send1 = "鈻�"; + + @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 0锛氬叾浠�") + private String send0 = "鈻�"; + + @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡 1锛氬疄楠屽澶勭悊") + private String processing1 = "鈻�"; + + @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡 0锛氬鎵樺崟浣嶅彇鍥�") + private String processing0 = "鈻�"; + + @ApiModelProperty("鍒ゆ柇瑙勫垯 1锛氳�冭檻涓嶇‘瀹氬害") + private String criterionRule1 = "鈻�"; + + @ApiModelProperty("鍒ゆ柇瑙勫垯 0锛氫笉鑰冭檻涓嶇‘瀹氬害") + private String criterionRule0 = "鈻�"; + + @ApiModelProperty("濮旀墭鏃堕棿 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d") + private String commissionDateString; + + @ApiModelProperty("鎺ユ敹鏃ユ湡 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d") + private String receiptDataString; + + @ApiModelProperty("棰嗘牱鏃ユ湡 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d") + private String sampleDataString; + + @ApiModelProperty("绾﹀畾鏃堕棿 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d") + private String appointedString; + + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java new file mode 100644 index 0000000..f33a281 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.ProcessComplain; +import lombok.Data; + +@Data +//鎶曡瘔璇︽儏 +public class ProcessComplainDto extends ProcessComplain { + + private String phone; + + private String email; + + private String problemRecordsUserName; + + private String dutyOwnershipUserName; + + private String causeAnalysisUserName; + + private String correctiveActionUserName; + + private String correctiveActionConfirmationUserName; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewArchivedDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewArchivedDto.java new file mode 100644 index 0000000..8808abf --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewArchivedDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/12/25 + */ +@Data +public class ProcessMethodSearchNewArchivedDto extends ProcessMethodSearchNewArchived { + + @ApiModelProperty("缂栧埗浜�") + private String writeName; + + @ApiModelProperty("鎵瑰噯浜�") + private String ratifyName; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewBackupsDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewBackupsDto.java new file mode 100644 index 0000000..e1a0db7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewBackupsDto.java @@ -0,0 +1,62 @@ +package com.ruoyi.process.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/4 + */ +@Data +@ExcelIgnoreUnannotated +public class ProcessMethodSearchNewBackupsDto extends ProcessMethodSearchNewBackups { + + @ApiModelProperty("寮�濮嬫椂闂�") + private String beginDate; + + @ApiModelProperty("缁撴潫鏃堕棿") + private String endDate; + + @ApiModelProperty("缂栧埗浜篿d") + private Integer writeUserId; + + @ApiModelProperty("鎵瑰噯浜篿d") + private Integer ratifyUserId; + + @ApiModelProperty("缂栧埗浜烘棩鏈�") + private String writeDate; + + @ApiModelProperty("鎵瑰噯浜烘棩鏈�") + private String ratifyDate; + + @ExcelProperty(value = {"鏄惁鏈夋洿鏂版爣鍑�", "鏄惁鏈夋洿鏂版爣鍑�"}, index = 4) + @ApiModelProperty("鏄惁鏈夋洿鏂版爣鍑�") + private String isNewStandardString; + + @ExcelProperty(value = {"鏌ユ柊璁板綍", "鏍囧噯缃�"}, index = 7) + @ApiModelProperty("鏍囧噯缃�") + private String standardNet; + + @ExcelProperty(value = {"鏌ユ柊璁板綍", "濮旀墭鎯呮姤鎵�"}, index = 8) + @ApiModelProperty("濮旀墭鎯呮姤鎵�") + private String informationOffices; + + @ExcelProperty(value = {"鏌ユ柊璁板綍", "鏍囧噯涔﹀簵"}, index = 9) + @ApiModelProperty("鏍囧噯涔﹀簵") + private String standardBookstore; + + @ExcelProperty(value = {"鏌ユ柊璁板綍", "鍏朵粬"}, index = 10) + @ApiModelProperty("鍏朵粬") + private String other; + + @ExcelProperty(value = {"澶囨敞", "澶囨敞"}, index = 11) + @ApiModelProperty("澶囨敞") + private String remarkString; + + @ExcelProperty(value = {"搴忓彿", "搴忓彿"}, index = 0) + @ApiModelProperty("搴忓彿") + private Integer index; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java new file mode 100644 index 0000000..3d5e292 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/12 + */ +@Data +public class ProcessMethodVerifyCalibrationsFileDto extends ProcessMethodVerifyCalibrationsFile { + + @ApiModelProperty("璁惧鍚嶇О") + private String deviceName; + + @ApiModelProperty("璁惧缂栧彿") + private String managementNumber; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java new file mode 100644 index 0000000..ba7464d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java @@ -0,0 +1,30 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.ProcessMethodVerify; +import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; +import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author zhuo + * @Date 2024/11/5 + */ +@Data +public class ProcessMethodVerifyDto extends ProcessMethodVerify { + + @ApiModelProperty("璁惧闄勪欢") + private List<ProcessMethodVerifyMachineAttachment> machineAttachmentList; + + @ApiModelProperty("鍘熷璁板綍闄勪欢") + private List<ProcessMethodVerifyMethodFile> methodFileList; + + @ApiModelProperty("涓婂矖璇�") + private List<ProcessMethodVerifyWorkFile> workFileList; + + @ApiModelProperty("鏍″噯璇佷功") + private List<ProcessMethodVerifyCalibrationsFileDto> calibrationsFileList; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java new file mode 100644 index 0000000..5d344cf --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java @@ -0,0 +1,40 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.ProcessMethodVerify; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Author: yuan + * Date: 2024-12-19 鏄熸湡鍥� 15:55:46 + * Description: + */ +@Data +public class ProcessMethodVerifyExportWordDto extends ProcessMethodVerify { + @ApiModelProperty("(浜�)鏄惁婊¤冻 1婊¤冻 0涓嶆弧瓒�") + private String personIsSatisfiedStr; + + @ApiModelProperty("(鏈�)鏄惁婊¤冻") + private String machineIsSatisfiedStr; + + @ApiModelProperty("(鏂�)鏄惁婊¤冻") + private String materialIsSatisfiedStr; + + @ApiModelProperty("(娉�)鏄惁婊¤冻") + private String methodIsSatisfiedStr; + + @ApiModelProperty("(鐜�)鏄惁婊¤冻") + private String environmentIsSatisfiedStr; + + @ApiModelProperty("(娴嬮噺婧簮鎬�)鏄惁婊¤冻") + private String traceabilityIsSatisfiedStr; + + @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏄惁婊¤冻") + private String managementIsSatisfiedStr; + + @ApiModelProperty("(鍏朵粬)鏄惁婊¤冻") + private String otherIsSatisfiedStr; + + @ApiModelProperty("纭鏃堕棿") + private String confirmDateStr; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java new file mode 100644 index 0000000..d54e1fd --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java @@ -0,0 +1,12 @@ +package com.ruoyi.process.dto; + +import lombok.Data; + +import java.util.List; + +@Data +//瀵煎嚭 +public class ProcessReportDto { + + private List<Integer> ids; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java new file mode 100644 index 0000000..ecc2d34 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Author: yuan + * Date: 2024-12-20 鏄熸湡浜� 9:08:38 + * Description: + */ +@Data +public class QualityMonitorDetailsEvaluateDto extends QualityMonitorDetailsEvaluate { + @ApiModelProperty("鎵瑰噯鏃堕棿") + private String ratifyTimeStr; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java new file mode 100644 index 0000000..fc72e14 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.QualityMonitor; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/6 + */ +@Data +public class QualityMonitorDto extends QualityMonitor { + + @ApiModelProperty("缂栧埗浜�") + private String writeName; + + @ApiModelProperty("瀹℃牳浜�") + private String examineName; + + @ApiModelProperty("鎵瑰噯浜�") + private String ratifyName; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java new file mode 100644 index 0000000..b5bd565 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java @@ -0,0 +1,63 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.QualitySuperviseDetailsAccording; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Author: yuan + * Date: 2024-12-11 鏄熸湡涓� 16:26:41 + * Description: + */ +@Data +public class QualitySuperviseDetailsAccordingDto extends QualitySuperviseDetailsAccording { + + @ApiModelProperty("1鍙戠幇閮ㄩ棬-鏃ユ湡") + private String discovererDateString; + + @ApiModelProperty("3璐d换閮ㄩ棬 鏃ユ湡") + private String responsibleDepartmentDateString; + + @ApiModelProperty("4绾犳鎺柦 鏃ユ湡") + private String correctiveMeasureDateString; + + @ApiModelProperty("5璐ㄩ噺璐熻矗浜烘棩鏈�") + private String qualitySupervisorDateString; + + @ApiModelProperty("0琚洃鐫f椂闂� 鏃ユ湡") + private String supervisedTimeString; + + @ApiModelProperty("4绾犳鎺柦澶勭悊鍗曡窡韪�(鏄�)") + private String correctiveMeasureFollowTracksYes = "鈻�"; + @ApiModelProperty("4绾犳鎺柦澶勭悊鍗曡窡韪�(鍚�)") + private String correctiveMeasureFollowTracksNo = "鈻�"; + + + @ApiModelProperty("5鏄惁閫氱煡瀹㈡埛(鏄�)") + private String whetherInformCustomerYes = "鈻�"; + @ApiModelProperty("5鏄惁閫氱煡瀹㈡埛(鍚�)") + private String whetherInformCustomerNo = "鈻�"; + + + @ApiModelProperty("5鏄惁鎭㈠宸ヤ綔(1锛氭槸锛�2锛氬惁)") + private String whetherResumeWorkYes = "鈻�"; + @ApiModelProperty("5鏄惁鎭㈠宸ヤ綔(1锛氭槸锛�2锛氬惁)") + private String whetherResumeWorkNo = "鈻�"; + + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞0(绠$悊璇勫)") + private String discoveryApproach0 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞1(鍐呴儴瀹℃牳)") + private String discoveryApproach1 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞2(妫�娴嬭繃绋嬫帶鍒�)") + private String discoveryApproach2 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞3(鍐呴儴璐ㄩ噺鎺у埗)") + private String discoveryApproach3 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞4(鍐呴儴鐩戠潱)") + private String discoveryApproach4 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞5(澶栭儴璇勫/妫�鏌�)") + private String discoveryApproach5 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞6(椤惧鎶曡瘔/鎰忚鍙嶉)") + private String discoveryApproach6 = "鈻�"; + @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞7(鍏朵粬)") + private String discoveryApproach7 = "鈻�"; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java new file mode 100644 index 0000000..775c729 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/12/2 + */ +@Data +public class QualitySuperviseDetailsCorrectDto extends QualitySuperviseDetailsCorrect { + + @ApiModelProperty("鎻愬嚭鏃堕棿") + private String raiseTimeString; + + @ApiModelProperty("鍘熷洜鍒嗘瀽鏃堕棿") + private String causeTimeString; + + @ApiModelProperty("绾犳鏃堕棿") + private String correctTimeString; + + @ApiModelProperty("楠岃瘉鏃堕棿") + private String validationTimeString; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java new file mode 100644 index 0000000..6e3854d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.process.dto; + +import com.ruoyi.process.pojo.QualitySuperviseDetails; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/7 + */ +@Data +public class QualitySuperviseDetailsDto extends QualitySuperviseDetails { + + @ApiModelProperty("鏄惁绗﹀悎,0 涓嶇鍚�, 1绗﹀悎") + private Integer isAccording; + + @ApiModelProperty("2鏄惁绾犳澶勭悊, 0鍚�, 1鏄�") + private Integer isCorrect; + + @ApiModelProperty("璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊id") + private Integer superviseDetailsCorrectId; + + @ApiModelProperty("鐩戠潱鍘熷洜绫诲瀷, 1:瀹氭湡鐩戠潱, 2:鍔ㄦ�佺洃鐫�") + private Integer causeType; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java new file mode 100644 index 0000000..096641b --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.process.dto; + +import lombok.Data; + +@Data +//瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫鐨勬牱鍝佽鎯� +public class SampleItemDto { + + //鏍峰搧缂栧彿 + private String code; + + //鏍峰搧鍨嬪彿 + private String model; + + //璇曢獙椤圭洰 + private String product; + + //妫�楠屼緷鎹� + private String standardMethodList; + + //澶囨敞 + private String remark; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java b/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java new file mode 100644 index 0000000..d6489af --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java @@ -0,0 +1,33 @@ +package com.ruoyi.process.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/8 + */ +@Data +public class QualityMonitorDetailsUpload { + + @ExcelProperty("鐩戞帶鐩殑") + private String monitorPurpose; + + @ExcelProperty("璁″垝寮�灞曟椂闂�") + private String plannedTime; + + @ExcelProperty("鐩戞帶椤圭洰") + private String monitorProject; + + @ExcelProperty("鍙傚姞鍗曚綅锛堜汉鍛橈級") + private String participant; + + @ExcelProperty("棰勭畻锛堝厓锛�") + private String budget; + + @ExcelProperty("缁勭粐浜哄憳") + private String organization; + + @ExcelProperty("鐩戞帶鏂瑰紡") + private String monitorWay; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java b/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java new file mode 100644 index 0000000..4a0aeb5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java @@ -0,0 +1,30 @@ +package com.ruoyi.process.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +/** + * @Author zhuo + * @Date 2024/11/8 + */ +@Data +public class QualitySuperviseDetailsUpload { + + @ExcelProperty("鐩戠潱鏃ユ湡") + private String superviseTime; + + @ExcelProperty("鐩戠潱鐩殑") + private String supervisePurpose; + + @ExcelProperty("鐩戞帶椤圭洰") + private String superviseProject; + + @ExcelProperty("琚洃鐫d汉鍛�") + private String supervisee; + + @ExcelProperty("鐩戠潱鍘熷洜") + private String superviseReason; + + @ExcelProperty("澶囨敞") + private String remark; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java new file mode 100644 index 0000000..8c31339 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java @@ -0,0 +1,18 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.InconsistentDistributionDetail; +import org.apache.ibatis.annotations.Mapper; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯冭鎯� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:33 + */ +@Mapper +public interface InconsistentDistributionDetailMapper extends BaseMapper<InconsistentDistributionDetail> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java new file mode 100644 index 0000000..d2fff19 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java @@ -0,0 +1,30 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.InconsistentDistributionDto; +import com.ruoyi.process.pojo.InconsistentDistribution; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:20 + */ +@Mapper +public interface InconsistentDistributionMapper extends BaseMapper<InconsistentDistribution> { + + /** + * 涓嶇鍚堥」鍒嗗竷鏌ヨ + * @param page + * @param ew + * @return + */ + IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, @Param("ew") QueryWrapper<InconsistentDistribution> ew); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderDetailMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderDetailMapper.java new file mode 100644 index 0000000..3163136 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderDetailMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.InspectionOrderDetail; + +/** + * <p> + * 妫�楠屽鎵樺崟璇︽儏琛� Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +public interface InspectionOrderDetailMapper extends BaseMapper<InspectionOrderDetail> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java new file mode 100644 index 0000000..0ab8bb3 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InspectionOrderMapper.java @@ -0,0 +1,37 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.inspect.pojo.InsOrder; +import com.ruoyi.process.dto.InspectionOrderDto; +import com.ruoyi.process.pojo.InspectionOrder; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 妫�楠屽鎵樺崟 Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +public interface InspectionOrderMapper extends BaseMapper<InspectionOrder> { + + /** + * 妫�楠屽鎵樺崟鍒嗛〉鏌ヨ + * @param page + * @param ew + * @return + */ + IPage<InspectionOrderDto> pageInspectionOrder(Page page, @Param("ew") QueryWrapper<InspectionOrder> ew); + + /** + * 濮旀墭鍗曟煡璇㈡垚鍝佽鍗� + * @param page + * @param insOrderQueryWrapper + * @return + */ + IPage<InsOrder> getInsOrderOnInspection(Page page, @Param("ew") QueryWrapper<InsOrder> insOrderQueryWrapper); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java new file mode 100644 index 0000000..8a025dd --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java @@ -0,0 +1,25 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.ProcessComplainDto; +import com.ruoyi.process.pojo.ProcessComplain; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鎶曡瘔 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 09:29:11 + */ +public interface ProcessComplainMapper extends BaseMapper<ProcessComplain> { + + IPage<ProcessComplain> pageProcessComplain(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessComplain> queryWrappers); + + ProcessComplainDto getProcessComplain(Long id); + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java new file mode 100644 index 0000000..49bfb8b --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessDeal; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 02:50:19 + */ +public interface ProcessDealMapper extends BaseMapper<ProcessDeal> { + + IPage<ProcessDeal> pageProcessDeal(Page page, @Param("ew") QueryWrapper<ProcessDeal> queryWrappers); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java new file mode 100644 index 0000000..c3f46ec --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessEvaluate; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 01:10:43 + */ +public interface ProcessEvaluateMapper extends BaseMapper<ProcessEvaluate> { + + IPage<ProcessEvaluate> pageProcessEvaluate(Page page, @Param("ew") QueryWrapper<ProcessEvaluate> queryWrappers); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewArchivedMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewArchivedMapper.java new file mode 100644 index 0000000..5a03a47 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewArchivedMapper.java @@ -0,0 +1,28 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.ProcessMethodSearchNewArchivedDto; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍囧噯鏌ユ柊瀛樻。琛� Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:28:42 + */ +public interface ProcessMethodSearchNewArchivedMapper extends BaseMapper<ProcessMethodSearchNewArchived> { + + /** + * 鏌ヨ瀛樻。 + * @param page + * @param ew + * @return + */ + IPage<ProcessMethodSearchNewArchivedDto> pageSearchNewArchived(Page page, @Param("ew") QueryWrapper<ProcessMethodSearchNewArchivedDto> ew); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java new file mode 100644 index 0000000..9c9ebf7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java @@ -0,0 +1,26 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; + +/** + * <p> + * 鏍囧噯鏌ユ柊澶囦唤琛� Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:29:02 + */ +public interface ProcessMethodSearchNewBackupsMapper extends BaseMapper<ProcessMethodSearchNewBackups> { + + /** + * 鏌ヨ瀛樻。澶囦唤鍒楄〃 + * @param page + * @param ew + * @return + */ + IPage<ProcessMethodSearchNewBackups> pageSearchNewBackups(Page page, QueryWrapper<ProcessMethodSearchNewBackups> ew); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java new file mode 100644 index 0000000..e82cfc7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java @@ -0,0 +1,32 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.ProcessMethodSearchNewBackupsDto; +import com.ruoyi.process.pojo.ProcessMethodSearchNew; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 鏍囧噯鏌ユ柊 + * + * @author zhuo + * @since 2024-11-04 + */ +@Mapper +public interface ProcessMethodSearchNewMapper extends BaseMapper<ProcessMethodSearchNew> { + + /** + * 鏍囧噯鏌ユ柊鍒嗛〉鏌ヨ + * @param page + * @param processMethodSearchNewDtoQueryWrapper + * @param beginDate + * @param endDate + * @return + */ + IPage<ProcessMethodSearchNew> pageMethodSearchNew(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessMethodSearchNewBackupsDto> processMethodSearchNewDtoQueryWrapper, @Param("beginDate") String beginDate, @Param("endDate") String endDate); + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java new file mode 100644 index 0000000..1c495e3 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java @@ -0,0 +1,34 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.dto.ProcessMethodVerifyCalibrationsFileDto; +import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛� + * + * @author zhuo + * @since 2024-11-12 + */ +@Mapper +public interface ProcessMethodVerifyCalibrationsFileMapper extends BaseMapper<ProcessMethodVerifyCalibrationsFile> { + + /** + * 鏌ヨ鏍″噯璇佷功闄勪欢琛� + * @param methodVerifyId + * @return + */ + List<ProcessMethodVerifyCalibrationsFileDto> selectCalibrationsFileList(@Param("methodVerifyId") Integer methodVerifyId); + + /** + * 璁惧id鏌ヨ鏍″噯璇佷功 + * @param deviceId + * @return + */ + String selectCalibrationsFile(@Param("deviceId") Integer deviceId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java new file mode 100644 index 0000000..5ef9293 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment; +import org.apache.ibatis.annotations.Mapper; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛� + * + * @author zhuo + * @since 2024-11-05 + */ +@Mapper +public interface ProcessMethodVerifyMachineAttachmentMapper extends BaseMapper<ProcessMethodVerifyMachineAttachment> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java new file mode 100644 index 0000000..1c0131b --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java @@ -0,0 +1,29 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.ProcessMethodVerifyDto; +import com.ruoyi.process.pojo.ProcessMethodVerify; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +@Mapper +public interface ProcessMethodVerifyMapper extends BaseMapper<ProcessMethodVerify> { + + /** + * 鏍囧噯鏂规硶鍙樻洿, 楠岃瘉 + * @param page + * @param processMethodVerifyDtoQueryWrapper + * @return + */ + IPage<ProcessMethodVerify> pagesMethodVerify(Page page, @Param("ew") QueryWrapper<ProcessMethodVerifyDto> processMethodVerifyDtoQueryWrapper); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java new file mode 100644 index 0000000..b7dd2ee --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; +import org.apache.ibatis.annotations.Mapper; + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +@Mapper +public interface ProcessMethodVerifyMethodFileMapper extends BaseMapper<ProcessMethodVerifyMethodFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java new file mode 100644 index 0000000..b103cb5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java @@ -0,0 +1,24 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃 + * + * @author zhuo + * @since 2024-11-12 + */ +@Mapper +public interface ProcessMethodVerifyWorkFileMapper extends BaseMapper<ProcessMethodVerifyWorkFile> { + + /** + * 鏍规嵁鐢ㄦ埛id鏌ヨ涓婂矖璇� + * @param userId + * @return + */ + String selectWorkFile(@Param("userId") Integer userId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java new file mode 100644 index 0000000..86e6aaf --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java @@ -0,0 +1,25 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessReport; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-05 08:58:39 + */ +public interface ProcessReportMapper extends BaseMapper<ProcessReport> { + + IPage<ProcessReport> pageProcessReport(Page page, @Param("ew") QueryWrapper<ProcessReport> queryWrappers); + + List<ProcessReport> getIds(List<Integer> ids); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java new file mode 100644 index 0000000..417fa05 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessSample; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍峰搧鎺ユ敹 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:49 + */ +public interface ProcessSampleMapper extends BaseMapper<ProcessSample> { + + IPage<ProcessSample> pageProcessSample(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessSample> ew); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java new file mode 100644 index 0000000..a4786fe --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessTotalSample; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 鏍峰搧鎺ユ敹鎬昏〃 Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:58 + */ +public interface ProcessTotalSampleMapper extends BaseMapper<ProcessTotalSample> { + + IPage<ProcessTotalSample> pageProcessTotalSample(Page page, @Param("ew") QueryWrapper<ProcessTotalSample> ew); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java new file mode 100644 index 0000000..ddc0997 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java @@ -0,0 +1,21 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.ProcessTotaldeal; +import org.apache.ibatis.annotations.Param; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) Mapper 鎺ュ彛 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 03:59:09 + */ +public interface ProcessTotaldealMapper extends BaseMapper<ProcessTotaldeal> { + + IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, @Param("ew") QueryWrapper<ProcessTotaldeal> queryWrappers); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java new file mode 100644 index 0000000..c7c6e98 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluateFile; +import org.apache.ibatis.annotations.Mapper; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环闄勪欢琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Mapper +public interface QualityMonitorDetailsEvaluateFileMapper extends BaseMapper<QualityMonitorDetailsEvaluateFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java new file mode 100644 index 0000000..92fdd63 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java @@ -0,0 +1,23 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate; +import org.apache.ibatis.annotations.Mapper; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Mapper +public interface QualityMonitorDetailsEvaluateMapper extends BaseMapper<QualityMonitorDetailsEvaluate> { + + /** + * 鏌ヨ璐ㄩ噺鐩戞帶璇勪环 + * @param qualityMonitorDetailsId + * @return + */ + QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java new file mode 100644 index 0000000..8648038 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java @@ -0,0 +1,28 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.QualityMonitorDetails; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Mapper +public interface QualityMonitorDetailsMapper extends BaseMapper<QualityMonitorDetails> { + + /** + * 璐ㄩ噺鐩戞帶璁″垝鍒楄〃 + * @param page + * @param qualityMonitorDetailsQueryWrapper + * @return + */ + IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, @Param("ew") QueryWrapper<QualityMonitorDetails> qualityMonitorDetailsQueryWrapper); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java new file mode 100644 index 0000000..12d27fc --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.QualityMonitorDetailsRatify; +import org.apache.ibatis.annotations.Mapper; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Mapper +public interface QualityMonitorDetailsRatifyMapper extends BaseMapper<QualityMonitorDetailsRatify> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java new file mode 100644 index 0000000..bf4f81e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java @@ -0,0 +1,28 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.QualityMonitorDto; +import com.ruoyi.process.pojo.QualityMonitor; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戞帶璁″垝涓昏〃 + * + * @author zhuo + * @since 2024-11-06 + */ +@Mapper +public interface QualityMonitorMapper extends BaseMapper<QualityMonitor> { + + /** + * 鐩戞帶璁″垝鍒楄〃 + * @return + */ + IPage<QualityMonitorDto> pageQualityMonitor(Page page, @Param("ew") QueryWrapper<QualityMonitor> qualityMonitorQueryWrapper); + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java new file mode 100644 index 0000000..4ca9af7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java @@ -0,0 +1,36 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto; +import com.ruoyi.process.pojo.QualitySuperviseDetailsAccording; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏涓嶇鍚堥」鎺у埗琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Mapper +public interface QualitySuperviseDetailsAccordingMapper extends BaseMapper<QualitySuperviseDetailsAccording> { + + /** + * 鏌ヨ涓嶇鍚堥」鎺у埗鍒楄〃 + * @param page + * @param ew + * @return + */ + IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetailsAccording> ew); + + /** + * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param superviseDetailId + * @return + */ + QualitySuperviseDetailsAccordingDto selectSuperviseDetailsAccording(@Param("superviseDetailId") Integer superviseDetailId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java new file mode 100644 index 0000000..5d62de4 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrectFile; +import org.apache.ibatis.annotations.Mapper; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏绾犳鎺柦闄勪欢琛� + * + * @author zhuo + * @since 2024-11-09 + */ +@Mapper +public interface QualitySuperviseDetailsCorrectFileMapper extends BaseMapper<QualitySuperviseDetailsCorrectFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java new file mode 100644 index 0000000..f2576c0 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java @@ -0,0 +1,28 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Mapper +public interface QualitySuperviseDetailsCorrectMapper extends BaseMapper<QualitySuperviseDetailsCorrect> { + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 + * @param page + * @param ew + * @return + */ + IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailAccording(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetailsCorrect> ew); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java new file mode 100644 index 0000000..f21bbeb --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java @@ -0,0 +1,29 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.dto.QualitySuperviseDetailsDto; +import com.ruoyi.process.pojo.QualitySuperviseDetails; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Mapper +public interface QualitySuperviseDetailsMapper extends BaseMapper<QualitySuperviseDetails> { + + /** + * 鐩戠潱璁″垝璇︽儏鍒楄〃 + * @param page + * @param qualitySuperviseDetailsQueryWrapper + * @return + */ + IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetailsDto> qualitySuperviseDetailsQueryWrapper, @Param("causeType") Integer causeType); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java new file mode 100644 index 0000000..e234345 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java @@ -0,0 +1,24 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.process.pojo.QualitySuperviseDetailsRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏璁板綍琛� + * + * @author makejava + * @since 2024-11-07 + */ +@Mapper +public interface QualitySuperviseDetailsRecordMapper extends BaseMapper<QualitySuperviseDetailsRecord> { + + /** + * 瀵煎嚭鐩戠潱璁板綍琛� + * @param superviseDetailsId + * @return + */ + QualitySuperviseDetailsRecord selectSuperviseDetailRecord(@Param("superviseDetailsId") Integer superviseDetailsId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java new file mode 100644 index 0000000..0d88566 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java @@ -0,0 +1,38 @@ +package com.ruoyi.process.mapper; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.process.pojo.QualitySupervise; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * 璐ㄩ噺鐩戠潱涓昏〃 + * + * @author zhuo + * @since 2024-11-07 + */ +@Mapper +public interface QualitySuperviseMapper extends BaseMapper<QualitySupervise> { + + /** + * 鐩戠潱璁″垝鍒楄〃 + * @param page + * @param qualitySuperviseQueryWrapper + * @return + */ + IPage<QualitySupervise> pageQualitySupervise(@Param("page") Page page, @Param("ew") QueryWrapper<QualitySupervise> qualitySuperviseQueryWrapper); + + /** + * 鏌ヨ璇ヨ鍒掔洃鐫e憳 + * @param superviseDetailsId + * @return + */ + List<Map<String, String>> getRecordUser(Integer superviseDetailsId); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java new file mode 100644 index 0000000..d0a10e9 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java @@ -0,0 +1,45 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:20 + */ + +@Data +@TableName("cnas_inconsistent_distribution") +@ApiModel(value = "InconsistentDistribution瀵硅薄", description = "涓嶇鍚堥」鐨勫垎甯�") +public class InconsistentDistribution { + + @TableId(value = "distribution_id", type = IdType.AUTO) + private Integer distributionId; + + @ApiModelProperty("骞翠唤") + private String distributionYear; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java new file mode 100644 index 0000000..40bb846 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java @@ -0,0 +1,74 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯冭鎯� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:33 + */ +@Data +@TableName("cnas_inconsistent_distribution_detail") +@ApiModel(value = "InconsistentDistributionDetail瀵硅薄", description = "涓嶇鍚堥」鐨勫垎甯冭鎯�") +public class InconsistentDistributionDetail { + + @TableId(value = "distribution_detail_id", type = IdType.AUTO) + private Integer distributionDetailId; + + @ApiModelProperty("涓昏〃id") + private Integer distributionId; + + @ApiModelProperty("绔犺妭鍙�") + private String chapterNumber; + + @ApiModelProperty("瑕佺礌") + private String essentials; + + @ApiModelProperty("涓讳换") + private Integer director; + + @ApiModelProperty("鎶�鏈礋璐d汉") + private Integer technology; + + @ApiModelProperty("璐ㄩ噺璐熻矗浜�") + private Integer quality; + + @ApiModelProperty("缁煎悎瀹�") + private Integer comprehensive; + + @ApiModelProperty("璇曢獙瀹�") + private Integer testing; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鍚堣") + @TableField(select = false,exist = false) + private Integer total; + + @ApiModelProperty("鍗犳瘮") + @TableField(select = false,exist = false) + private BigDecimal proportion; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrder.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrder.java new file mode 100644 index 0000000..1eec161 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrder.java @@ -0,0 +1,110 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 妫�楠屽鎵樺崟 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +@Getter +@Setter +@TableName("cnas_inspection_order") +@ApiModel(value = "InspectionOrder瀵硅薄", description = "妫�楠屽鎵樺崟") +public class InspectionOrder { + + @TableId(value = "inspection_order_id", type = IdType.AUTO) + private Integer inspectionOrderId; + + @ApiModelProperty("鎴愬搧璁㈠崟id") + private Integer insOrderId; + + @ApiModelProperty("濮旀墭缂栧彿") + private String entrustCode; + + @ApiModelProperty("璇曟牱鍚嶇О") + private String sampleName; + + @ApiModelProperty("鍨嬪彿") + private String modelNo; + + @ApiModelProperty("鐢熶骇鍗曚綅") + private String production; + + @ApiModelProperty("鏍峰搧鏁伴噺") + private String quantity; + + @ApiModelProperty("濮旀墭鏃堕棿") + private LocalDate commissionDate; + + @ApiModelProperty("濮旀墭鍗曚綅") + private String commissionUnit; + + @ApiModelProperty("濮旀墭浜�") + private String commissionUser; + + @ApiModelProperty("濮旀墭浜鸿仈绯绘柟寮�") + private String commissionPhone; + + @ApiModelProperty("鏍峰搧鐘舵��") + private String sampleStatus; + + @ApiModelProperty("鏄惁鐣欐牱1: 鏄�, 2:鍚�") + private Integer isLeave; + + @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡 1锛氬疄楠屽澶勭悊 0锛氬鎵樺崟浣嶅彇鍥�") + private Integer processing; + + @ApiModelProperty("绾﹀畾鏃堕棿") + private LocalDate appointed; + + @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 1锛氳嚜鍙� 0锛氬叾浠�") + private Integer send; + + @ApiModelProperty("鍒ゆ柇瑙勫垯 1锛氳�冭檻涓嶇‘瀹氬害 0锛氫笉鑰冭檻涓嶇‘瀹氬害") + private Integer criterionRule; + + @ApiModelProperty("鍒ゆ柇瑙勫垯鑰冭檻涓嶇‘瀹氬害澶囨敞") + private String criterionRuleRemark; + + @ApiModelProperty("缁煎悎瀹や汉鍛�") + private String generalOfficeUser; + + @ApiModelProperty("鎺ユ敹鏃ユ湡") + private LocalDate receiptData; + + @ApiModelProperty("棰嗘牱浜哄憳") + private String sampleTakerUser; + + @ApiModelProperty("棰嗘牱鏃ユ湡") + private LocalDate sampleData; + + @ApiModelProperty("鎶ュ憡鏂囦欢鍦板潃") + private String fileUrl; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrderDetail.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrderDetail.java new file mode 100644 index 0000000..59fcbf5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InspectionOrderDetail.java @@ -0,0 +1,62 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * <p> + * 妫�楠屽鎵樺崟璇︽儏琛� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +@Getter +@Setter +@TableName("cnas_inspection_order_detail") +@ApiModel(value = "InspectionOrderDetail瀵硅薄", description = "妫�楠屽鎵樺崟璇︽儏琛�") +public class InspectionOrderDetail { + + @TableId(value = "inspection_order_detail_id", type = IdType.AUTO) + private Integer inspectionOrderDetailId; + + @ApiModelProperty("濮旀墭鍗昳d") + private Integer inspectionOrderId; + + @ApiModelProperty("鏍峰搧缂栧彿") + private String sampleNumber; + + @ApiModelProperty("璇曢獙椤圭洰") + private String testItem; + + @ApiModelProperty("璇曢獙渚濇嵁") + private String testStandard; + + @ApiModelProperty("澶囨敞") + private String remark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + // 瀵煎嚭浣跨敤 + @TableField(select = false, exist = false) + private Integer index; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java new file mode 100644 index 0000000..0d677e9 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java @@ -0,0 +1,142 @@ +package com.ruoyi.process.pojo; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 鎶曡瘔 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 09:29:11 + */ +@Getter +@Setter +@TableName("cnas_process_complain") +@ApiModel(value = "ProcessComplain瀵硅薄", description = "鎶曡瘔") +public class ProcessComplain implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + @ExcelIgnore + private Integer id; + + @ApiModelProperty("鎶曡瘔缂栧彿") + @ExcelIgnore + private String complainNo; + + @ApiModelProperty("鎶曡瘔鍚嶇О") + @ExcelProperty(value = "鎶曡瘔鍚嶇О") + private String complainName; + + @ApiModelProperty("澶栭敭鍏宠仈(妫�娴嬫姤鍛奿d)") + @ExcelIgnore + private Integer insReportId; + + @ExcelIgnore + @TableField(select = false,exist = false) + //鐢ㄦ潵鏂板浼犲弬鐨勬姤鍛婄紪鍙� + private String code; + + @ApiModelProperty("鏍峰搧缂栧彿") + @ExcelIgnore + private String sampleCode; + + @ApiModelProperty("鎶曡瘔浜�") + @TableField(fill = FieldFill.INSERT) + @ExcelIgnore + private Integer createUser; + + @ExcelProperty(value = "鎶曡瘔浜�") + @TableField(select = false,exist = false) + private String complainant; + + @ApiModelProperty("鎶曡瘔鏃ユ湡") + @ExcelProperty(value = "鎶曡瘔鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ExcelIgnore + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ExcelIgnore + private LocalDateTime updateTime; + + @ApiModelProperty("鎶曡瘔鏂瑰紡") + @ExcelIgnore + private String complainMethod; + + @ApiModelProperty("闂璁板綍") + @ExcelIgnore + private String problemRecords; + + @ApiModelProperty("闂璁板綍-璐ㄩ噺璐熻矗浜�") + @ExcelIgnore + private Integer problemRecordsUser; + + @ApiModelProperty("闂璁板綍-鏃ユ湡") + @ExcelIgnore + private LocalDate problemRecordsTime; + + @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔�") + @ExcelIgnore + private String dutyOwnership; + + @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔媉璐ㄩ噺璐熻矗浜�") + @ExcelIgnore + private Integer dutyOwnershipUser; + + @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔媉鏃ユ湡") + @ExcelIgnore + private LocalDate dutyOwnershipTime; + + @ApiModelProperty("鍘熷洜鍒嗘瀽") + @ExcelIgnore + private String causeAnalysis; + + @ApiModelProperty("鍘熷洜鍒嗘瀽_璐d换閮ㄩ棬璐熻矗浜�") + @ExcelIgnore + private Integer causeAnalysisUser; + + @ApiModelProperty("鍘熷洜鍒嗘瀽_鏃ユ湡") + @ExcelIgnore + private LocalDate causeAnalysisTime; + + @ApiModelProperty("绾犳鎺柦") + @ExcelIgnore + private String correctiveAction; + + @ApiModelProperty("绾犳鎺柦_璐d换閮ㄩ棬璐熻矗浜�") + @ExcelIgnore + private Integer correctiveActionUser; + + @ApiModelProperty("绾犳鎺柦_鏃ユ湡") + @ExcelIgnore + private LocalDate correctiveActionTime; + + @ApiModelProperty("绾犳鎺柦纭") + @ExcelIgnore + private String correctiveActionConfirmation; + + @ApiModelProperty("绾犳鎺柦纭_璐ㄩ噺璐熻矗浜�") + @ExcelIgnore + private Integer correctiveActionConfirmationUser; + + @ApiModelProperty("绾犳鎺柦纭_鏃ユ湡") + @ExcelIgnore + private LocalDate correctiveActionConfirmationTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java new file mode 100644 index 0000000..792f58d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java @@ -0,0 +1,65 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 02:50:19 + */ +@Getter +@Setter +@TableName("cnas_process_deal") +@ApiModel(value = "ProcessDeal瀵硅薄", description = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�") +public class ProcessDeal implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鏍峰搧鍚嶇О") + private String sampleName; + + @ApiModelProperty("鏍峰搧缂栧彿") + private String sampleCode; + + @ApiModelProperty("渚涙牱鍗曚綅") + private String sampleSupplier; + + @ApiModelProperty("鏁伴噺") + private Integer num; + + @ApiModelProperty("澶勭悊鏂瑰紡") + private String dealMethod; + + @ApiModelProperty("鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate dealTime; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鍏宠仈鐨勫巻鍙叉�昏〃id") + private Integer totaldealId; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java new file mode 100644 index 0000000..f45d887 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java @@ -0,0 +1,74 @@ +package com.ruoyi.process.pojo; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 01:10:43 + */ +@Getter +@Setter +@TableName("cnas_process_evaluate") +@ApiModel(value = "ProcessEvaluate瀵硅薄", description = "娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠�") +public class ProcessEvaluate implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + @ExcelIgnore + private Integer id; + + @ApiModelProperty("鎶ュ憡鍚嶇О") + @ExcelProperty(value = "鎶ュ憡鍚嶇О") + private String reportName; + + @ApiModelProperty("鎶ュ憡璺緞") + @ExcelIgnore + private String reportUrl; + + @ApiModelProperty("璇勪环浜�") + @ExcelIgnore + private Integer evaluateUser; + + @TableField(select = false,exist = false) + @ExcelProperty(value = "璇勪环浜�") + private String evaluateUserName; + + @ApiModelProperty("璇勪环鏃ユ湡") + @ExcelProperty(value = "璇勪环鏃ユ湡") + private LocalDate evaluateTime; + + @ApiModelProperty("澶囨敞") + @ExcelProperty(value = "澶囨敞") + private String note; + + @TableField(fill = FieldFill.INSERT) + @ExcelIgnore + private Integer createUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ExcelIgnore + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT) + @ExcelIgnore + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ExcelIgnore + private LocalDateTime updateTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java new file mode 100644 index 0000000..53fbf7e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java @@ -0,0 +1,70 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏌ユ柊 + * + * @author zhuo + * @since 2024-11-04 + */ +@Data +@TableName("cnas_process_method_search_new") +@ApiModel(value = "鏍囧噯鏌ユ柊瀵硅薄", description = "鏍囧噯鏌ユ柊琛�") +public class ProcessMethodSearchNew { + + @TableId(type = IdType.AUTO) + private Integer methodSearchNewId; + + @ApiModelProperty("鏍囧噯鏂规硶楠岃瘉id") + private Integer verifyId; + + @ApiModelProperty("鏍囧噯鍚嶇О") + private String methodName; + + @ApiModelProperty("鏍囧噯鍙�") + private String standardNo; + + @ApiModelProperty("鏂囦欢缂栧彿") + private String fileNo; + + @ApiModelProperty("鏄惁鏄柊鏍囧噯, 0鍚�,1鏄�") + private Integer isNewStandard; + + @ApiModelProperty("鏂版爣鍑嗗悕绉�") + private String newMethodName; + + @ApiModelProperty("鏂版爣鍑嗗彿") + private String newStandardNo; + + @ApiModelProperty("鏌ユ柊璁板綍鏉ユ簮, 0,鏍囧噯缃�, 1濮旀墭鎯呮姤, 2鏍囧噯鏁�, 3鍏朵粬") + private Integer searchNewSource; + + @ApiModelProperty("澶囨敞,0浣滃簾, 1鏇挎崲") + private Integer remark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewArchived.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewArchived.java new file mode 100644 index 0000000..0ad1de3 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewArchived.java @@ -0,0 +1,63 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 鏍囧噯鏌ユ柊瀛樻。琛� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:28:42 + */ +@Getter +@Setter +@TableName("cnas_process_method_search_new_archived") +@ApiModel(value = "ProcessMethodSearchNewArchived瀵硅薄", description = "鏍囧噯鏌ユ柊瀛樻。琛�") +public class ProcessMethodSearchNewArchived implements Serializable { + + @TableId(value = "archived_id", type = IdType.AUTO) + private Integer archivedId; + + @ApiModelProperty("瀛樻。鍚嶇О") + private String archivedName; + + @ApiModelProperty("缂栧埗浜�") + private Integer writeUserId; + + @ApiModelProperty("缂栧埗鏃堕棿") + private LocalDateTime writeTime; + + @ApiModelProperty("鎵瑰噯浜�") + private Integer ratifyUserId; + + @ApiModelProperty("鎵瑰噯鏃堕棿") + private LocalDateTime ratifyTime; + + @ApiModelProperty("鎵瑰噯鐘舵��,0 涓嶉�氳繃, 1 閫氳繃") + private Integer ratifyStatus; + + @ApiModelProperty("鎵瑰噯淇℃伅") + private String ratifyRemark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewBackups.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewBackups.java new file mode 100644 index 0000000..27a8c5e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNewBackups.java @@ -0,0 +1,84 @@ +package com.ruoyi.process.pojo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * <p> + * 鏍囧噯鏌ユ柊澶囦唤琛� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:29:02 + */ +@Getter +@Setter +@ExcelIgnoreUnannotated +@TableName("cnas_process_method_search_new_backups") +@ApiModel(value = "ProcessMethodSearchNewBackups瀵硅薄", description = "鏍囧噯鏌ユ柊澶囦唤琛�") +public class ProcessMethodSearchNewBackups{ + + @TableId(value = "backups_id", type = IdType.AUTO) + private Integer backupsId; + + @ApiModelProperty("瀛樻。id") + private Integer archivedId; + + @ApiModelProperty("鏍囧噯鏂规硶楠岃瘉id") + private Integer verifyId; + + @ExcelProperty(value = {"鏍囧噯鍚嶇О", "鏍囧噯鍚嶇О"}, index = 1) + @ApiModelProperty("鏍囧噯鍚嶇О") + private String methodName; + + @ExcelProperty(value = {"鏍囧噯鍙�", "鏍囧噯鍙�"}, index = 2) + @ApiModelProperty("鏍囧噯鍙�") + private String standardNo; + + @ExcelProperty(value = {"鏂囦欢缂栧彿", "鏂囦欢缂栧彿"}, index = 3) + @ApiModelProperty("鏂囦欢缂栧彿") + private String fileNo; + + @ApiModelProperty("鏄惁鏄柊鏍囧噯, 0鍚�,1鏄�") + private Integer isNewStandard; + + @ExcelProperty(value = {"鏂版爣鍑嗗悕绉�", "鏂版爣鍑嗗悕绉�"}, index = 5) + @ApiModelProperty("鏂版爣鍑嗗悕绉�") + private String newMethodName; + + @ExcelProperty(value = {"鏂版爣鍑嗗彿", "鏂版爣鍑嗗彿"}, index =6) + @ApiModelProperty("鏂版爣鍑嗗彿") + private String newStandardNo; + + @ApiModelProperty("鏌ユ柊璁板綍鏉ユ簮, 0,鏍囧噯缃�, 1濮旀墭鎯呮姤, 2鏍囧噯鏁�, 3鍏朵粬") + private Integer searchNewSource; + + @ApiModelProperty("澶囨敞,0浣滃簾, 1鏇挎崲") + private Integer remark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java new file mode 100644 index 0000000..be995c7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java @@ -0,0 +1,133 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +@Data +@TableName("cnas_process_method_verify") +public class ProcessMethodVerify { + + @TableId(type = IdType.AUTO) + private Integer methodVerifyId; + + @ApiModelProperty("0鍙樻洿,1楠岃瘉") + private Integer operationType; + + @ApiModelProperty("鏍囧噯鏂规硶") + private String methodName; + + @ApiModelProperty("楠岃瘉鍘熷洜") + private String verifyReason; + + @ApiModelProperty("涓昏鎶�鏈彉鍖�") + private String technologyChange; + + @ApiModelProperty("(浜�)鏍囧噯瑕佹眰") + private String personRequirements; + @ApiModelProperty("(浜�)鍑嗗鎯呭喌") + private String personReadiness; + @ApiModelProperty("(浜�)鏄惁婊¤冻") + private Integer personIsSatisfied; + @ApiModelProperty("(浜�)澶囨敞") + private String personRemark; + + @ApiModelProperty("(鏈�)鏍囧噯瑕佹眰") + private String machineRequirements; + @ApiModelProperty("(鏈�)鍑嗗鎯呭喌") + private String machineReadiness; + @ApiModelProperty("(鏈�)鏄惁婊¤冻") + private Integer machineIsSatisfied; + @ApiModelProperty("(鏈�)澶囨敞") + private String machineRemark; + + @ApiModelProperty("(鏂�)鏍囧噯瑕佹眰") + private String materialRequirements; + @ApiModelProperty("(鏂�)鍑嗗鎯呭喌") + private String materialReadiness; + @ApiModelProperty("(鏂�)鏄惁婊¤冻") + private Integer materialIsSatisfied; + @ApiModelProperty("(鏂�)澶囨敞") + private String materialRemark; + + @ApiModelProperty("(娉�)鏍囧噯瑕佹眰") + private String methodRequirements; + @ApiModelProperty("(娉�)鍑嗗鎯呭喌") + private String methodReadiness; + @ApiModelProperty("(娉�)鏄惁婊¤冻") + private Integer methodIsSatisfied; + @ApiModelProperty("(娉�)澶囨敞") + private String methodRemark; + + @ApiModelProperty("(鐜�)鏍囧噯瑕佹眰") + private String environmentRequirements; + @ApiModelProperty("(鐜�)鍑嗗鎯呭喌") + private String environmentReadiness; + @ApiModelProperty("(鐜�)鏄惁婊¤冻") + private Integer environmentIsSatisfied; + @ApiModelProperty("(鐜�)澶囨敞") + private String environmentRemark; + + @ApiModelProperty("(娴嬮噺婧簮鎬�)鏍囧噯瑕佹眰") + private String traceabilityRequirements; + @ApiModelProperty("(娴嬮噺婧簮鎬�)鍑嗗鎯呭喌") + private String traceabilityReadiness; + @ApiModelProperty("(娴嬮噺婧簮鎬�)鏄惁婊¤冻") + private Integer traceabilityIsSatisfied; + @ApiModelProperty("(娴嬮噺婧簮鎬�)澶囨敞") + private String traceabilityRemark; + + @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏍囧噯瑕佹眰") + private String managementRequirements; + @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鍑嗗鎯呭喌") + private String managementReadiness; + @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏄惁婊¤冻") + private Integer managementIsSatisfied; + @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)澶囨敞") + private String managementRemark; + + @ApiModelProperty("(鍏朵粬)鏍囧噯瑕佹眰") + private String otherRequirements; + @ApiModelProperty("(鍏朵粬)鍑嗗鎯呭喌") + private String otherReadiness; + @ApiModelProperty("(鍏朵粬)鏄惁婊¤冻") + private Integer otherIsSatisfied; + @ApiModelProperty("(鍏朵粬)澶囨敞") + private String otherRemark; + + @ApiModelProperty("纭鏃堕棿") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime confirmDate; + + @ApiModelProperty("纭浜哄憳") + private String confirmUser; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java new file mode 100644 index 0000000..f216ef8 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java @@ -0,0 +1,56 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛� + * + * @author zhuo + * @since 2024-11-12 + */ +@Data +@TableName("cnas_process_method_verify_calibrations_file") +public class ProcessMethodVerifyCalibrationsFile { + + @TableId(type = IdType.AUTO) + private Integer calibrationsFileId; + @ApiModelProperty("鏂规硶楠岃瘉id") + private Integer methodVerifyId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("璁惧id") + private Integer deviceId; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java new file mode 100644 index 0000000..a3ecbdf --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java @@ -0,0 +1,60 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛� + * + * @author zhuo + * @since 2024-11-05 + */ +@Data +@TableName("cnas_process_method_verify_machine_attachment") +public class ProcessMethodVerifyMachineAttachment { + + @TableId(type = IdType.AUTO) + private Integer machineAttachmentId; + + @ApiModelProperty("鏂规硶楠岃瘉id") + private Integer methodVerifyId; + + @ApiModelProperty("璁惧id") + private Integer deviceId; + + @ApiModelProperty("璁惧鍚嶇О") + private String machineName; + + @ApiModelProperty("瑙勬牸鍨嬪彿") + private String machineSpecification; + + @ApiModelProperty("绛栫暐鑼冨洿") + private String machineMeasuringRange; + + @ApiModelProperty("鎵╁睍淇℃伅") + private String other; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java new file mode 100644 index 0000000..9f4a319 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java @@ -0,0 +1,54 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛� + * + * @author zhuo + * @since 2024-11-05 + */ +@Data +@TableName("cnas_process_method_verify_method_file") +public class ProcessMethodVerifyMethodFile { + + @TableId(type = IdType.AUTO) + private Integer methodFileId; + + @ApiModelProperty("鏂规硶楠岃瘉id") + private Integer methodVerifyId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java new file mode 100644 index 0000000..d021909 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java @@ -0,0 +1,59 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃 + * + * @author zhuo + * @since 2024-11-12 + */ +@Data +@TableName("cnas_process_method_verify_work_file") +public class ProcessMethodVerifyWorkFile { + + @TableId(type = IdType.AUTO) + private Integer workFileId; + @ApiModelProperty("鏂规硶楠岃瘉id") + private Integer methodVerifyId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鎸佹湁浜篿d") + private Integer userId; + + @ApiModelProperty("鎸佹湁浜�") + private String userName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java new file mode 100644 index 0000000..9324d5d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java @@ -0,0 +1,82 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-05 08:58:39 + */ +@Getter +@Setter +@TableName("cnas_process_report") +@ApiModel(value = "ProcessReport瀵硅薄", description = "妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃") +public class ProcessReport implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("妫�楠屾姤鍛婄紪鍙�") + private String insReportCode; + + @ApiModelProperty("椤垫暟") + private String pages; + + @ApiModelProperty("鍙戦�佷唤鏁�") + private String number; + + @ApiModelProperty("鍙戝線浣曞") + private String send; + + @ApiModelProperty("鍙戦�佹柟寮�") + private String method; + + @ApiModelProperty("鍙戦�佹棩鏈�") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate sendTime; + + @ApiModelProperty("鍙戦�佷汉") + private Integer sendUser; + + @TableField(select = false,exist = false) + private String sendUserName; + + @ApiModelProperty("绛炬敹浜�") + private String signatory; + + + @TableField(select = false,exist = false) + private String signatoryUrl; + + @TableField(select = false,exist = false) + private String signatoryName; + + @ApiModelProperty("澶囨敞") + private String remark; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java new file mode 100644 index 0000000..4fec589 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java @@ -0,0 +1,79 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * <p> + * 鏍峰搧鎺ユ敹 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:49 + */ +@Getter +@Setter +@TableName("cnas_process_sample") +@ApiModel(value = "ProcessSample瀵硅薄", description = "鏍峰搧鎺ユ敹") +public class ProcessSample implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鏍峰搧鍚嶇О") + private String sampleName; + + @ApiModelProperty("鏍峰搧缂栧彿") + private String sampleCode; + + @ApiModelProperty("鏉ユ牱鍗曚綅") + private String sampleSupplier; + + @ApiModelProperty("鏍峰搧鏁伴噺") + private Integer num; + + @ApiModelProperty("鏍峰搧鐘舵��") + private String sampleState; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鍏宠仈鎬昏〃鍘嗗彶id") + private Integer totalSampleId; + + @ApiModelProperty("鏀舵牱鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate receiveDate; + + @ApiModelProperty("鐣欐牱鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate leaveDate; + + @ApiModelProperty("閫�鏍风鏀�/澶勭悊鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate dealTime; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java new file mode 100644 index 0000000..ac0c5c8 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java @@ -0,0 +1,77 @@ +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 io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * <p> + * 鏍峰搧鎺ユ敹鎬昏〃 + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:58 + */ +@Getter +@Setter +@TableName("cnas_process_total_sample") +@ApiModel(value = "ProcessTotalSample瀵硅薄", description = "鏍峰搧鎺ユ敹鎬昏〃") +public class ProcessTotalSample implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("瀹℃牳浜�") + private Integer examineUser; + + @ApiModelProperty("瀹℃牳缁撴灉") + private String examineState; + + @ApiModelProperty("瀹℃牳浜虹數瀛愮鍚島rl") + private String examineUrl; + + + @TableField(select = false, exist = false) + private String examineUserName; + + @ApiModelProperty("鎵瑰噯浜�") + private Integer ratifyUser; + + @ApiModelProperty("鎵瑰噯缁撴灉") + private String ratifyState; + + @ApiModelProperty("鎵瑰噯浜虹數瀛愮鍚島rl") + private String ratifyUrl; + + @TableField(select = false, exist = false) + private String ratifyUserName; + + @ApiModelProperty("鎻愪氦浜�") + private Integer submitUser; + @TableField(select = false, exist = false) + private String submitUserName; + + @ApiModelProperty("鎻愪氦缁撴灉") + private String submitState; + + @ApiModelProperty("鎻愪氦浜虹數瀛愮鍚島rl") + private String submitUrl; + + @ApiModelProperty("鎬绘暟閲�") + private Integer totalNum; + + @ApiModelProperty("鏈堜唤") + private String month; + + @ApiModelProperty("鐢熸垚鐢宠琛ㄧ殑璺緞") + private String url; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java new file mode 100644 index 0000000..ea23a7a --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java @@ -0,0 +1,78 @@ +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 io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 03:59:09 + */ +@Getter +@Setter +@TableName("cnas_process_totaldeal") +@ApiModel(value = "ProcessTotaldeal瀵硅薄", description = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶)") +public class ProcessTotaldeal implements Serializable { + + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("瀹℃牳浜�") + private Integer examineUser; + + @ApiModelProperty("瀹℃牳缁撴灉") + private String examineState; + + @ApiModelProperty("瀹℃牳浜虹數瀛愮鍚島rl") + private String examineUrl; + + + @TableField(select = false, exist = false) + private String examineUserName; + + @ApiModelProperty("鎵瑰噯浜�") + private Integer ratifyUser; + + @ApiModelProperty("鎵瑰噯缁撴灉") + private String ratifyState; + + @ApiModelProperty("鎵瑰噯浜虹數瀛愮鍚島rl") + private String ratifyUrl; + + @TableField(select = false, exist = false) + private String ratifyUserName; + + @ApiModelProperty("鎻愪氦浜�") + private Integer submitUser; + @TableField(select = false, exist = false) + private String submitUserName; + + @ApiModelProperty("鎻愪氦缁撴灉") + private String submitState; + + @ApiModelProperty("鎻愪氦浜虹數瀛愮鍚島rl") + private String submitUrl; + + @ApiModelProperty("鎬绘暟閲�") + private Integer totalNum; + + @ApiModelProperty("鏈堜唤") + private String month; + + @ApiModelProperty("鐢熸垚鐢宠琛ㄧ殑璺緞") + private String url; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java new file mode 100644 index 0000000..c18d60d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java @@ -0,0 +1,83 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戞帶璁″垝涓昏〃 + * + * @author zhuo + * @since 2024-11-06 + */ +@Data +@TableName("cnas_quality_monitor") +@ApiModel(value = "QualityMonitor瀵硅薄", description = "璐ㄩ噺鐩戞帶璁″垝涓昏〃") +public class QualityMonitor { + + @TableId(type = IdType.AUTO) + private Integer qualityMonitorId; + + @ApiModelProperty("璁″垝鍚嶇О") + private String monitorName; + + @ApiModelProperty("璁″垝骞翠唤") + private String monitorYear; + + @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堢紪鍒朵汉锛�") + private Integer writeUserId; + + @ApiModelProperty("缂栧埗鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime writeTime; + + @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堝鏍镐汉锛�") + private Integer examineUserId; + + @ApiModelProperty("瀹℃牳鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime examineTime; + + @ApiModelProperty("瀹℃牳鐘舵�� , 0 涓嶉�氳繃, 1閫氳繃") + private Integer examineStatus; + + @ApiModelProperty("瀹℃牳鍐呭") + private String examineRemark; + + @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�") + private Integer ratifyUserId; + + @ApiModelProperty("鎵瑰噯鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime ratifyTime; + + @ApiModelProperty("鎵瑰噯鐘舵��, 0 涓嶉�氳繃, 1閫氳繃") + private Integer ratifyStatus; + + @ApiModelProperty("鎵瑰噯鍐呭") + private String ratifyRemark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java new file mode 100644 index 0000000..34f0243 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java @@ -0,0 +1,88 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Data +@TableName("cnas_quality_monitor_details") +@ApiModel(value = "QualityMonitorDetails瀵硅薄", description = "璐ㄩ噺鐩戞帶璁″垝璇︽儏琛�") +public class QualityMonitorDetails { + + @TableId(type = IdType.AUTO) + private Integer qualityMonitorDetailsId; + + @ApiModelProperty("鐩戞帶璁″垝id") + private Integer qualityMonitorId; + + @ApiModelProperty("鐩戞帶鐩殑") + private String monitorPurpose; + + @ApiModelProperty("璁″垝寮�灞曟椂闂�") + private String plannedTime; + + @ApiModelProperty("鐩戞帶椤圭洰") + private String monitorProject; + + @ApiModelProperty("鍙傚姞浜哄憳") + private String participant; + + @ApiModelProperty("棰勭畻") + private String budget; + + @ApiModelProperty("缁勭粐浜哄憳") + private String organization; + + @ApiModelProperty("鐩戞帶鏂瑰紡") + private String monitorWay; + + @ApiModelProperty("瀹屾垚鎶ュ憡鍦板潃") + private String finishReportUrl; + + @ApiModelProperty("瀹屾垚鎶ュ憡鎵瑰噯浜�") + private Integer ratifyUserId; + + @ApiModelProperty("瀹屾垚鎶ュ憡鎵瑰噯鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime ratifyTime; + + @ApiModelProperty("瀹屾垚鎶ュ憡鎵瑰噯鐘舵��, 0 涓嶉�氳繃, 1閫氳繃") + private Integer ratifyStatus; + + @ApiModelProperty("瀹屾垚鎶ュ憡鎵瑰噯鍐呭") + private String ratifyRemark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + // 瀵煎嚭浣跨敤 + @TableField(select = false, exist = false) + private Integer index; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java new file mode 100644 index 0000000..cbffe19 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java @@ -0,0 +1,88 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Data +@TableName("cnas_quality_monitor_details_evaluate") +@ApiModel(value = "QualityMonitorDetailsEvaluate瀵硅薄", description = "璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛�") +public class QualityMonitorDetailsEvaluate { + + @TableId(type = IdType.AUTO) + private Integer detailsEvaluateId; + + @ApiModelProperty("鐩戞帶璁″垝璇︽儏id") + private Integer qualityMonitorDetailsId; + + @ApiModelProperty("璇勫鐩殑") + private String reviewPurpose; + + @ApiModelProperty("璇勫浜哄憳") + private String reviewUser; + + @ApiModelProperty("璇勫鏃ユ湡") + private String reviewTime; + + @ApiModelProperty("瀹炴柦鎯呭喌") + private String implementCondition; + + @ApiModelProperty("瀹炴柦閮ㄩ棬") + private String implementDepartment; + + @ApiModelProperty("瀹炴柦缁撴灉") + private String implementResult; + + @ApiModelProperty("瀹炴柦鎶�鏈礋璐d汉") + private Integer implementUserId; + + @ApiModelProperty("鎵瑰噯缁撹") + private String ratifyOpinion; + + @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉") + private Integer ratifyUserId; + + @ApiModelProperty("鎵瑰噯鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime ratifyTime; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�") + private Integer isFinish; + + @ApiModelProperty("瀹炴柦鎶�鏈礋璐d汉鍚嶇О") + @TableField(exist = false,select = false) + private String implementName; + + @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉鍚嶇О") + @TableField(exist = false,select = false) + private String ratifyUserName; +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java new file mode 100644 index 0000000..5167aa7 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java @@ -0,0 +1,56 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环闄勪欢琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_monitor_details_evaluate_file") +@ApiModel(value = "QualityMonitorDetailsEvaluateFile瀵硅薄", description = "璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环闄勪欢琛�") +public class QualityMonitorDetailsEvaluateFile { + + @TableId(type = IdType.AUTO) + private Integer evaluateFileId; + + @ApiModelProperty("璇勪环id") + private Integer detailsEvaluateId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java new file mode 100644 index 0000000..bf2e947 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java @@ -0,0 +1,87 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Data +@TableName("cnas_quality_monitor_details_ratify") +@ApiModel(value = "QualityMonitorDetailsRatify瀵硅薄", description = "璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛�") +public class QualityMonitorDetailsRatify { + + @TableId(type = IdType.AUTO) + private Integer detailsRatifyId; + + @ApiModelProperty("鐩戞帶璁″垝璇︽儏id") + private Integer qualityMonitorDetailsId; + + @ApiModelProperty("鐩戞帶椤圭洰") + private String monitorProject; + + @ApiModelProperty("鐩戞帶鐩殑") + private String monitorPurpose; + + @ApiModelProperty("鐩戞帶鏃堕棿") + private String monitorData; + + @ApiModelProperty("鐩戞帶鏂规硶") + private String monitorMethod; + + @ApiModelProperty("鍙傚姞浜哄憳") + private String participant; + + @ApiModelProperty("杩囩▼鎺у埗") + private String processControl; + + @ApiModelProperty("濡備綍璇勪环") + private String howEvaluate; + + @ApiModelProperty("棰勭畻") + private String budget; + + @ApiModelProperty("妫�娴嬮儴闂�") + private String inspectionDepartment; + + @ApiModelProperty("鎵瑰噯鎰忚") + private String ratifyOpinion; + + @ApiModelProperty("鎶�鏈礋璐d汉") + private Integer ratifyUserId; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�") + private Integer isFinish; + + @ApiModelProperty("鎶�鏈礋璐d汉") + @TableField(exist = false,select = false) + private String ratifyName; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java new file mode 100644 index 0000000..90a0d07 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java @@ -0,0 +1,81 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱涓昏〃 + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_supervise") +@ApiModel(value = "QualitySupervise瀵硅薄", description = "璐ㄩ噺鐩戠潱涓昏〃") +public class QualitySupervise { + + @TableId(type = IdType.AUTO) + private Integer superviseId; + + @ApiModelProperty("鐩戠潱鍚嶇О") + private String superviseName; + + @ApiModelProperty("骞翠唤") + private String superviseYear; + + @ApiModelProperty("鐩戠潱浜篿d(澶氫釜)") + private String recordUserIds; + + @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堢紪鍒朵汉锛�") + private Integer writeUserId; + + @ApiModelProperty("缂栧埗浜�") + private String writeUserName; + + @ApiModelProperty("缂栧埗鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime writeTime; + + @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�") + private Integer ratifyUserId; + + + @ApiModelProperty("鎵瑰噯浜�") + private String ratifyUserName; + + @ApiModelProperty("鎵瑰噯鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime ratifyTime; + + @ApiModelProperty("鎵瑰噯鐘舵��, 0 涓嶉�氳繃, 1閫氳繃") + private Integer ratifyStatus; + + @ApiModelProperty("鎵瑰噯鍐呭") + private String ratifyRemark; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java new file mode 100644 index 0000000..045505e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java @@ -0,0 +1,78 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_supervise_details") +@ApiModel(value = "QualitySuperviseDetails瀵硅薄", description = "璐ㄩ噺鐩戠潱璇︽儏琛�") +public class QualitySuperviseDetails { + + @TableId(type = IdType.AUTO) + private Integer superviseDetailsId; + + @ApiModelProperty("鐩戠潱璁″垝id") + private Integer superviseId; + + @ApiModelProperty("鐩戠潱鏃ユ湡") + private String superviseTime; + + @ApiModelProperty("鐩戠潱鐩殑") + private String supervisePurpose; + + @ApiModelProperty("鐩戠潱椤圭洰") + private String superviseProject; + + @ApiModelProperty("琚洃鐫d汉id") + private Integer supervisedUserId; + + @ApiModelProperty("琚洃鐫d汉") + private String supervisee; + + @ApiModelProperty("鐩戠潱鍘熷洜") + private String superviseReason; + + @ApiModelProperty("澶囨敞") + private String remark; + + @ApiModelProperty("鐩戠潱鍛榠d") + private Integer recordUserId; + + @ApiModelProperty("鐩戠潱鍛樺悕绉�") + private Integer recordUserName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + // 瀵煎嚭浣跨敤 + @TableField(select = false, exist = false) + private Integer index; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java new file mode 100644 index 0000000..702b985 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java @@ -0,0 +1,144 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏涓嶇鍚堥」鎺у埗琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_supervise_details_according") +@ApiModel(value = "QualitySuperviseDetailsAccording瀵硅薄", description = "璐ㄩ噺鐩戠潱璇︽儏涓嶇鍚堥」鎺у埗琛�") +public class QualitySuperviseDetailsAccording { + + @TableId(type = IdType.AUTO) + private Integer superviseDetailsAccordingId; + + @ApiModelProperty("鐩戠潱璇︽儏id") + private Integer superviseDetailsId; + + @ApiModelProperty("0鍙戠敓閮ㄩ棬") + private String occurrenceDepartment; + + @ApiModelProperty("0閮ㄩ棬璐熻矗浜�") + private String headDepartment; + + @ApiModelProperty("0鍙戠幇閫斿緞,0:绠$悊璇勫,1:鍐呴儴瀹℃牳,2:妫�娴嬭繃绋嬫帶鍒�,3:鍐呴儴璐ㄩ噺鎺у埗,4:鍐呴儴鐩戠潱,5:澶栭儴璇勫,6:澶栭儴鎶曡瘔,7:鍏朵粬") + private Integer findWay; + + @ApiModelProperty("0涓嶇鍚堣褰曡鎯�") + private String recordDetail; + + @ApiModelProperty("0涓嶅悎鏍艰褰曚緷鎹�") + private String recordAccording; + + @ApiModelProperty("0鍙戠幇閮ㄩ棬") + private String foundDepartment; + + @ApiModelProperty("0璁板綍浜篿d") + private Integer recordUserId; + + @ApiModelProperty("0璁板綍浜�") + private String recordUserName; + + @ApiModelProperty("0璁板綍鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate recordTime; + + @ApiModelProperty("0琚洃鐫d汉id") + private Integer supervisedUserId; + + @ApiModelProperty("0琚洃鐫d汉") + private String supervisedUserName; + + @ApiModelProperty("0琚洃鐫f椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate supervisedTime; + + @ApiModelProperty("1娓呴櫎涓嶇鍚堟帾鏂�") + private String eliminateMeasure; + + @ApiModelProperty("1璐d换閮ㄩ棬") + private String responsibleDepartment; + + @ApiModelProperty("1澶勭悊浜篿d") + private Integer actionsUserId; + + @ApiModelProperty("1澶勭悊浜�") + private String actionsUserName; + + @ApiModelProperty("1澶勭悊鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate actionsTime; + + @ApiModelProperty("2绾犳鎺柦鍐呭") + private String correctContent; + + @ApiModelProperty("2鏄惁绾犳澶勭悊, 0鍚�, 1鏄�") + private Integer isCorrect; + + @ApiModelProperty("2绾犳鎶�鏈礋璐d汉id") + private Integer correctUserId; + + @ApiModelProperty("2绾犳鎶�鏈礋璐d汉") + private String correctUserName; + + @ApiModelProperty("2绾犳濉啓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate correctTime; + + @ApiModelProperty("3鏄惁閫氱煡瀹㈡埛, 0鍚�, 1鏄�") + private Integer notifyCustomer; + + @ApiModelProperty("3鏄惁鎭㈠宸ヤ綔, 0鍚�, 1鏄�") + private Integer backToWork; + + @ApiModelProperty("3璐ㄩ噺璐熻矗浜篿d") + private Integer qualityManagerUserId; + + @ApiModelProperty("3璐ㄩ噺璐熻矗浜�") + private String qualityManagerUserName; + + @ApiModelProperty("3璐ㄩ噺璐熻矗浜哄~鍐欐椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate qualityManagerTime; + + @ApiModelProperty("鏄惁缁撴潫,0: 鏈粨鏉�, 1:缁撴潫") + private Integer isFinish; + + @ApiModelProperty("鎵瑰噯浜�") + private Integer approverUserId; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @TableField(exist = false,select = false) + @ApiModelProperty("娴佺▼, 0:涓嶇鍚堝伐浣滄儏鍐佃褰�, 1澶勭悊鎺柦, 2:绾犳鎺柦, 3:鏄惁閫氱煡瀹㈡埛鍙仮澶嶅伐浣�") + private Integer flowType; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java new file mode 100644 index 0000000..7ea95a1 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java @@ -0,0 +1,132 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_supervise_details_correct") +@ApiModel(value = "QualitySuperviseDetailsCorrect瀵硅薄", description = "璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊琛�") +public class QualitySuperviseDetailsCorrect { + + @TableId(type = IdType.AUTO) + private Integer superviseDetailsCorrectId; + + @ApiModelProperty("鐩戠潱璇︽儏id") + private Integer superviseDetailsId; + + @ApiModelProperty("浜哄憳鍩硅璇︽儏Id") + private Integer personTrainingDetailedId; + + @ApiModelProperty("0涓嶅悎鏍兼弿杩�") + private String raiseResult; + + @ApiModelProperty("0vde涓撳鍙戠幇") + private String vdeRaiseResult; + + @ApiModelProperty("0鎻愬嚭閮ㄩ棬") + private String raiseDepartment; + + @ApiModelProperty("0鎻愬嚭浜篿d") + private Integer raiseUserId; + + @ApiModelProperty("0鎻愬嚭浜�") + private String raiseUserName; + + @ApiModelProperty("0鎻愬嚭鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate raiseTime; + + @ApiModelProperty("1鍘熷洜鍒嗘瀽") + private String causeResult; + + @ApiModelProperty("1鍘熷洜鍒嗘瀽璐d换閮ㄩ棬") + private String causeDepartment; + + @ApiModelProperty("1鍘熷洜鍒嗘瀽浜篿d") + private Integer causeUserId; + + @ApiModelProperty("1鍘熷洜鍒嗘瀽浜�") + private String causeUserName; + + @ApiModelProperty("1鍘熷洜鍒嗘瀽鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate causeTime; + + @ApiModelProperty("2绾犳鎺柦") + private String correctResult; + + @ApiModelProperty("2鎻愬嚭閮ㄩ棬纭") + private String raiseDepartmentAffirm; + + @ApiModelProperty("2绾犳璐d换閮ㄩ棬") + private String correctDepartment; + + @ApiModelProperty("2绾犳浜篿d") + private Integer correctUserId; + + @ApiModelProperty("2绾犳浜�") + private String correctUserName; + + @ApiModelProperty("2绾犳鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate correctTime; + + @ApiModelProperty("3楠岃瘉缁撴灉") + private String validationResult; + + @ApiModelProperty("3楠岃瘉閮ㄩ棬") + private String validationDepartment; + + @ApiModelProperty("3楠岃瘉浜篿d") + private Integer validationUserId; + + @ApiModelProperty("3楠岃瘉浜�") + private String validationUserName; + + @ApiModelProperty("3楠岃瘉鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate validationTime; + + @ApiModelProperty("鏄惁缁撴潫, 0: 鏈粨鏉�, 1:宸茬粨鏉�") + private Integer isFinish; + + @ApiModelProperty("鎵瑰噯浜�") + private Integer approverUserId; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @TableField(exist = false,select = false) + @ApiModelProperty("娴佺▼, 0:涓嶅悎鏍兼彁鍑�, 1:鍘熷洜鍒嗘瀽, 2:绾犳鎺柦, 3:楠岃瘉缁撴灉") + private Integer flowType; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java new file mode 100644 index 0000000..1f32b74 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java @@ -0,0 +1,56 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏绾犳鎺柦闄勪欢琛� + * + * @author zhuo + * @since 2024-11-09 + */ +@Data +@TableName("cnas_quality_supervise_details_correct_file") +@ApiModel(value = "QualitySuperviseDetailsCorrectFile瀵硅薄", description = "璐ㄩ噺鐩戠潱璇︽儏绾犳鎺柦闄勪欢琛�") +public class QualitySuperviseDetailsCorrectFile { + + @TableId(type = IdType.AUTO) + private Integer superviseDetailsCorrectFileId; + + @ApiModelProperty("鐩戠潱璇︽儏绾犳鎺柦id") + private Integer superviseDetailsCorrectId; + + @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢") + private Integer type; + + @ApiModelProperty("闄勪欢璺緞") + private String fileUrl; + + @ApiModelProperty("闄勪欢鍚嶇О") + private String fileName; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java new file mode 100644 index 0000000..888467f --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java @@ -0,0 +1,118 @@ +package com.ruoyi.process.pojo; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏璁板綍琛� + * + * @author zhuo + * @since 2024-11-07 + */ +@Data +@TableName("cnas_quality_supervise_details_record") +@ApiModel(value = "QualitySuperviseDetailsRecord瀵硅薄", description = "璐ㄩ噺鐩戠潱璇︽儏璁板綍琛�") +public class QualitySuperviseDetailsRecord { + + @TableId(type = IdType.AUTO) + private Integer superviseDetailsRecordId; + + @ApiModelProperty("鐩戠潱璇︽儏id") + private Integer superviseDetailsId; + + @ApiModelProperty("妫�娴嬩汉鍛�") + private String testMember; + + @ApiModelProperty("鐩戠潱鍛�") + private String supervisor; + + @ApiModelProperty("妫�娴嬮」鐩�") + private String testItem; + + @ApiModelProperty("鏍峰搧缂栧彿") + private String sampleNumber; + + @ApiModelProperty("妫�娴嬫棩鏈�") + private String testDate; + + @ApiModelProperty("妫�娴嬭繃绋�") + private String testingProcess; + + @ApiModelProperty("鎯呭喌璁板綍") + private String caseReload; + + @ApiModelProperty("浜哄憳") + private String personnel; + + @ApiModelProperty("浠櫒璁惧") + private String device; + + @ApiModelProperty("鐜") + private String environment; + + @ApiModelProperty("鏍峰搧閲囬泦") + private String sampleCollection; + + @ApiModelProperty("鏍峰搧鍑嗗") + private String samplePreparation; + + @ApiModelProperty("妫�娴嬫柟娉�") + private String detectionMethod; + + @ApiModelProperty("妫�娴嬭褰�") + private String inspectionRecord; + + @ApiModelProperty("妫�娴嬫姤鍛�") + private String examiningReport; + + @ApiModelProperty("鐩戠潱鎯呭喌璇勪环") + private String supervisionEvaluation; + + @ApiModelProperty("涓嶅悎鏍煎鐞嗘剰瑙�") + private String handlingAdvice; + + @ApiModelProperty("鎵瑰噯缁撹") + private String ratifyOpinion; + + @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉") + private Integer ratifyUserId; + + @ApiModelProperty("鎵瑰噯鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime ratifyTime; + + @ApiModelProperty("鏄惁绗﹀悎,0 涓嶇鍚�, 1绗﹀悎") + private Integer isAccording; + + @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�") + private Integer isFinish; + + @ApiModelProperty("鍒涘缓浜�") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("淇敼浜�") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("淇敼鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉") + @TableField(exist = false,select = false) + private String ratifyUserName; + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java b/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java new file mode 100644 index 0000000..a99b6df --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java @@ -0,0 +1,37 @@ +package com.ruoyi.process.schedule; + +import com.ruoyi.process.pojo.ProcessTotalSample; +import com.ruoyi.process.pojo.ProcessTotaldeal; +import com.ruoyi.process.service.ProcessTotalSampleService; +import com.ruoyi.process.service.ProcessTotaldealService; +import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +@Component +public class ProcessTotaldealSchedule { + + @Resource + private ProcessTotaldealService processTotaldealService; + + @Resource + private ProcessTotalSampleService processTotalSampleService; + + @Scheduled(cron = "0 0 2 1 * ?") //姣忔湀1鍙�2鐐� + public void processTotaldeal() { + ProcessTotaldeal processTotaldeal = new ProcessTotaldeal(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Calendar calendar = Calendar.getInstance(); + String formattedDate = sdf.format(calendar.getTime()); + processTotaldeal.setMonth(formattedDate); + processTotaldeal.setSubmitState("寰呮彁浜�"); + processTotaldealService.save(processTotaldeal); + ProcessTotalSample processTotalSample = new ProcessTotalSample(); + BeanUtils.copyProperties(processTotaldeal,processTotalSample); + processTotalSampleService.save(processTotalSample); + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java new file mode 100644 index 0000000..eb5292c --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.InconsistentDistributionDetail; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯冭鎯� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:33 + */ +public interface InconsistentDistributionDetailService extends IService<InconsistentDistributionDetail> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java new file mode 100644 index 0000000..f457c88 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java @@ -0,0 +1,64 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.InconsistentDistributionDto; +import com.ruoyi.process.pojo.InconsistentDistribution; + + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:20 + */ +public interface InconsistentDistributionService extends IService<InconsistentDistribution> { + + /** + * 涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇� + * @param page + * @param inconsistentDistribution + * @return + */ + IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, InconsistentDistribution inconsistentDistribution); + + /** + * 涓嶇鍚堥」鐨勫垎甯冩柊澧� + * @param inconsistentDistribution + * @return + */ + boolean addInconsistentDistribution(InconsistentDistributionDto inconsistentDistribution); + + /** + * 涓嶇鍚堥」鐨勫垎甯冧慨鏀� + * @param inconsistentDistribution + * @return + */ + boolean updateInconsistentDistribution(InconsistentDistributionDto inconsistentDistribution); + + /** + * 涓嶇鍚堥」鐨勫垎甯冨垹闄� + * @param distributionId + * @return + */ + boolean delInconsistentDistribution(Integer distributionId); + + /** + * 涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯� + * @param distributionId + * @return + */ + InconsistentDistributionDto getInconsistentDistributionOne(Integer distributionId); + + /** + * 瀵煎嚭涓嶇鍚堥」鐨勫垎甯� + * @param distributionId + * @param response + */ + void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderDetailService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderDetailService.java new file mode 100644 index 0000000..784a5e5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderDetailService.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.InspectionOrderDetail; + +/** + * <p> + * 妫�楠屽鎵樺崟璇︽儏琛� 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +public interface InspectionOrderDetailService extends IService<InspectionOrderDetail> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderService.java new file mode 100644 index 0000000..19c0809 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/InspectionOrderService.java @@ -0,0 +1,86 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.inspect.pojo.InsOrder; +import com.ruoyi.process.dto.InspectionOrderDto; +import com.ruoyi.process.pojo.InspectionOrder; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * <p> + * 妫�楠屽鎵樺崟 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +public interface InspectionOrderService extends IService<InspectionOrder> { + + /** + * 妫�楠屽鎵樺崟鍒嗛〉鏌ヨ + * @param page + * @param inspectionOrder + * @return + */ + IPage<InspectionOrderDto> pageInspectionOrder(Page page, InspectionOrder inspectionOrder); + + /** + * 妫�楠屽鎵樺崟鏂板 + * @param InspectionOrder + * @return + */ + boolean addInspectionOrder(InspectionOrderDto InspectionOrder); + + /** + * 妫�楠屽鎵樺崟淇敼 + * @param InspectionOrder + * @return + */ + boolean updateInspectionOrder(InspectionOrderDto InspectionOrder); + + /** + * 妫�楠屽鎵樺崟鍒犻櫎 + * @param inspectionOrderId + * @return + */ + boolean delInspectionOrder(Integer inspectionOrderId); + + /** + * 妫�楠屽鎵樺崟鏌ョ湅璇︽儏 + * @param inspectionOrderId + * @return + */ + InspectionOrderDto getInspectionOrderOne(Integer inspectionOrderId); + + /** + * 鏍规嵁鎴愬搧璁㈠崟id鏌ヨ濮旀墭鍗曚俊鎭� + * @param insOrderId + * @return + */ + InspectionOrderDto getInspectionOrderByInsOderId(Integer insOrderId); + + /** + * 濮旀墭鍗曟煡璇㈡垚鍝佽鍗� + * @return + */ + IPage<InsOrder> getInsOrderOnInspection(Page page, InsOrder insOrder); + + /** + * 濮旀墭鍗曟垚鍝佹姤鍛婁笂浼� + * @param file + * @param inspectionOrderId + * @return + */ + boolean uploadInspectionOrderFile(MultipartFile file, Integer inspectionOrderId); + + /** + * 瀵煎嚭妫�楠屽鎵樺崟 + * @param inspectionOrderId + * @param response + */ + void exportInspectionOrder(Integer inspectionOrderId, HttpServletResponse response); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java new file mode 100644 index 0000000..2f05571 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java @@ -0,0 +1,31 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.ProcessComplainDto; +import com.ruoyi.process.pojo.ProcessComplain; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * <p> + * 鎶曡瘔 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 09:29:11 + */ +public interface ProcessComplainService extends IService<ProcessComplain> { + + IPage<ProcessComplain> pageProcessComplain(Page page, ProcessComplain processComplain); + + int addProcessComplain(ProcessComplain processComplain); + + ProcessComplainDto getProcessComplain(Long id); + + int doProcessComplain(ProcessComplain processComplain); + + void exportProcessComplain(ProcessComplain processComplain, HttpServletResponse response) throws Exception; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java new file mode 100644 index 0000000..6029ae5 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java @@ -0,0 +1,27 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessDeal; + +import java.util.Map; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鏈嶅姟绫� + * </p> + * + * @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); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java new file mode 100644 index 0000000..5d3cc83 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java @@ -0,0 +1,29 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessEvaluate; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +/** + * <p> + * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 01:10:43 + */ +public interface ProcessEvaluateService extends IService<ProcessEvaluate> { + + IPage<ProcessEvaluate> pageProcessEvaluate(Page page, ProcessEvaluate processEvaluate); + + int addProcessEvaluate(MultipartFile file); + + int doProcessEvaluate(ProcessEvaluate processEvaluate); + + void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception; +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewArchivedService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewArchivedService.java new file mode 100644 index 0000000..3c7391b --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewArchivedService.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; + +/** + * <p> + * 鏍囧噯鏌ユ柊瀛樻。琛� 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:28:42 + */ +public interface ProcessMethodSearchNewArchivedService extends IService<ProcessMethodSearchNewArchived> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewBackupsService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewBackupsService.java new file mode 100644 index 0000000..0fdb93e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewBackupsService.java @@ -0,0 +1,16 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; + +/** + * <p> + * 鏍囧噯鏌ユ柊澶囦唤琛� 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:29:02 + */ +public interface ProcessMethodSearchNewBackupsService extends IService<ProcessMethodSearchNewBackups> { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java new file mode 100644 index 0000000..b52f917 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java @@ -0,0 +1,82 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.ProcessMethodSearchNewArchivedDto; +import com.ruoyi.process.dto.ProcessMethodSearchNewBackupsDto; +import com.ruoyi.process.pojo.ProcessMethodSearchNew; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 鏍囧噯鏌ユ柊 + * + * @author zhuo + * @since 2024-11-04 + */ +public interface ProcessMethodSearchNewService extends IService<ProcessMethodSearchNew> { + + /** + * 鏂板鏍囧噯鏌ユ柊 + * @param processMethodSearchNewList + * @return + */ + boolean addMethodSearchNew(List<ProcessMethodSearchNew> processMethodSearchNewList); + + /** + * 鏍囧噯鏌ユ柊鍒楄〃 + * @param processMethodSearchNew + * @return + */ + IPage<ProcessMethodSearchNew> pageMethodSearchNew(Page page, ProcessMethodSearchNewBackupsDto processMethodSearchNew); + + /** + * 鏍囧噯鏌ユ柊瀵煎嚭 + * @param archivedId + * @param response + */ + void exportMethodSearchNew(Integer archivedId, HttpServletResponse response); + + /** + * 瀵煎叆鏍囧噯鏌ユ柊 + * @param file + * @return + */ + boolean importMethodSearchNew(MultipartFile file); + + /** + * 鏂板鏍囧噯鏌ユ柊瀹℃壒娴佺▼ + * @param archived + * @return + */ + boolean addSearchNewArchived(ProcessMethodSearchNewArchived archived); + + /** + * 鏌ヨ瀛樻。 + * @param page + * @param archived + * @return + */ + IPage<ProcessMethodSearchNewArchivedDto> pageSearchNewArchived(Page page, ProcessMethodSearchNewArchivedDto archived); + + /** + * 鏌ヨ瀛樻。澶囦唤鍒楄〃 + * @param page + * @param backups + * @return + */ + IPage<ProcessMethodSearchNewBackups> pageSearchNewBackups(Page page, ProcessMethodSearchNewBackups backups); + + /** + * 瀛樻。鎵瑰噯 + * @param archived + * @return + */ + boolean ratifySearchNewArchivedr(ProcessMethodSearchNewArchived archived); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java new file mode 100644 index 0000000..76e60e0 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛� + * + * @author zhuo + * @since 2024-11-12 + */ +public interface ProcessMethodVerifyCalibrationsFileService extends IService<ProcessMethodVerifyCalibrationsFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java new file mode 100644 index 0000000..dfc9c5e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛� + * + * @author zhuo + * @since 2024-11-05 + */ +public interface ProcessMethodVerifyMachineAttachmentService extends IService<ProcessMethodVerifyMachineAttachment> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java new file mode 100644 index 0000000..5d0bbab --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; + +/** + * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛�(CnasProcessMethodVerifyMethodFile)$desc + * + * @author makejava + * @since 2024-11-05 10:52:44 + */ +public interface ProcessMethodVerifyMethodFileService extends IService<ProcessMethodVerifyMethodFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java new file mode 100644 index 0000000..bbbbfdb --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java @@ -0,0 +1,87 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.ProcessMethodVerifyDto; +import com.ruoyi.process.pojo.ProcessMethodVerify; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +public interface ProcessMethodVerifyService extends IService<ProcessMethodVerify> { + + /** + * 鏍囧噯鏂规硶璺熸柊楠岃瘉鍒楄〃 + * @param page + * @param methodVerifyDto + * @return + */ + IPage<ProcessMethodVerify> pagesMethodVerify(Page page, ProcessMethodVerifyDto methodVerifyDto); + + /** + * 鏂板鏍囧噯鏂规硶楠岃瘉 + * @param methodVerifyDto + * @return + */ + boolean addMethodSearchNew(ProcessMethodVerifyDto methodVerifyDto); + + /** + * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏 + * @param methodVerifyId + * @return + */ + ProcessMethodVerifyDto getMethodVerifyOne(Integer methodVerifyId); + + /** + * 淇敼鏍囧噯鏂规硶楠岃瘉 + * @param methodVerifyDto + * @return + */ + boolean updateMethodVerify(ProcessMethodVerifyDto methodVerifyDto); + + /** + * 鍒犻櫎鏍囧噯鏂规硶楠岃瘉 + * @param methodVerifyId + * @return + */ + boolean delMethodVerify(Integer methodVerifyId); + + /** + * 鏍囧噯鏂规硶楠岃瘉纭 + * @param methodVerifyId + * @return + */ + boolean methodVerifyAffirm(Integer methodVerifyId); + + /** + * 鏍囧噯鏂规硶楠岃瘉鏂板鍘熷璁板綍 + * @param methodVerifyId + * @param file + * @return + */ + boolean uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file); + + /** + * 鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃 + * @return + */ + List<ProcessMethodVerifyMethodFile> getVerifyMethodFileList(Integer methodVerifyId); + + /** + * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉 + * + * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id + * @param response + */ + void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java new file mode 100644 index 0000000..6d6b04f --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile; + +/** + * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃 + * + * @author zhuo + * @since 2024-11-12 + */ +public interface ProcessMethodVerifyWorkFileService extends IService<ProcessMethodVerifyWorkFile> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java new file mode 100644 index 0000000..610444e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java @@ -0,0 +1,24 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessReport; + +import java.util.List; +import java.util.Map; + +/** + * <p> + * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鏈嶅姟绫� + * </p> + * + * @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); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java new file mode 100644 index 0000000..5f5d922 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java @@ -0,0 +1,27 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessSample; + +import java.util.Map; + +/** + * <p> + * 鏍峰搧鎺ユ敹 鏈嶅姟绫� + * </p> + * + * @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); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java new file mode 100644 index 0000000..af83741 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java @@ -0,0 +1,27 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessTotalSample; + +import java.util.Map; + +/** + * <p> + * 鏍峰搧鎺ユ敹鎬昏〃 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:58 + */ +public interface ProcessTotalSampleService extends IService<ProcessTotalSample> { + + IPage<ProcessTotalSample> pageProcessTotalSample(Page page, ProcessTotalSample processTotalSample); + + int submitProcessTotalSample(Integer id); + + int checkProcessTotalSample(Integer id, String state); + + int ratifyProcessTotalSample(Integer id, String state); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java new file mode 100644 index 0000000..918e32f --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java @@ -0,0 +1,27 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.ProcessTotaldeal; + +import java.util.Map; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鏈嶅姟绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 03:59:09 + */ +public interface ProcessTotaldealService extends IService<ProcessTotaldeal> { + + IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, ProcessTotaldeal processTotaldeal); + + int checkProcessTotaldeal(Integer id, String state); + + int submitProcessTotaldeal(Integer id); + + int ratifyProcessTotaldeal(Integer id, String state); +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java new file mode 100644 index 0000000..6f6b47d --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛� + * + * @author zhuo + * @since 2024-11-06 + */ +public interface QualityMonitorDetailsEvaluateService extends IService<QualityMonitorDetailsEvaluate> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java new file mode 100644 index 0000000..8596cf2 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.QualityMonitorDetailsRatify; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛� + * + * @author zhuo + * @since 2024-11-06 + */ +public interface QualityMonitorDetailsRatifyService extends IService<QualityMonitorDetailsRatify> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java new file mode 100644 index 0000000..f3968e8 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.QualityMonitorDetails; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛� + * + * @author zhuo + * @since 2024-11-06 + */ +public interface QualityMonitorDetailsService extends IService<QualityMonitorDetails> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java new file mode 100644 index 0000000..8bd261e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java @@ -0,0 +1,160 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.QualityMonitorDto; +import com.ruoyi.process.pojo.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 璐ㄩ噺鐩戞帶璁″垝涓昏〃 + * + * @author zhuo + * @since 2024-11-06 + */ +public interface QualityMonitorService extends IService<QualityMonitor> { + + /** + * 瀵煎叆鐩戞帶璁″垝 + * @param file + * @return + */ + boolean importQualityMonitor(MultipartFile file, QualityMonitor qualityMonitor); + + + /** + * 鐩戞帶璁″垝瀹℃牳 + * @param qualityMonitor + * @return + */ + boolean examineQualityMonitor(QualityMonitor qualityMonitor); + + /** + * 鐩戞帶璁″垝鎵瑰噯 + * @param qualityMonitor + * @return + */ + boolean ratifyQualityMonitor(QualityMonitor qualityMonitor); + + /** + * 鐩戞帶璁″垝鍒楄〃 + * @param page + * @param qualityMonitor + * @return + */ + IPage<QualityMonitorDto> pageQualityMonitor(Page page, QualityMonitor qualityMonitor); + + /** + * 鐩戞帶璁″垝璇︽儏鍒楄〃 + * @param page + * @param qualityMonitorDetails + * @return + */ + IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails); + + + /** + * 瀵煎嚭鐩戞帶璁″垝 + * + * @param qualityMonitorId + * @param response + */ + void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response); + + + /************************************************************ 瀹炴柦 *******************************************************************/ + + /** + * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * @param qualityMonitorDetailsId + * @return + */ + QualityMonitorDetailsRatify getQualityMonitorRatify(Integer qualityMonitorDetailsId); + + /** + * 鏂板鐩戞帶璇︽儏瀹炴柦 + * @param qualityMonitorDetailsRatify + * @return + */ + boolean addQualityMonitorRatify(QualityMonitorDetailsRatify qualityMonitorDetailsRatify); + + /** + * 鐩戞帶璁″垝璇︽儏瀹炴柦鎰忚 + * @param qualityMonitorDetailsRatify + * @return + */ + boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify); + + /** + * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * + * @param detailsRatifyId 鐩戞帶璁″垝璇︽儏瀹炴柦id + * @param response + */ + void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response); + + + /************************************************************ 璇勪环 *******************************************************************/ + + /** + * + * @param qualityMonitorDetailsId + * @return + */ + QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId); + + /** + * 鏂板鐩戞帶璇勪环 + * @param qualityMonitorDetailsEvaluate + * @return + */ + boolean addQualityMonitorEvaluate(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate); + + /** + * 鐩戞帶璇勪环瀹℃壒鎰忚 + * @param qualityMonitorDetailsEvaluate + * @return + */ + boolean addMonitorEvaluateOpinion(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate); + + /** + * 鏂板鐩戞帶璇勪环闄勪欢琛� + * @param detailsEvaluateId + * @param file + * @return + */ + boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file); + + /** + * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃 + * @return + */ + List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId); + + + /** + * 瀵煎嚭鐩戞帶璇勪环 + * @param detailsEvaluateId 鐩戞帶璇勪环id + */ + void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response); + + /** + * 涓婁紶鐩戞帶瀹屾垚鎶ュ憡 + * @param file + * @param qualityMonitorDetailsId + * @return + */ + boolean uploadFinishReport(MultipartFile file, Integer qualityMonitorDetailsId); + + /** + * 鎵瑰噯瀹屾垚鎶ュ憡 + * @param qualityMonitorDetails + * @return + */ + boolean ratifyFinishReport(QualityMonitorDetails qualityMonitorDetails); +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java new file mode 100644 index 0000000..3bf040a --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java @@ -0,0 +1,15 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.pojo.QualitySuperviseDetails; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏琛� + * + * @author zhuo + * @since 2024-11-07 + */ +public interface QualitySuperviseDetailsService extends IService<QualitySuperviseDetails> { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java new file mode 100644 index 0000000..be09680 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java @@ -0,0 +1,201 @@ +package com.ruoyi.process.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.process.dto.QualitySuperviseDetailsDto; +import com.ruoyi.process.pojo.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * 璐ㄩ噺鐩戠潱涓昏〃 + * + * @author zhuo + * @since 2024-11-07 + */ +public interface QualitySuperviseService extends IService<QualitySupervise> { + + /** + * 瀵煎叆鐩戠潱璁″垝 + * @param file + * @return + */ + boolean importQualitySupervise(MultipartFile file, QualitySupervise qualitySupervise); + + /** + * 鐩戠潱璁″垝鎵瑰噯 + * @param qualitySupervise + * @return + */ + boolean ratifyQualitySupervise(QualitySupervise qualitySupervise); + + /** + * 鐩戠潱璁″垝鍒楄〃 + * @return + */ + IPage<QualitySupervise> pageQualitySupervise(Page page, QualitySupervise qualitySupervise); + + /** + * 鐩戠潱璁″垝璇︽儏鍒楄〃 + * @return + */ + IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, QualitySuperviseDetailsDto qualitySuperviseDetails); + + /** + * 鏌ヨ璇ヨ鍒掔洃鐫e憳 + * @param superviseDetailsId + * @return + */ + List<Map<String, String>> getRecordUser(Integer superviseDetailsId); + + /** + * 瀵煎嚭鐩戠潱璁″垝 + * @param superviseId + * @param response + */ + void exportQualitySupervise(Integer superviseId, HttpServletResponse response); + + /************************************************ 璁板綍 ******************************************************/ + + /** + * 鏌ヨ鐩戠潱璁板綍淇℃伅 + * @param superviseDetailsId + * @return + */ + QualitySuperviseDetailsRecord getSuperviseDetailRecord(Integer superviseDetailsId); + + /** + * 鏂板鐩戠潱璁板綍淇℃伅 + * @param qualitySuperviseDetailsRecord + * @return + */ + boolean addSuperviseDetailRecord(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord); + + /** + * 鐩戠潱璁板綍鎵瑰噯 + * @param qualitySuperviseDetailsRecord + * @return + */ + boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord); + + /** + * 瀵煎嚭鐩戠潱璁板綍琛� + * @param superviseDetailsId + * @param response + */ + void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response); + + /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/ + + /** + * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param qualitySuperviseDetailsAccording + * @return + */ + boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording); + + /** + * (瑁呭娴佺▼)鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param qualitySuperviseDetailsAccording + * @return + */ + boolean addEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording); + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param qualitySuperviseDetailsAccording + * @return + */ + boolean approverEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording); + + /** + * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param superviseDetailsId + * @return + */ + QualitySuperviseDetailsAccording getSuperviseDetailAccording(Integer superviseDetailsId); + + /** + * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛� + * @param detailsAccording + * @return + */ + IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, QualitySuperviseDetailsAccording detailsAccording); + + /** + * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param superviseDetailAccordingId + * @param response + */ + void superviseDetailAccordingExport(Integer superviseDetailAccordingId, HttpServletResponse response); + + /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/ + + /** + * 鏂板鐩戠潱绾犳澶勭悊淇℃伅 + * @param qualitySuperviseDetailsAccording + * @return + */ + boolean addSuperviseDetailCorrect(QualitySuperviseDetailsCorrect qualitySuperviseDetailsAccording); + + /** + * (瑁呭娴佺▼)鏂板鐩戠潱绾犳澶勭悊 + * @param qualitySuperviseDetailsCorrect + * @return + */ + boolean addEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect); + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱绾犳澶勭悊 + * @param qualitySuperviseDetailsCorrect + * @return + */ + boolean approveEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect); + + /** + * 鏌ヨ鐩戠潱绾犳澶勭悊 + * @param superviseDetailsId + * @return + */ + QualitySuperviseDetailsCorrect getSuperviseDetailCorrect(Integer superviseDetailsId); + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 + * @param page + * @param detailsCorrect + * @return + */ + IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailCorrect(Page page, QualitySuperviseDetailsCorrect detailsCorrect); + + /** + * 鏂板鐩戠潱绾犳鎺柦闄勪欢 + * @param superviseDetailsCorrectId + * @param file + * @return + */ + boolean uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file); + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢 + * @param superviseDetailsCorrectId + * @return + */ + List<QualitySuperviseDetailsCorrectFile> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId); + + /** + * 瀵煎嚭鐩戠潱绾犳鎺柦 + * @param superviseDetailsCorrectId + * @param response + */ + void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response); + + + + /************************************************* 璐ㄩ噺鐩戠潱璁板綍 ********************************************************/ + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java new file mode 100644 index 0000000..96d3f41 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodVerifyCalibrationsFileMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile; +import com.ruoyi.process.service.ProcessMethodVerifyCalibrationsFileService; +import org.springframework.stereotype.Service; + +/** + * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃(CnasProcessMethodVerifyCalibrationsFile)$desc + * + * @author makejava + * @since 2024-11-12 09:55:06 + */ +@Service +public class CnasProcessMethodVerifyCalibrationsFileServiceImpl extends ServiceImpl<ProcessMethodVerifyCalibrationsFileMapper, ProcessMethodVerifyCalibrationsFile> implements ProcessMethodVerifyCalibrationsFileService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java new file mode 100644 index 0000000..5400190 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile; +import com.ruoyi.process.service.ProcessMethodVerifyWorkFileService; +import org.springframework.stereotype.Service; + +/** + * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃(CnasProcessMethodVerifyWorkFile)$desc + * + * @author makejava + * @since 2024-11-12 09:55:06 + */ +@Service +public class CnasProcessMethodVerifyWorkFileServiceImpl extends ServiceImpl<ProcessMethodVerifyWorkFileMapper, ProcessMethodVerifyWorkFile> implements ProcessMethodVerifyWorkFileService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java new file mode 100644 index 0000000..193165f --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.InconsistentDistributionDetailMapper; +import com.ruoyi.process.pojo.InconsistentDistributionDetail; +import com.ruoyi.process.service.InconsistentDistributionDetailService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯冭鎯� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:33 + */ +@Service +public class InconsistentDistributionDetailServiceImpl extends ServiceImpl<InconsistentDistributionDetailMapper, InconsistentDistributionDetail> implements InconsistentDistributionDetailService { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java new file mode 100644 index 0000000..f108643 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java @@ -0,0 +1,231 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; + +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.process.dto.InconsistentDistributionDto; +import com.ruoyi.process.dto.InconsistentDistributionProportionDto; +import com.ruoyi.process.mapper.InconsistentDistributionMapper; +import com.ruoyi.process.pojo.InconsistentDistribution; +import com.ruoyi.process.pojo.InconsistentDistributionDetail; +import com.ruoyi.process.service.InconsistentDistributionDetailService; +import com.ruoyi.process.service.InconsistentDistributionService; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; + +/** + * <p> + * 涓嶇鍚堥」鐨勫垎甯� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 09:53:20 + */ +@Service +@AllArgsConstructor +@Transactional(rollbackFor = Exception.class) +public class InconsistentDistributionServiceImpl extends ServiceImpl<InconsistentDistributionMapper, InconsistentDistribution> implements InconsistentDistributionService { + + private InconsistentDistributionDetailService inconsistentDistributionDetailService; + + + /** + * 涓嶇鍚堥」鍒嗗竷鏌ヨ + * @param page + * @param inconsistentDistributionDto + * @return + */ + @Override + public IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, InconsistentDistribution inconsistentDistributionDto) { + return baseMapper.pageInconsistentDistribution(page, QueryWrappers.queryWrappers(inconsistentDistributionDto)); + } + + /** + * 涓嶇鍚堥」鍒嗗竷鏂板 + * @param inconsistentDistributionDto + * @return + */ + @Override + public boolean addInconsistentDistribution(InconsistentDistributionDto inconsistentDistributionDto) { + baseMapper.insert(inconsistentDistributionDto); + // 鏂板璇︽儏 + for (InconsistentDistributionDetail distributionDetail : inconsistentDistributionDto.getDistributionDetailList()) { + distributionDetail.setDistributionId(inconsistentDistributionDto.getDistributionId()); + } + inconsistentDistributionDetailService.saveBatch(inconsistentDistributionDto.getDistributionDetailList()); + return true; + } + + /** + * 涓嶇鍚堥」鍒嗗竷淇敼 + * @param inconsistentDistributionDto + * @return + */ + @Override + public boolean updateInconsistentDistribution(InconsistentDistributionDto inconsistentDistributionDto) { + inconsistentDistributionDetailService.updateBatchById(inconsistentDistributionDto.getDistributionDetailList()); + return true; + } + + /** + * 涓嶇鍚堥」鍒嗗竷鍒犻櫎 + * @param distributionId + * @return + */ + @Override + public boolean delInconsistentDistribution(Integer distributionId) { + inconsistentDistributionDetailService.remove(Wrappers.<InconsistentDistributionDetail>lambdaQuery() + .eq(InconsistentDistributionDetail::getDistributionId, distributionId)); + baseMapper.deleteById(distributionId); + return true; + } + + /** + * 涓嶇鍚堥」鍒嗗竷鏌ョ湅璇︽儏 + * @param distributionId + * @return + */ + @Override + public InconsistentDistributionDto getInconsistentDistributionOne(Integer distributionId) { + InconsistentDistributionDto distributionDto = new InconsistentDistributionDto(); + InconsistentDistribution inconsistentDistribution = baseMapper.selectById(distributionId); + BeanUtils.copyProperties(distributionDto, inconsistentDistribution); + // 鏌ヨ璇︾粏 + List<InconsistentDistributionDetail> distributionDetailList = inconsistentDistributionDetailService.list(Wrappers.<InconsistentDistributionDetail>lambdaQuery() + .eq(InconsistentDistributionDetail::getDistributionId, distributionId)); + + // 涓讳换姹囨�� + int directorSum = distributionDetailList.stream() + .filter(detail -> detail.getDirector() != null) + .mapToInt(InconsistentDistributionDetail::getDirector) + .sum(); + + // 鎶�鏈礋璐d汉姹囨�� + int technologySum = distributionDetailList.stream() + .filter(detail -> detail.getTechnology() != null) + .mapToInt(InconsistentDistributionDetail::getTechnology) + .sum(); + + // 璐ㄩ噺璐熻矗浜烘眹鎬� + int qualitySum = distributionDetailList.stream() + .filter(detail -> detail.getQuality() != null) + .mapToInt(InconsistentDistributionDetail::getQuality) + .sum(); + + // 缁煎悎瀹ゆ眹鎬� + int comprehensiveSum = distributionDetailList.stream() + .filter(detail -> detail.getComprehensive() != null) + .mapToInt(InconsistentDistributionDetail::getComprehensive) + .sum(); + + // 璇曢獙瀹ゆ眹鎬� + int testingSum = distributionDetailList.stream() + .filter(detail -> detail.getTesting() != null) + .mapToInt(InconsistentDistributionDetail::getTesting) + .sum(); + + // 鎬绘暟姹囨�� + int sum = directorSum + technologySum + qualitySum + comprehensiveSum + testingSum; + + //璁$畻鍚堣 + for (InconsistentDistributionDetail distributionDetail : distributionDetailList) { + // 鎬绘暟 + Integer total = (distributionDetail.getDirector() != null ? distributionDetail.getDirector() : 0) + + (distributionDetail.getTechnology() != null ? distributionDetail.getTechnology() : 0) + + (distributionDetail.getQuality() != null ? distributionDetail.getQuality() : 0) + + (distributionDetail.getComprehensive() != null ? distributionDetail.getComprehensive() : 0) + + (distributionDetail.getTesting() != null ? distributionDetail.getTesting() : 0); + distributionDetail.setTotal(total); + // 鍗犳瘮 + distributionDetail.setProportion(calculatePercentage(total, sum)); + } + // 娣诲姞鏈�鍚庝竴琛屽崰姣斿璞� + InconsistentDistributionProportionDto proportionDto = new InconsistentDistributionProportionDto(); + proportionDto.setEssentials("鍗犳瘮 %"); + proportionDto.setDirector(calculatePercentage(directorSum, sum)); + proportionDto.setTechnology(calculatePercentage(technologySum, sum)); + proportionDto.setQuality(calculatePercentage(qualitySum, sum)); + proportionDto.setComprehensive(calculatePercentage(comprehensiveSum, sum)); + proportionDto.setTesting(calculatePercentage(testingSum, sum)); + proportionDto.setTotal(sum); + + distributionDto.setDistributionDetailList(distributionDetailList); + distributionDto.setDistributionProportion(proportionDto); + + return distributionDto; + } + + /** + * 璁$畻鍗犳瘮 + * @return + */ + public BigDecimal calculatePercentage(Integer numeratorNum, Integer denominatorNum) { + BigDecimal numerator = new BigDecimal(numeratorNum); + BigDecimal denominator = new BigDecimal(denominatorNum); + + // 妫�鏌ラ櫎鏁版槸鍚︿负0 + if (denominator.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } + BigDecimal ratio = numerator.divide(denominator, 4, RoundingMode.HALF_UP); // 淇濈暀4浣嶅皬鏁� + BigDecimal percentage = ratio.multiply(new BigDecimal("100")); + BigDecimal percentageRounded = percentage.setScale(2, RoundingMode.HALF_UP); + return percentageRounded; + } + + + /** + * 瀵煎嚭涓嶇鍚堢殑鍒嗗竷 + * @param distributionId + * @param response + */ + @Override + public void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response) { + InconsistentDistributionDto inconsistentDistributionOne = getInconsistentDistributionOne(distributionId); + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/inconsistent-distribution.docx"); + Configure configure = Configure.builder() + .bind("distributionDetailList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("distributionDetailList", inconsistentDistributionOne.getDistributionDetailList()); + put("proport", inconsistentDistributionOne.getDistributionProportion()); + }}); + + 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("瀵煎嚭澶辫触"); + } + + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderDetailServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderDetailServiceImpl.java new file mode 100644 index 0000000..fff7d16 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderDetailServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.InspectionOrderDetailMapper; +import com.ruoyi.process.pojo.InspectionOrderDetail; +import com.ruoyi.process.service.InspectionOrderDetailService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 妫�楠屽鎵樺崟璇︽儏琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +@Service +public class InspectionOrderDetailServiceImpl extends ServiceImpl<InspectionOrderDetailMapper, InspectionOrderDetail> implements InspectionOrderDetailService { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java new file mode 100644 index 0000000..526aa38 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java @@ -0,0 +1,310 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.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.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.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 org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; + +/** + * <p> + * 妫�楠屽鎵樺崟 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-09 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class InspectionOrderServiceImpl extends ServiceImpl<InspectionOrderMapper, InspectionOrder> implements InspectionOrderService { + @Resource + private InspectionOrderDetailService inspectionOrderDetailService; + @Resource + private InsOrderService insOrderService; + @Resource + private InsReportService insReportService; + @Value("${wordUrl}") + private String wordUrl; + + + /** + * 妫�楠屽鎵樺崟鍒嗛〉鏌ヨ + * @param page + * @param InspectionOrder + * @return + */ + @Override + public IPage<InspectionOrderDto> pageInspectionOrder(Page page, InspectionOrder InspectionOrder) { + return baseMapper.pageInspectionOrder(page, QueryWrappers.queryWrappers(InspectionOrder)); + } + + /** + * 妫�楠屽鎵樺崟鏂板 + * @param inspectionOrder + * @return + */ + @Override + public boolean addInspectionOrder(InspectionOrderDto inspectionOrder) { + if (inspectionOrder.getInsOrderId() == null) { + throw new ErrorException("缂哄皯璁㈠崟id"); + } + + // 澶嶅埗鎶ュ憡 + // 鏌ヨ璁㈠崟鎶ュ憡 + InsReport insReport = insReportService.getOne(Wrappers.<InsReport>lambdaQuery() + .eq(InsReport::getInsOrderId, inspectionOrder.getInsOrderId())); + + String path = wordUrl + insReport.getUrl().replaceFirst("/word", ""); + + String fileName =LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + "濮旀墭鍗曟姤鍛�.docx"; + + // 婧愭枃浠惰矾寰� + Path sourcePath = Paths.get(path); + // 鐩爣鏂囦欢璺緞 + Path targetPath = Paths.get(wordUrl + "/" + fileName); + + try { + // 澶嶅埗鏂囦欢锛屽鏋滅洰鏍囨枃浠跺凡瀛樺湪锛屽垯瑕嗙洊 + Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING); + // 娣诲姞鏂囦欢鍦板潃 + inspectionOrder.setFileUrl("/word/" + fileName); + + } catch (Exception e) { + e.printStackTrace(); + } + + baseMapper.insert(inspectionOrder); + // 鏂板璇︽儏 + if (CollectionUtils.isNotEmpty(inspectionOrder.getOrderDetailList())) { + for (InspectionOrderDetail InspectionOrderDetail : inspectionOrder.getOrderDetailList()) { + InspectionOrderDetail.setInspectionOrderId(inspectionOrder.getInspectionOrderId()); + } + inspectionOrderDetailService.saveBatch(inspectionOrder.getOrderDetailList()); + } + + return true; + } + + /** + * 妫�楠屽鎵樺崟淇敼 + * @param InspectionOrder + * @return + */ + @Override + public boolean updateInspectionOrder(InspectionOrderDto InspectionOrder) { + baseMapper.updateById(InspectionOrder); + + // 鍒犻櫎涔嬪墠鐨勮鎯� + inspectionOrderDetailService.remove(Wrappers.<InspectionOrderDetail>lambdaQuery() + .eq(InspectionOrderDetail::getInspectionOrderId, InspectionOrder.getInspectionOrderId())); + + // 鏂板璇︽儏 + for (InspectionOrderDetail InspectionOrderDetail : InspectionOrder.getOrderDetailList()) { + InspectionOrderDetail.setInspectionOrderId(InspectionOrder.getInspectionOrderId()); + } + inspectionOrderDetailService.saveBatch(InspectionOrder.getOrderDetailList()); + + return true; + } + + /** + * 妫�楠屽鎵樺崟鍒犻櫎 + * @param inspectionOrderId + * @return + */ + @Override + public boolean delInspectionOrder(Integer inspectionOrderId) { + inspectionOrderDetailService.remove(Wrappers.<InspectionOrderDetail>lambdaQuery() + .eq(InspectionOrderDetail::getInspectionOrderId, inspectionOrderId)); + baseMapper.deleteById(inspectionOrderId); + return true; + } + + /** + * 妫�楠屽鎵樺崟鏌ョ湅璇︽儏 + * @param inspectionOrderId + * @return + */ + @Override + public InspectionOrderDto getInspectionOrderOne(Integer inspectionOrderId) { + InspectionOrder inspectionOrder = baseMapper.selectById(inspectionOrderId); + InspectionOrderDto inspectionOrderDto = new InspectionOrderDto(); + BeanUtils.copyProperties(inspectionOrder, inspectionOrderDto); + + // 鏌ヨ璇︾粏淇℃伅 + inspectionOrderDto.setOrderDetailList(inspectionOrderDetailService.list(Wrappers.<InspectionOrderDetail>lambdaQuery() + .eq(InspectionOrderDetail::getInspectionOrderId, inspectionOrderId))); + return inspectionOrderDto; + } + + /** + * 鏍规嵁鎴愬搧璁㈠崟id鏌ヨ濮旀墭鍗曡鎯� + * @param insOrderId + * @return + */ + @Override + public InspectionOrderDto getInspectionOrderByInsOderId(Integer insOrderId) { + InsOrder order = insOrderService.getById(insOrderId); + InspectionOrderDto inspectionOrderDto = new InspectionOrderDto(); + inspectionOrderDto.setInsOrderId(order.getId());//鎴愬搧璁㈠崟id + inspectionOrderDto.setEntrustCode(order.getEntrustCode());//濮旀墭缂栧彿 + inspectionOrderDto.setSampleName(order.getSample());//璇曟牱鍚嶇О + inspectionOrderDto.setProduction(order.getProduction());//鐢熶骇鍗曚綅 + inspectionOrderDto.setCommissionUnit(order.getCompany());//濮旀墭鍗曚綅 + inspectionOrderDto.setCommissionUser(order.getPrepareUser());//濮旀墭浜� + inspectionOrderDto.setSampleStatus("瀹屽ソ");//鏍峰搧鐘舵�� + inspectionOrderDto.setIsLeave(order.getIsLeave());//鏄惁鐣欐牱 + inspectionOrderDto.setProcessing(order.getProcessing());//鏍峰搧澶勭悊鏂瑰紡 + inspectionOrderDto.setAppointed(order.getAppointed());//绾﹀畾鏃堕棿 + inspectionOrderDto.setSend(order.getSend());//鎶ュ憡鍙戦�佹柟寮� + inspectionOrderDto.setCommissionPhone(order.getPhone());//鎶ュ憡鍙戦�佹柟寮� + + return inspectionOrderDto; + } + + + /** + * 濮旀墭鍗曟煡璇㈡垚鍝佽鍗� + * @return + */ + @Override + public IPage<InsOrder> getInsOrderOnInspection(Page page, InsOrder insOrder) { + return baseMapper.getInsOrderOnInspection(page, QueryWrappers.queryWrappers(insOrder)); + } + + /** + * 濮旀墭鍗曟垚鍝佹姤鍛婁笂浼� + * @param file + * @param inspectionOrderId + * @return + */ + @Override + public boolean uploadInspectionOrderFile(MultipartFile file, Integer inspectionOrderId) { + String urlString; + String pathName; + try { + String path = wordUrl; + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + + baseMapper.update(null, Wrappers.<InspectionOrder>lambdaUpdate() + .eq(InspectionOrder::getInspectionOrderId, inspectionOrderId) + .set(InspectionOrder::getFileUrl, "/word/" + pathName)); + + + + } catch (Exception e) { + throw new ErrorException("鏂囦欢涓婁紶澶辫触"); + } + return true; + } + + @Override + public void exportInspectionOrder(Integer inspectionOrderId, HttpServletResponse response) { + InspectionOrder inspectionOrder = baseMapper.selectById(inspectionOrderId); + InspectionOrderExportDto inspectionOrderExportDto = extracted(inspectionOrder); + List<InspectionOrderDetail> list = inspectionOrderDetailService.list(Wrappers.<InspectionOrderDetail>lambdaQuery() + .eq(InspectionOrderDetail::getInspectionOrderId, inspectionOrderId)); + int index = 1; + for (InspectionOrderDetail inspectionOrderDetail : list) { + inspectionOrderDetail.setIndex(index); + index++; + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/inspection-order.docx"); + Configure configure = Configure.builder() + .bind("inspectionOrderDetailList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("inspectionOrder", inspectionOrderExportDto); + put("inspectionOrderDetailList", list); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + inspectionOrderExportDto.getSampleName(), "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("瀵煎嚭澶辫触"); + } + } + + private InspectionOrderExportDto extracted(InspectionOrder inspectionOrder) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"); + InspectionOrderExportDto inspectionOrderExportDto = new InspectionOrderExportDto(); + BeanUtils.copyProperties(inspectionOrder, inspectionOrderExportDto); + + if (inspectionOrder.getCommissionDate() != null) { + inspectionOrderExportDto.setCommissionDateString(inspectionOrder.getCommissionDate().format(formatter)); + } + if (inspectionOrder.getReceiptData() != null) { + inspectionOrderExportDto.setReceiptDataString(inspectionOrder.getReceiptData().format(formatter)); + } + if (inspectionOrder.getSampleData() != null) { + inspectionOrderExportDto.setSampleDataString(inspectionOrder.getSampleData().format(formatter)); + } + if (inspectionOrder.getAppointed() != null) { + inspectionOrderExportDto.setAppointedString(inspectionOrder.getAppointed().format(formatter)); + } + + inspectionOrderExportDto.setIsLeave1(inspectionOrder.getIsLeave() != null && inspectionOrder.getIsLeave() == 1? "鈽�" : "鈻�"); + inspectionOrderExportDto.setIsLeave2(inspectionOrder.getIsLeave() != null && inspectionOrder.getIsLeave() == 0? "鈽�" : "鈻�"); + inspectionOrderExportDto.setSend0(inspectionOrder.getSend() != null && inspectionOrder.getSend() == 1? "鈽�" : "鈻�"); + inspectionOrderExportDto.setSend1(inspectionOrder.getSend() != null && inspectionOrder.getSend() == 0? "鈽�" : "鈻�"); + inspectionOrderExportDto.setProcessing0(inspectionOrder.getProcessing() != null && inspectionOrder.getProcessing() == 0? "鈽�" : "鈻�"); + inspectionOrderExportDto.setProcessing1(inspectionOrder.getProcessing() != null && inspectionOrder.getProcessing() == 1? "鈽�" : "鈻�"); + inspectionOrderExportDto.setCriterionRule0(inspectionOrder.getCriterionRule() != null && inspectionOrder.getCriterionRule() == 0? "鈽�" : "鈻�"); + inspectionOrderExportDto.setCriterionRule1(inspectionOrder.getCriterionRule() != null && inspectionOrder.getCriterionRule() == 1? "鈽�" : "鈻�"); + return inspectionOrderExportDto; + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java new file mode 100644 index 0000000..5dd627c --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java @@ -0,0 +1,105 @@ +package com.ruoyi.process.service.impl; + +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.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.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.mapper.InsReportMapper; +import com.ruoyi.inspect.mapper.InsSampleMapper; +import com.ruoyi.inspect.pojo.InsReport; +import com.ruoyi.inspect.pojo.InsSample; +import com.ruoyi.process.dto.ProcessComplainDto; +import com.ruoyi.process.mapper.ProcessComplainMapper; +import com.ruoyi.process.pojo.ProcessComplain; +import com.ruoyi.process.service.ProcessComplainService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +/** + * <p> + * 鎶曡瘔 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 09:29:11 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessComplainServiceImpl extends ServiceImpl<ProcessComplainMapper, ProcessComplain> implements ProcessComplainService { + + @Resource + private ProcessComplainMapper processComplainMapper; + + @Resource + private InsReportMapper insReportMapper; + + @Resource + private InsSampleMapper insSampleMapper; + + + @Override + public IPage<ProcessComplain> pageProcessComplain(Page page, ProcessComplain processComplain) { + return processComplainMapper.pageProcessComplain(page, QueryWrappers.queryWrappers(processComplain)); + } + + @Override + public int addProcessComplain(ProcessComplain processComplain) { + //鍒ゆ柇鎶ュ憡缂栧彿鍜屾牱鍝佺紪鍙锋槸鍚﹀瓨鍦� + InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().eq(InsReport::getCode, processComplain.getCode())); + if (ObjectUtils.isEmpty(insReport)) { + throw new ErrorException("鎶ュ憡缂栧彿杈撳叆鏈夎"); + } + processComplain.setInsReportId(insReport.getId()); + InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, processComplain.getSampleCode())); + if (ObjectUtils.isEmpty(insSample)) { + throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎"); + } + //鎶曡瘔缂栧彿鐢熸垚 + //todo giveCode +// String giveCode = this.giveCode.giveCode("JCZX-", "cnas_process_complain", "", "yyMMdd"); +// processComplain.setComplainNo(giveCode); + return processComplainMapper.insert(processComplain); + } + + @Override + public ProcessComplainDto getProcessComplain(Long id) { + return processComplainMapper.getProcessComplain(id); + } + + @Override + public int doProcessComplain(ProcessComplain processComplain) { + return processComplainMapper.updateById(processComplain); + } + + @Override + public void exportProcessComplain(ProcessComplain processComplain, HttpServletResponse response) throws Exception { + List<ProcessComplain> data = processComplainMapper.pageProcessComplain(new Page(-1, -1), QueryWrappers.queryWrappers(processComplain)).getRecords(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + 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(); + WriteSheet mainSheet = EasyExcel.writerSheet(0, "鎶曡瘔鍒楄〃瀵煎嚭").head(ProcessComplain.class).build(); + excelWriter.write(data, mainSheet); + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java new file mode 100644 index 0000000..2144a7e --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java @@ -0,0 +1,104 @@ +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.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.process.mapper.ProcessDealMapper; +import com.ruoyi.process.mapper.ProcessTotaldealMapper; +import com.ruoyi.process.pojo.ProcessDeal; +import com.ruoyi.process.pojo.ProcessTotaldeal; +import com.ruoyi.process.service.ProcessDealService; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @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)); + 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)); + 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()); + ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId()); + processTotaldeal.setTotalNum(processTotaldeal.getTotalNum() - oldProcessDeal.getNum() + processDeal.getNum()); + processTotaldealMapper.updateById(processTotaldeal); + } + return processDealMapper.updateById(processDeal); + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java new file mode 100644 index 0000000..343a4c6 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java @@ -0,0 +1,99 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.lang.UUID; +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.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.process.mapper.ProcessEvaluateMapper; +import com.ruoyi.process.pojo.ProcessEvaluate; +import com.ruoyi.process.service.ProcessEvaluateService; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 01:10:43 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessEvaluateServiceImpl extends ServiceImpl<ProcessEvaluateMapper, ProcessEvaluate> implements ProcessEvaluateService { + + @Resource + private ProcessEvaluateMapper processEvaluateMapper; + + @Value("${wordUrl}") + private String wordUrl; + + @Override + public IPage<ProcessEvaluate> pageProcessEvaluate(Page page, ProcessEvaluate processEvaluate) { + return processEvaluateMapper.pageProcessEvaluate(page, QueryWrappers.queryWrappers(processEvaluate)); + } + + @Override + public int addProcessEvaluate(MultipartFile file) { + String urlString; + String pathName; + String path=wordUrl; + ProcessEvaluate processEvaluate = new ProcessEvaluate(); + processEvaluate.setReportName(file.getOriginalFilename()); + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + processEvaluate.setReportUrl(pathName); + return processEvaluateMapper.insert(processEvaluate); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return 0; + } + } + + @Override + public int doProcessEvaluate(ProcessEvaluate processEvaluate) { + return processEvaluateMapper.updateById(processEvaluate); + } + + @Override + public void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception{ + List<ProcessEvaluate> data = processEvaluateMapper.pageProcessEvaluate(new Page(-1, -1), QueryWrappers.queryWrappers(processEvaluate)).getRecords(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + 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(); + WriteSheet mainSheet = EasyExcel.writerSheet(0, "娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹氬鍑�").head(ProcessEvaluate.class).build(); + excelWriter.write(data, mainSheet); + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewArchivedServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewArchivedServiceImpl.java new file mode 100644 index 0000000..a2903e8 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewArchivedServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodSearchNewArchivedMapper; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import com.ruoyi.process.service.ProcessMethodSearchNewArchivedService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 鏍囧噯鏌ユ柊瀛樻。琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:28:42 + */ +@Service +public class ProcessMethodSearchNewArchivedServiceImpl extends ServiceImpl<ProcessMethodSearchNewArchivedMapper, ProcessMethodSearchNewArchived> implements ProcessMethodSearchNewArchivedService { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewBackupsServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewBackupsServiceImpl.java new file mode 100644 index 0000000..c5355d3 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewBackupsServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodSearchNewBackupsMapper; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; +import com.ruoyi.process.service.ProcessMethodSearchNewBackupsService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 鏍囧噯鏌ユ柊澶囦唤琛� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-12-25 05:29:02 + */ +@Service +public class ProcessMethodSearchNewBackupsServiceImpl extends ServiceImpl<ProcessMethodSearchNewBackupsMapper, ProcessMethodSearchNewBackups> implements ProcessMethodSearchNewBackupsService { + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java new file mode 100644 index 0000000..4d8a602 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java @@ -0,0 +1,370 @@ +package com.ruoyi.process.service.impl; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.alibaba.excel.util.FileUtils; +import com.alibaba.excel.util.ListUtils; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.UserUtils; +import com.ruoyi.process.dto.ProcessMethodSearchNewArchivedDto; +import com.ruoyi.process.dto.ProcessMethodSearchNewBackupsDto; +import com.ruoyi.process.mapper.ProcessMethodSearchNewArchivedMapper; +import com.ruoyi.process.mapper.ProcessMethodSearchNewBackupsMapper; +import com.ruoyi.process.mapper.ProcessMethodSearchNewMapper; +import com.ruoyi.process.pojo.ProcessMethodSearchNew; +import com.ruoyi.process.pojo.ProcessMethodSearchNewArchived; +import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups; +import com.ruoyi.process.service.ProcessMethodSearchNewBackupsService; +import com.ruoyi.process.service.ProcessMethodSearchNewService; +import org.springframework.beans.BeanUtils; +import org.springframework.core.io.ClassPathResource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 鏍囧噯鏌ユ柊 + * + * @author zhuo + * @since 2024-11-04 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessMethodSearchNewServiceImpl extends ServiceImpl<ProcessMethodSearchNewMapper, ProcessMethodSearchNew> implements ProcessMethodSearchNewService { + + @Resource + private ProcessMethodSearchNewArchivedMapper processMethodSearchNewArchivedMapper; + @Resource + private ProcessMethodSearchNewBackupsService processMethodSearchNewBackupsService; + @Resource + private ProcessMethodSearchNewBackupsMapper processMethodSearchNewBackupsMapper; + + /** + * 鏂板鏍囧噯鏌ユ柊 + * + * @param processMethodSearchNewList + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addMethodSearchNew(List<ProcessMethodSearchNew> processMethodSearchNewList) { + for (ProcessMethodSearchNew processMethodSearchNew : processMethodSearchNewList) { + processMethodSearchNew.setIsNewStandard(1); + } + // 鏂板 + this.saveBatch(processMethodSearchNewList); + return true; + } + + /** + * 鏍囧噯鏌ユ柊鍒楄〃 + * + * @param processMethodSearchNew + * @return + */ + @Override + public IPage<ProcessMethodSearchNew> pageMethodSearchNew(Page page, ProcessMethodSearchNewBackupsDto processMethodSearchNew) { + String beginDate = processMethodSearchNew.getBeginDate(); + String endDate = processMethodSearchNew.getEndDate(); + processMethodSearchNew.setBeginDate(null); + processMethodSearchNew.setEndDate(null); + return baseMapper.pageMethodSearchNew(page, QueryWrappers.queryWrappers(processMethodSearchNew), beginDate, endDate); + } + + /** + * 鏍囧噯鏌ユ柊瀵煎嚭 + * + * @param archivedId + * @param response + */ + @Override + public void exportMethodSearchNew(Integer archivedId, HttpServletResponse response) { + // 鏌ヨ鏍囧噯鏌ユ柊瀛樻。淇℃伅 + DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + ProcessMethodSearchNewArchived methodSearchNewArchived = processMethodSearchNewArchivedMapper.selectById(archivedId); + Integer writeUserId = methodSearchNewArchived.getWriteUserId(); + Integer ratifyUserId = methodSearchNewArchived.getRatifyUserId(); + String writeDate = methodSearchNewArchived.getWriteTime() == null ? + null : methodSearchNewArchived.getWriteTime().format(timeFormatter); + String ratifyDate =methodSearchNewArchived.getRatifyTime() == null ? + null : methodSearchNewArchived.getRatifyTime().format(timeFormatter); + // 鏌ヨ瀛樻。澶囦唤 + List<ProcessMethodSearchNewBackups> methodSearchNewBackups = processMethodSearchNewBackupsMapper.selectList(Wrappers.<ProcessMethodSearchNewBackups>lambdaQuery() + .eq(ProcessMethodSearchNewBackups::getArchivedId, archivedId)); + + int index = 1; + // 鏍煎紡鍖栧弬鏁� + List<ProcessMethodSearchNewBackupsDto> methodSearchNews = new ArrayList<>(); + for (ProcessMethodSearchNewBackups methodSearchNew : methodSearchNewBackups) { + ProcessMethodSearchNewBackupsDto searchNewBackupsDto = new ProcessMethodSearchNewBackupsDto(); + BeanUtils.copyProperties(methodSearchNew, searchNewBackupsDto); + // 鏄惁鏄窡鏂版爣鍑� + if (methodSearchNew.getIsNewStandard().equals(1)) { + searchNewBackupsDto.setIsNewStandardString("鏄�"); + } else { + searchNewBackupsDto.setIsNewStandardString("鍚�"); + } + + // 澶囨敞 + if (methodSearchNew.getRemark() != null) { + if (methodSearchNew.getRemark().equals(1)) { + searchNewBackupsDto.setRemarkString("鏇挎崲"); + } else { + searchNewBackupsDto.setRemarkString("浣滃簾"); + } + } + switch (methodSearchNew.getSearchNewSource()) { + case 0: + searchNewBackupsDto.setStandardNet("鈭�"); + break; + case 1: + searchNewBackupsDto.setInformationOffices("鈭�"); + break; + case 2: + searchNewBackupsDto.setStandardBookstore("鈭�"); + break; + case 3: + searchNewBackupsDto.setOther("鈭�"); + break; + } + searchNewBackupsDto.setIndex(index); + methodSearchNews.add(searchNewBackupsDto); + index++; + + } + // 鏌ヨ绛惧悕鍦板潃 + String writeUserUrl = UserUtils.getUserSignatureUrl(writeUserId); + String ratifyUserUrl = UserUtils.getUserSignatureUrl(ratifyUserId); + + //鍒涘缓ExcelWriter 鍙互鑷姩鍏虫祦浣嗚繕鏄墜鍔ㄥ叧涓�娆� + ExcelWriter excelWriter = null; + + try { + // outputStream锛氳瀵煎嚭鐨勬枃浠剁殑杈撳嚭娴� + OutputStream outputStream = response.getOutputStream(); + // 鑾峰彇妯$増鏂囦欢 + ClassPathResource classPathResource = new ClassPathResource("/static/excel/check-records.xlsx"); + // 浣跨敤妯$増鏂囦欢鐨勪袱绉嶆柟寮忥細 + // 1銆佹枃浠惰矾寰勶細.withTemplate(templateFileName) + // 2銆佽緭鍏ユ祦锛�.withTemplate(inputStream) + // String templateFileName = classPathResource.getFile().getPath(); + InputStream inputStream = classPathResource.getInputStream(); + // 鍒涘缓ExcelWriter + excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).build(); + // 鑾峰彇绗竴涓猻heet椤� + WriteSheet writeSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").build(); + //excelWriter.fill() 杩欏湴鏂瑰氨鏄~鍏呭睘鎬с�� +// excelWriter.fill(methodSearchNews, fillConfig, writeSheet); // 杩欓噷fillConfig鏄厤缃枃浠� + excelWriter.fill(methodSearchNews, writeSheet); + + // 杩欓噷easy excel妯℃澘瀵煎嚭闂 浼氬垹闄ゅ悗闈㈠唴瀹瑰啀杩涜杩涜濉厖 + // 鎵�浠ist 鍚庨潰杩樻湁鏁版嵁 鎯冲姙娉曟墜鍔ㄥ啓鍏� + // 鎵嬪姩鍒涘缓涓�涓猯ist 瀛樻斁鏁版嵁 鐒跺悗鍐嶈繘琛屽~鍏� + // 杩欓噷List<Object>鍙互鐢ㄥ璞′唬鏇� 鍋锋噿鐢╨ist + List<List<Object>> totalListList = ListUtils.newArrayList(); + List<Object> totalList = ListUtils.newArrayList(); + totalListList.add(totalList); + // 绗竴鍒� + totalList.add("缂栧埗浜猴細"); + // 绗簩鍒� 璁剧疆绛惧悕 + if (StringUtils.isNotBlank(writeUserUrl)) { + totalList.add(FileUtils.readFileToByteArray(new File(writeUserUrl))); + } + // 绗笁鍒� + totalList.add("鏃ユ湡锛�"); + // 绗簲鍒� + totalList.add(writeDate); + // 绗叚鍒� + totalList.add("瀹℃牳锛�"); + // 绗竷鍒� + if (StringUtils.isNotBlank(ratifyUserUrl)) { + totalList.add(FileUtils.readFileToByteArray(new File(ratifyUserUrl))); + } + // 绗叓鍒� + totalList.add("鏃ユ湡锛�"); + // 绗節鍒� + totalList.add(ratifyDate); + // 杩欓噷杩藉姞鏄痺rite 鍒拰fill 鎼為敊浜� + excelWriter.write(totalListList, writeSheet); + + // 璁剧疆杈撳嚭娴佹牸寮忎互鍙婃枃浠跺悕锛� + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode( + "鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".xlsx"); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + // 鍗冧竾鍒繕璁癱lose鍏抽棴娴� + if (excelWriter != null) { + excelWriter.close(); + + } + } + } + + + /** + * 瀵煎叆鏍囧噯鏌ユ柊 + * + * @param file + * @return + */ + @Override + public boolean importMethodSearchNew(MultipartFile file) { + + List<ProcessMethodSearchNewBackupsDto> searchNewDtoList = new ArrayList<>(); + + try { + // excel瑙f瀽 + EasyExcel.read(file.getInputStream(), ProcessMethodSearchNewBackupsDto.class, new AnalysisEventListener<ProcessMethodSearchNewBackupsDto>() { + @Override + public void invoke(ProcessMethodSearchNewBackupsDto searchNewDto, AnalysisContext analysisContext) { + searchNewDtoList.add(searchNewDto); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + + } + }).sheet().doRead(); + // 鏍煎紡鍖栨煡鏂板璞� + List<ProcessMethodSearchNew> collect = searchNewDtoList.stream().map(searchNewDto -> { + ProcessMethodSearchNew searchNew = new ProcessMethodSearchNew(); + BeanUtils.copyProperties(searchNewDto, searchNew); + // 鏄惁鏄洿鏂� + if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) { + if (searchNewDto.getIsNewStandardString().equals("鏄�")) { + searchNew.setIsNewStandard(1); + } else { + searchNew.setIsNewStandard(0); + } + } + // 鏌ユ柊璁板綍 + if (StringUtils.isNotBlank(searchNewDto.getStandardNet())) { + searchNew.setSearchNewSource(0); + } else if (StringUtils.isNotBlank(searchNewDto.getInformationOffices())) { + searchNew.setSearchNewSource(1); + } else if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) { + searchNew.setSearchNewSource(2); + } else if (StringUtils.isNotBlank(searchNewDto.getOther())) { + searchNew.setSearchNewSource(3); + } + + // 澶囨敞 + if (StringUtils.isNotBlank(searchNewDto.getRemarkString())) { + if (searchNewDto.getRemarkString().equals("鏇挎崲")) { + searchNew.setRemark(1); + } else if (searchNewDto.getRemarkString().equals("浣滃簾")) { + searchNew.setRemark(0); + } + } + + return searchNew; + }).collect(Collectors.toList()); + this.saveBatch(collect); + + } catch (IOException e) { + throw new RuntimeException(e); + } + return true; + } + + /** + * 鏂板鏍囧噯鏌ユ柊瀹℃壒娴佺▼ + * @param archived + * @return + */ + @Override + public boolean addSearchNewArchived(ProcessMethodSearchNewArchived archived) { + // 鏂板瀛樻。 + Integer userId = SecurityUtils.getUserId().intValue(); + archived.setWriteUserId(userId); + archived.setWriteTime(LocalDateTime.now()); + processMethodSearchNewArchivedMapper.insert(archived); + + // 鏌ヨ鎵�鏈夌殑鏍囧噯鏌ユ柊 + List<ProcessMethodSearchNew> searchNewList = this.list(); + + // 鏂板澶嶅埗 + List<ProcessMethodSearchNewBackups> methodSearchNewBackups = searchNewList.stream().map(processMethodSearchNew -> { + ProcessMethodSearchNewBackups backups = new ProcessMethodSearchNewBackups(); + BeanUtils.copyProperties(processMethodSearchNew, backups); + backups.setArchivedId(archived.getArchivedId()); + return backups; + }).collect(Collectors.toList()); + processMethodSearchNewBackupsService.saveBatch(methodSearchNewBackups); + + return true; + } + + /** + * 鏌ヨ瀛樻。 + * @param page + * @param archived + * @return + */ + @Override + public IPage<ProcessMethodSearchNewArchivedDto> pageSearchNewArchived(Page page, ProcessMethodSearchNewArchivedDto archived) { + return processMethodSearchNewArchivedMapper.pageSearchNewArchived(page, QueryWrappers.queryWrappers(archived)); + } + + /** + * 鏌ヨ瀛樻。澶囦唤鍒楄〃 + * @param page + * @param backups + * @return + */ + @Override + public IPage<ProcessMethodSearchNewBackups> pageSearchNewBackups(Page page, ProcessMethodSearchNewBackups backups) { + if (backups.getArchivedId() == null) { + throw new ErrorException("缂哄皯瀛樻。id"); + } + return processMethodSearchNewBackupsMapper.pageSearchNewBackups(page, QueryWrappers.queryWrappers(backups)); + } + + /** + * 瀛樻。鎵瑰噯 + * @param archived + * @return + */ + @Override + public boolean ratifySearchNewArchivedr(ProcessMethodSearchNewArchived archived) { + // 褰撳墠鐧诲綍鐢ㄦ埛 + Integer userId = SecurityUtils.getUserId().intValue(); + processMethodSearchNewArchivedMapper.update(null, Wrappers.<ProcessMethodSearchNewArchived>lambdaUpdate() + .eq(ProcessMethodSearchNewArchived::getArchivedId, archived.getArchivedId()) + .set(ProcessMethodSearchNewArchived::getRatifyUserId, userId) + .set(ProcessMethodSearchNewArchived::getRatifyRemark, archived.getRatifyRemark()) + .set(ProcessMethodSearchNewArchived::getRatifyStatus, archived.getRatifyStatus()) + .set(ProcessMethodSearchNewArchived::getRatifyTime, LocalDateTime.now()) + ); + return true; + } +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java new file mode 100644 index 0000000..67ff06c --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodVerifyMachineAttachmentMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment; +import com.ruoyi.process.service.ProcessMethodVerifyMachineAttachmentService; +import org.springframework.stereotype.Service; + +/** + * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛� + * + * @author zhuo + * @since 2024-11-05 + */ +@Service +public class ProcessMethodVerifyMachineAttachmentServiceImpl extends ServiceImpl<ProcessMethodVerifyMachineAttachmentMapper, ProcessMethodVerifyMachineAttachment> implements ProcessMethodVerifyMachineAttachmentService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java new file mode 100644 index 0000000..9a68506 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.ProcessMethodVerifyMethodFileMapper; +import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile; +import com.ruoyi.process.service.ProcessMethodVerifyMethodFileService; +import org.springframework.stereotype.Service; + +/** + * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛� + * + * @author makejava + * @since 2024-11-05 + */ +@Service +public class ProcessMethodVerifyMethodFileServiceImpl extends ServiceImpl<ProcessMethodVerifyMethodFileMapper, ProcessMethodVerifyMethodFile> implements ProcessMethodVerifyMethodFileService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java new file mode 100644 index 0000000..ada2339 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java @@ -0,0 +1,454 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.bean.BeanUtil; +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.deepoove.poi.data.PictureRenderData; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.device.mapper.DeviceMapper; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.inspect.util.UserUtils; +import com.ruoyi.process.dto.ProcessMethodVerifyDto; +import com.ruoyi.process.dto.ProcessMethodVerifyExportWordDto; +import com.ruoyi.process.mapper.ProcessMethodVerifyCalibrationsFileMapper; +import com.ruoyi.process.mapper.ProcessMethodVerifyMapper; +import com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.*; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * 鏍囧噯鏂规硶楠岃瘉 + * + * @author zhuo + * @since 2024-11-05 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessMethodVerifyServiceImpl extends ServiceImpl<ProcessMethodVerifyMapper, ProcessMethodVerify> implements ProcessMethodVerifyService { + + @Resource + private ProcessMethodVerifyCalibrationsFileService processMethodVerifyCalibrationsFileService; + @Resource + private ProcessMethodVerifyMethodFileService processMethodVerifyMethodFileService; + @Resource + private ProcessMethodVerifyWorkFileService processMethodVerifyWorkFileService; + @Resource + private ProcessMethodVerifyMachineAttachmentService processMethodVerifyMachineAttachmentService; + @Resource + private ProcessMethodVerifyCalibrationsFileMapper processMethodVerifyCalibrationsFileMapper; + @Resource + private ProcessMethodVerifyWorkFileMapper processMethodVerifyWorkFileMapper; + @Resource + private DeviceMapper deviceMapper; + + @Resource + private UserMapper userMapper; + + @Value("${file.path}") + private String imgUrl; + + @Value("${wordUrl}") + private String wordUrl; + + + /** + * 鏍囧噯鏂规硶璺熸柊楠岃瘉淇敼 + * + * @param page + * @param methodVerifyDto + * @return + */ + @Override + public IPage<ProcessMethodVerify> pagesMethodVerify(Page page, ProcessMethodVerifyDto methodVerifyDto) { + if (methodVerifyDto.getOperationType() == null) { + throw new ErrorException("璇烽�夋嫨鏄彉鏇磋繕鏄獙璇�"); + } + return baseMapper.pagesMethodVerify(page, QueryWrappers.queryWrappers(methodVerifyDto)); + } + + /** + * 鏂板鏍囧噯鏂规硶楠岃瘉 + * + * @param methodVerifyDto + * @return + */ + @Override + public boolean addMethodSearchNew(ProcessMethodVerifyDto methodVerifyDto) { + if (methodVerifyDto.getOperationType() == null) { + throw new ErrorException("璇烽�夋嫨鏄彉鏇磋繕鏄獙璇�"); + } + // 鏂板 + baseMapper.insert(methodVerifyDto); + + // 鍒ゆ柇纭浜烘槸鍚︿负绌� + if (StringUtils.isNotBlank(methodVerifyDto.getConfirmUser())) { + // 娣诲姞涓婂矖璇� + this.addWorkFile(methodVerifyDto); + } + + // 鏂板璁惧淇℃伅 + if (CollectionUtils.isNotEmpty(methodVerifyDto.getMachineAttachmentList())) { + this.addDevice(methodVerifyDto); + } + + return true; + } + + /** + * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏 + * + * @param methodVerifyId + * @return + */ + @Override + public ProcessMethodVerifyDto getMethodVerifyOne(Integer methodVerifyId) { + ProcessMethodVerify processMethodVerify = baseMapper.selectById(methodVerifyId); + ProcessMethodVerifyDto processMethodVerifyDto = new ProcessMethodVerifyDto(); + BeanUtil.copyProperties(processMethodVerify, processMethodVerifyDto); + + // 鏌ヨ璁惧璇︽儏 + processMethodVerifyDto.setMachineAttachmentList(processMethodVerifyMachineAttachmentService.list(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery() + .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId))); + // 鏌ヨ鍘熷璁板綍 + processMethodVerifyDto.setMethodFileList(processMethodVerifyMethodFileService.list(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery() + .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId))); + // 鏌ヨ涓婂矖璇� + processMethodVerifyDto.setWorkFileList(processMethodVerifyWorkFileService.list(Wrappers.<ProcessMethodVerifyWorkFile>lambdaQuery() + .eq(ProcessMethodVerifyWorkFile::getMethodVerifyId, methodVerifyId))); + // 鏌ヨ鏍″噯璇佷功 + processMethodVerifyDto.setCalibrationsFileList(processMethodVerifyCalibrationsFileMapper.selectCalibrationsFileList(methodVerifyId)); + + + return processMethodVerifyDto; + } + + /** + * 淇敼鏍囧噯鏂规硶楠岃瘉 + * + * @param methodVerifyDto + * @return + */ + @Override + public boolean updateMethodVerify(ProcessMethodVerifyDto methodVerifyDto) { + baseMapper.updateById(methodVerifyDto); + + // 鍒犻櫎涓婂矖璇� + processMethodVerifyWorkFileService.remove(Wrappers.<ProcessMethodVerifyWorkFile>lambdaQuery() + .eq(ProcessMethodVerifyWorkFile::getMethodVerifyId, methodVerifyDto.getMethodVerifyId())); + + // 鍒犻櫎鍘熸湰璁惧璇︽儏 + processMethodVerifyMachineAttachmentService.remove(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery() + .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyDto.getMethodVerifyId())); + + // 鍒犻櫎鍏冩牎鍑嗚瘉涔� + processMethodVerifyCalibrationsFileService.remove(Wrappers.<ProcessMethodVerifyCalibrationsFile>lambdaQuery() + .eq(ProcessMethodVerifyCalibrationsFile::getMethodVerifyId, methodVerifyDto.getMethodVerifyId())); + + // 鍒ゆ柇纭浜烘槸鍚︿负绌� + if (StringUtils.isNotBlank(methodVerifyDto.getConfirmUser())) { + // 娣诲姞涓婂矖璇� + this.addWorkFile(methodVerifyDto); + } + + // 鏂板璁惧淇℃伅 + if (CollectionUtils.isNotEmpty(methodVerifyDto.getMachineAttachmentList())) { + this.addDevice(methodVerifyDto); + } + return true; + } + + /** + * 鍒犻櫎鏍囧噯鏂规硶楠岃瘉 + * + * @param methodVerifyId + * @return + */ + @Override + public boolean delMethodVerify(Integer methodVerifyId) { + // 鍒犻櫎鎵�鏈夎澶� + processMethodVerifyMachineAttachmentService.remove(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery() + .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId)); + + // 鍒犻櫎鎵�鏈夊師濮嬭褰� + processMethodVerifyMethodFileService.remove(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery() + .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId)); + + + baseMapper.deleteById(methodVerifyId); + + return true; + } + + /** + * 鏂规硶楠岃瘉纭 + * + * @param methodVerifyId + * @return + */ + @Override + public boolean methodVerifyAffirm(Integer methodVerifyId) { + baseMapper.update(null, Wrappers.<ProcessMethodVerify>lambdaUpdate() + .set(ProcessMethodVerify::getConfirmDate, LocalDateTime.now()) + .eq(ProcessMethodVerify::getMethodVerifyId, methodVerifyId)); + return true; + } + + /** + * 鏂规硶楠岃瘉鏂板鍘熷璁板綍 + * + * @param methodVerifyId + * @param file + * @return + */ + @Override + public boolean uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file) { + if (methodVerifyId == null) { + throw new ErrorException("缂哄皯鍘熷璁板綍id"); + } + + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + ProcessMethodVerifyMethodFile methodFile = new ProcessMethodVerifyMethodFile(); + methodFile.setMethodVerifyId(methodVerifyId); + methodFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + methodFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + methodFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + methodFile.setFileUrl(pathName); + return processMethodVerifyMethodFileService.save(methodFile); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return false; + } + } + + /** + * 鏍囧噯鏂规硶楠岃瘉鍘熷璁板綍鍒楄〃 + * + * @param methodVerifyId + * @return + */ + @Override + public List<ProcessMethodVerifyMethodFile> getVerifyMethodFileList(Integer methodVerifyId) { + return processMethodVerifyMethodFileService.list(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery() + .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId)); + } + + /** + * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉 + * + * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id + * @param response + */ + @Override + public void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response) { + // 鑾峰彇鏍囧噯鏂规硶鏇存柊楠岃瘉鏁版嵁 + ProcessMethodVerify processMethodVerify = baseMapper.selectById(methodVerifyId); + + // 灏嗗唴閮ㄥ瓧娈佃浆鎹㈡垚灞曠ず鍒皐ord涓殑瀵硅薄 + ProcessMethodVerifyExportWordDto exportWordTemplate = getExportWordTemplate(processMethodVerify); + + // 瀹氫箟涓�涓泦鍚堝瓨鏀句汉鍛樼鍚� + ArrayList<PictureRenderData> pictureRenderDataList = new ArrayList<>(); + // TODO:纭鏈�澶氫細鏈�5涓汉 + String confirmUser = processMethodVerify.getConfirmUser(); + if (StringUtils.isNotBlank(confirmUser)) { + // 瀵逛汉鍛榠d瀛楃涓茶繘琛屽垎鍓叉垚鏁扮粍 + String[] userIds = confirmUser.split(","); + // 寰幆鑾峰彇浜哄憳绛惧悕 + for (String userIdStr : userIds) { + // 杞崲涓篿nt绫诲瀷 + Integer userId = Integer.valueOf(userIdStr); + // 鑾峰彇浜哄憳绛惧悕瀵硅薄 + PictureRenderData finalUserSignatureUrl = UserUtils.getFinalUserSignatureUrl(userId); + // 灏嗕汉鍛樼鍚嶅璞℃坊鍔犲埌闆嗗悎涓� + pictureRenderDataList.add(finalUserSignatureUrl); + } + } + + // 鍒ゆ柇闆嗗悎闀垮害锛屽苟琛ull鍒�5涓� + while (pictureRenderDataList.size() < 5) { + pictureRenderDataList.add(null); + } + + // 鑾峰彇璁惧淇℃伅 + List<ProcessMethodVerifyMachineAttachment> processMethodVerifyMachineAttachmentList = processMethodVerifyMachineAttachmentService.list(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery() + .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId)); + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/method-verify.docx"); + Configure configure = Configure.builder() + .bind("processMethodVerifyMachineAttachmentList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("processMethodVerify", exportWordTemplate); + put("processMethodVerifyMachineAttachmentList", processMethodVerifyMachineAttachmentList); + put("affirmUserUrl1", pictureRenderDataList.get(0)); + put("affirmUserUrl2", pictureRenderDataList.get(1)); + put("affirmUserUrl3", pictureRenderDataList.get(2)); + put("affirmUserUrl4", pictureRenderDataList.get(3)); + put("affirmUserUrl5", pictureRenderDataList.get(4)); + }}); + + 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("瀵煎嚭澶辫触"); + } + } + + private ProcessMethodVerifyExportWordDto getExportWordTemplate(ProcessMethodVerify processMethodVerify) { + ProcessMethodVerifyExportWordDto processMethodVerifyExportWordDto = new ProcessMethodVerifyExportWordDto(); + BeanUtil.copyProperties(processMethodVerify, processMethodVerifyExportWordDto); + // 锛堜汉锛夋槸鍚︽弧瓒� + if (processMethodVerify.getPersonIsSatisfied() != null) { + processMethodVerifyExportWordDto.setPersonIsSatisfiedStr(processMethodVerify.getPersonIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堟満锛夋槸鍚︽弧瓒� + if (processMethodVerify.getMachineIsSatisfied() != null) { + processMethodVerifyExportWordDto.setMachineIsSatisfiedStr(processMethodVerify.getMachineIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堟枡锛夋槸鍚︽弧瓒� + if (processMethodVerify.getMaterialIsSatisfied() != null) { + processMethodVerifyExportWordDto.setMaterialIsSatisfiedStr(processMethodVerify.getMaterialIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堟硶锛夋槸鍚︽弧瓒� + if (processMethodVerify.getMethodIsSatisfied() != null) { + processMethodVerifyExportWordDto.setMethodIsSatisfiedStr(processMethodVerify.getMethodIsSatisfied() == 1? "鈭�" : "脳"); + } + // 锛堢幆锛夋槸鍚︽弧瓒� + if (processMethodVerify.getEnvironmentIsSatisfied() != null) { + processMethodVerifyExportWordDto.setEnvironmentIsSatisfiedStr(processMethodVerify.getEnvironmentIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堟祴閲忔函婧愭�э級鏄惁婊¤冻 + if (processMethodVerify.getTraceabilityIsSatisfied() != null) { + processMethodVerifyExportWordDto.setTraceabilityIsSatisfiedStr(processMethodVerify.getTraceabilityIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堟牱鍝佺鐞嗛渶姹傦級鏄惁婊¤冻 + if (processMethodVerify.getManagementIsSatisfied() != null) { + processMethodVerifyExportWordDto.setManagementIsSatisfiedStr(processMethodVerify.getManagementIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 锛堝叾浠栵級鏄惁婊¤冻 + if (processMethodVerify.getOtherIsSatisfied() != null) { + processMethodVerifyExportWordDto.setOtherIsSatisfiedStr(processMethodVerify.getOtherIsSatisfied() == 1 ? "鈭�" : "脳"); + } + // 纭鏃ユ湡 + processMethodVerifyExportWordDto.setConfirmDateStr(processMethodVerify.getConfirmDate() != null ? processMethodVerify.getConfirmDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")): null); + return processMethodVerifyExportWordDto; + } + + + /** + * 娣诲姞涓婂矖璇� + * + * @param methodVerifyDto + */ + private void addWorkFile(ProcessMethodVerifyDto methodVerifyDto) { + List<String> confirmUserIds = StrUtil.split(methodVerifyDto.getConfirmUser(), ","); + List<ProcessMethodVerifyWorkFile> workFileList = new ArrayList<>(); + for (String confirmUserId : confirmUserIds) { + Integer userId = Integer.valueOf(confirmUserId); + String workName = processMethodVerifyWorkFileMapper.selectWorkFile(userId); + // 鍒ゆ柇鏄惁鏈夎瘉涔� + if (StringUtils.isNotBlank(workName)) { + User user = userMapper.selectById(userId); + ProcessMethodVerifyWorkFile workFile = new ProcessMethodVerifyWorkFile(); + workFile.setMethodVerifyId(methodVerifyDto.getMethodVerifyId()); + workFile.setType(1); + workFile.setFileUrl(workName); + workFile.setFileName(workName); + workFile.setUserId(user.getId()); + workFile.setUserName(user.getName()); + workFileList.add(workFile); + } + } + if (CollectionUtils.isNotEmpty(workFileList)) { + processMethodVerifyWorkFileService.saveBatch(workFileList); + } + } + + /** + * 娣诲姞璁惧淇℃伅 + * + * @param methodVerifyDto + */ + private void addDevice(ProcessMethodVerifyDto methodVerifyDto) { + List<ProcessMethodVerifyCalibrationsFile> calibrationsFiles = new ArrayList<>(); + for (ProcessMethodVerifyMachineAttachment machineAttachment : methodVerifyDto.getMachineAttachmentList()) { + machineAttachment.setMethodVerifyId(methodVerifyDto.getMethodVerifyId()); + // 鏌ヨ鏍″噯璇佷功 + String calibrationsName = processMethodVerifyCalibrationsFileMapper.selectCalibrationsFile(machineAttachment.getDeviceId()); + // 鍒ゆ柇鏄惁鏈夎瘉涔� + if (StringUtils.isNotBlank(calibrationsName)) { + ProcessMethodVerifyCalibrationsFile calibrationsFile = new ProcessMethodVerifyCalibrationsFile(); + calibrationsFile.setMethodVerifyId(methodVerifyDto.getMethodVerifyId()); + calibrationsFile.setType(1); + calibrationsFile.setFileUrl(calibrationsName); + calibrationsFile.setFileName(calibrationsName); + calibrationsFile.setDeviceId((machineAttachment.getDeviceId())); + calibrationsFiles.add(calibrationsFile); + } + } + // 娣诲姞鏍″噯璇佷功 + processMethodVerifyCalibrationsFileService.saveBatch(calibrationsFiles); + + // 娣诲姞璁惧 + processMethodVerifyMachineAttachmentService.saveBatch(methodVerifyDto.getMachineAttachmentList()); + } + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java new file mode 100644 index 0000000..7a45959 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java @@ -0,0 +1,423 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.lang.UUID; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.*; +import com.deepoove.poi.data.style.*; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; +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.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 java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * <p> + * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-05 08:58:39 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessReportServiceImpl extends ServiceImpl<ProcessReportMapper, ProcessReport> implements ProcessReportService { + + @Resource + private ProcessReportMapper processReportMapper; + + + @Value("${wordUrl}") + private String wordUrl; + + @Resource + private UserMapper userMapper; + + @Override + public IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport) { + //todo 浠呯湅鎴� + IPage<ProcessReport> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport)); +// for (ProcessReport record : processReportIPage.getRecords()) { +// List<String> name = new ArrayList<>(); +// 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); +// } + + return processReportIPage; + } + + @Override + public String exportProcessReport(List<Integer> ids) { + 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 { + 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( + new HashMap<String, Object>() {{ + put("reportList", reportList); + }}); + String name = UUID.randomUUID() + "_妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃" + ".docx"; + try { + template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); + } catch (IOException e) { + throw new RuntimeException(e); + } + //澶勭悊涓嫳鏂囨崲琛岀殑闂 + 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; + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java new file mode 100644 index 0000000..e351b93 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java @@ -0,0 +1,94 @@ +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.ruoyi.common.utils.QueryWrappers; +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; + +/** + * <p> + * 鏍峰搧鎺ユ敹 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:49 + */ +@Service +public class ProcessSampleServiceImpl extends ServiceImpl<ProcessSampleMapper, ProcessSample> implements ProcessSampleService { + + @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()); + } + 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); + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java new file mode 100644 index 0000000..c7e19dc --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java @@ -0,0 +1,437 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.lang.UUID; +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.config.ConfigureBuilder; +import com.deepoove.poi.data.*; +import com.deepoove.poi.data.style.*; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; +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.ProcessTotalSampleService; +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.stereotype.Service; + +import javax.annotation.Resource; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏍峰搧鎺ユ敹鎬昏〃 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-12-12 05:02:58 + */ +@Service +public class ProcessTotalSampleServiceImpl extends ServiceImpl<ProcessTotalSampleMapper, ProcessTotalSample> implements ProcessTotalSampleService { + + @Value("${wordUrl}") + private String wordUrl; + + @Value("${file.path}") + private String imgUrl; + + + @Resource + private UserMapper userMapper; + + @Resource + private ProcessTotalSampleMapper processTotalSampleMapper; + + @Resource + private ProcessSampleMapper processSampleMapper; + + @Override + public IPage<ProcessTotalSample> pageProcessTotalSample(Page page, ProcessTotalSample processTotalSample) { + + return processTotalSampleMapper.pageProcessTotalSample(page, QueryWrappers.queryWrappers(processTotalSample)); + } + + @Override + public int submitProcessTotalSample(Integer id) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板~琛ㄤ汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id); + processTotalSample.setSubmitUser(userId); + processTotalSample.setSubmitState("宸叉彁浜�"); + processTotalSample.setSubmitUrl(user.getSignatureUrl()); + //鐢熸垚鏍峰搧澶勭悊鐢宠琛ㄥ苟灏嗗~琛ㄤ汉鐨勭數瀛愮鍚嶅嵃涓� + processTotalSample.setUrl(processTotalSample(id,user.getSignatureUrl())); + return processTotalSampleMapper.updateById(processTotalSample); + } + + @Override + public int checkProcessTotalSample(Integer id, String state) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板鏍镐汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id); + processTotalSample.setExamineUser(userId); + processTotalSample.setExamineState(state); + processTotalSample.setExamineUrl(user.getSignatureUrl()); + if (state.equals("涓嶉�氳繃")) { + processTotalSample.setSubmitState("寰呮彁浜�"); + } + //灏嗗鏍镐汉鐨勭數瀛愮鍚嶅嵃涓� + wordInsertUrl(new HashMap<String, Object>() {{ + put("examineUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl())); + }}, wordUrl+"/"+processTotalSample.getUrl()); + return processTotalSampleMapper.updateById(processTotalSample); + } + + @Override + public int ratifyProcessTotalSample(Integer id, String state) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒版壒鍑嗕汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id); + processTotalSample.setRatifyUser(userId); + processTotalSample.setRatifyState(state); + processTotalSample.setRatifyUrl(user.getSignatureUrl()); + if (state.equals("涓嶉�氳繃")) { + processTotalSample.setSubmitState("寰呮彁浜�"); + } + //灏嗘壒鍑嗕汉鐨勭鍚嶅嵃涓� + wordInsertUrl(new HashMap<String, Object>() {{ + put("ratifyUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl())); + }}, wordUrl+"/"+processTotalSample.getUrl()); + return processTotalSampleMapper.updateById(processTotalSample); + } + + //鐢熸垚鏍峰搧澶勭悊琛╳ord + private String processTotalSample(Integer id,String signatureUrl){ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�"); + List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery().eq(ProcessSample::getTotalSampleId,id)); + String url; + try { + InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-receive.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 < processSamples.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 < 8; 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("鏀舵牱鏃ユ湡@Date of receipt"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 1) { + //绗簩鍒楁牱鍝佸悕绉� + textRenderData.setText("鏍峰搧缂栧彿@Sample number"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 2) { + //绗笁鍒楁牱鍝佺紪鍙� + textRenderData.setText("鏍峰搧鍚嶇О@Sample name"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 3) { + //绗洓鍒椾緵鏍峰崟浣� + textRenderData.setText("鏍峰搧鏁伴噺@Number of samples"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 4) { + //绗簲鍒楁暟閲� + textRenderData.setText("鏉ユ牱鍗曚綅@Sample unit"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 5) { + //绗叚鍒楀鐞嗘柟寮� + textRenderData.setText("鐣欐牱鏃ユ湡@Sample retention date"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } else if (j == 6) { + //绗叚鍒楀鐞嗘柟寮� + textRenderData.setText("鏍峰搧鐘舵�丂Sample status"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else { + //绗竷鍒楁椂闂� + textRenderData.setText("閫�鏍风鏀跺拰/鎴栧鐞嗘棩鏈烜Return signature and/or processing date"); + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + } + else { + //鍏朵粬琛� + if (j == 0) { + //绗竴鍒� + try{ + String receiveDate = processSamples.get((i-1) + (index1 - 1) * 20).getReceiveDate().format(formatter); + textRenderData.setText(receiveDate); + } 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(processSamples.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 == 2) { + try{ + textRenderData.setText(processSamples.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 == 3) { + try{ + textRenderData.setText(processSamples.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 == 4) { + try{ + textRenderData.setText(processSamples.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 == 5) { + try{ + textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getLeaveDate().format(formatter)); + } 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(processSamples.get((i-1) + (index1 - 1) * 20).getSampleState()); + } catch (Exception e) { + textRenderData.setText(""); + } + renderData.add(textRenderData); + paragraphRenderData.setContents(renderData); + paragraphRenderDataList.add(paragraphRenderData); + cellRenderData.setParagraphs(paragraphRenderDataList); + cells.add(cellRenderData); + } + else { + try{ + textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getDealTime().format(formatter)); + } 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( + new HashMap<String, Object>() {{ + put("sampleList", sampleList); + put("size", finalIndex); + put("examineUrl", null); + put("ratifyUrl", null); + put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + signatureUrl)); + }}); + String name = UUID.randomUUID() + "_妫�楠屾牱鍝佺櫥璁拌〃" + ".docx"; + try { + template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); + } catch (IOException e) { + throw new RuntimeException(e); + } + //澶勭悊涓嫳鏂囨崲琛岀殑闂 + 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; + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java new file mode 100644 index 0000000..880e4f6 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java @@ -0,0 +1,416 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.lang.UUID; +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.config.ConfigureBuilder; +import com.deepoove.poi.data.*; +import com.deepoove.poi.data.style.*; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.process.mapper.ProcessDealMapper; +import com.ruoyi.process.mapper.ProcessTotaldealMapper; +import com.ruoyi.process.pojo.ProcessDeal; +import com.ruoyi.process.pojo.ProcessTotaldeal; +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.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-02 03:59:09 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProcessTotaldealServiceImpl extends ServiceImpl<ProcessTotaldealMapper, ProcessTotaldeal> implements ProcessTotaldealService { + + @Resource + private ProcessTotaldealMapper processTotaldealMapper; + + @Resource + private ProcessDealMapper processDealMapper; + + @Value("${wordUrl}") + private String wordUrl; + + @Value("${file.path}") + private String imgUrl; + + + @Resource + private UserMapper userMapper; + + @Override + public IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, ProcessTotaldeal processTotaldeal) { + return processTotaldealMapper.pageProcessTotaldeal(page, QueryWrappers.queryWrappers(processTotaldeal)); + + } + + @Override + public int submitProcessTotaldeal(Integer id) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) { + throw new ErrorException("鏈壘鍒板~琛ㄤ汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + } + ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id); + processTotaldeal.setSubmitUser(userId); + processTotaldeal.setSubmitState("宸叉彁浜�"); + processTotaldeal.setSubmitUrl(user.getSignatureUrl()); + //鐢熸垚鏍峰搧澶勭悊鐢宠琛ㄥ苟灏嗗~琛ㄤ汉鐨勭數瀛愮鍚嶅嵃涓� + processTotaldeal.setUrl(processTotaldeal(id, user.getSignatureUrl())); + return processTotaldealMapper.updateById(processTotaldeal); + } + + @Override + public int checkProcessTotaldeal(Integer id, String state) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) { + throw new ErrorException("鏈壘鍒板鏍镐汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + } + 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); + } + + @Override + public int ratifyProcessTotaldeal(Integer id, String state) { + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + if (ObjectUtils.isEmpty(user.getSignatureUrl())) { + throw new ErrorException("鏈壘鍒版壒鍑嗕汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!"); + } + ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id); + processTotaldeal.setRatifyUser(userId); + processTotaldeal.setRatifyState(state); + processTotaldeal.setRatifyUrl(user.getSignatureUrl()); + if (state.equals("涓嶉�氳繃")) { + processTotaldeal.setSubmitState("寰呮彁浜�"); + } + //灏嗘壒鍑嗕汉鐨勭鍚嶅嵃涓� + wordInsertUrl(new HashMap<String, Object>() {{ + put("ratifyUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + user.getSignatureUrl())); + }}, wordUrl + "/" + processTotaldeal.getUrl()); + return processTotaldealMapper.updateById(processTotaldeal); + } + + //鐢熸垚鏍峰搧澶勭悊琛╳ord + private String processTotaldeal(Integer id, String signatureUrl) { + List<ProcessDeal> processDeals = processDealMapper.selectList(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getTotaldealId, id)); + String url; + try { + 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( + new HashMap<String, Object>() {{ + put("sampleList", sampleList); + put("size", finalIndex); + put("examineUrl", null); + put("ratifyUrl", null); + put("writeUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + signatureUrl)); + }}); + String name = UUID.randomUUID() + "_鏍峰搧澶勭悊鐢宠琛�" + ".docx"; + try { + template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); + } catch (IOException e) { + throw new RuntimeException(e); + } + //澶勭悊涓嫳鏂囨崲琛岀殑闂 + 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; + } +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java new file mode 100644 index 0000000..e71a39a --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.QualityMonitorDetailsEvaluateMapper; +import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate; +import com.ruoyi.process.service.QualityMonitorDetailsEvaluateService; +import org.springframework.stereotype.Service; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Service +public class QualityMonitorDetailsEvaluateServiceImpl extends ServiceImpl<QualityMonitorDetailsEvaluateMapper, QualityMonitorDetailsEvaluate> implements QualityMonitorDetailsEvaluateService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java new file mode 100644 index 0000000..22785fe --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.QualityMonitorDetailsRatifyMapper; +import com.ruoyi.process.pojo.QualityMonitorDetailsRatify; +import com.ruoyi.process.service.QualityMonitorDetailsRatifyService; +import org.springframework.stereotype.Service; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛� + * + * @author zhuo + * @since 2024-11-06 + */ +@Service +public class QualityMonitorDetailsRatifyServiceImpl extends ServiceImpl<QualityMonitorDetailsRatifyMapper, QualityMonitorDetailsRatify> implements QualityMonitorDetailsRatifyService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java new file mode 100644 index 0000000..97b1377 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.QualityMonitorDetailsMapper; +import com.ruoyi.process.pojo.QualityMonitorDetails; +import com.ruoyi.process.service.QualityMonitorDetailsService; +import org.springframework.stereotype.Service; + +/** + * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛� + * + * @author makejava + * @since 2024-11-06 + */ +@Service +public class QualityMonitorDetailsServiceImpl extends ServiceImpl<QualityMonitorDetailsMapper, QualityMonitorDetails> implements QualityMonitorDetailsService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java new file mode 100644 index 0000000..27638db --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java @@ -0,0 +1,812 @@ +package com.ruoyi.process.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.inspect.util.UserUtils; +import com.ruoyi.inspect.util.XWPFDocumentUtils; +import com.ruoyi.process.dto.QualityMonitorDetailsEvaluateDto; +import com.ruoyi.process.dto.QualityMonitorDto; +import com.ruoyi.process.excel.QualityMonitorDetailsUpload; +import com.ruoyi.process.mapper.*; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.QualityMonitorDetailsEvaluateService; +import com.ruoyi.process.service.QualityMonitorDetailsRatifyService; +import com.ruoyi.process.service.QualityMonitorDetailsService; +import com.ruoyi.process.service.QualityMonitorService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * 璐ㄩ噺鐩戞帶璁″垝涓昏〃 + * + * @author zhuo + * @since 2024-11-06 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class QualityMonitorServiceImpl extends ServiceImpl<QualityMonitorMapper, QualityMonitor> implements QualityMonitorService { + + @Resource + private QualityMonitorDetailsService qualityMonitorDetailsService; + @Resource + private QualityMonitorDetailsMapper qualityMonitorDetailsMapper; + @Resource + private UserMapper userMapper; + @Resource + private QualityMonitorDetailsRatifyMapper qualityMonitorDetailsRatifyMapper; + @Resource + private QualityMonitorDetailsRatifyService qualityMonitorDetailsRatifyService; + @Resource + private QualityMonitorDetailsEvaluateMapper qualityMonitorDetailsEvaluateMapper; + @Resource + private QualityMonitorDetailsEvaluateService qualityMonitorDetailsEvaluateService; + @Resource + private QualityMonitorDetailsEvaluateFileMapper qualityMonitorDetailsEvaluateFileMapper; + @Resource + private InformationNotificationService informationNotificationService; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Value("${file.path}") + private String imgUrl; + + @Value("${wordUrl}") + private String wordUrl; + + + /** + * 瀵煎叆鐩戞帶璁″垝 + * @param file + * @return + */ + @Override + public boolean importQualityMonitor(MultipartFile file, QualityMonitor monitor) { + // 褰撳墠鐧诲綍鐢ㄦ埛 + Integer userId = SecurityUtils.getUserId().intValue(); + // 鏂囦欢鍚嶇О + String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")); + QualityMonitor qualityMonitor = new QualityMonitor(); + qualityMonitor.setMonitorName(fileName); + qualityMonitor.setMonitorYear(monitor.getMonitorYear()); + qualityMonitor.setWriteUserId(userId); + qualityMonitor.setExamineUserId(monitor.getExamineUserId()); + qualityMonitor.setWriteTime(LocalDateTime.now()); + baseMapper.insert(qualityMonitor); + + if (monitor.getExamineUserId() == null) { + throw new ErrorException("缂哄皯瀹℃牳浜�"); + } + + User user = userMapper.selectById(userId); + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS璐ㄩ噺鐩戞帶璁″垝瀹℃牳閫氱煡"); + info.setContent(fileName + "璐ㄩ噺鐩戞帶璁″垝寰呭鏍�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(monitor.getExamineUserId()); + info.setJumpPath("a7-Ensure-results-validity"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(monitor.getExamineUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戞帶璁″垝瀹℃牳閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戞帶璁″垝"; + message += "\n" + fileName + "璐ㄩ噺鐩戞帶璁″垝寰呭鏍�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + + List<QualityMonitorDetails> detailsUploadList = new ArrayList<>(); + + // 瀵煎叆闄勪欢鍐呭 + try { + // excel瑙f瀽 + EasyExcel.read(file.getInputStream(), QualityMonitorDetailsUpload.class, new AnalysisEventListener<QualityMonitorDetailsUpload>() { + @Override + public void invoke(QualityMonitorDetailsUpload detailsUpload, AnalysisContext analysisContext) { + // 鍒ゆ柇鏄惁涓虹┖ + if (StringUtils.isBlank(detailsUpload.getPlannedTime())) { + throw new ErrorException("璁″垝寮�灞曟椂闂翠笉鑳戒负绌�"); + } + // 瀵硅薄澶嶅埗 + QualityMonitorDetails monitorDetails = new QualityMonitorDetails(); + BeanUtils.copyProperties(detailsUpload, monitorDetails); + monitorDetails.setQualityMonitorId(qualityMonitor.getQualityMonitorId()); + + detailsUploadList.add(monitorDetails); + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + + } + }).sheet().doRead(); + qualityMonitorDetailsService.saveBatch(detailsUploadList); + + } catch (IOException e) { + throw new RuntimeException(e); + } + return true; + } + + /** + * 鐩戞帶璁″垝瀹℃牳 + * @param qualityMonitor + * @return + */ + @Override + public boolean examineQualityMonitor(QualityMonitor qualityMonitor) { + if (qualityMonitor.getRatifyUserId() == null) { + throw new ErrorException("缂哄皯鎵瑰噯浜�"); + } + + // 褰撳墠鐧诲綍鐢ㄦ埛 + baseMapper.update(null, Wrappers.<QualityMonitor>lambdaUpdate() + .eq(QualityMonitor::getQualityMonitorId, qualityMonitor.getQualityMonitorId()) + .set(QualityMonitor::getRatifyUserId, qualityMonitor.getRatifyUserId()) + .set(QualityMonitor::getExamineRemark, qualityMonitor.getExamineRemark()) + .set(QualityMonitor::getExamineStatus, qualityMonitor.getExamineStatus()) + .set(QualityMonitor::getExamineTime, LocalDateTime.now()) + ); + + QualityMonitor monitor = baseMapper.selectById(qualityMonitor.getQualityMonitorId()); + + 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(monitor.getMonitorName() + "璐ㄩ噺鐩戞帶璁″垝寰呮壒鍑�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(qualityMonitor.getRatifyUserId()); + info.setJumpPath("a7-Ensure-results-validity"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(qualityMonitor.getRatifyUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戞帶璁″垝鎵瑰噯閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戞帶璁″垝"; + message += "\n" + monitor.getMonitorName() + "璐ㄩ噺鐩戞帶璁″垝寰呮壒鍑�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + return true; + } + + /** + * 鐩戞帶璁″垝鎵瑰噯 + * @param qualityMonitor + * @return + */ + @Override + public boolean ratifyQualityMonitor(QualityMonitor qualityMonitor) { + // 褰撳墠鐧诲綍鐢ㄦ埛 + baseMapper.update(null, Wrappers.<QualityMonitor>lambdaUpdate() + .eq(QualityMonitor::getQualityMonitorId, qualityMonitor.getQualityMonitorId()) + .set(QualityMonitor::getRatifyRemark, qualityMonitor.getRatifyRemark()) + .set(QualityMonitor::getRatifyStatus, qualityMonitor.getRatifyStatus()) + .set(QualityMonitor::getRatifyTime, LocalDateTime.now()) + ); + return true; + } + + /** + * 鐩戞帶璁″垝鍒楄〃 + * @param page + * @param qualityMonitor + * @return + */ + @Override + public IPage<QualityMonitorDto> pageQualityMonitor(Page page, QualityMonitor qualityMonitor) { + return baseMapper.pageQualityMonitor(page, QueryWrappers.queryWrappers(qualityMonitor)); + } + + /** + * 鐩戞帶璁″垝璇︽儏鍒楄〃 + * @param page + * @param qualityMonitorDetails + * @return + */ + @Override + public IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails) { + if (qualityMonitorDetails.getQualityMonitorId() == null) { + return new Page(); + } + return qualityMonitorDetailsMapper.pageQualityMonitorDetail(page, QueryWrappers.queryWrappers(qualityMonitorDetails)); + } + + /** + * 瀵煎嚭鐩戞帶璁″垝 + * @param qualityMonitorId + * @param response + */ + @Override + public void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response) { + // 鏌ヨ璇︽儏 + QualityMonitor qualityMonitor = baseMapper.selectById(qualityMonitorId); + + //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃 + String writeUrl = userMapper.selectById(qualityMonitor.getWriteUserId()).getSignatureUrl(); + if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) { + throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); + } + + //鑾峰彇澶嶆牳浜虹殑绛惧悕鍦板潃 + String examineUrl = null; + if (qualityMonitor.getExamineUserId() != null) { + examineUrl = userMapper.selectById(qualityMonitor.getExamineUserId()).getSignatureUrl(); + if (StringUtils.isBlank(examineUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃 + String ratifyUrl = null; + if (qualityMonitor.getRatifyUserId() != null) { + ratifyUrl = userMapper.selectById(qualityMonitor.getRatifyUserId()).getSignatureUrl(); + if (StringUtils.isBlank(ratifyUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + // 鏌ヨ璇︽儏 + List<QualityMonitorDetails> qualityMonitorDetails = qualityMonitorDetailsMapper.selectList(Wrappers.<QualityMonitorDetails>lambdaQuery() + .eq(QualityMonitorDetails::getQualityMonitorId, qualityMonitorId)); + + // 鍒ゆ柇鐩戞帶鐩殑涓�鏍风殑鍊� + AtomicInteger count = new AtomicInteger(1); + Map<String, List<QualityMonitorDetails>> listMap = qualityMonitorDetails.stream().collect(Collectors.groupingBy(QualityMonitorDetails::getMonitorPurpose)); + listMap.forEach((s, details) -> { + // 鏌ヨ鏁伴噺瓒呰繃1鐨� + if (details.size() > 1) { + for (QualityMonitorDetails detail : details) { + detail.setMonitorPurpose(detail.getMonitorPurpose() + "鈭�" + count); + } + count.getAndIncrement(); + } + }); + + int index = 1; + for (QualityMonitorDetails qualityMonitorDetail : qualityMonitorDetails) { + qualityMonitorDetail.setIndex(index); + index++; + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor.docx"); + String finalExamineUrl = examineUrl; + String finalRatifyUrl = ratifyUrl; + Configure configure = Configure.builder() + .bind("monitorDetailList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("year", qualityMonitor.getMonitorYear()); + put("monitorDetailList", qualityMonitorDetails); + put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null); + put("examineUrl", StringUtils.isNotBlank(finalExamineUrl) ? Pictures.ofLocal(imgUrl + "/" + finalExamineUrl).create() : null); + put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("writeDateUrl", qualityMonitor.getWriteTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getWriteTime())).create() : null); + put("examineDateUrl", qualityMonitor.getExamineTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getExamineTime())).create() : null); + put("ratifyDateUrl", qualityMonitor.getRatifyTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getRatifyTime())).create() : null); + }}); + + // 澶勭悊鎹㈣闂 + XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument()); + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + qualityMonitor.getMonitorName(), "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("瀵煎嚭澶辫触"); + } + } + + + /************************************************************ 鎵瑰噯 *******************************************************************/ + + /** + * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * @param qualityMonitorDetailsId + * @return + */ + @Override + public QualityMonitorDetailsRatify getQualityMonitorRatify(Integer qualityMonitorDetailsId) { + QualityMonitorDetailsRatify qualityMonitorDetailsRatify; + // 鏌ヨ鐩戞帶閮ㄩ棬id + qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectOne(Wrappers.<QualityMonitorDetailsRatify>lambdaQuery() + .eq(QualityMonitorDetailsRatify::getQualityMonitorDetailsId, qualityMonitorDetailsId)); + + if (qualityMonitorDetailsRatify == null) { + // 鏌ヨ璇︽儏璁″垝 + QualityMonitorDetails qualityMonitorDetails = qualityMonitorDetailsMapper.selectById(qualityMonitorDetailsId); + qualityMonitorDetailsRatify = new QualityMonitorDetailsRatify(); + qualityMonitorDetailsRatify.setQualityMonitorDetailsId(qualityMonitorDetailsId); // 璇︽儏id + qualityMonitorDetailsRatify.setMonitorProject(qualityMonitorDetails.getMonitorProject()); // 鐩戞帶椤圭洰 + qualityMonitorDetailsRatify.setMonitorData(DateUtil.format(new Date(), "yyyy-MM")); // 鐩戞帶鏃堕棿 + qualityMonitorDetailsRatify.setMonitorPurpose(qualityMonitorDetails.getMonitorPurpose()); // 鐩戞帶鐩殑 + qualityMonitorDetailsRatify.setParticipant(qualityMonitorDetails.getParticipant()); // 鍙傚姞浜哄憳 + qualityMonitorDetailsRatify.setBudget(qualityMonitorDetails.getBudget()); // 棰勭畻 + qualityMonitorDetailsRatify.setInspectionDepartment(userMapper.selectUserDepartmentLimsName( SecurityUtils.getUserId().intValue())); + } + + if (qualityMonitorDetailsRatify.getRatifyUserId() != null) { + qualityMonitorDetailsRatify.setRatifyName(userMapper.selectById(qualityMonitorDetailsRatify.getRatifyUserId()).getName()); + } + + return qualityMonitorDetailsRatify; + } + + /** + * 鏂板鐩戞帶鎵瑰噯瀹炴柦 + * @param qualityMonitorDetailsRatify + * @return + */ + @Override + public boolean addQualityMonitorRatify(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) { + if (qualityMonitorDetailsRatify.getQualityMonitorDetailsId() == null) { + throw new ErrorException("缂哄皯鐩戞帶璇︾粏淇℃伅id"); + } + qualityMonitorDetailsRatifyService.saveOrUpdate(qualityMonitorDetailsRatify); + if (qualityMonitorDetailsRatify.getRatifyUserId() != null) { + + // 鏌ヨ璇︽儏淇℃伅 + QualityMonitorDetails monitorDetails = qualityMonitorDetailsMapper.selectById(qualityMonitorDetailsRatify.getQualityMonitorDetailsId()); + + 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("鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶瀹炴柦寰呮壒鍑�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(qualityMonitorDetailsRatify.getRatifyUserId()); + info.setJumpPath("a7-Ensure-results-validity"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(qualityMonitorDetailsRatify.getRatifyUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戞帶瀹炴柦鎵瑰噯閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戞帶璁″垝"; + message += "\n" + "鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶瀹炴柦寰呮壒鍑�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + return true; + } + + /** + * 鐩戞帶璁″垝璇︽儏鎵瑰噯鎰忚 + * @param qualityMonitorDetailsRatify + * @return + */ + @Override + public boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) { + qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate() + .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId()) + .set(QualityMonitorDetailsRatify::getRatifyOpinion, qualityMonitorDetailsRatify.getRatifyOpinion()) + .set(QualityMonitorDetailsRatify::getIsFinish, 1)); + return true; + } + + /** + * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅 + * + * @param detailsRatifyId 鐩戞帶璁″垝璇︽儏瀹炴柦id + * @param response 鍝嶅簲 + */ + @Override + public void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response) { + QualityMonitorDetailsRatify qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectOne(Wrappers.<QualityMonitorDetailsRatify>lambdaQuery().eq(QualityMonitorDetailsRatify::getQualityMonitorDetailsId, detailsRatifyId)); + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-details-ratify.docx"); + Configure configure = Configure.builder() + .bind("processMethodVerifyMachineAttachmentList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("qualityMonitorDetailsRatify", qualityMonitorDetailsRatify); + put("ratifyUserUrl", UserUtils.getFinalUserSignatureUrl(qualityMonitorDetailsRatify.getRatifyUserId())); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "璐ㄩ噺鐩戞帶瀹炴柦璁″垝", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + /************************************************************ 璇勪环 *******************************************************************/ + + /** + * 鏌ヨ璐ㄩ噺鐩戞帶璇勪环 + * @param qualityMonitorDetailsId + * @return + */ + @Override + public QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId) { + return qualityMonitorDetailsEvaluateMapper.getQualityMonitorEvaluate(qualityMonitorDetailsId); + } + + /** + * 鏂板鐩戞帶璇勪环 + * @param qualityMonitorDetailsEvaluate + * @return + */ + @Override + public boolean addQualityMonitorEvaluate(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) { + if (qualityMonitorDetailsEvaluate.getQualityMonitorDetailsId() == null) { + throw new ErrorException("缂哄皯鐩戞帶璇︾粏淇℃伅id"); + } + // 鏌ヨ璇︽儏淇℃伅 + QualityMonitorDetails monitorDetails = qualityMonitorDetailsMapper.selectById(qualityMonitorDetailsEvaluate.getQualityMonitorDetailsId()); + // 鍙戦�佹秷鎭�氱煡 + // 鍒ゆ柇璇勫缁撹浜烘槸鍚︿负绌� + if (qualityMonitorDetailsEvaluate.getRatifyUserId() != null) { + + 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("鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶寰呰瘎浠风粨璁�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(qualityMonitorDetailsEvaluate.getRatifyUserId()); + info.setJumpPath("a7-Ensure-results-validity"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(qualityMonitorDetailsEvaluate.getRatifyUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戞帶璇勪环缁撹閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戞帶璁″垝"; + message += "\n" + "鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶寰呰瘎浠风粨璁�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + } else { + // 鐩戞帶缁撴灉璇勪环 + if (qualityMonitorDetailsEvaluate.getImplementUserId() != null) { + 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("鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶寰呰瘎浠风粨璁�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(qualityMonitorDetailsEvaluate.getImplementUserId()); + info.setJumpPath("a7-Ensure-results-validity"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(qualityMonitorDetailsEvaluate.getImplementUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戞帶缁撴灉璇勪环"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戞帶璁″垝"; + message += "\n" + "鐩戞帶椤圭洰涓�: " + monitorDetails.getMonitorProject() + " 璐ㄩ噺鐩戞帶寰呰瘎浠风粨璁�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + + + return qualityMonitorDetailsEvaluateService.saveOrUpdate(qualityMonitorDetailsEvaluate); + } + + /** + * 鐩戞帶璇勪环瀹℃壒鎰忚 + * @param qualityMonitorDetailsEvaluate + * @return + */ + @Override + public boolean addMonitorEvaluateOpinion(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) { + qualityMonitorDetailsEvaluateService.update(Wrappers.<QualityMonitorDetailsEvaluate>lambdaUpdate() + .eq(QualityMonitorDetailsEvaluate::getDetailsEvaluateId, qualityMonitorDetailsEvaluate.getDetailsEvaluateId()) + .set(QualityMonitorDetailsEvaluate::getRatifyOpinion, qualityMonitorDetailsEvaluate.getRatifyOpinion()) + .set(QualityMonitorDetailsEvaluate::getRatifyTime, LocalDateTime.now()) + .set(QualityMonitorDetailsEvaluate::getIsFinish, 1)); + return true; + } + + /** + * 鏂板鐩戞帶璇勪环闄勪欢琛� + * @param detailsEvaluateId + * @param file + * @return + */ + @Override + public boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) { + if (detailsEvaluateId == null) { + throw new ErrorException("缂哄皯鐩戞帶璇︽儏id"); + } + + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + QualityMonitorDetailsEvaluateFile evaluateFile = new QualityMonitorDetailsEvaluateFile(); + evaluateFile.setDetailsEvaluateId(detailsEvaluateId); + evaluateFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + evaluateFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + evaluateFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + evaluateFile.setFileUrl(pathName); + qualityMonitorDetailsEvaluateFileMapper.insert(evaluateFile); + return true; + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return false; + } + } + + /** + * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃 + * @return + */ + @Override + public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId) { + return qualityMonitorDetailsEvaluateFileMapper.selectList(Wrappers.<QualityMonitorDetailsEvaluateFile>lambdaQuery() + .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, detailsEvaluateId)); + } + + + /** + * 瀵煎嚭鐩戞帶璇勪环 + * @param detailsEvaluateId 鐩戞帶璇勪环id + */ + @Override + public void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response) { + // 鏌ヨ鐩戞帶璇勪环淇℃伅 + QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate = qualityMonitorDetailsEvaluateMapper.selectOne(Wrappers.<QualityMonitorDetailsEvaluate>lambdaQuery().eq(QualityMonitorDetailsEvaluate::getQualityMonitorDetailsId,detailsEvaluateId)); + // 娓叉煋word妯℃澘瀵硅薄 + QualityMonitorDetailsEvaluateDto qualityMonitorDetailsEvaluateDto = new QualityMonitorDetailsEvaluateDto(); + BeanUtils.copyProperties(qualityMonitorDetailsEvaluate, qualityMonitorDetailsEvaluateDto); + // 鏍煎紡鍖栨椂闂� + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + qualityMonitorDetailsEvaluateDto.setRatifyTimeStr(qualityMonitorDetailsEvaluate.getRatifyTime().format(dateTimeFormatter)); + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-evaluate.docx"); + Configure configure = Configure.builder() + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("qualityMonitorDetailsEvaluate", qualityMonitorDetailsEvaluateDto); + put("implementUserUrl", UserUtils.getFinalUserSignatureUrl(Integer.valueOf(qualityMonitorDetailsEvaluate.getImplementUserId()))); + put("ratifyUserUrl", UserUtils.getFinalUserSignatureUrl(qualityMonitorDetailsEvaluate.getRatifyUserId())); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "鐩戞帶璇勪环", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + /************************************************** 鐩戞帶瀹屾垚鎶ュ憡 ****************************************************************/ + + /** + * 涓婁紶鐩戞帶瀹屾垚鎶ュ憡 + * @param file + * @param qualityMonitorDetailsId + * @return + */ + @Override + public boolean uploadFinishReport(MultipartFile file, Integer qualityMonitorDetailsId) { + if (qualityMonitorDetailsId == null) { + throw new ErrorException("缂哄皯鐩戞帶璇︽儏id"); + } + + Integer userId =SecurityUtils.getUserId().intValue(); + + String urlString; + String pathName; + try { + String path = wordUrl; + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + + wordInsertUrl(new HashMap<String, Object>() {{ + put("writeUrl", UserUtils.getFinalUserSignatureUrl(userId)); + }}, wordUrl + "/" + pathName.replace("/word", wordUrl)); + qualityMonitorDetailsService.update(Wrappers.<QualityMonitorDetails>lambdaUpdate() + .eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetailsId) + .set(QualityMonitorDetails::getFinishReportUrl, pathName)); + + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new ErrorException("鏂囦欢涓婁紶澶辫触"); + } + } + + /** + * 鎵瑰噯瀹屾垚鎶ュ憡 + * @param qualityMonitorDetails + * @return + */ + @Override + public boolean ratifyFinishReport(QualityMonitorDetails qualityMonitorDetails) { + Integer userId =SecurityUtils.getUserId().intValue(); + LambdaUpdateWrapper<QualityMonitorDetails> wrapper = Wrappers.<QualityMonitorDetails>lambdaUpdate() + .eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetails.getQualityMonitorDetailsId()) + .set(QualityMonitorDetails::getRatifyUserId, userId) + .set(QualityMonitorDetails::getRatifyRemark, qualityMonitorDetails.getRatifyRemark()) + .set(QualityMonitorDetails::getRatifyStatus, qualityMonitorDetails.getRatifyStatus()) + .set(QualityMonitorDetails::getRatifyTime, LocalDateTime.now()); + if (qualityMonitorDetails.getRatifyStatus().equals(0)) { + wrapper.set(QualityMonitorDetails::getFinishReportUrl, null); + } + qualityMonitorDetailsMapper.update(null, wrapper); + + // 娣诲姞鎵瑰噯浜� + QualityMonitorDetails details = qualityMonitorDetailsMapper.selectById(qualityMonitorDetails.getQualityMonitorDetailsId()); + if (StringUtils.isNotBlank(details.getFinishReportUrl())) { + wordInsertUrl(new HashMap<String, Object>() {{ + put("ratifyUrl", UserUtils.getFinalUserSignatureUrl(userId)); + }}, wordUrl + "/" + details.getFinishReportUrl().replace("/word", wordUrl)); + } + return true; + } + + 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; + } + + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java new file mode 100644 index 0000000..79be6f9 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java @@ -0,0 +1,19 @@ +package com.ruoyi.process.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper; +import com.ruoyi.process.pojo.QualitySuperviseDetails; +import com.ruoyi.process.service.QualitySuperviseDetailsService; +import org.springframework.stereotype.Service; + +/** + * 璐ㄩ噺鐩戠潱璇︽儏琛� + * + * @author makejava + * @since 2024-11-07 + */ +@Service +public class QualitySuperviseDetailsServiceImpl extends ServiceImpl<QualitySuperviseDetailsMapper, QualitySuperviseDetails> implements QualitySuperviseDetailsService { + +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java new file mode 100644 index 0000000..1d58571 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java @@ -0,0 +1,1118 @@ +package com.ruoyi.process.service.impl; + +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.core.domain.entity.InformationNotification; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.inspect.util.UserUtils; +import com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto; +import com.ruoyi.process.dto.QualitySuperviseDetailsCorrectDto; +import com.ruoyi.process.dto.QualitySuperviseDetailsDto; +import com.ruoyi.process.excel.QualitySuperviseDetailsUpload; +import com.ruoyi.process.mapper.*; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.QualitySuperviseDetailsService; +import com.ruoyi.process.service.QualitySuperviseService; +import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.InformationNotificationService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 璐ㄩ噺鐩戠潱涓昏〃 + * + * @author zhuo + * @since 2024-11-07 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class QualitySuperviseServiceImpl extends ServiceImpl<QualitySuperviseMapper, QualitySupervise> implements QualitySuperviseService { + + @Resource + private QualitySuperviseDetailsService qualitySuperviseDetailsService; + @Resource + private QualitySuperviseDetailsMapper qualitySuperviseDetailsMapper; + @Resource + private QualitySuperviseDetailsRecordMapper qualitySuperviseDetailsRecordMapper; + @Resource + private QualitySuperviseDetailsAccordingMapper qualitySuperviseDetailsAccordingMapper; + @Resource + private QualitySuperviseDetailsCorrectMapper qualitySuperviseDetailsCorrectMapper; + @Resource + private QualitySuperviseDetailsCorrectFileMapper qualitySuperviseDetailsCorrectFileMapper; + @Resource + private InformationNotificationService informationNotificationService; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Resource + private UserMapper userMapper; + @Value("${file.path}") + private String imgUrl; + + @Value("${wordUrl}") + private String wordUrl; + + /** + * 瀵煎叆鐩戠潱璁″垝 + * @param file + * @return + */ + @Override + public boolean importQualitySupervise(MultipartFile file, QualitySupervise supervise) { + if (supervise.getRatifyUserId() == null) { + throw new ErrorException("缂哄皯鎵瑰噯浜�"); + } + User ratifyUser = userMapper.selectById(supervise.getRatifyUserId()); + + // 褰撳墠鐧诲綍鐢ㄦ埛 + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + + // 鏂囦欢鍚嶇О + String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")); + QualitySupervise qualitySupervise = new QualitySupervise(); + qualitySupervise.setSuperviseName(fileName); + qualitySupervise.setSuperviseYear(supervise.getSuperviseYear()); + qualitySupervise.setRecordUserIds(supervise.getRecordUserIds()); + qualitySupervise.setWriteUserId(userId); + qualitySupervise.setWriteUserName(user.getName()); + qualitySupervise.setWriteTime(LocalDateTime.now()); + qualitySupervise.setRatifyUserId(supervise.getRatifyUserId()); + qualitySupervise.setRatifyUserName(ratifyUser.getName()); + baseMapper.insert(qualitySupervise); + + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS璐ㄩ噺鐩戠潱璁″垝瀹℃牳閫氱煡"); + info.setContent("鎮ㄦ湁涓�鏉¤川閲忕洃鐫h鍒掑緟鎵瑰噯"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(supervise.getRatifyUserId()); + info.setJumpPath("a7-quality-control-plan"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(supervise.getRatifyUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戠潱璁″垝鎵瑰噯閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戠潱璁″垝"; + message += "\n" + fileName + "璐ㄩ噺鐩戠潱璁″垝寰呮壒鍑�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + + + List<QualitySuperviseDetails> detailsUploadList = new ArrayList<>(); + + // 瀵煎叆闄勪欢鍐呭 + try { + // excel瑙f瀽 + EasyExcel.read(file.getInputStream(), QualitySuperviseDetailsUpload.class, new AnalysisEventListener<QualitySuperviseDetailsUpload>() { + @Override + public void invoke(QualitySuperviseDetailsUpload detailsUpload, AnalysisContext analysisContext) { + // 鍒ゆ柇鏄惁涓虹┖ + if (StringUtils.isBlank(detailsUpload.getSuperviseTime())) { + throw new ErrorException("鐩戠潱鏃ユ湡涓嶈兘涓虹┖"); + } + // 瀵硅薄澶嶅埗 + QualitySuperviseDetails superviseDetails = new QualitySuperviseDetails(); + BeanUtils.copyProperties(detailsUpload, superviseDetails); + superviseDetails.setSuperviseId(qualitySupervise.getSuperviseId()); + + User user = userMapper.selectOne(Wrappers.<User>lambdaQuery() + .eq(User::getName, superviseDetails.getSupervisee())); + if (ObjectUtils.isEmpty(user)) { + throw new ErrorException("鏈壘鍒拌鐩戠潱鍛橈細" + superviseDetails.getSupervisee()); + } + superviseDetails.setSupervisedUserId(user.getId()); + // 鏍煎紡鍖栨椂闂� + superviseDetails.setSuperviseTime(detailsUpload.getSuperviseTime()); + + detailsUploadList.add(superviseDetails); + } + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + + } + }).sheet().doRead(); + qualitySuperviseDetailsService.saveBatch(detailsUploadList); + + } catch (IOException e) { + throw new RuntimeException(e); + } + return true; + } + + /** + * 鐩戠潱璁″垝鎵瑰噯 + * @param qualitySupervise + * @return + */ + @Override + public boolean ratifyQualitySupervise(QualitySupervise qualitySupervise) { + // 褰撳墠鐧诲綍鐢ㄦ埛 + baseMapper.update(null, Wrappers.<QualitySupervise>lambdaUpdate() + .eq(QualitySupervise::getSuperviseId, qualitySupervise.getSuperviseId()) + .set(QualitySupervise::getRatifyRemark, qualitySupervise.getRatifyRemark()) + .set(QualitySupervise::getRatifyStatus, qualitySupervise.getRatifyStatus()) + .set(QualitySupervise::getRatifyTime, LocalDateTime.now()) + ); + return true; + } + + /** + * 鐩戠潱璁″垝鍒楄〃 + * @param page + * @param qualitySupervise + * @return + */ + @Override + public IPage<QualitySupervise> pageQualitySupervise(Page page, QualitySupervise qualitySupervise) { + return baseMapper.pageQualitySupervise(page, QueryWrappers.queryWrappers(qualitySupervise)); + } + + /** + * 鐩戠潱璁″垝璇︽儏鍒楄〃 + * @return + */ + @Override + public IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, QualitySuperviseDetailsDto qualitySuperviseDetails) { + if (qualitySuperviseDetails.getSuperviseId() == null) { + return new Page(); + } + Integer causeType = qualitySuperviseDetails.getCauseType(); + qualitySuperviseDetails.setCauseType(null); + return qualitySuperviseDetailsMapper.pageQualitySuperviseDetail(page, QueryWrappers.queryWrappers(qualitySuperviseDetails), causeType); + } + + /** + * 鏌ヨ璇ヨ鍒掔洃鐫e憳 + * @param superviseDetailsId + * @return + */ + @Override + public List<Map<String, String>> getRecordUser(Integer superviseDetailsId) { + return baseMapper.getRecordUser(superviseDetailsId); + } + + /** + * 瀵煎嚭鐩戠潱璁″垝 + * @param superviseId + * @param response + */ + @Override + public void exportQualitySupervise(Integer superviseId, HttpServletResponse response) { + QualitySupervise qualitySupervise = baseMapper.selectById(superviseId); + //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃 + String writeUrl = userMapper.selectById(qualitySupervise.getWriteUserId()).getSignatureUrl(); + if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) { + throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); + } + + //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃 + String ratifyUrl = null; + if (qualitySupervise.getRatifyUserId() != null) { + ratifyUrl = userMapper.selectById(qualitySupervise.getRatifyUserId()).getSignatureUrl(); + if (StringUtils.isBlank(ratifyUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + // 瀹氫箟涓�涓泦鍚堝瓨鏀句汉鍛樼鍚� + ArrayList<PictureRenderData> recordUserDataList = new ArrayList<>(); + // TODO:纭鏈�澶氫細鏈�5涓汉 + String recordUserIds = qualitySupervise.getRecordUserIds(); + if (StringUtils.isNotBlank(recordUserIds)) { + // 瀵逛汉鍛榠d瀛楃涓茶繘琛屽垎鍓叉垚鏁扮粍 + String[] userIds = recordUserIds.split(","); + // 寰幆鑾峰彇浜哄憳绛惧悕 + for (String userIdStr : userIds) { + // 杞崲涓篿nt绫诲瀷 + Integer userId = Integer.valueOf(userIdStr); + // 鑾峰彇浜哄憳绛惧悕瀵硅薄 + PictureRenderData finalUserSignatureUrl = UserUtils.getFinalUserSignatureUrl(userId); + // 灏嗕汉鍛樼鍚嶅璞℃坊鍔犲埌闆嗗悎涓� + recordUserDataList.add(finalUserSignatureUrl); + } + } + + // 鍒ゆ柇闆嗗悎闀垮害锛屽苟琛ull鍒�2涓� + while (recordUserDataList.size() < 2) { + recordUserDataList.add(null); + } + + // 鏌ヨ璇︽儏 + List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery() + .eq(QualitySuperviseDetails::getSuperviseId, superviseId)); + + int index = 1; + for (QualitySuperviseDetails qualitySuperviseDetail : qualitySuperviseDetails) { + qualitySuperviseDetail.setIndex(index); + index++; + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-supervise.docx"); + String finalRatifyUrl = ratifyUrl; + Configure configure = Configure.builder() + .bind("superviseDetailList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("year", qualitySupervise.getSuperviseYear()); + put("superviseDetailList", qualitySuperviseDetails); + put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null); + put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("writeDateUrl", qualitySupervise.getWriteTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(qualitySupervise.getWriteTime())).create() : null); + put("ratifyDateUrl", qualitySupervise.getRatifyTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(qualitySupervise.getRatifyTime())).create() : null); + put("recordUserUrl1", recordUserDataList.get(0)); + put("recordUserUrl2", recordUserDataList.get(1)); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + qualitySupervise.getSuperviseName(), "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("瀵煎嚭澶辫触"); + } + + + } + + /************************************************ 璁板綍 ******************************************************/ + + /** + * 鏌ヨ鐩戠潱璁板綍淇℃伅 + * @param superviseDetailsId + * @return + */ + @Override + public QualitySuperviseDetailsRecord getSuperviseDetailRecord(Integer superviseDetailsId) { + QualitySuperviseDetailsRecord detailsRecord; + detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery() + .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetailsId)); + if (detailsRecord == null) { + detailsRecord = new QualitySuperviseDetailsRecord(); + } + // 娣诲姞鎵瑰噯浜哄悕绉� + if (detailsRecord.getRatifyUserId() != null) { + User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); + detailsRecord.setRatifyUserName(user.getName()); + } + return detailsRecord; + } + + /** + * 鏂板鐩戠潱璁板綍淇℃伅 + * @param qualitySuperviseDetailsRecord + * @return + */ + @Override + public boolean addSuperviseDetailRecord(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) { + if (qualitySuperviseDetailsRecord.getSuperviseDetailsId() == null) { + throw new ErrorException("缂哄皯鐩戠潱璇︾粏淇℃伅id"); + } + qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord); + + if (qualitySuperviseDetailsRecord.getRatifyUserId() != null) { + + // 鏌ヨ璇︽儏淇℃伅 + QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(qualitySuperviseDetailsRecord.getSuperviseDetailsId()); + + 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("鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍甯﹀鎵�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(qualitySuperviseDetailsRecord.getRatifyUserId()); + info.setJumpPath("a7-quality-control-plan"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(qualitySuperviseDetailsRecord.getRatifyUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戠潱璁板綍瀹℃壒閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戠潱璁″垝"; + message += "\n" + "鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱璁板綍甯﹀鎵�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + return true; + } + + /** + * 鐩戠潱璁板綍鎵瑰噯 + * @param qualitySuperviseDetailsRecord + * @return + */ + @Override + public boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) { + if (qualitySuperviseDetailsRecord.getIsAccording() == null) { + throw new ErrorException("缂哄皯鏈�缁堢粨鏋�"); + } + + qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate() + .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, qualitySuperviseDetailsRecord.getSuperviseDetailsId()) + .set(QualitySuperviseDetailsRecord::getRatifyOpinion, qualitySuperviseDetailsRecord.getRatifyOpinion()) + .set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now()) + .set(QualitySuperviseDetailsRecord::getIsAccording, qualitySuperviseDetailsRecord.getIsAccording()) + .set(QualitySuperviseDetailsRecord::getIsFinish, 1)); + return true; + } + + /** + * 瀵煎嚭鐩戠潱璁板綍琛� + * @param superviseDetailsId + * @param response + */ + @Override + public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) { + QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId); + + //鑾峰彇鎶�鏈礋璐d汉鐨勭鍚嶅湴鍧� + String ratifyUrl = null; + if (recordDto.getRatifyUserId() != null) { + ratifyUrl = userMapper.selectById(recordDto.getRatifyUserId()).getSignatureUrl(); + if (StringUtils.isBlank(ratifyUrl)) { + throw new ErrorException("鎵句笉鍒版妧鏈礋璐d汉鐨勭鍚�"); + } + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-record.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalRatifyUrl = ratifyUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("supervision", recordDto); + put("supervisoruUrl", UserUtils.getFinalUserSignatureUrl(recordDto.getSupervisor())); + put("technicalDirectorUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("technicalDirectorDateUrl", recordDto.getRatifyTime() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(recordDto.getRatifyTime())).create() : null); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "瀵煎嚭鐩戠潱璁板綍琛�", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/ + + /** + * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param detailsAccording + * @return + */ + @Override + public boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) { + QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording(); + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + User user = userMapper.selectById( SecurityUtils.getUserId().intValue()); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + switch (detailsAccording.getFlowType()) { + // 涓嶇鍚堝伐浣滄儏鍐佃褰� + case 0: + if (detailsAccording.getSuperviseDetailsId() == null) { + throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id"); + } + according.setSuperviseDetailsId(detailsAccording.getSuperviseDetailsId()); + according.setOccurrenceDepartment(detailsAccording.getOccurrenceDepartment());//鍙戠敓閮ㄩ棬 + according.setHeadDepartment(detailsAccording.getHeadDepartment());//閮ㄩ棬璐熻矗浜� + according.setFindWay(detailsAccording.getFindWay());//鍙戠幇閫斿緞 + according.setRecordDetail(detailsAccording.getRecordDetail());//涓嶇鍚堣褰曡缁� + according.setRecordAccording(detailsAccording.getRecordAccording());//涓嶅悎鏍艰褰曚緷鎹� + + according.setFoundDepartment(departmentLimsName);//鍙戠幇閮ㄩ棬 + according.setRecordUserId(user.getId());//璁板綍浜篿d + according.setRecordUserName(user.getName());//璁板綍浜� + according.setRecordTime(LocalDate.now());//璁板綍鏃堕棿 + + // 澶勭悊浜轰俊鎭� + User actionsUser = userMapper.selectById(detailsAccording.getActionsUserId()); + String actionsDepartmentLims = userMapper.selectUserDepartmentLimsName(actionsUser.getId()); + + according.setResponsibleDepartment(actionsDepartmentLims);//璐d换閮ㄩ棬 + according.setActionsUserId(actionsUser.getId());//澶勭悊浜篿d + according.setActionsUserName(actionsUser.getName());//澶勭悊浜� + + according.setSupervisedUserId(detailsAccording.getSupervisedUserId());//琚洃鐫d汉id + // 琚洃鐫d汉 + User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId()); + according.setSupervisedUserName(supervisedUser.getName());//琚洃鐫d汉 + according.setActionsTime(detailsAccording.getSupervisedTime());//琚洃鐫f椂闂� + qualitySuperviseDetailsAccordingMapper.insert(according); + break; + + // 1澶勭悊鎺柦 + case 1: + according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); + according.setEliminateMeasure(detailsAccording.getEliminateMeasure());//娓呴櫎涓嶇鍚堟帾鏂� + according.setActionsTime(LocalDate.now());//澶勭悊鏃堕棿 + + // 绾犳璐熻矗浜轰俊鎭� + User correctsUser = userMapper.selectById(detailsAccording.getCorrectUserId()); + + according.setCorrectUserId(correctsUser.getId());//绾犳璐熻矗浜篿d + according.setCorrectUserName(correctsUser.getName());//绾犳璐熻矗浜� + + qualitySuperviseDetailsAccordingMapper.updateById(according); + break; + + // 绾犳鎺柦 + case 2: + according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); + according.setCorrectContent(detailsAccording.getCorrectContent());//绾犳鎺柦鍐呭 + according.setIsCorrect(detailsAccording.getIsCorrect());//鏄惁绾犳澶勭悊 + according.setCorrectTime(LocalDate.now());//绾犳濉啓鏃堕棿 + + // 璐ㄩ噺璐熻矗浜� + User qualityUser = userMapper.selectById(detailsAccording.getQualityManagerUserId()); + according.setQualityManagerUserId(qualityUser.getId());//璐ㄩ噺璐熻矗浜篿d + according.setQualityManagerUserName(qualityUser.getName());//璐ㄩ噺璐熻矗浜� + + qualitySuperviseDetailsAccordingMapper.updateById(according); + break; + + //鏄惁閫氱煡瀹㈡埛鍙仮澶嶅伐浣� + case 3: + according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); + according.setNotifyCustomer(detailsAccording.getNotifyCustomer());//閫氱煡瀹㈡埛 + according.setBackToWork(detailsAccording.getBackToWork());//鍥炲宸ヤ綔 + + according.setQualityManagerTime(LocalDate.now());//鏃ユ湡 + according.setIsFinish(1); + qualitySuperviseDetailsAccordingMapper.updateById(according); + break; + } + return true; + } + + /** + * (瑁呭娴佺▼)鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param detailsAccording + * @return + */ + @Override + public boolean addEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) { + if (detailsAccording.getSuperviseDetailsId() == null) { + throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id"); + } + + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + detailsAccording.setFoundDepartment(departmentLimsName);//鍙戠幇閮ㄩ棬 + detailsAccording.setRecordUserId(user.getId());//璁板綍浜篿d + detailsAccording.setRecordUserName(user.getName());//璁板綍浜� + // 琚洃鐫d汉 + User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId()); + detailsAccording.setSupervisedUserName(supervisedUser.getName());//琚洃鐫� + qualitySuperviseDetailsAccordingMapper.insert(detailsAccording); + + if (detailsAccording.getApproverUserId() != null) { + // 鏌ヨ璇︽儏淇℃伅 + QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(detailsAccording.getSuperviseDetailsId()); + + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS璐ㄩ噺鐩戠潱涓嶅悎鏍兼帶鍒跺崟濉啓閫氱煡"); + info.setContent("鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱涓嶅悎鏍兼帶鍒跺崟寰呭~鍐�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(detailsAccording.getApproverUserId()); + info.setJumpPath("a7-quality-control-plan"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(detailsAccording.getApproverUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戠潱璁板綍瀹℃壒閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戠潱璁″垝"; + message += "\n" + "鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱涓嶅悎鏍兼帶鍒跺崟寰呭~鍐�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + return true; + } + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * 鎵瑰噯瀹屾垚鍚庣粺涓�濉啓涓変釜娴佺▼浜篿d鍜岄儴闂� + * @param detailsAccording + * @return + */ + @Override + public boolean approverEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) { + QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording(); + according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId()); + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + + according.setResponsibleDepartment(departmentLimsName);//璐d换閮ㄩ棬 + according.setActionsUserId(user.getId());//澶勭悊浜篿d + according.setActionsUserName(user.getName());//澶勭悊浜� + + according.setCorrectUserId(user.getId());//绾犳璐熻矗浜篿d + according.setCorrectUserName(user.getName());//绾犳璐熻矗浜� + + according.setQualityManagerUserId(user.getId());//璐ㄩ噺璐熻矗浜篿d + according.setQualityManagerUserName(user.getName());//璐ㄩ噺璐熻矗浜� + according.setIsFinish(1); + qualitySuperviseDetailsAccordingMapper.updateById(according); + return true; + } + + /** + * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param superviseDetailsId + * @return + */ + @Override + public QualitySuperviseDetailsAccording getSuperviseDetailAccording(Integer superviseDetailsId) { + QualitySuperviseDetailsAccording detailsAccording; + + detailsAccording = qualitySuperviseDetailsAccordingMapper.selectOne(Wrappers.<QualitySuperviseDetailsAccording>lambdaQuery() + .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsId, superviseDetailsId)); + + if (detailsAccording == null) { + detailsAccording = new QualitySuperviseDetailsAccording(); + // 鏌ヨ鐩戠潱璁″垝璇︽儏 + QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId); + detailsAccording.setSupervisedUserId(superviseDetails.getSupervisedUserId()); + detailsAccording.setSupervisedUserName(superviseDetails.getSupervisee()); + } + return detailsAccording; + } + + /** + * 鏌ヨ涓嶇鍚堥」 + * @param page + * @param detailsAccording + * @return + */ + @Override + public IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, QualitySuperviseDetailsAccording detailsAccording) { + return qualitySuperviseDetailsAccordingMapper.pageSuperviseDetailAccording(page, QueryWrappers.queryWrappers(detailsAccording)); + } + + /** + * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭� + * @param superviseDetailAccordingId + * @param response + */ + @Override + public void superviseDetailAccordingExport(Integer superviseDetailAccordingId, HttpServletResponse response) { + QualitySuperviseDetailsAccordingDto exportDto = qualitySuperviseDetailsAccordingMapper.selectSuperviseDetailsAccording(superviseDetailAccordingId); + // 鍙戠幇閮ㄩ棬 + String discovererUrl = null; + if (exportDto.getRecordUserId() != null) { + discovererUrl = userMapper.selectById(exportDto.getRecordUserId()).getSignatureUrl(); + if (StringUtils.isBlank(discovererUrl)) { + throw new ErrorException("鎵句笉鍒板彂鐜伴儴闂ㄤ汉鐨勭鍚�"); + } + } + + // 澶勭悊鎺柦璐熻矗浜� + String responsibleUrl = null; + if (exportDto.getCorrectUserId() != null) { + responsibleUrl = userMapper.selectById(exportDto.getCorrectUserId()).getSignatureUrl(); + if (StringUtils.isBlank(responsibleUrl)) { + throw new ErrorException("鎵句笉鍒板鐞嗘帾鏂借礋璐d汉鐨勭鍚�"); + } + } + + // 鎶�鏈礋璐d汉 + String correctiveUrl = null; + if (exportDto.getQualityManagerUserId() != null) { + correctiveUrl = userMapper.selectById(exportDto.getQualityManagerUserId()).getSignatureUrl(); + if (StringUtils.isBlank(correctiveUrl)) { + throw new ErrorException("鎵句笉鍒版妧鏈礋璐d汉鐨勭鍚�"); + } + } + + // 璐ㄩ噺璐熻矗浜� + String qualityUrl = null; + if (exportDto.getQualityManagerUserId() != null) { + qualityUrl = userMapper.selectById(exportDto.getQualityManagerUserId()).getSignatureUrl(); + if (StringUtils.isBlank(qualityUrl)) { + throw new ErrorException("鎵句笉鍒拌川閲忚礋璐d汉鐨勭鍚�"); + } + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-according.docx"); + ConfigureBuilder builder = Configure.builder(); + String finalDiscovererUrl = discovererUrl; + String finalResponsibleUrl = responsibleUrl; + String finalCorrectiveUrl = correctiveUrl; + String finalQualityUrl = qualityUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("control", exportDto); + put("discovererUrl", StringUtils.isNotBlank(finalDiscovererUrl) ? Pictures.ofLocal(imgUrl + "/" + finalDiscovererUrl).create() : null); + put("responsibleUrl", StringUtils.isNotBlank(finalResponsibleUrl) ? Pictures.ofLocal(imgUrl + "/" + finalResponsibleUrl).create() : null); + put("correctiveUrl", StringUtils.isNotBlank(finalCorrectiveUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCorrectiveUrl).create() : null); + put("qualityUrl", StringUtils.isNotBlank(finalQualityUrl) ? Pictures.ofLocal(imgUrl + "/" + finalQualityUrl).create() : null); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/ + + + @Override + public boolean addSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) { + QualitySuperviseDetailsCorrect correct = new QualitySuperviseDetailsCorrect(); + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + + switch (detailsCorrect.getFlowType()) { + // 涓嶅悎鏍兼彁鍑� + case 0: + if (detailsCorrect.getSuperviseDetailsId() == null) { + throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id"); + } + correct.setSuperviseDetailsId(detailsCorrect.getSuperviseDetailsId()); + correct.setRaiseResult(detailsCorrect.getRaiseResult());//涓嶅悎鏍艰〃杩� + correct.setVdeRaiseResult(detailsCorrect.getVdeRaiseResult());//vde涓撳鍙戠幇 + correct.setRaiseDepartment(departmentLimsName);//鎻愬嚭閮ㄩ棬 + correct.setRaiseUserId(user.getId());//鎻愬嚭浜篿d + correct.setRaiseUserName(user.getName());// 鎻愬嚭浜� + correct.setRaiseTime(LocalDate.now());// 鎻愬嚭鏃堕棿 + + // 鍘熷洜鍒嗘瀽浜轰俊鎭� + User causeUser = userMapper.selectById(detailsCorrect.getCauseUserId()); + String causeDepartmentLims = userMapper.selectUserDepartmentLimsName(causeUser.getId()); + + correct.setCauseDepartment(causeDepartmentLims);//鍘熷洜鍒嗘瀽璐d换閮ㄩ棬 + correct.setCauseUserId(causeUser.getId());//1鍘熷洜鍒嗘瀽浜篿d + correct.setCauseUserName(causeUser.getName());// 1鍘熷洜鍒嗘瀽浜� + qualitySuperviseDetailsCorrectMapper.insert(correct); + + break; + + // 鍘熷洜鍒嗘瀽 + case 1: + correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); + correct.setCauseResult(detailsCorrect.getCauseResult());//鍘熷洜鍒嗘瀽 + correct.setCauseTime(LocalDate.now());// 1鍘熷洜鍒嗘瀽鏃堕棿 + + // 绾犳浜轰俊鎭� + User correctUser = userMapper.selectById(detailsCorrect.getCorrectUserId()); + String correctUserDepartmentLims = userMapper.selectUserDepartmentLimsName(correctUser.getId()); + + correct.setCorrectDepartment(correctUserDepartmentLims);//2绾犳璐d换閮ㄩ棬 + correct.setCorrectUserId(correctUser.getId());//2绾犳浜篿d + correct.setCorrectUserName(correctUser.getName());// 2绾犳浜� + qualitySuperviseDetailsCorrectMapper.updateById(correct); + break; + + // 绾犳鎺柦 + case 2: + correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); + correct.setCorrectResult(detailsCorrect.getCorrectResult());//2绾犳鎺柦 + correct.setRaiseDepartmentAffirm(detailsCorrect.getRaiseDepartmentAffirm());//2鎻愬嚭閮ㄩ棬纭 + correct.setCorrectTime(LocalDate.now());// 2绾犳鏃堕棿 + + // 楠岃瘉浜轰俊鎭� + User validationUser = userMapper.selectById(detailsCorrect.getValidationUserId()); + String validationUserDepartmentLims = userMapper.selectUserDepartmentLimsName(validationUser.getId()); + + correct.setValidationDepartment(validationUserDepartmentLims);//3楠岃瘉閮ㄩ棬 + correct.setValidationUserId(validationUser.getId());//3楠岃瘉浜篿d + correct.setValidationUserName(validationUser.getName());// 3楠岃瘉浜� + qualitySuperviseDetailsCorrectMapper.updateById(correct); + break; + + // 楠岃瘉缁撴灉 + case 3: + correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); + correct.setValidationResult(detailsCorrect.getValidationResult());//3楠岃瘉缁撴灉 + correct.setValidationTime(LocalDate.now());// 3楠岃瘉鏃堕棿 + correct.setIsFinish(1); + qualitySuperviseDetailsCorrectMapper.updateById(correct); + break; + } + + return true; + } + + /** + * (瑁呭娴佺▼)鏂板鐩戠潱绾犳澶勭悊淇℃伅 + * @return + */ + @Override + public boolean addEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) { + if (detailsCorrect.getSuperviseDetailsId() == null) { + throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id"); + } + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + Integer userId = SecurityUtils.getUserId().intValue(); + User user = userMapper.selectById(userId); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + + detailsCorrect.setRaiseDepartment(departmentLimsName);//鎻愬嚭閮ㄩ棬 + detailsCorrect.setRaiseUserId(user.getId());//鎻愬嚭浜篿d + detailsCorrect.setRaiseUserName(user.getName());// 鎻愬嚭浜� + qualitySuperviseDetailsCorrectMapper.insert(detailsCorrect); + + if (detailsCorrect.getApproverUserId() != null) { + // 鏌ヨ璇︽儏淇℃伅 + QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(detailsCorrect.getSuperviseDetailsId()); + + // 娑堟伅鍙戦�� + InformationNotification info = new InformationNotification(); + // 鍙戦�佷汉 + info.setCreateUser(user.getName()); + info.setMessageType("6"); + info.setTheme("CNAS璐ㄩ噺鐩戠潱绾犳鎺柦濉啓閫氱煡"); + info.setContent("鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱绾犳鎺柦寰呭~鍐�"); + info.setSenderId(userId); + // 鎺ユ敹浜� + info.setConsigneeId(detailsCorrect.getApproverUserId()); + info.setJumpPath("a7-quality-control-plan"); + informationNotificationService.addInformationNotification(info); + + // 鍙戦�佷紒涓氬井淇¢�氱煡 + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ鍙戦�佷汉 + User people = userMapper.selectById(detailsCorrect.getApproverUserId()); + String message = ""; + message += "CNAS璐ㄩ噺鐩戠潱绾犳鎺柦濉啓閫氱煡"; + message += "\n璇峰幓杩囩▼瑕佹眰-璐ㄩ噺鐩戠潱璁″垝"; + message += "\n" + "鐩戠潱椤圭洰涓�: " + superviseDetails.getSuperviseProject() + " 鐩戠潱绾犳鎺柦寰呭~鍐�"; + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(people.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + + return true; + } + + /** + * (瑁呭娴佺▼)鎵瑰噯鐩戠潱绾犳澶勭悊淇℃伅 + * @return + */ + @Override + public boolean approveEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) { + QualitySuperviseDetailsCorrect correct = new QualitySuperviseDetailsCorrect(); + // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂� + User user = userMapper.selectById(SecurityUtils.getUserId().intValue()); + String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId()); + correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId()); + + correct.setCauseDepartment(departmentLimsName);//鍘熷洜鍒嗘瀽璐d换閮ㄩ棬 + correct.setCauseUserId(user.getId());//1鍘熷洜鍒嗘瀽浜篿d + correct.setCauseUserName(user.getName());// 1鍘熷洜鍒嗘瀽浜� + + correct.setCorrectDepartment(departmentLimsName);//2绾犳璐d换閮ㄩ棬 + correct.setCorrectUserId(user.getId());//2绾犳浜篿d + correct.setCorrectUserName(user.getName());// 2绾犳浜� + + correct.setValidationDepartment(departmentLimsName);//3楠岃瘉閮ㄩ棬 + correct.setValidationUserId(user.getId());//3楠岃瘉浜篿d + correct.setValidationUserName(user.getName());// 3楠岃瘉浜� + correct.setIsFinish(1); + qualitySuperviseDetailsCorrectMapper.updateById(correct); + + return true; + } + + /** + * 鏌ヨ鐩戠潱绾犳澶勭悊 + * @param superviseDetailsId + * @return + */ + @Override + public QualitySuperviseDetailsCorrect getSuperviseDetailCorrect(Integer superviseDetailsId) { + QualitySuperviseDetailsCorrect detailsCorrect; + + detailsCorrect = qualitySuperviseDetailsCorrectMapper.selectOne(Wrappers.<QualitySuperviseDetailsCorrect>lambdaQuery() + .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsId, superviseDetailsId)); + + if (detailsCorrect == null) { + detailsCorrect = new QualitySuperviseDetailsCorrect(); + } + return detailsCorrect; + } + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 + * @param page + * @param detailsCorrect + * @return + */ + @Override + public IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailCorrect(Page page, QualitySuperviseDetailsCorrect detailsCorrect) { + return qualitySuperviseDetailsCorrectMapper.pageSuperviseDetailAccording(page, QueryWrappers.queryWrappers(detailsCorrect)); + } + + /** + * 鏂板鐩戠潱绾犳鎺柦闄勪欢 + * @param superviseDetailsCorrectId + * @param file + * @return + */ + @Override + public boolean uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file) { + if (superviseDetailsCorrectId == null) { + throw new ErrorException("缂哄皯绾犳鎺柦id"); + } + + String urlString; + String pathName; + String path; + String filename = file.getOriginalFilename(); + String contentType = file.getContentType(); + QualitySuperviseDetailsCorrectFile superviseDetailsCorrectFile = new QualitySuperviseDetailsCorrectFile(); + superviseDetailsCorrectFile.setSuperviseDetailsCorrectId(superviseDetailsCorrectId); + superviseDetailsCorrectFile.setFileName(filename); + if (contentType != null && contentType.startsWith("image/")) { + // 鏄浘鐗� + path = imgUrl; + superviseDetailsCorrectFile.setType(1); + } else { + // 鏄枃浠� + path = wordUrl; + superviseDetailsCorrectFile.setType(2); + } + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + superviseDetailsCorrectFile.setFileUrl(pathName); + qualitySuperviseDetailsCorrectFileMapper.insert(superviseDetailsCorrectFile); + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new ErrorException(e.getMessage()); + } + } + + /** + * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢 + * @param superviseDetailsCorrectId + * @return + */ + @Override + public List<QualitySuperviseDetailsCorrectFile> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId) { + return qualitySuperviseDetailsCorrectFileMapper.selectList(Wrappers.<QualitySuperviseDetailsCorrectFile>lambdaQuery() + .eq(QualitySuperviseDetailsCorrectFile::getSuperviseDetailsCorrectId, superviseDetailsCorrectId)); + } + + /** + * 瀵煎嚭鐩戠潱绾犳鎺柦 + * @param superviseDetailsCorrectId + * @param response + */ + @Override + public void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response) { + QualitySuperviseDetailsCorrect detailsCorrect = qualitySuperviseDetailsCorrectMapper.selectById(superviseDetailsCorrectId); + QualitySuperviseDetailsCorrectDto detailsCorrectDto = new QualitySuperviseDetailsCorrectDto(); + BeanUtils.copyProperties(detailsCorrect, detailsCorrectDto); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + // 鎻愬嚭鏃堕棿 + detailsCorrectDto.setRaiseTimeString(detailsCorrectDto.getRaiseTime() != null + ? detailsCorrectDto.getRaiseTime().format(formatter) : null); + // 鍘熷洜鍒嗘瀽鏃堕棿 + detailsCorrectDto.setCauseTimeString(detailsCorrectDto.getCauseTime() != null + ? detailsCorrectDto.getCauseTime().format(formatter) : null); + + // 绾犳鏃堕棿 + detailsCorrectDto.setCorrectTimeString(detailsCorrectDto.getCorrectTime() != null + ? detailsCorrectDto.getCorrectTime().format(formatter) : null); + + // 楠岃瘉鏃堕棿 + detailsCorrectDto.setValidationTimeString(detailsCorrectDto.getValidationTime() != null + ? detailsCorrectDto.getValidationTime().format(formatter) : null); + + + // 鎻愬嚭浜虹鍚� + String raiseUrl = null; + if (detailsCorrectDto.getRaiseUserId() != null) { + raiseUrl = userMapper.selectById(detailsCorrectDto.getRaiseUserId()).getSignatureUrl(); + if (StringUtils.isBlank(raiseUrl)) { + throw new ErrorException("鎵句笉鍒版彁鍑轰汉鐨勭鍚�"); + } + } + + // 鍘熷洜鍒嗘瀽浜� + String causeUrl = null; + if (detailsCorrectDto.getCauseUserId() != null) { + causeUrl = userMapper.selectById(detailsCorrectDto.getCauseUserId()).getSignatureUrl(); + if (StringUtils.isBlank(causeUrl)) { + throw new ErrorException("鎵句笉鍒板師鍥犲垎鏋愪汉鐨勭鍚�"); + } + } + + // 绾犳浜� + String correctUrl = null; + if (detailsCorrectDto.getCorrectUserId() != null) { + correctUrl = userMapper.selectById(detailsCorrectDto.getCorrectUserId()).getSignatureUrl(); + if (StringUtils.isBlank(correctUrl)) { + throw new ErrorException("鎵句笉鍒扮籂姝d汉鐨勭鍚�"); + } + } + + // 楠岃瘉浜� + String validationUrl = null; + if (detailsCorrectDto.getValidationUserId() != null) { + validationUrl = userMapper.selectById(detailsCorrectDto.getValidationUserId()).getSignatureUrl(); + if (StringUtils.isBlank(validationUrl)) { + throw new ErrorException("鎵句笉鍒伴獙璇佷汉鐨勭鍚�"); + } + } + + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/supervise-detail-correct.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + String finalRaiseUrl = raiseUrl; + String finalCauseUrl = causeUrl; + String finalCorrectUrl = correctUrl; + String finalValidationUrl = validationUrl; + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("correct", detailsCorrectDto); + put("raiseUrl", StringUtils.isNotBlank(finalRaiseUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRaiseUrl).create() : null); + put("causeUrl", StringUtils.isNotBlank(finalCauseUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCauseUrl).create() : null); + put("correctUrl", StringUtils.isNotBlank(finalCorrectUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCorrectUrl).create() : null); + put("validationUrl", StringUtils.isNotBlank(finalValidationUrl) ? Pictures.ofLocal(imgUrl + "/" + finalValidationUrl).create() : null); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "鐩戠潱绾犳鎺柦", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + + } +} + diff --git a/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java new file mode 100644 index 0000000..0c35317 --- /dev/null +++ b/cnas-process/src/main/java/com/ruoyi/process/task/QualitySuperviseSchedule.java @@ -0,0 +1,66 @@ +package com.ruoyi.process.task; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.WxCpUtils; +import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper; +import com.ruoyi.process.pojo.QualitySuperviseDetails; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * 鍩硅璁″垝浣跨敤鎻愰啋璁板綍鎻愰啋 + */ +@Component +public class QualitySuperviseSchedule { + @Resource + private QualitySuperviseDetailsMapper qualitySuperviseDetailsMapper; + @Resource + private UserMapper userMapper; + @Resource + private ThreadPoolTaskExecutor threadPoolTaskExecutor; + + /** + * 鎻愰啋濉啓璁惧浣跨敤璁板綍 + */ +// @Scheduled(cron = "0/5 * * * * *") + @Scheduled(cron = "0 0 9 1 * *") // 姣忔湀1鍙锋墽琛� + public void task1() { + // 鏌ヨ褰撴湀鐩戠潱璁″垝 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M"); + String format = LocalDateTime.now().format(formatter); + List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery() + .eq(QualitySuperviseDetails::getSuperviseTime, format)); + + for (QualitySuperviseDetails qualitySuperviseDetail : qualitySuperviseDetails) { + threadPoolTaskExecutor.execute(() -> { + // 鏌ヨ琚洃鐫d汉淇℃伅 + User user = userMapper.selectById(qualitySuperviseDetail.getSupervisedUserId()); + // 浼佷笟寰俊閫氱煡鍩硅 + String message = ""; + message += "璐ㄩ噺鐩戠潱璁″垝鎻愰啋閫氱煡"; + message += "\n鐩戠潱鏃ユ湡: " + qualitySuperviseDetail.getSuperviseTime(); + message += "\n鐩戠潱鐩殑: " + qualitySuperviseDetail.getSupervisePurpose(); + message += "\n鐩戠潱椤圭洰: " + qualitySuperviseDetail.getSuperviseProject(); + message += "\n琚洃鐫d汉: " + qualitySuperviseDetail.getSupervisee(); + message += "\n璁″垝褰撴湀杩涜鐩戠潱璁″垝"; + + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 + try { + WxCpUtils.inform(user.getAccount(), message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + } + } + +} diff --git a/cnas-process/src/main/java/com/ruoyi/process/test.java b/cnas-process/src/main/java/com/ruoyi/process/test.java deleted file mode 100644 index 4ce577f..0000000 --- a/cnas-process/src/main/java/com/ruoyi/process/test.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.ruoyi.process; - -/** - * @Author zhuo - * @Date 2025/2/22 - */ -public class test { -} diff --git a/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml b/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml new file mode 100644 index 0000000..8dde5b2 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml @@ -0,0 +1,6 @@ +<?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.InconsistentDistributionDetailMapper"> + + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml b/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml new file mode 100644 index 0000000..f8d88e1 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.InconsistentDistributionMapper"> + + <!-- 涓嶇鍚堥」鍒嗛〉鏌ヨ --> + <select id="pageInconsistentDistribution" resultType="com.ruoyi.process.dto.InconsistentDistributionDto"> + select * + from (select cid.*, + u1.name create_user_name, + u2.name update_user_name + from cnas_inconsistent_distribution cid + left join user u1 on u1.id = cid.create_user + left join user u2 on u2.id = cid.update_user + order by cid.create_time desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/InspectionOrderDetailMapper.xml b/cnas-process/src/main/resources/mapper/InspectionOrderDetailMapper.xml new file mode 100644 index 0000000..4cd91ee --- /dev/null +++ b/cnas-process/src/main/resources/mapper/InspectionOrderDetailMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.InspectionOrderDetailMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.InspectionOrderDetail"> + <id column="inspection_order_detail_id" property="inspectionOrderDetailId" /> + <result column="inspection_order_id" property="inspectionOrderId" /> + <result column="sample_number" property="sampleNumber" /> + <result column="test_item" property="testItem" /> + <result column="test_standard" property="testStandard" /> + <result column="remark" property="remark" /> + <result column="create_user" property="createUser" /> + <result column="create_time" property="createTime" /> + <result column="update_user" property="updateUser" /> + <result column="update_time" property="updateTime" /> + </resultMap> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml b/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml new file mode 100644 index 0000000..e43189c --- /dev/null +++ b/cnas-process/src/main/resources/mapper/InspectionOrderMapper.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.InspectionOrderMapper"> + + <!--妫�楠屽鎵樺崟鍒嗛〉鏌ヨ--> + <select id="pageInspectionOrder" resultType="com.ruoyi.process.dto.InspectionOrderDto"> + select * + from (select * + from cnas_inspection_order + order by create_time desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + + <!--濮旀墭鍗曟煡璇㈡垚鍝佽鍗�--> + <select id="getInsOrderOnInspection" resultType="com.ruoyi.inspect.pojo.InsOrder"> + select * + from (select * + from ins_order + where state = 4 and ifs_inventory_id is null + order by entrust_code desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml b/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml new file mode 100644 index 0000000..6033fa3 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml @@ -0,0 +1,62 @@ +<?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.ProcessComplainMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessComplain"> + <id column="id" property="id"/> + <result column="complain_no" property="complainNo"/> + <result column="complain_name" property="complainName"/> + <result column="ins_report_id" property="insReportId"/> + <result column="sample_code" property="sampleCode"/> + <result column="create_user" property="createUser"/> + <result column="complainant" property="complainant"/> + <result column="create_time" property="createTime"/> + <result column="update_user" property="updateUser"/> + <result column="update_time" property="updateTime"/> + <result column="complain_method" property="complainMethod"/> + <result column="problem_records" property="problemRecords"/> + <result column="problem_records_user" property="problemRecordsUser"/> + <result column="problem_records_time" property="problemRecordsTime"/> + <result column="duty_ownership" property="dutyOwnership"/> + <result column="duty_ownership_user" property="dutyOwnershipUser"/> + <result column="duty_ownership_time" property="dutyOwnershipTime"/> + <result column="cause_analysis" property="causeAnalysis"/> + <result column="cause_analysis_user" property="causeAnalysisUser"/> + <result column="cause_analysis_time" property="causeAnalysisTime"/> + <result column="corrective_action" property="correctiveAction"/> + <result column="corrective_action_user" property="correctiveActionUser"/> + <result column="corrective_action_time" property="correctiveActionTime"/> + <result column="corrective_action_confirmation" property="correctiveActionConfirmation"/> + <result column="corrective_action_confirmation_user" property="correctiveActionConfirmationUser"/> + <result column="corrective_action_confirmation_time" property="correctiveActionConfirmationTime"/> + </resultMap> + <select id="pageProcessComplain" resultType="com.ruoyi.process.pojo.ProcessComplain"> + select * + from (select cpc.*,name complainant + from cnas_process_complain cpc left join user u on cpc.create_user = u.id)A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + <select id="getProcessComplain" resultType="com.ruoyi.process.dto.ProcessComplainDto"> + select cpc.*, + ir.code, + u1.name complainant, + u1.phone, + u1.email, + u2.name problemRecordsUserName, + u3.name dutyOwnershipUserName, + u4.name causeAnalysisUserName, + u5.name correctiveActionUserName, + u6.name correctiveActionConfirmationUserName + from cnas_process_complain cpc + left join user u1 on cpc.create_user = u1.id + left join user u2 on cpc.problem_records_user = u2.id + left join user u3 on cpc.duty_ownership_user = u3.id + left join user u4 on cpc.cause_analysis_user = u4.id + left join user u5 on cpc.corrective_action_user = u5.id + left join user u6 on cpc.corrective_action_confirmation_user = u6.id + left join ins_report ir on cpc.ins_report_id = ir.id + where cpc.id=#{id} + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml new file mode 100644 index 0000000..b7e00d7 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml @@ -0,0 +1,26 @@ +<?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.ProcessDealMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessDeal"> + <id column="id" property="id"/> + <result column="sample_name" property="sampleName"/> + <result column="sample_code" property="sampleCode"/> + <result column="sample_supplier" property="sampleSupplier"/> + <result column="num" property="num"/> + <result column="deal_method" property="dealMethod"/> + <result column="deal_time" property="dealTime"/> + <result column="create_user" property="createUser"/> + <result column="update_user" property="updateUser"/> + <result column="create_time" property="createTime"/> + <result column="update_time" property="updateTime"/> + <result column="totaldeal_id" property="totaldealId"/> + </resultMap> + <select id="pageProcessDeal" resultType="com.ruoyi.process.pojo.ProcessDeal"> + select * + from (select * from cnas_process_deal) A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml b/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml new file mode 100644 index 0000000..bea6799 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml @@ -0,0 +1,26 @@ +<?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.ProcessEvaluateMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessEvaluate"> + <id column="id" property="id"/> + <result column="report_name" property="reportName"/> + <result column="report_url" property="reportUrl"/> + <result column="evaluate_user" property="evaluateUser"/> + <result column="evaluateUserName" property="evaluateUserName"/> + <result column="evaluate_time" property="evaluateTime"/> + <result column="note" property="note"/> + <result column="create_user" property="createUser"/> + <result column="update_user" property="updateUser"/> + <result column="create_time" property="createTime"/> + <result column="update_time" property="updateTime"/> + </resultMap> + <select id="pageProcessEvaluate" resultType="com.ruoyi.process.pojo.ProcessEvaluate"> + select * from (select cpe.*,u.name evaluateUserName + from cnas_process_evaluate cpe + left join user u on cpe.evaluate_user = u.id)A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewArchivedMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewArchivedMapper.xml new file mode 100644 index 0000000..963db04 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewArchivedMapper.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.ProcessMethodSearchNewArchivedMapper"> + + <select id="pageSearchNewArchived" resultType="com.ruoyi.process.dto.ProcessMethodSearchNewArchivedDto"> + select * + from (select cqm.*, + u1.name write_name, + u3.name ratify_name + from cnas_process_method_search_new_archived cqm + left join user u1 on u1.id = cqm.write_user_id + left join user u3 on u3.id = cqm.ratify_user_id + order by cqm.create_time desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewBackupsMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewBackupsMapper.xml new file mode 100644 index 0000000..46e55a3 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewBackupsMapper.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.process.mapper.ProcessMethodSearchNewBackupsMapper"> + + <select id="pageSearchNewBackups" resultType="com.ruoyi.process.pojo.ProcessMethodSearchNewBackups"> + select * + from (select * + from cnas_process_method_search_new_backups + order by create_time desc + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml new file mode 100644 index 0000000..7be9498 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml @@ -0,0 +1,21 @@ +<?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.ProcessMethodSearchNewMapper"> + + <!-- 鏍囧噯鏌ユ柊鍒嗛〉鏌ヨ --> + <select id="pageMethodSearchNew" resultType="com.ruoyi.process.pojo.ProcessMethodSearchNew"> + select * + from (select * + from cnas_process_method_search_new + <where> + <if test="beginDate != null and beginDate != '' and endDate != null and endDate != ''"> + and create_time between #{beginDate} and #{endDate} + </if> + </where> + order by create_time desc + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml new file mode 100644 index 0000000..b5e95d0 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml @@ -0,0 +1,24 @@ +<?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.ProcessMethodVerifyCalibrationsFileMapper"> + <select id="selectCalibrationsFileList" + resultType="com.ruoyi.process.dto.ProcessMethodVerifyCalibrationsFileDto"> + select cf.*, + d.device_name, + d.management_number + from cnas_process_method_verify_calibrations_file cf + left join device d on d.id = cf.device_id + where cf.method_verify_id = #{methodVerifyId} + </select> + + <!-- 璁惧璇佷功鏌ヨ鏍″噯璇佷功 --> + <select id="selectCalibrationsFile" resultType="java.lang.String"> + select system_file_name + from device_metric_record + where device_id = #{deviceId} + and type = 'calibrate' + and status = '0yes' + order by create_time desc + limit 1 + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMachineAttachmentMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMachineAttachmentMapper.xml new file mode 100644 index 0000000..aadcf87 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMachineAttachmentMapper.xml @@ -0,0 +1,5 @@ +<?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.ProcessMethodVerifyMachineAttachmentMapper"> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml new file mode 100644 index 0000000..ff31958 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.ruoyi.process.mapper.ProcessMethodVerifyMapper"> + + <!-- 鏍囧噯鏂规硶璺熸柊楠岃瘉鍒楄〃 --> + <select id="pagesMethodVerify" resultType="com.ruoyi.process.pojo.ProcessMethodVerify"> + select * from ( + select method_verify_id, + method_name, + verify_reason, + technology_change, + confirm_date, + create_time, + operation_type + from cnas_process_method_verify + order by create_time desc + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMethodFileMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMethodFileMapper.xml new file mode 100644 index 0000000..4bc5d74 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMethodFileMapper.xml @@ -0,0 +1,6 @@ +<?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.ProcessMethodVerifyMethodFileMapper"> + + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml new file mode 100644 index 0000000..f7dfffd --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper"> + + <!-- 鏍规嵁鐢ㄦ埛id鏌ヨ涓婂矖璇佸湴鍧� --> + <select id="selectWorkFile" resultType="java.lang.String"> + select system_file_name + from cnas_person_post_authorization_record + where user_id = #{userId} + order by create_time desc + limit 1 + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml new file mode 100644 index 0000000..6c06783 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml @@ -0,0 +1,41 @@ +<?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.ProcessReportMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessReport"> + <id column="id" property="id"/> + <result column="ins_report_code" property="insReportCode"/> + <result column="pages" property="pages"/> + <result column="number" property="number"/> + <result column="send" property="send"/> + <result column="method" property="method"/> + <result column="send_time" property="sendTime"/> + <result column="send_user" property="sendUser"/> + <result column="signatory" property="signatory"/> + <result column="remark" property="remark"/> + <result column="create_user" property="createUser"/> + <result column="create_time" property="createTime"/> + <result column="update_user" property="updateUser"/> + <result column="update_time" property="updateTime"/> + </resultMap> + <select id="pageProcessReport" resultType="com.ruoyi.process.pojo.ProcessReport"> + select * from (select cpr.* , + u1.name sendUserName + from cnas_process_report cpr + left join user u1 on send_user=u1.id )A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + <select id="getIds" resultType="com.ruoyi.process.pojo.ProcessReport"> + select cpr.* , + u1.name sendUserName + from cnas_process_report cpr + left join user u1 on send_user=u1.id + where 1=1 + and cpr.id in + <foreach collection="ids" separator="," item="id" open="(" close=")"> + #{id} + </foreach> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml b/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml new file mode 100644 index 0000000..3e27bb6 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.ProcessSampleMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessSample"> + <id column="id" property="id" /> + <result column="sample_name" property="sampleName" /> + <result column="sample_code" property="sampleCode" /> + <result column="sample_supplier" property="sampleSupplier" /> + <result column="num" property="num" /> + <result column="sample_state" property="sampleState" /> + <result column="create_user" property="createUser" /> + <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" /> + </resultMap> + <select id="pageProcessSample" resultType="com.ruoyi.process.pojo.ProcessSample"> + select * + from (select * from cnas_process_sample) A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml b/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml new file mode 100644 index 0000000..5d8ac9c --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml @@ -0,0 +1,35 @@ +<?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.ProcessTotalSampleMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessTotalSample"> + <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="pageProcessTotalSample" resultType="com.ruoyi.process.pojo.ProcessTotalSample"> + select * + from (select cpt.*, u1.name examineUserName , u2.name ratifyUserName,u3.name submitUserName + from cnas_process_total_sample cpt + left join user u1 on u1.id = examine_user + left join user u2 on u2.id = ratify_user + left join user u3 on u3.id = submit_user) A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml b/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml new file mode 100644 index 0000000..64f16ae --- /dev/null +++ b/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.process.mapper.ProcessTotaldealMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessTotaldeal"> + <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 * + from (select cpt.*, u1.name examineUserName , u2.name ratifyUserName,u3.name submitUserName + from cnas_process_totaldeal cpt + left join user u1 on u1.id = examine_user + left join user u2 on u2.id = ratify_user + left join user u3 on u3.id = submit_user) A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateFileMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateFileMapper.xml new file mode 100644 index 0000000..5091ec4 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateFileMapper.xml @@ -0,0 +1,5 @@ +<?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.QualityMonitorDetailsEvaluateFileMapper"> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml new file mode 100644 index 0000000..0f05609 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml @@ -0,0 +1,15 @@ +<?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.QualityMonitorDetailsEvaluateMapper"> + + <!-- 鏌ヨ璐ㄩ噺鐩戞帶璇勪环 --> + <select id="getQualityMonitorEvaluate" resultType="com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate"> + select cqmde.*, + u1.name implement_name, + u2.name ratify_user_name + from cnas_quality_monitor_details_evaluate cqmde + left join user u1 on u1.id = cqmde.implement_user_id + left join user u2 on u2.id = cqmde.ratify_user_id + where cqmde.quality_monitor_details_id = #{qualityMonitorDetailsId} + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml new file mode 100644 index 0000000..0617ad7 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.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.process.mapper.QualityMonitorDetailsMapper"> + <select id="pageQualityMonitorDetail" resultType="com.ruoyi.process.pojo.QualityMonitorDetails"> + select * from ( + select * + from cnas_quality_monitor_details + order by quality_monitor_details_id + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsRatifyMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsRatifyMapper.xml new file mode 100644 index 0000000..4d1627b --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsRatifyMapper.xml @@ -0,0 +1,5 @@ +<?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.QualityMonitorDetailsRatifyMapper"> + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml new file mode 100644 index 0000000..c04764c --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > +<mapper namespace="com.ruoyi.process.mapper.QualityMonitorMapper"> + <!-- 鐩戞帶璁″垝鍒嗛〉鏌ヨ --> + <select id="pageQualityMonitor" resultType="com.ruoyi.process.dto.QualityMonitorDto"> + select * + from (select cqm.*, + u1.name write_name, + u2.name examine_name, + u3.name ratify_name + from cnas_quality_monitor cqm + left join user u1 on u1.id = cqm.write_user_id + left join user u2 on u2.id = cqm.examine_user_id + left join user u3 on u3.id = cqm.ratify_user_id + order by cqm.create_time desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml new file mode 100644 index 0000000..be39018 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml @@ -0,0 +1,57 @@ +<?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.QualitySuperviseDetailsAccordingMapper"> + + <!-- 鏌ヨ涓嶇鍚堟帶鍒跺崟鍒楄〃 --> + <select id="pageSuperviseDetailAccording" + resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsAccording"> + select * + from (select * + from cnas_quality_supervise_details_according + order by create_time desc + ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + + <select id="selectSuperviseDetailsAccording" + resultType="com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto"> + select sda.*, + DATE_FORMAT(sda.record_time, '%Y-%m-%d') discovererDateString, <!-- 鍙戠幇鏃堕棿 --> + DATE_FORMAT(sda.actions_time, '%Y-%m-%d') responsibleDepartmentDateString, <!-- 澶勭悊鏃堕棿 --> + DATE_FORMAT(sda.correct_time, '%Y-%m-%d') correctiveMeasureDateString, <!-- 绾犳鏃堕棿 --> + DATE_FORMAT(sda.quality_manager_time, '%Y-%m-%d') qualitySupervisorDateString,<!-- 璐ㄩ噺鏃堕棿 --> + DATE_FORMAT(sda.supervised_time, '%Y-%m-%d') supervisedTimeString, <!-- 琚洃鐫f椂闂� --> + case when sda.is_correct = 1 then '鈽�' + else '鈻�' end correctiveMeasureFollowTracksYes, <!-- 绾犳鎺柦澶勭悊鍗曡窡韪�(鏄�) --> + case when sda.is_correct = 2 then '鈽�' + else '鈻�' end correctiveMeasureFollowTracksNo, <!-- 绾犳鎺柦澶勭悊鍗曡窡韪�(鍚�) --> + case when sda.notify_customer = 1 then '鈽�' + else '鈻�' end whetherInformCustomerYes, <!-- 鍛婄煡瀹㈡埛(鏄�) --> + case when sda.notify_customer = 2 then '鈽�' + else '鈻�' end whetherInformCustomerNo, <!-- 鍛婄煡瀹㈡埛(鍚�) --> + case when sda.back_to_work = 1 then '鈽�' + else '鈻�' end whetherResumeWorkYes, <!-- 鎭㈠宸ヤ綔(鏄�) --> + case when sda.back_to_work = 2 then '鈽�' + else '鈻�' end whetherResumeWorkNo, <!-- 鎭㈠宸ヤ綔(鍚�) --> + case when sda.find_way = 0 then '鈽�' + else '鈻�' end discoveryApproach0, + case when sda.find_way = 1 then '鈽�' + else '鈻�' end discoveryApproach1, + case when sda.find_way = 2 then '鈽�' + else '鈻�' end discoveryApproach2, + case when sda.find_way = 3 then '鈽�' + else '鈻�' end discoveryApproach3, + case when sda.find_way = 4 then '鈽�' + else '鈻�' end discoveryApproach4, + case when sda.find_way = 5 then '鈽�' + else '鈻�' end discoveryApproach5, + case when sda.find_way = 6 then '鈽�' + else '鈻�' end discoveryApproach6, + case when sda.find_way = 7 then '鈽�' + else '鈻�' end discoveryApproach7 + from cnas_quality_supervise_details_according sda + where sda.supervise_details_id = #{superviseDetailId} + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectFileMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectFileMapper.xml new file mode 100644 index 0000000..09d7fe6 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectFileMapper.xml @@ -0,0 +1,6 @@ +<?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.QualitySuperviseDetailsCorrectFileMapper"> + + +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml new file mode 100644 index 0000000..e0f4cea --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml @@ -0,0 +1,15 @@ +<?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.QualitySuperviseDetailsCorrectMapper"> + + <!-- 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 --> + <select id="pageSuperviseDetailAccording" resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect"> + select * + from (select * + from cnas_quality_supervise_details_correct + order by create_time desc) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml new file mode 100644 index 0000000..be608d7 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml @@ -0,0 +1,36 @@ +<?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.QualitySuperviseDetailsMapper"> + + <!-- 璐ㄩ噺鐩戠潱璁″垝璇︽儏鍒楄〃 --> + <select id="pageQualitySuperviseDetail" resultType="com.ruoyi.process.dto.QualitySuperviseDetailsDto"> + select * + from (select cd.*, + cr.is_according, + ca.is_correct, + cc.supervise_details_correct_id + from cnas_quality_supervise_details cd + left join cnas_quality_supervise_details_record cr + on cr.supervise_details_id = cd.supervise_details_id + left join cnas_quality_supervise_details_according ca + on ca.supervise_details_id = cd.supervise_details_id + left join cnas_quality_supervise_details_correct cc + on cc.supervise_details_id = cd.supervise_details_id + where 1=1 + <choose> + <when test="causeType != null and causeType == 1"> + and cd.supervise_reason not like '%鍔ㄦ��%' + </when> + <when test="causeType != null and causeType == 2"> + and cd.supervise_reason like '%鍔ㄦ��%' + </when> + <otherwise> + and cd.supervise_reason not like '%鍔ㄦ��%' + </otherwise> + </choose> + order by STR_TO_DATE(CONCAT(cd.supervise_time, '.01'), '%Y.%m.%d')) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> +</mapper> diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml new file mode 100644 index 0000000..1dd051f --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml @@ -0,0 +1,11 @@ +<?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.QualitySuperviseDetailsRecordMapper"> + + <!--瀵煎嚭鐩戠潱璁板綍琛�--> + <select id="selectSuperviseDetailRecord" resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsRecord"> + select cqsdr.* + from cnas_quality_supervise_details_record cqsdr + where cqsdr.supervise_details_id = #{superviseDetailsId} + </select> +</mapper> \ No newline at end of file diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml new file mode 100644 index 0000000..17f17c8 --- /dev/null +++ b/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml @@ -0,0 +1,26 @@ +<?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.QualitySuperviseMapper"> + + <!-- 鐩戠潱璁″垝鍒楄〃 --> + <select id="pageQualitySupervise" resultType="com.ruoyi.process.pojo.QualitySupervise"> + select * + from (select * + from cnas_quality_supervise + order by create_time desc ) a + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> + ${ew.customSqlSegment} + </if> + </select> + <!-- 鏌ヨ璇ヨ鍒掔洃鐫e憳 --> + + <select id="getRecordUser" resultType="java.util.Map"> + select u.id userId, + u.name userName + from user u + left join cnas_quality_supervise cqs on find_in_set(u.id, cqs.record_user_ids) + left join cnas_quality_supervise_details cqsd on cqs.supervise_id = cqsd.supervise_id + where cqsd.supervise_details_id = #{superviseDetailsId} + </select> + +</mapper> diff --git a/cnas-process/src/main/resources/static/excel/check-records.xlsx b/cnas-process/src/main/resources/static/excel/check-records.xlsx new file mode 100644 index 0000000..7afdfff --- /dev/null +++ b/cnas-process/src/main/resources/static/excel/check-records.xlsx Binary files differ diff --git a/cnas-process/src/main/resources/static/inconsistent-distribution.docx b/cnas-process/src/main/resources/static/inconsistent-distribution.docx new file mode 100644 index 0000000..d41623f --- /dev/null +++ b/cnas-process/src/main/resources/static/inconsistent-distribution.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/inspection-order.docx b/cnas-process/src/main/resources/static/inspection-order.docx new file mode 100644 index 0000000..d88c7b1 --- /dev/null +++ b/cnas-process/src/main/resources/static/inspection-order.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/method-verify.docx b/cnas-process/src/main/resources/static/method-verify.docx new file mode 100644 index 0000000..8ab5461 --- /dev/null +++ b/cnas-process/src/main/resources/static/method-verify.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx b/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx new file mode 100644 index 0000000..420d810 --- /dev/null +++ b/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx b/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx new file mode 100644 index 0000000..c3e8a2e --- /dev/null +++ b/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/quality-monitor.docx b/cnas-process/src/main/resources/static/quality-monitor.docx new file mode 100644 index 0000000..8ad9990 --- /dev/null +++ b/cnas-process/src/main/resources/static/quality-monitor.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/quality-supervise.docx b/cnas-process/src/main/resources/static/quality-supervise.docx new file mode 100644 index 0000000..2d94d9c --- /dev/null +++ b/cnas-process/src/main/resources/static/quality-supervise.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/report-deal.docx b/cnas-process/src/main/resources/static/report-deal.docx new file mode 100644 index 0000000..fdd74f4 --- /dev/null +++ b/cnas-process/src/main/resources/static/report-deal.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/sample-deal.docx b/cnas-process/src/main/resources/static/sample-deal.docx new file mode 100644 index 0000000..9021b0a --- /dev/null +++ b/cnas-process/src/main/resources/static/sample-deal.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/sample-receive.docx b/cnas-process/src/main/resources/static/sample-receive.docx new file mode 100644 index 0000000..1035f1c --- /dev/null +++ b/cnas-process/src/main/resources/static/sample-receive.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/supervise-detail-correct.docx b/cnas-process/src/main/resources/static/supervise-detail-correct.docx new file mode 100644 index 0000000..f5e3a23 --- /dev/null +++ b/cnas-process/src/main/resources/static/supervise-detail-correct.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/supervision-detail-according.docx b/cnas-process/src/main/resources/static/supervision-detail-according.docx new file mode 100644 index 0000000..0b2ac36 --- /dev/null +++ b/cnas-process/src/main/resources/static/supervision-detail-according.docx Binary files differ diff --git a/cnas-process/src/main/resources/static/supervision-detail-record.docx b/cnas-process/src/main/resources/static/supervision-detail-record.docx new file mode 100644 index 0000000..f31bced --- /dev/null +++ b/cnas-process/src/main/resources/static/supervision-detail-record.docx Binary files differ diff --git a/pom.xml b/pom.xml index 9d36e98..0dbf825 100644 --- a/pom.xml +++ b/pom.xml @@ -278,6 +278,13 @@ <version>${ruoyi.version}</version> </dependency> + <!--cnas浜哄憳--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-personnel</artifactId> + <version>${ruoyi.version}</version> + </dependency> + <!-- minio --> <dependency> <groupId>io.minio</groupId> @@ -392,6 +399,7 @@ <module>cnas-manage</module> <module>cnas-device</module> <module>cnas-process</module> + <module>cnas-personnel</module> </modules> <packaging>pom</packaging> diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 7dd0fdb..485e28d 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -97,6 +97,18 @@ <artifactId>cnas-device</artifactId> </dependency> + <!--cnas璧勬簮瑕佹眰--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-process</artifactId> + </dependency> + + <!--cnas浜哄憳--> + <dependency> + <groupId>com.ruoyi</groupId> + <artifactId>cnas-personnel</artifactId> + </dependency> + </dependencies> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java new file mode 100644 index 0000000..9fa947a --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentDto.java @@ -0,0 +1,23 @@ +package com.ruoyi.common.core.domain.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentDto { + + private Integer id; + + private String name; + + private Integer userId; + + private Integer fatherId; + + private List<DepartmentDto> children; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java new file mode 100644 index 0000000..4ec52e2 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/DepartmentLims.java @@ -0,0 +1,42 @@ +package com.ruoyi.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 閮ㄩ棬鏄庣粏 + * @TableName department_lims + */ +@TableName(value ="department_lims") +@Data +public class DepartmentLims implements Serializable { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鍚嶇О") + private String name; + + @ApiModelProperty("鐖剁骇id") + private Integer fatherId; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; + + @TableField(exist = false) + private List<DepartmentLims> children; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java new file mode 100644 index 0000000..3e2a51e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DepartmentLimsMapper.java @@ -0,0 +1,27 @@ +package com.ruoyi.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.core.domain.entity.DepartmentDto; +import com.ruoyi.common.core.domain.entity.DepartmentLims; + +import java.util.List; + +/** +* @author z1292 +* @description 閽堝琛ㄣ�恉epartment_lims(閮ㄩ棬鏄庣粏)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-05-22 14:08:17 +* @Entity com.yuanchu.mom.pojo.DepartmentLims +*/ +public interface DepartmentLimsMapper extends BaseMapper<DepartmentLims> { + + //鑾峰彇閮ㄩ棬鏍� + List<DepartmentDto> selectDepartment(); + + //鏍规嵁閮ㄩ棬id,鏌ヨ浠栫殑鎵�鏈夊瓙绫籭d + List<Integer> selectSonById(Integer id); + +} + + + + diff --git a/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml new file mode 100644 index 0000000..48c7d39 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/DepartmentLimsMapper.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.system.mapper.DepartmentLimsMapper"> + + + <select id="selectDepartment" resultType="com.ruoyi.common.core.domain.entity.DepartmentDto"> + SELECT id, name, father_id + FROM department_lims + </select> + + <select id="selectSonById" resultType="java.lang.Integer"> + SELECT au.id + FROM (SELECT * FROM department_lims WHERE father_id IS NOT NULL) au, + (SELECT @father_id := #{id}) pd + WHERE FIND_IN_SET(father_id, @father_id) > 0 + AND @father_id := concat(@father_id, ',', id) + UNION + SELECT id + FROM department_lims + WHERE id = #{id} + ORDER BY id + </select> +</mapper> -- Gitblit v1.9.3