From 983bdb5b89932b38d08a11ad1eed6ea89d1597e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 29 一月 2024 10:07:31 +0800
Subject: [PATCH] 更新
---
assess-admin/src/main/resources/application-dev.yml | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java | 86
assess-admin/src/main/resources/application-pro.yml | 82
assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java | 31
assess-system/src/main/java/com/gkhy/assess/system/service/AssRecitificationService.java | 50
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssContractController.java | 56
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectController.java | 104
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateTask.java | 89
assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictType.java | 16
assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecognitionService.java | 67
assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java | 2
assess-admin/src/main/resources/db/migration/V20231130002_risk_estimate.sql | 2
assess-admin/pom.xml | 31
assess-system/src/main/java/com/gkhy/assess/system/domain/AssConclusion.java | 69
assess-system/src/main/java/com/gkhy/assess/system/service/SysAgencyService.java | 7
assess-system/src/main/java/com/gkhy/assess/system/service/AssContractService.java | 45
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java | 63
assess-system/src/main/java/com/gkhy/assess/system/service/AssConclusionService.java | 45
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRecitificationController.java | 59
assess-system/src/test/java/com/gkhy/system/MybatisPlusGenerator.java | 8
assess-admin/src/main/resources/db/migration/V20231205003_accessory_file.sql | 6
assess-admin/src/main/resources/db/migration/V20231123006_notice.sql | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateScheduleServiceImpl.java | 71
assess-system/src/main/resources/mapper/SysRegionMapper.xml | 0
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRiskEstimateServiceImpl.java | 89
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysDictTypeMapper.java | 3
assess-system/src/main/java/com/gkhy/assess/system/domain/AssContract.java | 80
assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java | 30
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimatePlanController.java | 56
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssContractMapper.java | 40
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictTypeServiceImpl.java | 22
assess-framework/src/main/java/com/gkhy/assess/framework/aop/DataDesensitizationAspect.java | 47
assess-system/src/main/java/com/gkhy/assess/system/domain/vo/PersonProjectVO.java | 22
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java | 43
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java | 61
assess-admin/src/main/resources/db/migration/V20231124002_attach.sql | 1
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java | 86
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMaterialMapper.java | 39
assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimatePlanService.java | 44
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertClassifyController.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectMaterialServiceImpl.java | 91
assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectService.java | 130
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecordMapper.java | 27
assess-admin/src/main/resources/db/migration/V20231204004_plan_person.sql | 15
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectMaterial.java | 72
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java | 8
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppProjectController.java | 58
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateTaskMapper.java | 39
assess-admin/src/main/resources/db/migration/V20231205002_investigation.sql | 2
assess-admin/src/main/resources/db/migration/V20231123007_law.sql | 4
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java | 192 +
assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java | 108
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java | 5
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAgencyMapper.java | 6
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java | 6
pom.xml | 1
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertInfoController.java | 27
assess-admin/src/main/resources/db/migration/V20231123002_dict_type.sql | 6
assess-system/src/main/java/com/gkhy/assess/system/enums/ReportProgressEnum.java | 141
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserController.java | 44
assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictData.java | 18
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java | 71
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFilingApply.java | 62
assess-admin/src/main/resources/db/migration/V20231130001_project.sql | 11
assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitizationType.java | 19
assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java | 57
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLawController.java | 6
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertClassifyServiceImpl.java | 6
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecord.java | 95
assess-system/src/main/resources/mapper/AssFilingApplyMapper.xml | 37
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateTaskController.java | 57
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java | 93
assess-admin/src/main/resources/db/migration/V20231205004_face_record.sql | 7
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssWorkNotificationMapper.java | 38
assess-admin/src/main/resources/db/migration/V20231206002_project_material.sql | 5
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConfirmFinalServiceImpl.java | 36
assess-system/src/main/resources/mapper/SysDictTypeMapper.xml | 14
assess-common/src/main/java/com/gkhy/assess/common/config/MybatisPlusConfig.java | 1
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimatePlan.java | 92
assess-system/src/main/java/com/gkhy/assess/system/service/AssWorkNotificationService.java | 44
assess-admin/src/main/resources/db/migration/V20231127001_expert_classify.sql | 28
assess-system/src/main/java/com/gkhy/assess/system/domain/AssDevice.java | 73
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecordController.java | 60
assess-common/src/main/java/com/gkhy/assess/common/domain/BaseEntity.java | 14
assess-system/src/main/java/com/gkhy/assess/system/domain/vo/UploadObjectVO.java | 3
assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml | 18
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFilingApplyServiceImpl.java | 66
assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectMaterialService.java | 46
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssConclusionMapper.java | 40
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProcessAuditMapper.java | 38
assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java | 50
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserFaceController.java | 39
assess-system/src/main/resources/mapper/SysExpertClassifyMapper.xml | 0
assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java | 29
assess-system/src/main/java/com/gkhy/assess/system/domain/SysConfig.java | 11
assess-admin/src/main/resources/db/migration/V20231205001_work_notification.sql | 1
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecognitionController.java | 76
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java | 105
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppPlanPersonController.java | 39
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConfirmFinalController.java | 44
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysLawServiceImpl.java | 11
assess-system/src/main/java/com/gkhy/assess/system/domain/AssAudit.java | 159
assess-system/src/main/resources/mapper/AssDeviceMapper.xml | 42
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFilingApplyMapper.java | 25
assess-system/src/main/resources/mapper/AssRiskEstimateMapper.xml | 59
assess-system/src/main/java/com/gkhy/assess/system/enums/PlayRoleEnum.java | 47
assess-admin/src/main/resources/db/migration/V20231206001_process_audit.sql | 3
assess-admin/src/test/java/com/gkhy/admin/RegionTest.java | 4
assess-system/src/main/resources/mapper/AssEstimateScheduleMapper.xml | 17
assess-common/src/main/java/com/gkhy/assess/common/api/ResultCode.java | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java | 131
assess-admin/src/main/resources/db/migration/V20240105002_change_dict_data.sql | 43
assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java | 41
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/front/AgencyController.java | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimatePlanServiceImpl.java | 108
assess-system/src/main/resources/mapper/AssEstimateTaskMapper.xml | 48
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConclusionController.java | 56
assess-system/src/main/java/com/gkhy/assess/system/domain/AssWorkNotification.java | 78
assess-system/src/main/resources/mapper/AssAuditMapper.xml | 71
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssDeviceServiceImpl.java | 105
assess-system/src/main/java/com/gkhy/assess/system/service/AssAuditService.java | 43
assess-system/src/main/java/com/gkhy/assess/system/service/AssProcessAuditService.java | 43
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAuditServiceImpl.java | 106
assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java | 56
assess-system/src/main/resources/mapper/AssContractMapper.xml | 42
assess-common/src/main/java/com/gkhy/assess/common/config/BaseRedisConfig.java | 24
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java | 21
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecognitionController.java | 58
assess-framework/src/main/java/com/gkhy/assess/framework/aop/LogAspect.java | 5
assess-admin/src/main/resources/db/migration/V20240109001_add_delflag.sql | 11
assess-system/src/main/java/com/gkhy/assess/system/domain/AssRecitification.java | 82
assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml | 68
assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java | 6
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecordController.java | 60
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserFaceMapper.java | 23
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateScheduleMapper.java | 33
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java | 125
assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml | 75
assess-system/src/main/resources/mapper/AssProjectMapper.xml | 235 +
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecordServiceImpl.java | 87
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAuditMapper.java | 42
assess-admin/src/main/resources/db/migration/V20231208003_filing_apply.sql | 17
assess-system/src/main/java/com/gkhy/assess/system/domain/AssPlanPerson.java | 104
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertInfoServiceImpl.java | 39
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java | 12
assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitization.java | 13
assess-system/src/main/resources/mapper/AssEstimatePlanMapper.xml | 50
assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java | 3
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRiskEstimateMapper.java | 48
assess-admin/src/main/resources/db/migration/V20231204001_device.sql | 27
assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java | 9
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssContractServiceImpl.java | 75
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java | 50
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java | 13
assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java | 8
assess-admin/src/main/resources/db/migration/V20240109002_user_face.sql | 17
assess-system/src/main/java/com/gkhy/assess/system/service/AssConfirmFinalService.java | 21
assess-system/src/main/resources/mapper/AssRecitificationMapper.xml | 41
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppLoginController.java | 43
assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java | 8
assess-admin/src/main/resources/db/migration/V20231123004_config.sql | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/SysLaw.java | 26
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysExpertInfoMapper.java | 7
assess-system/src/main/resources/mapper/AssWorkNotificationMapper.xml | 41
assess-admin/src/main/resources/db/migration/V20231130003_contract.sql | 5
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAgencyServiceImpl.java | 9
assess-admin/src/main/resources/db/migration/V20231124001_region.sql | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java | 46
assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java | 75
assess-admin/src/main/resources/db/migration/V20240105001_change_user.sql | 5
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java | 3
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 272
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java | 41
assess-system/src/main/resources/mapper/SysConfigMapper.xml | 0
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictDataServiceImpl.java | 32
assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertClassify.java | 15
assess-system/src/main/resources/mapper/SysNoticeMapper.xml | 3
assess-admin/src/main/resources/db/migration/V20231205005_audit.sql | 3
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRecitificationServiceImpl.java | 69
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysRegionController.java | 8
assess-admin/src/main/resources/db/migration/V20231208002_face_recognition.sql | 19
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java | 249 +
assess-system/src/main/java/com/gkhy/assess/system/service/AssFilingApplyService.java | 53
assess-system/src/main/resources/mapper/AssConclusionMapper.xml | 39
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimatePlanMapper.java | 39
assess-admin/src/main/resources/db/migration/V20231123001_add_user.sql | 10
assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateScheduleService.java | 39
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssReviewRecordController.java | 45
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecognition.java | 83
assess-system/src/main/java/com/gkhy/assess/system/service/AssRiskEstimateService.java | 45
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRiskEstimateController.java | 57
assess-admin/src/main/resources/db/migration/V20231204003_estimate_schedule.sql | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateSchedule.java | 80
assess-system/src/main/resources/mapper/AssInvestigationMapper.xml | 41
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysNoticeController.java | 4
assess-common/src/main/java/com/gkhy/assess/common/enums/SensitiveTypeEnum.java | 10
assess-system/src/main/resources/mapper/AssProjectMaterialMapper.xml | 50
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java | 101
assess-system/src/main/resources/mapper/SysAgencyMapper.xml | 13
assess-admin/src/main/resources/db/migration/V20240125001_change_region.sql | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateScheduleController.java | 50
assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecordService.java | 46
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppDictTypeController.java | 30
assess-system/src/main/resources/mapper/SysUserFaceMapper.xml | 8
assess-admin/src/main/resources/db/migration/V20231123005_agency.sql | 6
assess-system/src/main/java/com/gkhy/assess/system/enums/ProgressPhaseEnum.java | 51
assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml | 24
assess-system/src/main/java/com/gkhy/assess/system/domain/SysNotice.java | 21
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectMaterialController.java | 54
assess-system/src/main/resources/mapper/SysAttachMapper.xml | 19
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java | 47
assess-system/src/main/java/com/gkhy/assess/system/service/AssDeviceService.java | 66
assess-system/src/main/java/com/gkhy/assess/system/domain/SysRegion.java | 19
assess-admin/src/main/java/com/gkhy/assess/admin/GkhyAdminApplication.java | 1
assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java | 14
assess-framework/src/main/java/com/gkhy/assess/framework/config/FilterConfig.java | 39
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRecitificationMapper.java | 28
assess-system/src/main/java/com/gkhy/assess/system/domain/AssRiskEstimate.java | 144
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateTaskServiceImpl.java | 96
assess-admin/src/main/resources/application.yml | 4
assess-admin/src/main/resources/db/migration/V20231127002_expert_info.sql | 44
assess-admin/src/main/resources/db/migration/V20231130004_estimate_task.sql | 1
assess-common/src/main/java/com/gkhy/assess/common/domain/TableSupport.java | 2
assess-system/src/main/java/com/gkhy/assess/system/service/SysExpertInfoService.java | 14
assess-framework/src/main/java/com/gkhy/assess/framework/config/MyWebMvcConfig.java | 4
assess-system/src/main/java/com/gkhy/assess/system/domain/SysAttach.java | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysRegionServiceImpl.java | 3
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java | 61
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssDeviceMapper.java | 40
assess-common/src/main/java/com/gkhy/assess/common/enums/RequestSourceEnum.java | 29
assess-system/src/main/java/com/gkhy/assess/system/service/AssReviewRecordService.java | 11
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFilingApplyController.java | 56
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssReviewRecordServiceImpl.java | 24
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssPlanPersonController.java | 69
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictDataController.java | 5
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssDeviceController.java | 56
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictTypeController.java | 9
assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateTaskService.java | 43
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProcessAudit.java | 184
assess-system/src/main/java/com/gkhy/assess/system/service/AssPlanPersonService.java | 66
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java | 66
assess-admin/src/main/resources/db/migration/V20231204002_estimate_plan.sql | 2
assess-system/src/main/resources/mapper/SysLawMapper.xml | 3
assess-admin/src/main/resources/db/migration/V20231205006_conclusion.sql | 3
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java | 5
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAuditController.java | 62
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java | 82
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssWorkNotificationController.java | 55
assess-common/src/main/java/com/gkhy/assess/common/utils/DesenseUtil.java | 78
assess-system/src/main/resources/mapper/AssProcessAuditMapper.xml | 80
assess-system/src/main/resources/mapper/SysUserMapper.xml | 57
assess-admin/src/main/resources/db/migration/V20231123003_dict_data.sql | 16
assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectMaterialVO.java | 53
assess-system/src/main/resources/mapper/SysDictDataMapper.xml | 7
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java | 55
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssPlanPersonMapper.java | 47
assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java | 95
/dev/null | 38
assess-system/src/main/resources/mapper/AssFaceRecordMapper.xml | 53
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLoginController.java | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProcessAuditController.java | 60
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysNoticeServiceImpl.java | 7
assess-admin/src/main/resources/db/migration/V20231208001_recitification.sql | 20
263 files changed, 10,656 insertions(+), 513 deletions(-)
diff --git a/assess-admin/pom.xml b/assess-admin/pom.xml
index 3ac6c4b..e69bc5d 100644
--- a/assess-admin/pom.xml
+++ b/assess-admin/pom.xml
@@ -24,4 +24,35 @@
</dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>2.5.15</version>
+ <configuration>
+ <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>3.1.0</version>
+ <configuration>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ <warName>${project.artifactId}</warName>
+ </configuration>
+ </plugin>
+ </plugins>
+ <finalName>${project.artifactId}</finalName>
+ </build>
+
</project>
\ No newline at end of file
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/GkhyAdminApplication.java b/assess-admin/src/main/java/com/gkhy/assess/admin/GkhyAdminApplication.java
index b901f3e..17339e9 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/GkhyAdminApplication.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/GkhyAdminApplication.java
@@ -8,7 +8,6 @@
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@ComponentScan("com.gkhy.assess")
-//@MapperScan("com.gkhy.**.mapper")
public class GkhyAdminApplication {
public static void main(String[] args) {
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
new file mode 100644
index 0000000..7d836a1
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
@@ -0,0 +1,61 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+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.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 评估文件上传记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP评估文件上传 前端控制器")
+@RestController
+@RequestMapping("/app/manage/accessory-file")
+public class AppAccessoryFileController {
+ @Autowired
+ private AssAccessoryFileService assAccessoryFileService;
+
+ @RepeatSubmit
+ @ApiOperation(value = "评估文件上传(图片/文件)")
+ @PostMapping("/uploadFile")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "moduleType", dataType = "int", required = true, value = "上传模块code:1主要装置前的合影照片,2现场勘验照片,3企业陪同人员图片,4现场勘验视频,5现场勘验记录附件,6评审记录附件,7评价结论,8过程控制记录文档附件,9项目归档材料,10报备申请附件,11项目整改情况附件")
+ })
+ public CommonResult uploadFile(@RequestParam @NotNull Long projectId,@RequestParam @NotNull Integer moduleType, @RequestParam MultipartFile file){
+ return CommonResult.success(assAccessoryFileService.uploadFile(projectId,moduleType,file));
+ }
+
+ @ApiOperation(value = "根据项目id获取评估文件")
+ @GetMapping("/getAccessoryFileByProjectId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "query", name = "moduleType", dataType = "int", required = true, value = "上传模块code")
+ })
+ public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType){
+ return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,moduleType));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除评估文件")
+ @DeleteMapping("/remove/{accessoryFileId}")
+ public CommonResult deleteAccessoryFile(@PathVariable(value = "accessoryFileId")Long accessoryFileId){
+ return CommonResult.success(assAccessoryFileService.deleteById(accessoryFileId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppDictTypeController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppDictTypeController.java
new file mode 100644
index 0000000..eb58ebe
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppDictTypeController.java
@@ -0,0 +1,30 @@
+package com.gkhy.assess.admin.controller.app;
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.SysDictType;
+import com.gkhy.assess.system.service.SysDictTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "APP数据字典类型前端控制器")
+@RestController
+@RequestMapping("/app/system/dictType")
+public class AppDictTypeController {
+ @Autowired
+ private SysDictTypeService dictTypeService;
+
+ @ApiOperation(value = "根据类型获取字典数据")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "dictType", dataType = "int", required = true, value = "类型")
+ })
+ @GetMapping("/getDictDataByType")
+ public CommonResult getDictDataByType(@RequestParam(required = true)String dictType){
+ return CommonResult.success(dictTypeService.getDictDataByType(dictType));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecognitionController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecognitionController.java
new file mode 100644
index 0000000..d22a505
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecognitionController.java
@@ -0,0 +1,58 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.common.enums.RequestSourceEnum;
+import com.gkhy.assess.system.domain.AssFaceRecognition;
+import com.gkhy.assess.system.service.AssFaceRecognitionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 签字确认表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP签字确认 前端控制器")
+@RestController
+@RequestMapping("/app/manage/face-recognition")
+public class AppFaceRecognitionController {
+
+ @Autowired
+ private AssFaceRecognitionService faceRecognitionService;
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增签字确认")
+ @PostMapping("/add")
+ public CommonResult addContract(@Validated @ModelAttribute AssFaceRecognition faceRecognition){
+ return CommonResult.success(faceRecognitionService.addFaceRecognition(faceRecognition));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "编辑签字确认")
+// @PutMapping("/edit")
+// public CommonResult editContract(@Validated @RequestBody AssFaceRecognition faceRecognition){
+// return CommonResult.success(faceRecognitionService.editFaceRecognition(faceRecognition));
+// }
+
+
+ @ApiOperation(value = "根据成员id获取签字确认")
+ @GetMapping("/getRecognitionByPersonId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "personId", dataType = "long", required = true, value = "成员id")
+ })
+ public CommonResult getRecognitionByPersonId( Long projectId,Long personId){
+ return CommonResult.success(faceRecognitionService.getRecognitionByPersonId(projectId,personId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecordController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecordController.java
new file mode 100644
index 0000000..3e25cc9
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppFaceRecordController.java
@@ -0,0 +1,60 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssFaceRecord;
+import com.gkhy.assess.system.service.AssFaceRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP人脸识别记录 前端控制器")
+@RestController
+@RequestMapping("/app/manage/face-record")
+public class AppFaceRecordController {
+
+ @Autowired
+ private AssFaceRecordService faceRecordService;
+
+// @ApiOperation(value = "根据项目id获取人脸识别记录列表")
+// @GetMapping("/getFaceByProjectId")
+// @ApiImplicitParams({
+// @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+// @ApiImplicitParam(paramType = "body", name = "scene", dataType = "int", required = true, value = "是否是现场勘验人脸识别记录,0否,1是,默认0")
+// })
+// public CommonResult getFaceByProjectId(Long projectId,@RequestParam(defaultValue = "0",required = false) Integer scene){
+// return CommonResult.success(faceRecordService.faceRecordList(projectId,scene));
+// }
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增人脸识别记录")
+ @PostMapping("/add")
+ public CommonResult addDevice(@Validated @ModelAttribute AssFaceRecord faceRecord){
+ return CommonResult.success(faceRecordService.addFaceRecord(faceRecord));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "编辑人脸识别记录")
+// @PutMapping("/edit")
+// public CommonResult editDevice(@Validated @RequestBody AssFaceRecord faceRecord){
+// return CommonResult.success(faceRecordService.editFaceRecord(faceRecord));
+// }
+
+// @RepeatSubmit
+// @ApiOperation(value = "删除人脸识别记录")
+// @DeleteMapping("/remove/{faceId}")
+// public CommonResult deleteDevice(@PathVariable(value = "faceId")Long faceId){
+// return CommonResult.success(faceRecordService.deleteById(faceId));
+// }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java
new file mode 100644
index 0000000..996883e
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java
@@ -0,0 +1,55 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.common.enums.ApproveStatusEnum;
+import com.gkhy.assess.common.enums.RequestSourceEnum;
+import com.gkhy.assess.system.domain.AssInvestigation;
+import com.gkhy.assess.system.service.AssInvestigationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 现场勘验记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP现场勘验记录 前端控制器")
+@RestController
+@RequestMapping("/app/manage/investigation")
+public class AppInvestigationController {
+
+ @Autowired
+ private AssInvestigationService investigationService;
+
+ @ApiOperation(value = "根据项目id获取现场勘验记录表详情")
+ @GetMapping("/getInvestigationByProjectId")
+ public CommonResult getInvestigationByProjectId( Long projectId){
+ return CommonResult.success(investigationService.getInvestigationByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建现场勘验记录表")
+ @PostMapping("/add")
+ public CommonResult addInvestigation(@Validated @RequestBody AssInvestigation investigation){
+ //app端只能保存数据,不能改变项目流程状态
+ investigation.setState(ApproveStatusEnum.TEMPORARY.getCode());
+ return CommonResult.success(investigationService.addInvestigation(investigation, RequestSourceEnum.APP.getCode()));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑现场勘验记录表")
+ @PutMapping("/edit")
+ public CommonResult editInvestigation(@Validated @RequestBody AssInvestigation investigation){
+ return CommonResult.success(investigationService.editInvestigation(investigation));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppLoginController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppLoginController.java
new file mode 100644
index 0000000..6e2e360
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppLoginController.java
@@ -0,0 +1,43 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.common.domain.vo.LoginBody;
+import com.gkhy.assess.system.service.SysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * <p>
+ * 用户表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-10-17 14:26:29
+ */
+@Api(tags = "APP用户登录前端控制器")
+@RestController
+@RequestMapping("/app/system/account")
+public class AppLoginController {
+ @Autowired
+ private SysUserService sysUserService;
+
+ @ApiOperation(value = "用户登录")
+ @PostMapping("/login")
+ public CommonResult login(@RequestBody LoginBody loginBody){
+ return CommonResult.success(sysUserService.appLogin(loginBody));
+ }
+
+ @ApiOperation(value = "用户退出")
+ @PostMapping("/logout")
+ public CommonResult logout(){
+ sysUserService.logout();
+ return CommonResult.success();
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppPlanPersonController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppPlanPersonController.java
new file mode 100644
index 0000000..f8fb1ff
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppPlanPersonController.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 评价项目组成员表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP项目组成员 前端控制器")
+@RestController
+@RequestMapping("/app/manage/plan-person")
+public class AppPlanPersonController {
+
+ @Autowired
+ private AssPlanPersonService planPersonService;
+
+ @ApiOperation(value = "根据成员id获取项目组成员详细信息")
+ @GetMapping("/getPlanPersonByPersonId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "personId", dataType = "long", required = true, value = "项目成员id")
+ })
+ public CommonResult<AssPlanPerson> getPlanPersonByProjectId( Long personId,Long projectId){
+ return CommonResult.success(planPersonService.getPlanPersonByPersonId(personId,projectId));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppProjectController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppProjectController.java
new file mode 100644
index 0000000..e1898d0
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppProjectController.java
@@ -0,0 +1,58 @@
+package com.gkhy.assess.admin.controller.app;
+
+
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssProjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "APP项目 前端控制器")
+@RestController
+@RequestMapping("/app/manage/project")
+public class AppProjectController {
+
+ @Autowired
+ private AssProjectService projectService;
+
+ @ApiOperation(value = "根据项目成员id获取项目列表")
+ @GetMapping("/memberProjects")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = true, value = "当前页,默认1"),
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = true, value = "每页数量,默认10"),
+ @ApiImplicitParam(paramType = "query", name = "personId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "query", name = "finish", dataType = "int", required = false, value = "是否完结:0否,1是")
+ })
+ public CommonResult memberProjects(@RequestParam(required = true) Long personId,@RequestParam(required = false)Integer finish){
+ return CommonResult.success(projectService.memberProjects(personId,finish));
+ }
+
+ @ApiOperation(value = "根据项目组长id获取项目列表")
+ @GetMapping("/leaderProjects")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = true, value = "当前页,默认1"),
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = true, value = "每页数量,默认10"),
+ @ApiImplicitParam(paramType = "query", name = "personId", dataType = "long", required = true, value = "项目id")
+ })
+ public CommonResult leaderProjects(@RequestParam(required = true) Long personId){
+ return CommonResult.success(projectService.leaderProjects(personId));
+ }
+
+ @ApiOperation(value = "根据id获取项目详情")
+ @GetMapping("/detail/{projectId}")
+ public CommonResult projectDetail(@PathVariable(value = "projectId") Long projectId){
+ return CommonResult.success(projectService.getProjectById(projectId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserController.java
new file mode 100644
index 0000000..2fc187c
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserController.java
@@ -0,0 +1,44 @@
+package com.gkhy.assess.admin.controller.app;
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.common.validate.AgencyGroup;
+import com.gkhy.assess.common.validate.ExpertGroup;
+import com.gkhy.assess.common.validate.MonitorGroup;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.service.SysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "APP用户前端控制器")
+@RestController
+@RequestMapping("/app/system/user")
+public class AppUserController {
+ @Autowired
+ private SysUserService sysUserService;
+
+ @ApiOperation(value = "根据id获取用户详情")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "userId", dataType = "int", required = true, value = "用户id")
+ })
+ @GetMapping("/getUserById")
+ public CommonResult getUserById(@RequestParam(required = true) Long userId){
+ return CommonResult.success(sysUserService.getUserInfoById(userId));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "用户修改密码")
+ @PutMapping("/resetUserPwd")
+ public CommonResult resetUserPwd(@RequestBody SysUser user)
+ {
+ return CommonResult.success(sysUserService.resetUserPwd(user));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserFaceController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserFaceController.java
new file mode 100644
index 0000000..b869bb7
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppUserFaceController.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.admin.controller.app;
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.SysUserFace;
+import com.gkhy.assess.system.service.SysUserFaceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "APP人脸数据控制器")
+@RestController
+@RequestMapping("/app/system/user-face")
+public class AppUserFaceController {
+ @Autowired
+ private SysUserFaceService userFaceService;
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增人脸数据")
+ @PostMapping("/add")
+ public CommonResult addUserFace(@Validated @ModelAttribute SysUserFace userFace){
+ return CommonResult.success(userFaceService.addUserFace(userFace));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "根据用户id获取人脸数据")
+ @PostMapping("/getFaceByUserId")
+ public CommonResult getUserFace(Long userId){
+ return CommonResult.success(userFaceService.getFaceByUserId(userId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java
new file mode 100644
index 0000000..be5100b
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java
@@ -0,0 +1,61 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+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.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 评估文件上传记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "评估文件上传前端控制器")
+@RestController
+@RequestMapping("/manage/accessory-file")
+public class AssAccessoryFileController {
+ @Autowired
+ private AssAccessoryFileService assAccessoryFileService;
+
+ @RepeatSubmit
+ @ApiOperation(value = "评估文件上传(图片/文件)")
+ @PostMapping("/uploadFile")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "moduleType", dataType = "int", required = true, value = "上传模块code:1主要装置前的合影照片,2现场勘验照片,3企业陪同人员图片,4现场勘验视频,5编制现场安全检查表,6评审记录附件,7评价结论,8过程控制记录文档附件,9项目归档材料,10报备申请附件,11项目整改情况附件")
+ })
+ public CommonResult uploadFile(@RequestParam @NotNull Long projectId,@RequestParam @NotNull Integer moduleType, @RequestParam MultipartFile file){
+ return CommonResult.success(assAccessoryFileService.uploadFile(projectId,moduleType,file));
+ }
+
+ @ApiOperation(value = "根据项目id获取评估文件")
+ @GetMapping("/getAccessoryFileByProjectId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "query", name = "moduleType", dataType = "int", required = true, value = "上传模块code")
+ })
+ public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType){
+ return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,moduleType));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除评估文件")
+ @DeleteMapping("/remove/{accessoryFileId}")
+ public CommonResult deleteAccessoryFile(@PathVariable(value = "accessoryFileId")Long accessoryFileId){
+ return CommonResult.success(assAccessoryFileService.deleteById(accessoryFileId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAuditController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAuditController.java
new file mode 100644
index 0000000..17034d2
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAuditController.java
@@ -0,0 +1,62 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssAudit;
+import com.gkhy.assess.system.service.AssAuditService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 审核表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "内部审核-技术审核前端控制器")
+@RestController
+@RequestMapping("/manage/ass-audit")
+public class AssAuditController {
+
+ @Autowired
+ private AssAuditService auditService;
+
+ @ApiOperation(value = "根据id获取审核详情")
+ @GetMapping("/detail/{auditId}")
+ public CommonResult auditDetail(@PathVariable(value = "auditId") Long auditId){
+ return CommonResult.success(auditService.getAuditById(auditId));
+ }
+
+ @ApiOperation(value = "根据项目id获取审核详情")
+ @GetMapping("/getAuditByProjectId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "auditType", dataType = "int", required = true, value = "审核类型:1内部审核 2技术审核")
+ })
+ public CommonResult getAuditByProjectId(Long projectId,Integer auditType){
+ return CommonResult.success(auditService.getAuditByProjectId(projectId,auditType));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建审核")
+ @PostMapping("/add")
+ public CommonResult addRiskEstimate(@Validated @RequestBody AssAudit audit){
+ return CommonResult.success(auditService.addAudit(audit));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑审核")
+ @PutMapping("/edit")
+ public CommonResult editRiskEstimate(@Validated @RequestBody AssAudit audit){
+ return CommonResult.success(auditService.editAudit(audit));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConclusionController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConclusionController.java
new file mode 100644
index 0000000..221b643
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConclusionController.java
@@ -0,0 +1,56 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssConclusion;
+import com.gkhy.assess.system.service.AssConclusionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 项目结论表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "评价结论表 前端控制器")
+@RestController
+@RequestMapping("/manage/conclusion")
+public class AssConclusionController {
+ @Autowired
+ private AssConclusionService conclusionService;
+
+ @ApiOperation(value = "根据id获取评价结论详情")
+ @GetMapping("/detail/{conclusionId}")
+ public CommonResult conclusionDetail(@PathVariable(value = "conclusionId") Long conclusionId){
+ return CommonResult.success(conclusionService.getConclusionById(conclusionId));
+ }
+
+ @ApiOperation(value = "根据项目id获取评价结论详情")
+ @GetMapping("/getConclusionByProjectId")
+ public CommonResult getConclusionByProjectId( Long projectId){
+ return CommonResult.success(conclusionService.getConclusionByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建评价结论")
+ @PostMapping("/add")
+ public CommonResult addConclusion(@Validated @RequestBody AssConclusion conclusion){
+ return CommonResult.success(conclusionService.addConclusion(conclusion));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑评价结论")
+ @PutMapping("/edit")
+ public CommonResult editConclusion(@Validated @RequestBody AssConclusion conclusion){
+ return CommonResult.success(conclusionService.editConclusion(conclusion));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConfirmFinalController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConfirmFinalController.java
new file mode 100644
index 0000000..d7a59c5
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssConfirmFinalController.java
@@ -0,0 +1,44 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssConfirmFinalService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.Map;
+
+/**
+ * <p>
+ * 确认完结 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-1-4 10:46:54
+ */
+@Api(tags = "确认完结 前端控制器")
+@RestController
+@RequestMapping("/manage/confirm")
+public class AssConfirmFinalController {
+ @Autowired
+ private AssConfirmFinalService confirmFinalService;
+
+ @RepeatSubmit
+ @ApiOperation(value = "确认完结")
+ @PostMapping("/doConfirm")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ })
+ public CommonResult doConfirm(@RequestBody Map map){
+ confirmFinalService.doConfirmFinal(map);
+ return CommonResult.success();
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssContractController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssContractController.java
new file mode 100644
index 0000000..bdfd259
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssContractController.java
@@ -0,0 +1,56 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssContract;
+import com.gkhy.assess.system.service.AssContractService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 合同管理表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "合同管理前端控制器")
+@RestController
+@RequestMapping("/manage/contract")
+public class AssContractController {
+ @Autowired
+ private AssContractService contractService;
+
+ @ApiOperation(value = "根据id获取合同详情")
+ @GetMapping("/detail/{contractId}")
+ public CommonResult contractDetail(@PathVariable(value = "contractId") Long contractId){
+ return CommonResult.success(contractService.getContractById(contractId));
+ }
+
+ @ApiOperation(value = "根据项目id获取合同详情")
+ @GetMapping("/getContractByProjectId")
+ public CommonResult getContractByProjectId( Long projectId){
+ return CommonResult.success(contractService.getContractByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建合同")
+ @PostMapping("/add")
+ public CommonResult addContract(@Validated @RequestBody AssContract contract){
+ return CommonResult.success(contractService.addContract(contract));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑合同")
+ @PutMapping("/edit")
+ public CommonResult editContract(@Validated @RequestBody AssContract contract){
+ return CommonResult.success(contractService.editContract(contract));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssDeviceController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssDeviceController.java
new file mode 100644
index 0000000..e4dfe3b
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssDeviceController.java
@@ -0,0 +1,56 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssDevice;
+import com.gkhy.assess.system.service.AssDeviceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 设备表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "设备 前端控制器")
+@RestController
+@RequestMapping("/manage/device")
+public class AssDeviceController {
+
+ @Autowired
+ private AssDeviceService deviceService;
+
+ @ApiOperation(value = "根据项目id获取设备列表")
+ @GetMapping("/getDeviceByProjectId")
+ public CommonResult getDeviceByProjectId(Long projectId){
+ return CommonResult.success(deviceService.getByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增设备")
+ @PostMapping("/add")
+ public CommonResult addDevice(@Validated @RequestBody AssDevice device){
+ return CommonResult.success(deviceService.addDevice(device));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑设备")
+ @PutMapping("/edit")
+ public CommonResult editDevice(@Validated @RequestBody AssDevice device){
+ return CommonResult.success(deviceService.editDevice(device));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除设备")
+ @DeleteMapping("/remove/{deviceId}")
+ public CommonResult deleteDevice(@PathVariable(value = "deviceId")Long deviceId){
+ return CommonResult.success(deviceService.deleteById(deviceId));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimatePlanController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimatePlanController.java
new file mode 100644
index 0000000..c9452b9
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimatePlanController.java
@@ -0,0 +1,56 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssEstimatePlan;
+import com.gkhy.assess.system.service.AssEstimatePlanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 评价项目计划表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "评价项目计划 前端控制器")
+@RestController
+@RequestMapping("/manage/estimate-plan")
+public class AssEstimatePlanController {
+ @Autowired
+ private AssEstimatePlanService estimatePlanService;
+
+ @ApiOperation(value = "根据id获取评价计划详情")
+ @GetMapping("/detail/{planId}")
+ public CommonResult planDetail(@PathVariable(value = "planId") Long planId){
+ return CommonResult.success(estimatePlanService.getEstimatePlanById(planId));
+ }
+
+ @ApiOperation(value = "根据项目id获取评价计划详情")
+ @GetMapping("/getPlanByProjectId")
+ public CommonResult getPlanByProjectId( Long projectId){
+ return CommonResult.success(estimatePlanService.getEstimatePlanByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建评价计划")
+ @PostMapping("/add")
+ public CommonResult addPlan(@Validated @RequestBody AssEstimatePlan estimatePlan){
+ return CommonResult.success(estimatePlanService.addEstimatePlan(estimatePlan));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑评价计划")
+ @PutMapping("/edit")
+ public CommonResult editPlan(@Validated @RequestBody AssEstimatePlan estimatePlan){
+ return CommonResult.success(estimatePlanService.editEstimatePlan(estimatePlan));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateScheduleController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateScheduleController.java
new file mode 100644
index 0000000..5188808
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateScheduleController.java
@@ -0,0 +1,50 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssEstimateSchedule;
+import com.gkhy.assess.system.service.AssEstimateScheduleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 评价日程安排表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "评价日程安排 前端控制器")
+@RestController
+@RequestMapping("/manage/estimate-schedule")
+public class AssEstimateScheduleController {
+
+ @Autowired
+ private AssEstimateScheduleService estimateScheduleService;
+
+ @ApiOperation(value = "根据项目id获取评价日程安排")
+ @GetMapping("/getScheduleByProjectId")
+ public CommonResult getScheduleByProjectId(Long projectId){
+ return CommonResult.success(estimateScheduleService.getByProjectId(projectId));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "新增评价日程安排")
+// @PostMapping("/add")
+// public CommonResult addSchedule(@Validated @RequestBody AssEstimateSchedule estimateSchedule){
+// return CommonResult.success(estimateScheduleService.addSchedule(estimateSchedule));
+// }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑评价日程安排")
+ @PutMapping("/edit")
+ public CommonResult editSchedule(@Validated @RequestBody AssEstimateSchedule estimateSchedule){
+ return CommonResult.success(estimateScheduleService.editSchedule(estimateSchedule));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateTaskController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateTaskController.java
new file mode 100644
index 0000000..b3231cd
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssEstimateTaskController.java
@@ -0,0 +1,57 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssEstimateTask;
+import com.gkhy.assess.system.service.AssEstimateTaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * xi表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "评价任务通知 前端控制器")
+@RestController
+@RequestMapping("/manage/estimate-task")
+public class AssEstimateTaskController {
+
+ @Autowired
+ private AssEstimateTaskService estimateTaskService;
+
+ @ApiOperation(value = "根据id获取评价任务通知详情")
+ @GetMapping("/detail/{taskId}")
+ public CommonResult taskDetail(@PathVariable(value = "taskId") Long taskId){
+ return CommonResult.success(estimateTaskService.getEstimateTaskById(taskId));
+ }
+
+ @ApiOperation(value = "根据项目id获取评价任务通知")
+ @GetMapping("/getTaskByProjectId")
+ public CommonResult getTaskByProjectId( Long projectId){
+ return CommonResult.success(estimateTaskService.getEstimateTaskByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建评价任务通知")
+ @PostMapping("/add")
+ public CommonResult addTask(@Validated @RequestBody AssEstimateTask estimateTask){
+ return CommonResult.success(estimateTaskService.addEstimateTask(estimateTask));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑评价任务通知")
+ @PutMapping("/edit")
+ public CommonResult editTask(@Validated @RequestBody AssEstimateTask estimateTask){
+ return CommonResult.success(estimateTaskService.editEstimateTask(estimateTask));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecognitionController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecognitionController.java
new file mode 100644
index 0000000..3c1e389
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecognitionController.java
@@ -0,0 +1,76 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssFaceRecognitionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 签字确认表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "签字确认 前端控制器")
+@RestController
+@RequestMapping("/manage/face-recognition")
+public class AssFaceRecognitionController {
+ @Autowired
+ private AssFaceRecognitionService faceRecognitionService;
+
+ @ApiOperation(value = "根据项目id获取签字确认列表")
+ @GetMapping("/getRecognitionByProjectId")
+ public CommonResult getRecognitionByProjectId( Long projectId){
+ return CommonResult.success(faceRecognitionService.getFaceRecognitionByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "签字确认项目状态流转")
+ @PostMapping("/doProcess")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ })
+ public CommonResult doProcess(@RequestBody Map map){
+ faceRecognitionService.doFaceRecognition(map);
+ return CommonResult.success();
+ }
+//
+// @RepeatSubmit
+// @ApiOperation(value = "编辑签字确认")
+// @PutMapping("/edit")
+// public CommonResult editContract(@Validated @RequestBody AssFaceRecognition faceRecognition){
+// return CommonResult.success(faceRecognitionService.editFaceRecognition(faceRecognition));
+// }
+
+
+ @ApiOperation(value = "根据成员id获取签字确认")
+ @GetMapping("/getRecognitionByPersonId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "personId", dataType = "long", required = true, value = "成员id")
+ })
+ public CommonResult getRecognitionByPersonId( Long projectId,Long personId){
+ return CommonResult.success(faceRecognitionService.getRecognitionByPersonId(projectId,personId));
+ }
+
+
+ @ApiOperation(value = "根据项目id校验所有人是否签字确认")
+ @PostMapping("/checkAllFaceRecongnition")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id")
+ })
+ public CommonResult checkAllFaceRecongnition(@RequestBody Long projectId){
+ return CommonResult.success(faceRecognitionService.checkAllFaceRecongnition(projectId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecordController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecordController.java
new file mode 100644
index 0000000..1e05715
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFaceRecordController.java
@@ -0,0 +1,60 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssFaceRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "人脸识别 前端控制器")
+@RestController
+@RequestMapping("/manage/face-record")
+public class AssFaceRecordController {
+
+ @Autowired
+ private AssFaceRecordService faceRecordService;
+
+ @ApiOperation(value = "根据项目id获取人脸识别记录列表")
+ @GetMapping("/getFaceByProjectId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "scene", dataType = "int", required = true, value = "是否是现场勘验人脸识别记录,0否,1是,默认1")
+ })
+ public CommonResult getFaceByProjectId(Long projectId,@RequestParam(defaultValue = "1",required = false) Integer scene){
+ return CommonResult.success(faceRecordService.faceRecordList(projectId,scene));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "新增人脸识别记录")
+// @PostMapping("/add")
+// public CommonResult addDevice(@Validated @RequestBody AssFaceRecord faceRecord){
+// return CommonResult.success(faceRecordService.addFaceRecord(faceRecord));
+// }
+//
+// @RepeatSubmit
+// @ApiOperation(value = "编辑人脸识别记录")
+// @PutMapping("/edit")
+// public CommonResult editDevice(@Validated @RequestBody AssFaceRecord faceRecord){
+// return CommonResult.success(faceRecordService.editFaceRecord(faceRecord));
+// }
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除人脸识别记录")
+ @DeleteMapping("/remove/{faceId}")
+ public CommonResult deleteDevice(@PathVariable(value = "faceId")Long faceId){
+ return CommonResult.success(faceRecordService.deleteById(faceId));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFilingApplyController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFilingApplyController.java
new file mode 100644
index 0000000..5c04160
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssFilingApplyController.java
@@ -0,0 +1,56 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssFilingApply;
+import com.gkhy.assess.system.service.AssFilingApplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 报备申请表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "报备申请 前端控制器")
+@RestController
+@RequestMapping("/manage/filing-apply")
+public class AssFilingApplyController {
+
+ @Autowired
+ private AssFilingApplyService filingApplyService;
+
+ @ApiOperation(value = "根据项目id获取报备申请列表")
+ @GetMapping("/getApplyByProjectId")
+ public CommonResult getApplyByProjectId(Long projectId){
+ return CommonResult.success(filingApplyService.getFilingApplyByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增报备申请")
+ @PostMapping("/add")
+ public CommonResult addApply(@Validated @RequestBody AssFilingApply filingApply){
+ return CommonResult.success(filingApplyService.addFilingApply(filingApply));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑报备申请")
+ @PutMapping("/edit")
+ public CommonResult editApply(@Validated @RequestBody AssFilingApply filingApply){
+ return CommonResult.success(filingApplyService.editFilingApply(filingApply));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除报备申请")
+ @DeleteMapping("/remove/{applyId}")
+ public CommonResult deleteApply(@PathVariable(value = "applyId")Long applyId){
+ return CommonResult.success(filingApplyService.deleteById(applyId));
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java
new file mode 100644
index 0000000..8fadb5b
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java
@@ -0,0 +1,66 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.common.enums.RequestSourceEnum;
+import com.gkhy.assess.system.domain.AssInvestigation;
+import com.gkhy.assess.system.service.AssInvestigationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 现场勘验记录表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "现场勘验记录 前端控制器")
+@RestController
+@RequestMapping("/manage/investigation")
+public class AssInvestigationController {
+
+ @Autowired
+ private AssInvestigationService investigationService;
+
+ @ApiOperation(value = "根据id获取现场勘验记录表详情")
+ @GetMapping("/detail/{investigationId}")
+ public CommonResult investigationDetail(@PathVariable(value = "investigationId") Long investigationId){
+ return CommonResult.success(investigationService.getInvestigationByProjectId(investigationId));
+ }
+
+ @ApiOperation(value = "根据项目id获取现场勘验记录表详情")
+ @GetMapping("/getInvestigationByProjectId")
+ public CommonResult getInvestigationByProjectId( Long projectId){
+ return CommonResult.success(investigationService.getInvestigationByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建现场勘验记录表")
+ @PostMapping("/add")
+ public CommonResult addInvestigation(@Validated @RequestBody AssInvestigation investigation){
+ return CommonResult.success(investigationService.addInvestigation(investigation, RequestSourceEnum.WEB.getCode()));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑现场勘验记录表")
+ @PutMapping("/edit")
+ public CommonResult editInvestigation(@Validated @RequestBody AssInvestigation investigation){
+ return CommonResult.success(investigationService.editInvestigation(investigation));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "现场勘验记录项目状态流转")
+// @PostMapping("/doProcess")
+// public CommonResult doProcess(@RequestBody Long projectId){
+// investigationService.doInvestigationProcess(projectId);
+// return CommonResult.success();
+// }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssPlanPersonController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssPlanPersonController.java
new file mode 100644
index 0000000..f5837d2
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssPlanPersonController.java
@@ -0,0 +1,69 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 评价项目组成员表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "项目组成员 前端控制器")
+@RestController
+@RequestMapping("/manage/plan-person")
+public class AssPlanPersonController {
+
+ @Autowired
+ private AssPlanPersonService planPersonService;
+
+ @ApiOperation(value = "根据项目id获取项目组成员")
+ @GetMapping("/getPlanPersonByProjectId")
+ public CommonResult getPlanPersonByProjectId( Long projectId){
+ return CommonResult.success(planPersonService.getByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "新增项目组成成员")
+ @PostMapping("/add")
+ public CommonResult addPlanPerson(@Validated @RequestBody AssPlanPerson planPerson){
+ return CommonResult.success(planPersonService.addPlanPerson(planPerson));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑项目组成成员")
+ @PutMapping("/edit")
+ public CommonResult editPlan(@RequestBody AssPlanPerson planPerson){
+ return CommonResult.success(planPersonService.editPlanPerson(planPerson));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除项目组成成员")
+ @DeleteMapping("/remove/{planPersonId}")
+ public CommonResult deletePlan(@PathVariable(value = "planPersonId")Long planPersonId){
+ return CommonResult.success(planPersonService.deletePlanPersonById(planPersonId));
+ }
+
+ @ApiOperation(value = "根据成员id获取项目组成员详细信息(校验)")
+ @GetMapping("/getPlanPersonByPersonId")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "body", name = "personId", dataType = "long", required = true, value = "项目成员id")
+ })
+ public CommonResult getPlanPersonByProjectId( Long personId,Long projectId){
+ return CommonResult.success(planPersonService.getPlanPersonByPersonId(personId,projectId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProcessAuditController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProcessAuditController.java
new file mode 100644
index 0000000..9f82581
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProcessAuditController.java
@@ -0,0 +1,60 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.domain.AssProcessAudit;
+import com.gkhy.assess.system.service.AssProcessAuditService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 过程控制负责人审核表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "过程控制负责人审核 前端控制器")
+@RestController
+@RequestMapping("/manage/process-audit")
+public class AssProcessAuditController {
+
+ @Autowired
+ private AssProcessAuditService processAuditService;
+
+ @ApiOperation(value = "根据id获取过程控制详情")
+ @GetMapping("/detail/{processId}")
+ public CommonResult processDetail(@PathVariable(value = "processId") Long processId){
+ return CommonResult.success(processAuditService.getProcessAuditById(processId));
+ }
+
+ @ApiOperation(value = "根据项目id获取过程控制详情")
+ @GetMapping("/getProcessByProjectId")
+ public CommonResult getProcessByProjectId( Long projectId){
+ return CommonResult.success(processAuditService.getProcessAuditByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建过程控制")
+ @PostMapping("/add")
+ public CommonResult addProcess(@Validated @RequestBody AssProcessAudit processAudit){
+ return CommonResult.success(processAuditService.addProcessAudit(processAudit));
+ }
+
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑过程控制")
+ @PutMapping("/edit")
+ public CommonResult editProcess(@Validated @RequestBody AssProcessAudit processAudit){
+ return CommonResult.success(processAuditService.editProcessAudit(processAudit));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectController.java
new file mode 100644
index 0000000..9bdaf66
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectController.java
@@ -0,0 +1,104 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.service.AssProjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 项目表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-11 14:16:18
+ */
+@Api(tags = "项目前端控制器")
+@RestController
+@RequestMapping("/manage/project")
+public class AssProjectController {
+ @Autowired
+ private AssProjectService projectService;
+
+ @ApiOperation(value = "项目列表(分页)")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50"),
+ @ApiImplicitParam(paramType = "query", name = "projectPhase", dataType = "int", required = false, value = "params字段内:1风险分析评价计划,2现场勘验,3项目审核,4出具报告,5项目归档")
+ })
+ @GetMapping("/list")
+ public CommonResult projectList(AssProject project){
+ return CommonResult.success(projectService.projectList(project));
+ }
+
+ @ApiOperation(value = "根据id获取项目详情")
+ @GetMapping("/detail/{projectId}")
+ public CommonResult projectDetail(@PathVariable(value = "projectId") Long projectId){
+ return CommonResult.success(projectService.getProjectById(projectId));
+ }
+
+
+ @ApiOperation(value = "根据id获取项目当前状态")
+ @GetMapping("/progress/{projectId}")
+ public CommonResult getProjectProgress(@PathVariable(value = "projectId") Long projectId){
+ return CommonResult.success(projectService.getProjectReportProgress(projectId));
+ }
+
+// @RepeatSubmit
+// @ApiOperation(value = "创建项目")
+// @PostMapping("/add")
+// public CommonResult addProject(@Validated @RequestBody AssProject project){
+// return CommonResult.success(projectService.addProject(project));
+// }
+
+
+
+// @RepeatSubmit
+// @ApiOperation(value = "编辑项目")
+// @PutMapping("/edit")
+// public CommonResult editProject(@RequestBody AssProject project){
+// return CommonResult.success(projectService.editProject(project));
+// }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除项目")
+ @DeleteMapping("/remove/{projectId}")
+ public CommonResult deleteProject(@PathVariable(value = "projectId")Long projectId){
+ return CommonResult.success(projectService.deleteProjectById(projectId));
+ }
+
+
+ @ApiOperation(value = "校验项目名称是否唯一")
+ @PostMapping("/checkProjectNameUnique")
+ public CommonResult checkProjectNameUnique(@RequestBody AssProject project)
+ {
+ return CommonResult.success(projectService.checkNameUnique(project));
+ }
+
+
+ @ApiOperation(value = "项目统计")
+ @GetMapping("/statistics")
+ public CommonResult projectStat(AssProject project){
+ return CommonResult.success(projectService.projectStat(project));
+ }
+
+ @ApiOperation(value = "根据项目成员id获取项目列表")
+ @GetMapping("/memberProjects")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = true, value = "当前页,默认1"),
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = true, value = "每页数量,默认10"),
+ @ApiImplicitParam(paramType = "query", name = "personId", dataType = "long", required = true, value = "项目id")
+ })
+ public CommonResult memberProjects(@RequestParam(required = true) Long personId){
+ return CommonResult.success(projectService.memberProjects(personId,null));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectMaterialController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectMaterialController.java
new file mode 100644
index 0000000..947b18a
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectMaterialController.java
@@ -0,0 +1,54 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssProjectMaterial;
+import com.gkhy.assess.system.domain.vo.ProjectMaterialVO;
+import com.gkhy.assess.system.service.AssProjectMaterialService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目归档文件表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "项目归档文件 前端控制器")
+@RestController
+@RequestMapping("/manage/project-material")
+public class AssProjectMaterialController {
+
+ @Autowired
+ private AssProjectMaterialService projectMaterialService;
+
+
+ @ApiOperation(value = "根据项目id获取归档材料")
+ @GetMapping("/getMaterialByProjectId")
+ public CommonResult getMaterialByProjectId( Long projectId){
+ return CommonResult.success(projectMaterialService.getProjectMaterialByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "批量创建归档材料")
+ @PostMapping("/add")
+ public CommonResult addMaterial(@Validated @RequestBody ProjectMaterialVO projectMaterialVO){
+ return CommonResult.success(projectMaterialService.addProjectMaterial(projectMaterialVO));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "批量编辑归档材料")
+ @PutMapping("/edit")
+ public CommonResult editContract(@Validated @RequestBody ProjectMaterialVO projectMaterialVO){
+ return CommonResult.success(projectMaterialService.editProjectMaterial(projectMaterialVO));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRecitificationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRecitificationController.java
new file mode 100644
index 0000000..f9e5615
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRecitificationController.java
@@ -0,0 +1,59 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssRecitification;
+import com.gkhy.assess.system.service.AssRecitificationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 项目整改情况说明表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "整改情况 前端控制器")
+@RestController
+@RequestMapping("/manage/recitification")
+public class AssRecitificationController {
+ @Autowired
+ private AssRecitificationService recitificationService;
+
+ @ApiOperation(value = "根据项目id获取整改情况列表")
+ @GetMapping("/getRectifyByProjectId")
+ public CommonResult getRectifyByProjectId(Long projectId){
+ return CommonResult.success(recitificationService.recitificationList(projectId));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建整改情况")
+ @PostMapping("/add")
+ public CommonResult addRecitification(@Validated @RequestBody AssRecitification recitification){
+ return CommonResult.success(recitificationService.addRecitification(recitification));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑整改情况")
+ @PutMapping("/edit")
+ public CommonResult editRecitification(@Validated @RequestBody AssRecitification recitification){
+ return CommonResult.success(recitificationService.editRecitification(recitification));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除整改情况")
+ @DeleteMapping("/remove/{rectifyId}")
+ public CommonResult deleteRectify(@PathVariable(value = "rectifyId")Long rectifyId){
+ return CommonResult.success(recitificationService.deleteById(rectifyId));
+ }
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssReviewRecordController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssReviewRecordController.java
new file mode 100644
index 0000000..e428640
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssReviewRecordController.java
@@ -0,0 +1,45 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.service.AssConfirmFinalService;
+import com.gkhy.assess.system.service.AssReviewRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.Map;
+
+/**
+ * <p>
+ * 评审记录 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-1-4 10:46:54
+ */
+@Api(tags = "评审记录 前端控制器")
+@RestController
+@RequestMapping("/manage/review-record")
+public class AssReviewRecordController {
+ @Autowired
+ private AssReviewRecordService reviewRecordService;
+
+ @RepeatSubmit
+ @ApiOperation(value = "评审记录完成")
+ @PostMapping("/doReview")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ })
+ public CommonResult doReview(@RequestBody Map map){
+ reviewRecordService.doReview(map);
+ return CommonResult.success();
+ }
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRiskEstimateController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRiskEstimateController.java
new file mode 100644
index 0000000..05c07c6
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssRiskEstimateController.java
@@ -0,0 +1,57 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssRiskEstimate;
+import com.gkhy.assess.system.service.AssRiskEstimateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 风险评估表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "项目风险评估 前端控制器")
+@RestController
+@RequestMapping("/manage/risk-estimate")
+public class AssRiskEstimateController {
+ @Autowired
+ private AssRiskEstimateService riskEstimateService;
+
+ @ApiOperation(value = "根据id获取风险评估详情")
+ @GetMapping("/detail/{riskId}")
+ public CommonResult riskEstimateDetail(@PathVariable(value = "riskId") Long riskId){
+ return CommonResult.success(riskEstimateService.getRiskEstimateById(riskId));
+ }
+
+ @ApiOperation(value = "根据项目id获取风险评估详情")
+ @GetMapping("/getRiskByProjectId")
+ public CommonResult getRiskByProjectId( Long projectId){
+ return CommonResult.success(riskEstimateService.getRiskEstimateByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建风险评估")
+ @PostMapping("/add")
+ public CommonResult addRiskEstimate(@Validated @RequestBody AssRiskEstimate riskEstimate){
+ return CommonResult.success(riskEstimateService.addRiskEstimate(riskEstimate));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑风险评估")
+ @PutMapping("/edit")
+ public CommonResult editRiskEstimate(@Validated @RequestBody AssRiskEstimate riskEstimate){
+ return CommonResult.success(riskEstimateService.editRiskEstimate(riskEstimate));
+ }
+
+
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssWorkNotificationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssWorkNotificationController.java
new file mode 100644
index 0000000..01f1be6
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssWorkNotificationController.java
@@ -0,0 +1,55 @@
+package com.gkhy.assess.admin.controller.web;
+
+
+import com.gkhy.assess.common.annotation.RepeatSubmit;
+import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssWorkNotification;
+import com.gkhy.assess.system.service.AssWorkNotificationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 从业告知表 前端控制器
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Api(tags = "从业告知 前端控制器")
+@RestController
+@RequestMapping("/manage/work-notification")
+public class AssWorkNotificationController {
+ @Autowired
+ private AssWorkNotificationService workNotificationService;
+
+ @ApiOperation(value = "根据id获取从业告知详情")
+ @GetMapping("/detail/{notificationId}")
+ public CommonResult workNotificationDetail(@PathVariable(value = "notificationId") Long notificationId){
+ return CommonResult.success(workNotificationService.getWorkNotificationById(notificationId));
+ }
+
+ @ApiOperation(value = "根据项目id获取从业告知详情")
+ @GetMapping("/getWorkNotificationByProjectId")
+ public CommonResult getWorkNotificationByProjectId( Long projectId){
+ return CommonResult.success(workNotificationService.getWorkNotificationByProjectId(projectId));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建从业告知")
+ @PostMapping("/add")
+ public CommonResult addWorkNotification(@Validated @RequestBody AssWorkNotification workNotification){
+ return CommonResult.success(workNotificationService.addWorkNotification(workNotification));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑从业告知")
+ @PutMapping("/edit")
+ public CommonResult editWorkNotification(@Validated @RequestBody AssWorkNotification workNotification){
+ return CommonResult.success(workNotificationService.editWorkNotification(workNotification));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertClassifyController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertClassifyController.java
index bb19588..0291b85 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertClassifyController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertClassifyController.java
@@ -6,6 +6,7 @@
import com.gkhy.assess.system.service.SysExpertClassifyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -22,6 +23,7 @@
return CommonResult.success(expertClassifyService.classifyTree(expertClassify));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "修改专家分类")
@PutMapping("/mod")
@@ -29,6 +31,7 @@
return CommonResult.success(expertClassifyService.modClassify(expertClassify));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "删除专家分类")
@DeleteMapping("/del/{classifyId}")
@@ -37,6 +40,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "新增专家分类")
@PostMapping("/add")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertInfoController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertInfoController.java
index 8a87e30..09a448f 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertInfoController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/ExpertInfoController.java
@@ -5,11 +5,13 @@
import com.gkhy.assess.system.domain.SysAgency;
import com.gkhy.assess.system.domain.SysExpertClassify;
import com.gkhy.assess.system.domain.SysExpertInfo;
+import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.service.SysExpertInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -20,16 +22,18 @@
@Autowired
private SysExpertInfoService expertInfoService;
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "专家列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/list")
public CommonResult exportInfoList(SysExpertInfo expertInfo){
return CommonResult.success(expertInfoService.exportInfoList(expertInfo));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "新增专家信息")
@PostMapping("/add")
@@ -37,6 +41,7 @@
return CommonResult.success(expertInfoService.addExpertInfo(expertInfo));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "修改专家信息")
@PutMapping("/mod")
@@ -44,7 +49,7 @@
return CommonResult.success(expertInfoService.modExpertInfo(expertInfo));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "删除专家信息")
@DeleteMapping("/del/{expertId}")
@@ -52,7 +57,7 @@
return CommonResult.success(expertInfoService.delExpertInfo(expertId));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "批量删除专家信息")
@DeleteMapping("/del/batch/{expertIds}")
@@ -60,7 +65,23 @@
return CommonResult.success(expertInfoService.delExpertInfoBatch(expertIds));
}
+ @RequiresPermissions("system:assess:monitor")
+ @ApiOperation(value = "根据id获取专家信息")
+ @GetMapping("/detail/{expertId}")
+ public CommonResult exportInfoDetail(@PathVariable(value = "expertId") Long expertId){
+ return CommonResult.success(expertInfoService.exportInfoDetail(expertId));
+ }
+ @RepeatSubmit
+ @RequiresPermissions("system:assess:monitor")
+ @ApiOperation(value = "审批状态修改,审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废)")
+ @PostMapping("/changeApprove")
+ public CommonResult changeApprove(@RequestBody SysExpertInfo expertInfo)
+ {
+ return CommonResult.success(expertInfoService.changeApprove(expertInfo));
+ }
+
+
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
index 892fdd1..bc8d9a2 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
@@ -21,17 +21,18 @@
@Autowired
private SysAgencyService agencyService;
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "机构列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/agencyList")
public CommonResult agencyList(SysAgency agency){
return CommonResult.success(agencyService.agencyList(agency));
}
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "根据id获取机构详情")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "agencyId", dataType = "int", required = true, value = "机构id")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictDataController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictDataController.java
index 0b2067a..60a9f05 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictDataController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictDataController.java
@@ -9,6 +9,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -39,6 +40,7 @@
return CommonResult.success(dictDataService.getDictDataById(dictId));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "新增字典数据")
@PostMapping("/addDictData")
@@ -47,6 +49,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "编辑字典数据")
@PutMapping("/editDictData")
@@ -55,6 +58,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "删除字典数据")
@DeleteMapping("/remove/{dictId}")
@@ -63,6 +67,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "字典数据状态修改,停用/启用")
@PostMapping("/changeStatus")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictTypeController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictTypeController.java
index 7a98a2d..a1e0a77 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictTypeController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysDictTypeController.java
@@ -10,6 +10,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -52,7 +53,7 @@
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "新增字典类型")
@PostMapping("/addDictType")
@@ -60,7 +61,7 @@
return CommonResult.success(dictTypeService.addDictType(dictType));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "编辑字典类型")
@PutMapping("/editDictType")
@@ -68,7 +69,7 @@
return CommonResult.success(dictTypeService.editDictType(dictType));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "删除字典类型")
@DeleteMapping("/remove/{dictId}")
@@ -76,7 +77,7 @@
return CommonResult.success(dictTypeService.deleteDictTypeById(dictId));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "字典类型状态修改,停用/启用")
@PostMapping("/changeStatus")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLawController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLawController.java
index b913ea0..c8cc4c0 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLawController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLawController.java
@@ -19,18 +19,18 @@
public class SysLawController {
@Autowired
private SysLawService lawService;
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "法律法规列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/lawList")
public CommonResult lawList(SysLaw law){
return CommonResult.success(lawService.lawList(law));
}
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "根据id获取法律法规详情")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "lawId", dataType = "int", required = true, value = "法律法规id")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLoginController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLoginController.java
index 64e5a75..267b48c 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLoginController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysLoginController.java
@@ -23,7 +23,7 @@
*/
@Api(tags = "用户登录前端控制器")
@RestController
-@RequestMapping("/account")
+@RequestMapping("/system/account")
public class SysLoginController {
@Autowired
private SysUserService sysUserService;
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysNoticeController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysNoticeController.java
index 8964a06..c5cc573 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysNoticeController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysNoticeController.java
@@ -20,10 +20,11 @@
@Autowired
private SysNoticeService noticeService;
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "通知列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/noticeList")
public CommonResult noticeList(SysNotice notice){
@@ -31,6 +32,7 @@
}
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "根据id获取通知详情")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "noticeId", dataType = "int", required = true, value = "通知id")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysRegionController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysRegionController.java
index 44d11d0..4c2a17d 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysRegionController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysRegionController.java
@@ -1,5 +1,6 @@
package com.gkhy.assess.admin.controller.web;
+import com.gkhy.assess.common.annotation.DataDesensitization;
import com.gkhy.assess.common.annotation.RepeatSubmit;
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.system.domain.SysRegion;
@@ -8,6 +9,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -35,7 +37,7 @@
return CommonResult.success(regionService.getChildRegionById(regionId));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "新增地区")
@PostMapping("/addRegion")
@@ -43,7 +45,7 @@
return CommonResult.success(regionService.addRegion(region));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "编辑地区")
@PutMapping("/editRegion")
@@ -51,7 +53,7 @@
return CommonResult.success(regionService.editRegion(region));
}
-
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "删除地区")
@DeleteMapping("/remove/{regionId}")
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java
index fe343cb..2f13c70 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java
@@ -24,22 +24,22 @@
@Autowired
private SysUserService sysUserService;
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "监管用户列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/monitorList")
public CommonResult monitorList(SysUser user){
return CommonResult.success(sysUserService.monitorList(user));
}
-
+ @RequiresPermissions("system:assess:monitor")
@ApiOperation(value = "机构用户列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/agencyList")
public CommonResult agencyList(SysUser user){
@@ -50,13 +50,14 @@
@ApiOperation(value = "专家用户列表(分页)")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
- @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
+ @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50")
})
@GetMapping("/expertList")
public CommonResult expertList(SysUser user){
return CommonResult.success(sysUserService.expertList(user));
}
+ @RequiresPermissions("system:assess:monitor")
@RepeatSubmit
@ApiOperation(value = "创建监管用户")
@PostMapping("/addMonitor")
@@ -116,7 +117,7 @@
@ApiOperation(value = "校验用户名")
@PostMapping("/checkUserNameUnique")
- public CommonResult checkLoginNameUnique(@RequestBody SysUser user)
+ public CommonResult checkUserNameUnique(@RequestBody SysUser user)
{
return CommonResult.success(sysUserService.checkUsernameUnique(user));
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/front/AgencyController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/front/AgencyController.java
index 3245b1b..a56b010 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/front/AgencyController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/front/AgencyController.java
@@ -1,5 +1,6 @@
package com.gkhy.assess.admin.controller.web.front;
+import com.gkhy.assess.common.annotation.DataDesensitization;
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.system.domain.SysAgency;
import com.gkhy.assess.system.service.SysAgencyService;
@@ -31,6 +32,7 @@
}
+ @DataDesensitization
@ApiOperation(value = "根据id获取机构详情")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "agencyId", dataType = "int", required = true, value = "机构id")
diff --git a/assess-admin/src/main/resources/application-dev.yml b/assess-admin/src/main/resources/application-dev.yml
index 517467d..cdb2cd3 100644
--- a/assess-admin/src/main/resources/application-dev.yml
+++ b/assess-admin/src/main/resources/application-dev.yml
@@ -50,7 +50,7 @@
# mybatis-plus相关配置
mybatis-plus:
# xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
- mapper-locations: classpath*:mapper/**/*Mapper.xml
+ mapper-locations: classpath*:mapper/*Mapper.xml
# 以下配置均有默认值,可以不设置
global-config:
db-config:
diff --git a/assess-admin/src/main/resources/application-pro.yml b/assess-admin/src/main/resources/application-pro.yml
new file mode 100644
index 0000000..0c6ce23
--- /dev/null
+++ b/assess-admin/src/main/resources/application-pro.yml
@@ -0,0 +1,82 @@
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driverClassName: com.mysql.cj.jdbc.Driver
+ druid:
+ # 主库数据源
+ master:
+ url: jdbc:mysql://192.168.30.118:3306/smart_assess?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
+ username: root
+ password: e7be93ef5413e5ed
+ # 从库数据源
+ slave:
+ enabled: false
+ url:
+ username:
+ password:
+ initialSize: 5 #连接池初始化大小
+ minIdle: 10 #最小空闲连接数
+ maxActive: 20 #最大连接数
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置连接超时时间
+ connectTimeout: 30000
+ # 配置网络超时时间
+ socketTimeout: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ # 配置一个连接在池中最大生存的时间,单位是毫秒
+ maxEvictableIdleTimeMillis: 900000
+ # 配置检测连接是否有效
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ web-stat-filter:
+ exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #不统计这些请求数据
+ stat-view-servlet: #访问监控网页的登录用户名和密码
+ login-username: druid
+ login-password: druid
+ enabled: true
+ # 设置白名单,不填则允许所有访问
+ allow: 114.216.178.42
+ url-pattern: /druid/*
+ #redis 配置
+ redis:
+ database: 0
+ host: 127.0.0.1
+ port: 6379
+ password: gkhy@202306
+
+
+# mybatis-plus相关配置
+mybatis-plus:
+ # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
+ mapper-locations: classpath*:mapper/*Mapper.xml
+ # 以下配置均有默认值,可以不设置
+ global-config:
+ db-config:
+ #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
+ id-type: auto
+ #字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断"
+ field-strategy: NOT_EMPTY
+ #数据库类型
+ db-type: MYSQL
+ configuration:
+ # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
+ map-underscore-to-camel-case: true
+ # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
+ call-setters-on-nulls: true
+
+
+logging:
+ level:
+ root: INFO
+ org:
+ com.nms.swspkmas_standalone: INFO
+
+
+swagger:
+ enabled: false
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/application.yml b/assess-admin/src/main/resources/application.yml
index f82a6b9..e1e6343 100644
--- a/assess-admin/src/main/resources/application.yml
+++ b/assess-admin/src/main/resources/application.yml
@@ -36,6 +36,6 @@
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
- excludes: /system/notice
+ excludes:
# 匹配链接
- urlPatterns: /system/*,/monitor/*,/tool/*
+ urlPatterns: /system/*,/manage/*
diff --git a/assess-admin/src/main/resources/db/migration/V20231123001_add_user.sql b/assess-admin/src/main/resources/db/migration/V20231123001_add_user.sql
index 9caf8db..e090d9c 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123001_add_user.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123001_add_user.sql
@@ -1,4 +1,3 @@
-drop table if exists `smart_assess`.`sys_user`;
CREATE TABLE `smart_assess`.`sys_user` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
`username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '登录账号',
@@ -23,13 +22,16 @@
`login_ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '最后登录ip',
`login_date` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后登录时间',
`pwd_update_date` datetime NULL DEFAULT NULL COMMENT '密码最后更新时间',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新者',
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE,
-UNIQUE INDEX `index_username`(`username`) USING BTREE
+INDEX `index_username`(`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;
--- admin admin@123
-insert into sys_user values(1,'admin', '国科鸿宇', 0, 'gkhy@163.com', '15888888888', 0, '', 'b3065cdf5dfdbbc573e2f576c8dc147a', '111111', 0, 0, 0,'',null,null,'','','',1,'127.0.0.1', sysdate(), sysdate(), 'admin', sysdate(), '', sysdate(), '管理员');
+-- admin admin@3.1416
+insert into sys_user values(1,'admin', '国科鸿宇', 0, 'gkhy@163.com', '15888888888', 0, '', '1d3a86b6057285745c07a08dcc8ab078', '111111', 0, 0, 0,'',null,null,'','','',1,'127.0.0.1', sysdate(), sysdate(),1, 'admin', sysdate(), '', sysdate(), '管理员');
+-- administrator admin@3.1416
+insert into sys_user values(2,'administrator', '智慧安评管理员', 0, 'gkhy2@163.com', '15888888889', 0, '', '275b57c4363e285d8beed63edfe350ee', '222222', 0, 0, 0,'',null,null,'','','',1,'127.0.0.1', sysdate(), sysdate(),1, 'admin', sysdate(), '', sysdate(), '管理员');
diff --git a/assess-admin/src/main/resources/db/migration/V20231123002_dict_type.sql b/assess-admin/src/main/resources/db/migration/V20231123002_dict_type.sql
index 3a2b9af..6aaa2d0 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123002_dict_type.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123002_dict_type.sql
@@ -2,12 +2,12 @@
-- ----------------------------
-- 字典类型表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_dict_type`;
CREATE TABLE `smart_assess`.`sys_dict_type` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典名称',
`dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典类型',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常,1停用)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
@@ -18,5 +18,5 @@
UNIQUE INDEX `index_type`(`dict_type`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
-insert into sys_dict_type values(1, '评价类型', 'sys_assess_type', 0, 'admin', sysdate(), '', sysdate(), '评价类型列表');
-insert into sys_dict_type values(2, '业务范围', 'sys_business_scope', 0, 'admin', sysdate(), '', sysdate(), '业务范围列表');
\ No newline at end of file
+insert into sys_dict_type values(1, '评价类型', 'sys_assess_type', 0, 1, 'admin', sysdate(), '', sysdate(), '评价类型列表');
+insert into sys_dict_type values(2, '业务范围', 'sys_business_scope', 0, 1, 'admin', sysdate(), '', sysdate(), '业务范围列表');
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20231123003_dict_data.sql b/assess-admin/src/main/resources/db/migration/V20231123003_dict_data.sql
index 98c2cd0..2dc4f66 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123003_dict_data.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123003_dict_data.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 字典数据表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_dict_data`;
CREATE TABLE `smart_assess`.`sys_dict_data` (
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT,
`sort` int NOT NULL DEFAULT 0 COMMENT '字典排序',
@@ -11,6 +10,7 @@
`dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典类型',
`is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '状态(0正常 1停用)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
@@ -20,10 +20,10 @@
UNIQUE INDEX `index_l_v_t`(`dict_type`, `label`, `value`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
-insert into sys_dict_data values(1, 0, '煤炭开采业','0', 'sys_business_scope', 'Y',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(2, 0, '金属、非金属矿及其他矿采选业','1', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(3, 0, '陆地石油和天然气开采业','2', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(4, 0, '陆上油气管道运输业','3', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(5, 0, '石油加工业,化学原料、化学品及医药制造业','4', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(6, 0, '烟花爆竹制造业','5', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
-insert into sys_dict_data values(7, 0, '金属冶炼','6', 'sys_business_scope', 'N',0, 'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data() values(1, 0, '煤炭开采业','0', 'sys_business_scope', 'Y',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(2, 0, '金属、非金属矿及其他矿采选业','1', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(3, 0, '陆地石油和天然气开采业','2', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(4, 0, '陆上油气管道运输业','3', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(5, 0, '石油加工业,化学原料、化学品及医药制造业','4', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(6, 0, '烟花爆竹制造业','5', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
+insert into sys_dict_data values(7, 0, '金属冶炼','6', 'sys_business_scope', 'N',0, 1 ,'admin', sysdate(), '', sysdate(), '业务范围数据');
diff --git a/assess-admin/src/main/resources/db/migration/V20231123004_config.sql b/assess-admin/src/main/resources/db/migration/V20231123004_config.sql
index 1d86c69..f39d74e 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123004_config.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123004_config.sql
@@ -2,13 +2,13 @@
-- ----------------------------
-- 系统配置表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_config`;
CREATE TABLE `smart_assess`.`sys_config` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL COMMENT '参数名称',
`config_key` varchar(100) NOT NULL COMMENT '参数键名',
`config_value` varchar(500) NOT NULL COMMENT '参数键值',
`type` char(1) NULL DEFAULT 'N' COMMENT '系统内置(Y是 N否)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(64) NULL COMMENT '创建人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_by` varchar(64) NULL COMMENT '更新人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231123005_agency.sql b/assess-admin/src/main/resources/db/migration/V20231123005_agency.sql
index 10a7652..22e203b 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123005_agency.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123005_agency.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 系统机构表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_agency`;
CREATE TABLE `smart_assess`.`sys_agency` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '机构名称',
@@ -25,8 +24,9 @@
`archive_area` varchar(20) NOT NULL COMMENT '档案室面积',
`reg_address` varchar(100) NOT NULL COMMENT '注册地址',
`business` varchar(20) NOT NULL COMMENT '业务范围',
-`report_path` varchar(50) NULL COMMENT '机构信息上报表存放路径',
-`publication` tinyint(2) NULL DEFAULT 0 COMMENT '是否公示(0代表公示,1代表不公示,默认0)',
+`report_path` varchar(60) NULL COMMENT '机构信息上报表存放路径',
+`publication` tinyint(2) NULL DEFAULT 1 COMMENT '是否公示(0代表公示,1代表不公示,默认1)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`del_flag` tinyint(2) NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)',
`create_by` varchar(20) NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
diff --git a/assess-admin/src/main/resources/db/migration/V20231123006_notice.sql b/assess-admin/src/main/resources/db/migration/V20231123006_notice.sql
index 67711f2..02c6daf 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123006_notice.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123006_notice.sql
@@ -2,12 +2,12 @@
-- ----------------------------
-- 系统通知表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_notice`;
CREATE TABLE `smart_assess`.`sys_notice` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(50) NOT NULL COMMENT '通知标题',
-`content` text NULL COMMENT '通知内容',
+`content` mediumtext NULL COMMENT '通知内容',
`status` tinyint(2) NULL DEFAULT 0 COMMENT '通知状态(0正常,1关闭 默认0)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) NULL COMMENT '更新人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231123007_law.sql b/assess-admin/src/main/resources/db/migration/V20231123007_law.sql
index 4606862..32e3b03 100644
--- a/assess-admin/src/main/resources/db/migration/V20231123007_law.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231123007_law.sql
@@ -2,16 +2,16 @@
-- ----------------------------
-- 系统法律法规表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_law`;
CREATE TABLE `smart_assess`.`sys_law` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '住标题',
`sub_title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '副标题',
-`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
+`content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
`law_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '法律法规类别',
`pub_agency` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '颁布机构',
`pub_date` datetime NOT NULL COMMENT '颁布日期',
`status` tinyint NULL DEFAULT 0 COMMENT '状态(0正常,1关闭 默认0)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231124001_region.sql b/assess-admin/src/main/resources/db/migration/V20231124001_region.sql
index 1d4a9d8..f83ebec 100644
--- a/assess-admin/src/main/resources/db/migration/V20231124001_region.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231124001_region.sql
@@ -2,12 +2,12 @@
-- ----------------------------
-- 系统地区表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_region`;
CREATE TABLE `smart_assess`.`sys_region` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '地区名称',
`sort` int NULL DEFAULT 0 COMMENT '排序',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父主键',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`region_type` tinyint NULL DEFAULT 0 COMMENT '地区类型(0是疆内,1是疆外,默认0)',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
diff --git a/assess-admin/src/main/resources/db/migration/V20231124002_attach.sql b/assess-admin/src/main/resources/db/migration/V20231124002_attach.sql
index 08cc0c4..bc2c532 100644
--- a/assess-admin/src/main/resources/db/migration/V20231124002_attach.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231124002_attach.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 系统上传文件表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_attach`;
CREATE TABLE `smart_assess`.`sys_attach` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件名称',
diff --git a/assess-admin/src/main/resources/db/migration/V20231127001_expert_classify.sql b/assess-admin/src/main/resources/db/migration/V20231127001_expert_classify.sql
index e4644b2..52fea18 100644
--- a/assess-admin/src/main/resources/db/migration/V20231127001_expert_classify.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231127001_expert_classify.sql
@@ -2,16 +2,36 @@
-- ----------------------------
-- 系统专家分类表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_expert_classify`;
CREATE TABLE `smart_assess`.`sys_expert_classify` (
-`classify_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`classify_name` varchar(20) NOT NULL COMMENT '分类名称',
`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父id',
`del_flag` tinyint NOT NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) NULL COMMENT '创建人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) NULL COMMENT '修改人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`remark` varchar(100) NULL COMMENT '备注',
-PRIMARY KEY (`classify_id`)
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统专家分类表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
+PRIMARY KEY (`id`)
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统专家分类表' ROW_FORMAT = DYNAMIC;
+
+
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (1, '安全生产类', 0);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (2, '防灾减灾救灾类', 0);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (3, '应急救援类', 0);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (4, '煤矿', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (5, '金属非金属矿山', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (6, '石油天然气开采', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (7, '危险化学品', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (8, '烟花爆竹', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (9, '工贸', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (10, '综合监管', 1);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (11, '森林草原防灭火', 2);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (13, '地质灾害', 2);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (14, '防汛抗旱', 2);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (15, '气象灾害', 2);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (16, '综合防灾减灾', 2);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (17, '安全生产专业救援', 3);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (18, '综合救援', 3);
+INSERT INTO `smart_assess`.`sys_expert_classify`(`id`, `classify_name`, `parent_id`) VALUES (24, '地震灾害', 2);
diff --git a/assess-admin/src/main/resources/db/migration/V20231127002_expert_info.sql b/assess-admin/src/main/resources/db/migration/V20231127002_expert_info.sql
index 517d21f..816f731 100644
--- a/assess-admin/src/main/resources/db/migration/V20231127002_expert_info.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231127002_expert_info.sql
@@ -2,44 +2,46 @@
-- ----------------------------
-- 系统专家分类表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_expert_info`;
CREATE TABLE `smart_assess`.`sys_expert_info` (
-`expert_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(20) NOT NULL COMMENT '专家名称',
`sex` tinyint NULL DEFAULT 2 COMMENT '性别(0男,1女,2未知,默认2)',
`big_classify` bigint NULL COMMENT '类别id',
`small_classify` bigint NULL COMMENT '类别id',
`birthday` datetime NULL COMMENT '出生日期',
-`phone` varchar(11) NULL COMMENT '手机号',
+`phone` varchar(12) NULL COMMENT '手机号',
`title` varchar(20) NULL COMMENT '职称',
`electronic_photo` varchar(100) NULL COMMENT '电子照片',
`id_card` varchar(18) NULL COMMENT '身份证号码',
-`duty_status` tinyint NULL COMMENT '在职状态',
-`company_name` varchar(20) NULL COMMENT '公司名称',
-`company_address` varchar(50) NULL COMMENT '公司地址',
+`duty_status` tinyint NULL COMMENT '在岗情况(0在岗,1退休)',
+`company_name` varchar(50) NULL COMMENT '单位名称',
+`company_address` varchar(60) NULL COMMENT '单位地址',
`dept_name` varchar(20) NULL COMMENT '部门名称',
`job` varchar(10) NULL COMMENT '职务',
-`company_telephone` varchar(11) NULL COMMENT '公司电话',
-`fax_num` varchar(11) NULL COMMENT '传真',
+`company_telephone` varchar(11) NULL COMMENT '单位电话',
+`fax_num` varchar(11) NULL COMMENT '传真号',
`email` varchar(20) NULL COMMENT '邮箱',
-`graduation_school` varchar(20) NULL COMMENT '毕业学校',
-`degree` varchar(10) NULL COMMENT '学历',
+`graduation_school` varchar(30) NULL COMMENT '毕业学校',
+`degree` varchar(10) NULL COMMENT '最高学历',
`speciality` varchar(20) NULL COMMENT '专业',
-`current_profession` varchar(20) NULL COMMENT '当前专业',
-`support_direction_safety` varchar(20) NULL COMMENT '支撑安全',
-`support_direction_prevention` varchar(20) NULL COMMENT '支撑预防',
-`support_direction_emergency` varchar(20) NULL COMMENT '支持应急',
-`resume_key` varchar(20) NULL COMMENT '简述',
-`paper_situation_key` varchar(20) NULL,
-`reward_key` varchar(20) NULL,
-`achievement_key` varchar(20) NULL,
-`personal_opinion_key` varchar(20) NULL,
-`recommend_unit_opinion_key` varchar(20) NULL,
+`current_profession` varchar(100) NULL COMMENT '现在从事专业或方向',
+`support_direction_safety` varchar(40) NULL COMMENT '支撑方向安全生产',
+`support_direction_prevention` varchar(40) NULL COMMENT '支撑方向防灾救灾',
+`support_direction_emergency` varchar(40) NULL COMMENT '支撑方向应急救援',
+`resume_key` varchar(600) NULL COMMENT '简历',
+`paper_situation_key` varchar(600) NULL COMMENT '论文情况',
+`reward_key` varchar(600) NULL COMMENT '奖励',
+`achievement_key` varchar(600) NULL COMMENT '成绩成果',
+`personal_opinion_key` varchar(600) NULL COMMENT '专家个人意见',
+`recommend_unit_opinion_key` varchar(600) NULL COMMENT '推荐单位意见',
+`source` tinyint NULL COMMENT '来源(1问卷,2系统)',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`state` tinyint(2) NULL DEFAULT 1 COMMENT '审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)',
`del_flag` tinyint(255) NOT NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)',
`create_by` varchar(20) NULL COMMENT '创建人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) NULL COMMENT '修改人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`remark` varchar(100) NULL,
-PRIMARY KEY (`expert_id`)
+PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统专家信息表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20231130001_project.sql b/assess-admin/src/main/resources/db/migration/V20231130001_project.sql
index 2a43432..0edc50c 100644
--- a/assess-admin/src/main/resources/db/migration/V20231130001_project.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231130001_project.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 项目表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_project`;
CREATE TABLE `smart_assess`.`ass_project` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '项目名称',
@@ -10,21 +9,21 @@
`agency_id` bigint NOT NULL COMMENT '机构id',
`client` varchar(50) NOT NULL COMMENT '委托方',
`province` varchar(20) NULL COMMENT '省份',
+`phase` int NULL DEFAULT 1 COMMENT '项目阶段(1风险分析评价计划,2现场勘验,3项目审核,4出具报告,5项目归档)',
`city` varchar(20) NOT NULL COMMENT '城市',
`district` varchar(20) NOT NULL COMMENT '区县',
`business` varchar(20) NOT NULL COMMENT '业务范围,字典id',
`invest` varchar(10) NOT NULL COMMENT '项目投资额/万',
`address` varchar(100) NOT NULL COMMENT '地址',
`actual_location` varchar(60) NULL COMMENT '实际纬度/经度',
-`location` varchar(20) NULL COMMENT '纬度/经度',
+`location` varchar(60) NULL COMMENT '纬度/经度',
`estimate_type` bigint NULL COMMENT '评估类型,字典id',
-`leader_id` bigint NOT NULL COMMENT '负责人id',
-`defect_numb` int NULL,
-`review_plan_date` datetime NULL COMMENT '评估计划时间',
-`township` varchar(20) NULL,
+`filing_date` datetime NULL COMMENT '项目完成时间',
`credit_code` varchar(30) NOT NULL COMMENT '委托单位社会统一信用代码',
`report_progress` tinyint(2) NULL DEFAULT 0 COMMENT '项目状态(0创建,1风险评估,2合同管理,默认0)',
`state` tinyint(2) NULL DEFAULT 1 COMMENT '审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)',
+`introduction` varchar(500) NOT NULL COMMENT '项目基本概况(500字以内)',
+`is_review` tinyint(1) NULL DEFAULT 0 COMMENT '是否参与评审(0否,1是,默认0)',
`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) NULL COMMENT '创建人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231130002_risk_estimate.sql b/assess-admin/src/main/resources/db/migration/V20231130002_risk_estimate.sql
index 306f28f..e222cda 100644
--- a/assess-admin/src/main/resources/db/migration/V20231130002_risk_estimate.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231130002_risk_estimate.sql
@@ -2,11 +2,9 @@
-- ----------------------------
-- 风险评估表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_risk_estimate`;
CREATE TABLE `smart_assess`.`ass_risk_estimate` (
`id` bigint NOT NULL AUTO_INCREMENT,
`project_id` bigint NOT NULL COMMENT '项目id',
-`introduction` varchar(500) NOT NULL COMMENT '基本概况(500字以内)',
`risk_character` varchar(500) NOT NULL COMMENT '行业风险特性(500字以内)',
`surroundings` varchar(500) NOT NULL COMMENT '周边环境(500字以内)',
`equipment` varchar(500) NULL COMMENT '主要生产装置(500字以内)',
diff --git a/assess-admin/src/main/resources/db/migration/V20231130003_contract.sql b/assess-admin/src/main/resources/db/migration/V20231130003_contract.sql
index ad2d82b..aa67ef5 100644
--- a/assess-admin/src/main/resources/db/migration/V20231130003_contract.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231130003_contract.sql
@@ -2,11 +2,10 @@
-- ----------------------------
-- 合同管理表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_contract`;
CREATE TABLE `smart_assess`.`ass_contract` (
`id` bigint NOT NULL AUTO_INCREMENT,
-`contract_money` decimal NOT NULL COMMENT '合同价格/万',
-`actual_contract_money` decimal NOT NULL COMMENT '实际合同价格/万',
+`contract_money` varchar(30) NOT NULL COMMENT '合同价格/万',
+`actual_contract_money` varchar(30) NULL COMMENT '实际合同价格/万',
`contract_sign_date` datetime NOT NULL COMMENT '合同签订时间',
`project_id` bigint NOT NULL COMMENT '项目id',
`contract_introduction` varchar(100) NULL COMMENT '合同额外说明(100字以内)',
diff --git a/assess-admin/src/main/resources/db/migration/V20231130004_estimate_task.sql b/assess-admin/src/main/resources/db/migration/V20231130004_estimate_task.sql
index fce085f..a9e55f5 100644
--- a/assess-admin/src/main/resources/db/migration/V20231130004_estimate_task.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231130004_estimate_task.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 评价认为通知表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_estimate_task`;
CREATE TABLE `smart_assess`.`ass_estimate_task` (
`id` bigint NOT NULL AUTO_INCREMENT,
`leader_id` bigint NOT NULL COMMENT '项目负责人id',
diff --git a/assess-admin/src/main/resources/db/migration/V20231204001_device.sql b/assess-admin/src/main/resources/db/migration/V20231204001_device.sql
index c5c7a6f..39dafab 100644
--- a/assess-admin/src/main/resources/db/migration/V20231204001_device.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231204001_device.sql
@@ -1,13 +1,14 @@
-
-- ----------------------------
-- 设备表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_device`;
CREATE TABLE `smart_assess`.`ass_device` (
`id` bigint NOT NULL AUTO_INCREMENT,
+`project_id` bigint NOT NULL COMMENT '项目id',
`device_name` varchar(20) NOT NULL COMMENT '设备名称',
-`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
+`start_date` datetime NOT NULL COMMENT '开始时间',
+`end_date` datetime NOT NULL COMMENT '结束时间',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
`create_by` varchar(20) NULL COMMENT '创建人',
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(20) NULL COMMENT '更新人',
@@ -15,24 +16,4 @@
`remark` varchar(100) NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '设备表' ROW_FORMAT = DYNAMIC;
-
-
--- ----------------------------
--- 项目需要的设备清单表
--- ----------------------------
-drop table if exists `smart_assess`.`ass_project_device`;
-CREATE TABLE `smart_assess`.`ass_project_device` (
-`id` bigint NOT NULL AUTO_INCREMENT,
-`project_id` bigint NOT NULL COMMENT '项目id',
-`device_id` bigint NOT NULL COMMENT '设备id',
-`start_date` datetime NOT NULL COMMENT '开始时间',
-`end_date` datetime NOT NULL COMMENT '结束时间',
-`version` int NULL DEFAULT 0 COMMENT '乐观锁',
-`create_by` varchar(20) NULL COMMENT '创建人',
-`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-`update_by` varchar(20) NULL COMMENT '更新人',
-`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
-`remark` varchar(100) NULL COMMENT '备注',
-PRIMARY KEY (`id`)
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '项目需要的设备清单表' ROW_FORMAT = DYNAMIC;
diff --git a/assess-admin/src/main/resources/db/migration/V20231204002_estimate_plan.sql b/assess-admin/src/main/resources/db/migration/V20231204002_estimate_plan.sql
index daaa103..4c040c5 100644
--- a/assess-admin/src/main/resources/db/migration/V20231204002_estimate_plan.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231204002_estimate_plan.sql
@@ -2,11 +2,9 @@
-- ----------------------------
-- 评价项目计划表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_estimate_plan`;
CREATE TABLE `smart_assess`.`ass_estimate_plan` (
`id` bigint NOT NULL AUTO_INCREMENT,
`auser_id` bigint NOT NULL COMMENT '评价机构负责人id',
-`technical_id` bigint NOT NULL COMMENT '技术负责人负责人id',
`start_date` datetime NOT NULL COMMENT '评价开始时间',
`end_date` datetime NOT NULL COMMENT '评价结束时间',
`project_id` bigint NOT NULL COMMENT '项目id',
diff --git a/assess-admin/src/main/resources/db/migration/V20231204003_estimate_schedule.sql b/assess-admin/src/main/resources/db/migration/V20231204003_estimate_schedule.sql
index 0dff831..eae0c54 100644
--- a/assess-admin/src/main/resources/db/migration/V20231204003_estimate_schedule.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231204003_estimate_schedule.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 评价日程安排表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_estimate_schedule`;
CREATE TABLE `smart_assess`.`ass_estimate_schedule` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '日程名称',
@@ -10,6 +9,7 @@
`start_date` datetime NOT NULL COMMENT '开始时间',
`end_date` datetime NOT NULL COMMENT '结束时间',
`project_id` bigint NOT NULL COMMENT '项目id',
+`sort` int NULL DEFAULT 0 COMMENT '序号',
`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) NULL COMMENT '创建人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231204004_plan_person.sql b/assess-admin/src/main/resources/db/migration/V20231204004_plan_person.sql
index 34ec067..4d3259d 100644
--- a/assess-admin/src/main/resources/db/migration/V20231204004_plan_person.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231204004_plan_person.sql
@@ -2,19 +2,14 @@
-- ----------------------------
-- 评价项目组成员表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_plan_person`;
CREATE TABLE `smart_assess`.`ass_plan_person` (
`id` bigint NOT NULL AUTO_INCREMENT,
`person_id` bigint NOT NULL COMMENT '成员id',
-`certificate_number` varchar(30) NOT NULL COMMENT '资格证书编号',
-`ability` varchar(10) NOT NULL COMMENT '能力',
-`business_ability_id` bigint NULL COMMENT '能力id(字典id)',
-`identification_number` varchar(10) NOT NULL COMMENT '识别码',
-`job_type` tinyint(2) NOT NULL DEFAULT 1 COMMENT '工作类型:1普通人员,2组长',
-`later_promise` tinyint(1) NOT NULL COMMENT '承诺后期前往现场勘验(0否,1是)',
-`professional_ability` varchar(50) NOT NULL COMMENT '专业能力',
-`work` varchar(50) NOT NULL COMMENT '承担工作',
-`scene_statue` tinyint(2) NOT NULL DEFAULT 1 COMMENT '场景状态1 2',
+`job_type` tinyint NOT NULL DEFAULT 1 COMMENT '工作类型:1普通人员,2组长',
+`play_role` tinyint NOT NULL DEFAULT 2 COMMENT '项目担任角色:1项目负责人,2项目组成员,3过程控制负责人,4机构评价负责人,5技术负责人,默认2',
+`later_promise` tinyint(1) NOT NULL DEFAULT 0 COMMENT '承诺后期前往现场勘验(0否,1是)',
+`informed` tinyint NULL DEFAULT 0 COMMENT '是否已告知(0否,1是,默认0)',
+`work` varchar(50) NULL COMMENT '承担工作',
`reason` varchar(30) NULL COMMENT '未到现场勘验原因(30字)',
`sort` int NULL DEFAULT 0 COMMENT '排序',
`project_id` bigint NOT NULL COMMENT '项目id',
diff --git a/assess-admin/src/main/resources/db/migration/V20231204005_plan_expert.sql b/assess-admin/src/main/resources/db/migration/V20231204005_plan_expert.sql
deleted file mode 100644
index 515c1c7..0000000
--- a/assess-admin/src/main/resources/db/migration/V20231204005_plan_expert.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-
--- ----------------------------
--- 评价项目组专家表
--- ----------------------------
-drop table if exists `smart_assess`.`ass_plan_expert`;
-CREATE TABLE `smart_assess`.`ass_plan_expert` (
-`id` bigint NOT NULL AUTO_INCREMENT,
-`expert_id` bigint NOT NULL COMMENT '专家id',
-`ability` varchar(10) NOT NULL COMMENT '能力',
-`business_ability_id` bigint NULL COMMENT '能力id(字典id)',
-`later_promise` tinyint(1) NOT NULL COMMENT '承诺后期前往现场勘验(0否,1是)',
-`professional_ability` varchar(50) NOT NULL COMMENT '专业能力',
-`work` varchar(50) NOT NULL COMMENT '工作任务',
-`sort` int NULL DEFAULT 0 COMMENT '排序',
-`project_id` bigint NOT NULL COMMENT '项目id',
-`work_notification_id` bigint NULL COMMENT '从业告知id',
-`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
-`version` int NULL DEFAULT 0 COMMENT '乐观锁',
-`create_by` varchar(20) NULL COMMENT '创建人',
-`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-`update_by` varchar(20) NULL COMMENT '更新人',
-`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
-`remark` varchar(100) NULL COMMENT '备注',
-PRIMARY KEY (`id`)
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评价项目组专家表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20231205001_work_notification.sql b/assess-admin/src/main/resources/db/migration/V20231205001_work_notification.sql
index e89f339..776be73 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205001_work_notification.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205001_work_notification.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 从业告知表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_work_notification`;
CREATE TABLE `smart_assess`.`ass_work_notification` (
`id` bigint NOT NULL AUTO_INCREMENT,
`service_start_date` datetime NOT NULL COMMENT '服务开始时间',
diff --git a/assess-admin/src/main/resources/db/migration/V20231205002_investigation.sql b/assess-admin/src/main/resources/db/migration/V20231205002_investigation.sql
index 5963af0..f13e029 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205002_investigation.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205002_investigation.sql
@@ -2,7 +2,6 @@
-- ----------------------------
-- 现场勘验记录表
-- ----------------------------
-drop table if exists `smart_assess`.`ass_investigation`;
CREATE TABLE `smart_assess`.`ass_investigation` (
`id` bigint NOT NULL AUTO_INCREMENT,
`investigation_date` datetime NOT NULL COMMENT '现场勘验时间',
@@ -10,6 +9,7 @@
`is_safety_check` tinyint(1) NULL DEFAULT 0 COMMENT '编制现场安全检查表',
`record_data` varchar(200) NULL COMMENT '现场勘验记录(200字)',
`project_id` bigint NOT NULL COMMENT '项目id',
+`location` varchar(60) NULL COMMENT '纬度/经度',
`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`create_by` varchar(20) NULL COMMENT '创建人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231205003_accessory_file.sql b/assess-admin/src/main/resources/db/migration/V20231205003_accessory_file.sql
index 34492ad..45364c2 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205003_accessory_file.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205003_accessory_file.sql
@@ -2,12 +2,12 @@
-- ----------------------------
-- 评估文件上传记录表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_accessory_file`;
-CREATE TABLE `smart_assess`.`sys_accessory_file` (
+CREATE TABLE `smart_assess`.`ass_accessory_file` (
`id` bigint NOT NULL AUTO_INCREMENT,
`file_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件名称',
+`origin_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件原始名称',
`path` varchar(70) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件存放路径',
-`module_type` tinyint NOT NULL COMMENT '模块code',
+`module_type` int NOT NULL COMMENT '模块code',
`project_id` bigint NOT NULL COMMENT '项目id',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
diff --git a/assess-admin/src/main/resources/db/migration/V20231205004_face_record.sql b/assess-admin/src/main/resources/db/migration/V20231205004_face_record.sql
index cf246a4..3ce8472 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205004_face_record.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205004_face_record.sql
@@ -2,12 +2,13 @@
-- ----------------------------
-- 现场勘验人员人脸识别记录表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_face_record`;
-CREATE TABLE `smart_assess`.`sys_face_record` (
+CREATE TABLE `smart_assess`.`ass_face_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`person_id` bigint NOT NULL COMMENT '用户id',
-`file_id` bigint NOT NULL COMMENT '评估文件id(图片id)',
`project_id` bigint NOT NULL COMMENT '项目id',
+`location` varchar(60) NULL COMMENT '纬度/经度',
+`face_path` varchar(100) NULL COMMENT '人脸图片路径',
+`scene` tinyint NULL DEFAULT 0 COMMENT '是否是现场勘验人脸识别(0否 1是,默认0)',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
diff --git a/assess-admin/src/main/resources/db/migration/V20231205005_audit.sql b/assess-admin/src/main/resources/db/migration/V20231205005_audit.sql
index 9c5aba2..1fbd2c5 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205005_audit.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205005_audit.sql
@@ -2,8 +2,7 @@
-- ----------------------------
-- 审核表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_audit`;
-CREATE TABLE `smart_assess`.`sys_audit` (
+CREATE TABLE `smart_assess`.`ass_audit` (
`id` bigint NOT NULL AUTO_INCREMENT,
`audit_date` datetime NOT NULL COMMENT '审核日期',
`affirm_date` datetime NOT NULL COMMENT '内部审核确定日期',
diff --git a/assess-admin/src/main/resources/db/migration/V20231205006_conclusion.sql b/assess-admin/src/main/resources/db/migration/V20231205006_conclusion.sql
index 96d9010..ff52605 100644
--- a/assess-admin/src/main/resources/db/migration/V20231205006_conclusion.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231205006_conclusion.sql
@@ -2,8 +2,7 @@
-- ----------------------------
-- 项目结论表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_conclusion`;
-CREATE TABLE `smart_assess`.`sys_conclusion` (
+CREATE TABLE `smart_assess`.`ass_conclusion` (
`id` bigint NOT NULL AUTO_INCREMENT,
`conclusion` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '评价结论',
`is_revise_manual` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否有评价报告修改说明(0否 1是)',
diff --git a/assess-admin/src/main/resources/db/migration/V20231206001_process_audit.sql b/assess-admin/src/main/resources/db/migration/V20231206001_process_audit.sql
index f755394..f73435f 100644
--- a/assess-admin/src/main/resources/db/migration/V20231206001_process_audit.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231206001_process_audit.sql
@@ -2,8 +2,7 @@
-- ----------------------------
-- 过程控制负责人审核表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_process_audit`;
-CREATE TABLE `smart_assess`.`sys_process_audit` (
+CREATE TABLE `smart_assess`.`ass_process_audit` (
`id` bigint NOT NULL AUTO_INCREMENT,
`audit_date` datetime NOT NULL COMMENT '审核日期',
`process_leader_id` bigint NOT NULL COMMENT '过程控制负责人id',
diff --git a/assess-admin/src/main/resources/db/migration/V20231206002_project_material.sql b/assess-admin/src/main/resources/db/migration/V20231206002_project_material.sql
index 7dff537..bfb3ea6 100644
--- a/assess-admin/src/main/resources/db/migration/V20231206002_project_material.sql
+++ b/assess-admin/src/main/resources/db/migration/V20231206002_project_material.sql
@@ -2,11 +2,10 @@
-- ----------------------------
-- 项目归档文件表
-- ----------------------------
-drop table if exists `smart_assess`.`sys_project_material`;
-CREATE TABLE `smart_assess`.`sys_project_material` (
+CREATE TABLE `smart_assess`.`ass_project_material` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '名称',
-`type` tinyint NOT NULL COMMENT '类型',
+`type` tinyint NOT NULL DEFAULT 1 COMMENT '是否是文件,0否 1是 默认1',
`project_id` bigint NOT NULL COMMENT '项目id',
`file_id` bigint NULL COMMENT '评估文件id',
`version` int NULL DEFAULT 0 COMMENT '乐观锁',
diff --git a/assess-admin/src/main/resources/db/migration/V20231208001_recitification.sql b/assess-admin/src/main/resources/db/migration/V20231208001_recitification.sql
new file mode 100644
index 0000000..b3b341f
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20231208001_recitification.sql
@@ -0,0 +1,20 @@
+
+-- ----------------------------
+-- 项目整改情况说明表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`ass_recitification` (
+`id` bigint NOT NULL AUTO_INCREMENT,
+`rectify_person` varchar(20) NOT NULL COMMENT '整改人',
+`project_id` bigint NOT NULL COMMENT '项目id',
+`file_id` bigint NULL COMMENT '文件id',
+`rectify_time` datetime NOT NULL COMMENT '整改时间',
+`reason` varchar(30) NULL COMMENT '整改说明',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
+`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
+`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新人',
+`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`remark` varchar(50) NULL COMMENT '原因说明',
+PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '项目整改情况说明表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20231208002_face_recognition.sql b/assess-admin/src/main/resources/db/migration/V20231208002_face_recognition.sql
new file mode 100644
index 0000000..1dbc325
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20231208002_face_recognition.sql
@@ -0,0 +1,19 @@
+
+-- ----------------------------
+-- 签字确认表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`ass_face_recognition` (
+`id` bigint NOT NULL AUTO_INCREMENT,
+`person_id` bigint NOT NULL COMMENT '人员id',
+`project_id` bigint NOT NULL COMMENT '项目id',
+`sign_path` varchar(100) NULL COMMENT '签字图片路径',
+`insurance_pic_id` bigint DEFAULT NULL COMMENT '承诺书图片id',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
+`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
+`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新人',
+`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`remark` varchar(50) NULL COMMENT '原因说明',
+PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '签字确认表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20231208003_filing_apply.sql b/assess-admin/src/main/resources/db/migration/V20231208003_filing_apply.sql
new file mode 100644
index 0000000..88d0d7e
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20231208003_filing_apply.sql
@@ -0,0 +1,17 @@
+
+-- ----------------------------
+-- 报备申请表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`ass_filing_apply` (
+`id` bigint NOT NULL AUTO_INCREMENT,
+`project_id` bigint NOT NULL COMMENT '项目id',
+`file_id` bigint NULL COMMENT '报备文件id',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
+`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
+`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新人',
+`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`remark` varchar(50) NULL COMMENT '原因说明',
+PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报备申请表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240105001_change_user.sql b/assess-admin/src/main/resources/db/migration/V20240105001_change_user.sql
new file mode 100644
index 0000000..cbe6a3f
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240105001_change_user.sql
@@ -0,0 +1,5 @@
+ALTER TABLE `smart_assess`.`sys_user`
+ADD COLUMN `id_photo` varchar(100) NULL COMMENT '证件照',
+ADD COLUMN `certificate_no` varchar(100) NOT NULL COMMENT '证书编号',
+ADD COLUMN `level` varchar(10) NOT NULL COMMENT '评价师等级',
+ADD COLUMN `work_type` tinyint NOT NULL DEFAULT 1 COMMENT '人员类型(1专职,2兼职,默认1)';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240105002_change_dict_data.sql b/assess-admin/src/main/resources/db/migration/V20240105002_change_dict_data.sql
new file mode 100644
index 0000000..3762077
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240105002_change_dict_data.sql
@@ -0,0 +1,43 @@
+-- 字典类型
+insert into `smart_assess`.`sys_dict_type`(`name`,`dict_type`,`remark`) values('专业方向', 'sys_major_orientation','专业方向列表');
+
+-- 字典数据
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('预评价(设立评价)','0', 'sys_assess_type', 'Y','评价类型');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('现状评价','1', 'sys_assess_type', 'N','评价类型');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('验收评价','2', 'sys_assess_type', 'N','评价类型');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('重大危险源评估','3', 'sys_assess_type', 'N','评价类型');
+
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('安全','0', 'sys_major_orientation', 'Y','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('机械','1', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('电气','2', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('采矿','3', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('通风','4', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('矿建','5', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('地质','6', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('水工结构','7', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('采油','8', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('储运','9', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('油气储运','10', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('工艺设备与控制','11', 'sys_major_orientation', 'N', '专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('自动化(仪表)','12', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('防腐','13', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('化工工艺','14', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('化工机械','15', 'sys_major_orientation', 'N', '专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('自动化','16', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('火炸药','17', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('冶金','18', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('有色金属','19', 'sys_major_orientation', 'N','专业方向');
+insert into `smart_assess`.`sys_dict_data`(`label`, `value`, `dict_type`,`is_default`,`remark`) values('爆炸技术','20', 'sys_major_orientation', 'N','专业方向');
+
+
+ALTER TABLE `smart_assess`.`sys_dict_data`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_dict_type`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_notice`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_law`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240109001_add_delflag.sql b/assess-admin/src/main/resources/db/migration/V20240109001_add_delflag.sql
new file mode 100644
index 0000000..cafbe78
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240109001_add_delflag.sql
@@ -0,0 +1,11 @@
+ALTER TABLE `smart_assess`.`sys_dict_data`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_dict_type`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_notice`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
+
+ALTER TABLE `smart_assess`.`sys_law`
+ADD COLUMN `del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0代表存在,1代表删除,默认0)';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240109002_user_face.sql b/assess-admin/src/main/resources/db/migration/V20240109002_user_face.sql
new file mode 100644
index 0000000..c68ea05
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240109002_user_face.sql
@@ -0,0 +1,17 @@
+
+-- ----------------------------
+-- 用户人脸数据表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`sys_user_face` (
+`id` bigint NOT NULL AUTO_INCREMENT,
+`face_base` text NOT NULL COMMENT '人脸数据',
+`user_id` bigint NOT NULL COMMENT '用户id',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`del_flag` tinyint NULL DEFAULT 0 COMMENT '删除标志(0正常,1删除,默认0)',
+`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '创建人',
+`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新人',
+`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+`remark` varchar(20) NULL COMMENT '原因说明',
+PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户人脸数据表' ROW_FORMAT = DYNAMIC;
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240125001_change_region.sql b/assess-admin/src/main/resources/db/migration/V20240125001_change_region.sql
new file mode 100644
index 0000000..82d46c5
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240125001_change_region.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `smart_assess`.`sys_region`
+ADD COLUMN `remark` varchar(20) NULL COMMENT '备注';
\ No newline at end of file
diff --git a/assess-admin/src/test/java/com/gkhy/admin/MybatisPlusGenerator.java b/assess-admin/src/test/java/com/gkhy/admin/MybatisPlusGenerator.java
deleted file mode 100644
index 5c26675..0000000
--- a/assess-admin/src/test/java/com/gkhy/admin/MybatisPlusGenerator.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.gkhy.admin;
-
-import com.baomidou.mybatisplus.generator.FastAutoGenerator;
-import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
-import com.baomidou.mybatisplus.generator.config.OutputFile;
-import com.baomidou.mybatisplus.generator.config.rules.DateType;
-import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-public class MybatisPlusGenerator {
- public static void main(String[] args) {
- System.out.println(System.getProperty("user.dir"));
- String model="/assess-system";
- // 数据库配置
- DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig
- .Builder("jdbc:mysql://localhost:3306/smart_assess" +
- "?useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
- , "root", "password");
- FastAutoGenerator.create(dataSourceConfigBuilder)
- // 全局配置
- .globalConfig((scanner, builder) -> {
- builder.author("kzy")
- // 覆盖已生成文件
- .fileOverride()
- // 指定输出目录
- .outputDir(System.getProperty("user.dir") +model+ "/src/main/java/")
- // 开启 swagger 模式
- .enableSwagger()
- // 禁止打开输出目录
- .disableOpenDir()
- // 时间策略
- .dateType(DateType.TIME_PACK)
- // 类注释日期的格式
- .commentDate("yyyy-MM-dd HH:mm:ss")
- .build();
- })
- // 包配置
- .packageConfig((scanner, builder) -> {
- // 父包名
- builder.parent("com.gkhy.assess")
- // 模块名
- .moduleName("system")
- // Entity 包名
- .entity("domain")
- // Service 包名
- .service("service")
- // Service Impl 包名
- .serviceImpl("service.impl")
- // Controller 包名
- .controller("controller")
- // Mapper 包名
- .mapper("mapper.system")
- // MapperXML 包名
- .xml("mapper.system")
- // 路径配置信息
- .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") +model+ "/src/main/resources/mapper/"));
- })
- //策略配置
- .strategyConfig((scanner, builder) -> {
- // 增加表匹配(内存过滤), include 与 exclude 只能配置一项
- builder.addInclude(getTables(scanner.apply("请输入要生成的表名,多个英文逗号分隔?所有输入 all")))
- // 增加表排除匹配(内存过滤), include 与 exclude 只能配置一项
- // .addExclude(scanner.apply("请输入要忽略的表名,多个英文逗号分隔?"))
- // 增加过滤表后缀
- .addTableSuffix("")
- // 增加过滤表前缀
- .addTablePrefix("")
- // service 策略配置
- .serviceBuilder()
- // 格式化文件名称
- .formatServiceFileName("%sService")
- .formatServiceImplFileName("%sServiceImpl")
- // 实体策略配置
- .entityBuilder()
- // 开启 lombok 模型
- .enableLombok()
- // 开启生成实体时生成字段注解
- .enableTableFieldAnnotation()
- // controller 策略配置
- .controllerBuilder()
- .formatFileName("%sController")
- // 开启生成@RestController 控制器
- .enableRestStyle()
- // mapper 策略配置
- .mapperBuilder()
- .formatMapperFileName("%sMapper")
- .enableMapperAnnotation()
- .formatXmlFileName("%sMapper");
- })
- // 使用Freemarker引擎模板,默认的是Velocity引擎模板
- .templateEngine(new FreemarkerTemplateEngine())
- .execute();
- }
-
-
-
- /**
- * 处理 all 情况
- *
- * @param tables
- * @return
- */
- protected static List<String> getTables(String tables) {
- return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
- }
-}
diff --git a/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java b/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
index 13a25d5..32cc777 100644
--- a/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
+++ b/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
@@ -6,16 +6,12 @@
import com.gkhy.assess.admin.GkhyAdminApplication;
import com.gkhy.assess.system.domain.SysRegion;
import com.gkhy.assess.system.service.SysRegionService;
-import com.gkhy.assess.system.service.impl.SysRegionServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
-import sun.swing.plaf.GTKKeybindings;
import java.io.BufferedReader;
import java.io.File;
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitization.java b/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitization.java
new file mode 100644
index 0000000..50166e7
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitization.java
@@ -0,0 +1,13 @@
+package com.gkhy.assess.common.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 数据脱敏注解,方法含有该注解表示需要数据脱敏
+ */
+@Target({ElementType.PARAMETER,ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataDesensitization {
+
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitizationType.java b/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitizationType.java
new file mode 100644
index 0000000..02c8a5c
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/annotation/DataDesensitizationType.java
@@ -0,0 +1,19 @@
+package com.gkhy.assess.common.annotation;
+
+import com.gkhy.assess.common.enums.SensitiveTypeEnum;
+
+import java.lang.annotation.*;
+
+/**
+ * 数据脱敏注解,字段上含有该注解表示需要数据脱敏
+ */
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataDesensitizationType {
+ /**
+ * 脱敏类型(规则)
+ * @return
+ */
+ SensitiveTypeEnum type();
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/api/ResultCode.java b/assess-common/src/main/java/com/gkhy/assess/common/api/ResultCode.java
index dfd9e42..aef3b0c 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/api/ResultCode.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/api/ResultCode.java
@@ -6,7 +6,7 @@
public enum ResultCode implements IErrorCode {
SUCCESS(200,"操作成功"),
FAILED(500, "操作失败"),
- VALIDATE_FAILED(404, "参数检验失败"),
+ VALIDATE_FAILED(400, "参数检验失败"),
UNAUTHORIZED(401, "暂未登录或token已经过期"),
FORBIDDEN(403, "没有相关权限");
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/config/BaseRedisConfig.java b/assess-common/src/main/java/com/gkhy/assess/common/config/BaseRedisConfig.java
index 2eb4f50..072f2ee 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/config/BaseRedisConfig.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/config/BaseRedisConfig.java
@@ -3,7 +3,13 @@
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.gkhy.assess.common.service.RedisService;
import com.gkhy.assess.common.service.impl.RedisServiceImpl;
import org.springframework.context.annotation.Bean;
@@ -18,6 +24,9 @@
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
/**
* Redis基础配置
@@ -48,6 +57,21 @@
Jackson2JsonRedisSerializer<Object> serializer=new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper objectMapper=new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+
+ //LocalDatetime序列化
+ JavaTimeModule timeModule = new JavaTimeModule();
+ timeModule.addDeserializer(LocalDate.class,
+ new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ timeModule.addDeserializer(LocalDateTime.class,
+ new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ timeModule.addSerializer(LocalDate.class,
+ new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ timeModule.addSerializer(LocalDateTime.class,
+ new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+
+ objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+ objectMapper.registerModule(timeModule);
+
//必须设置,否则无法将JSON转化为对象,会转化成Map类型
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL);
serializer.setObjectMapper(objectMapper);
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/config/MybatisPlusConfig.java b/assess-common/src/main/java/com/gkhy/assess/common/config/MybatisPlusConfig.java
index d2e5f88..d81f4f7 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/config/MybatisPlusConfig.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/config/MybatisPlusConfig.java
@@ -21,6 +21,7 @@
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
paginationInnerInterceptor.setOverflow(false);//溢出总页数 总是跳到第一页
interceptor.addInnerInterceptor(paginationInnerInterceptor);
+ //添加乐观锁插件
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/BaseEntity.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/BaseEntity.java
index ed74267..f3aabd1 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/BaseEntity.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/BaseEntity.java
@@ -3,11 +3,16 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
+import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -16,7 +21,6 @@
@Getter
@Setter
-@Accessors(chain = true)
@ApiModel(value = "baseEntity对象", description = "基础类")
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@@ -25,18 +29,22 @@
@TableField("create_by")
private String createBy;
+// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+// @JsonSerialize(using = LocalDateTimeSerializer.class)
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("创建时间")
@TableField("create_time")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createTime;
@ApiModelProperty("更新者")
@TableField("update_by")
private String updateBy;
+// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+// @JsonSerialize(using = LocalDateTimeSerializer.class)
+// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty("更新时间")
@TableField("update_time")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime updateTime;
@ApiModelProperty("备注")
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/TableSupport.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/TableSupport.java
index 5c548cc..6abe2c8 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/TableSupport.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/TableSupport.java
@@ -42,7 +42,7 @@
{
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(Convert.toInt(ServletUtil.getParameter(PAGE_NUM), 1));
- pageDomain.setPageSize(Convert.toInt(ServletUtil.getParameter(PAGE_SIZE), 10));
+ pageDomain.setPageSize(Convert.toInt(ServletUtil.getParameter(PAGE_SIZE), 10)<=50?Convert.toInt(ServletUtil.getParameter(PAGE_SIZE), 10):50);
pageDomain.setOrderByColumn(ServletUtil.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtil.getParameter(IS_ASC));
pageDomain.setReasonable(ServletUtil.getParameterToBool(REASONABLE));
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
index f9ba2c5..3f71537 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
@@ -27,6 +27,12 @@
@ApiModelProperty(value = "用户昵称",required = true)
private String name;
+ @ApiModelProperty(value = "机构名称")
+ private String agentName;
+
+ @ApiModelProperty(value = "机构Id")
+ private Long agentId;
+
@ApiModelProperty("用户角色")
private String role;
@@ -36,4 +42,6 @@
@ApiModelProperty("用户身份(0代表监管用户,1代表机构用户,2代表专家用户)")
private Integer identity;
+ @ApiModelProperty("用户人脸数据(app使用)")
+ private Object userFace;
}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
index 2910ef7..7c0ef26 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
@@ -14,7 +14,7 @@
@ApiModelProperty(value = "登录名",required = true)
@NotBlank(message = "登录名不能为空")
private String username;
- @ApiModelProperty(value = "密码",required = true)
+ @ApiModelProperty(value = "密码(base64加密)",required = true)
@NotBlank(message = "密码不能为空")
private String password;
@ApiModelProperty(value = "验证码",required = false)
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/AccessoryFileTypeEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/AccessoryFileTypeEnum.java
deleted file mode 100644
index b413c40..0000000
--- a/assess-common/src/main/java/com/gkhy/assess/common/enums/AccessoryFileTypeEnum.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.gkhy.assess.common.enums;
-
-/**
- * 评估文件类型
- *
- */
-public enum AccessoryFileTypeEnum
-{
- DEVICE_IMAGE(1, "评价机构项目现场勘验人员在主要装置前的合影照片"),
- INVESTINGATION_IMAGE(2, "评价机构项目现场勘验照片"),
- COMPANY_IMAGE(3, "评价机构项目现场勘验人员与企业陪同人员图片"),
- INVESTINGATION_EAST_IMAGE(4, "预评价现场勘验照片-东"),
- INVESTINGATION_SOUTH_IMAGE(5, "预评价现场勘验照片-南"),
- INVESTINGATION_WEST_IMAGE(6, "预评价现场勘验照片-西"),
- INVESTINGATION_NORTH_IMAGE(7, "预评价现场勘验照片-北"),
- INVESTINGATION_VIDEO(8, "评价机构项目现场勘验视频"),
- EXCODE(9, "二维码"),
- PROARCHIVE_FILE(10, "安全评价过程控制记录文档附件");
-
- private final Integer code;
- private final String info;
-
- AccessoryFileTypeEnum(Integer code, String info)
- {
- this.code = code;
- this.info = info;
- }
-
- public Integer getCode()
- {
- return code;
- }
-
- public String getInfo()
- {
- return info;
- }
-}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/RequestSourceEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/RequestSourceEnum.java
new file mode 100644
index 0000000..c9c17ae
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/enums/RequestSourceEnum.java
@@ -0,0 +1,29 @@
+package com.gkhy.assess.common.enums;
+
+/**
+ * 请求来源状态
+ *
+ */
+public enum RequestSourceEnum
+{
+ WEB("web", "web请求"), APP("app", "app请求");
+
+ private final String code;
+ private final String info;
+
+ RequestSourceEnum(String code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public String getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/SensitiveTypeEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/SensitiveTypeEnum.java
new file mode 100644
index 0000000..c22b484
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/enums/SensitiveTypeEnum.java
@@ -0,0 +1,10 @@
+package com.gkhy.assess.common.enums;
+
+/**
+ * 脱敏类型枚举
+ */
+public enum SensitiveTypeEnum {
+ CHINESE_NAME,
+ ID_CARD,
+ MOBILE_PHONE;
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/utils/DesenseUtil.java b/assess-common/src/main/java/com/gkhy/assess/common/utils/DesenseUtil.java
new file mode 100644
index 0000000..93cff71
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/utils/DesenseUtil.java
@@ -0,0 +1,78 @@
+package com.gkhy.assess.common.utils;
+
+import cn.hutool.core.util.DesensitizedUtil;
+import com.gkhy.assess.common.annotation.DataDesensitizationType;
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.api.CommonResult;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.util.List;
+
+/**
+ * 脱密工具类,(缺陷,不支持子类数据脱密)
+ */
+public class DesenseUtil {
+
+ public static void assertResult(Object data) throws ClassNotFoundException, IllegalAccessException {
+ if(data instanceof CommonResult){
+ CommonResult cr= (CommonResult) data;
+ Object obj=cr.getData();
+ if(obj instanceof CommonPage){
+ assetListResult(((CommonPage)obj).getList());
+ }else if (obj instanceof List){
+ assetListResult(obj);
+ }else{
+ assetOneResult(obj);
+ }
+ }
+ }
+ public static void assetListResult(Object data) throws ClassNotFoundException, IllegalAccessException {
+ List list=(List) data;
+ for (Object record : list) {
+ Class<?> targetClass = Class.forName(record.getClass().getName());
+ Field[] fields = targetClass.getDeclaredFields();
+ reflexUpdateData(record, fields);
+ }
+ }
+
+ public static void assetOneResult(Object data) throws IllegalAccessException, ClassNotFoundException {
+ Class<?> targetClass = Class.forName(data.getClass().getName());
+ Field[] fields=targetClass.getDeclaredFields();
+ reflexUpdateData(data,fields);
+ }
+
+ public static void reflexUpdateData(Object data, Field[] fields) throws IllegalAccessException {
+ for (Field field : fields) {
+ field.setAccessible(true);
+ Object value = field.get(data);
+ if (!(value instanceof String)) {
+ continue;
+ }
+ String valueStr = (String) value;
+ Annotation[] annotations = field.getDeclaredAnnotations();
+ for (Annotation annotation : annotations) {
+ if (annotation instanceof DataDesensitizationType) {
+ DataDesensitizationType targetAnnotation = (DataDesensitizationType) annotation;
+ switch (targetAnnotation.type()) {
+ case CHINESE_NAME: {
+ field.set(data, DesensitizedUtil.chineseName(valueStr));
+ break;
+ }
+ case ID_CARD: {
+ field.set(data, DesensitizedUtil.idCardNum(valueStr, 3, 3));
+ break;
+ }
+ case MOBILE_PHONE: {
+ field.set(data, DesensitizedUtil.mobilePhone(valueStr));
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java b/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
index cd30016..0447a9a 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
@@ -1,18 +1,25 @@
package com.gkhy.assess.common.utils;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.auth0.jwt.interfaces.DecodedJWT;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.common.exception.ApiException;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
import java.util.Date;
/**
@@ -37,8 +44,13 @@
public static String tokenHead="";
- /**Token有效期为7天(Token在reids中缓存时间为两倍)*/
- public static final long EXPIRATION=(7 * 12) * 60 * 60 * 1000; //JWT的超期限时间(60*60*24*7)
+ /**Token有效期为1天(Token在reids中缓存时间为两倍) 单位ms*/
+ public static final long EXPIRATION=(1 * 24) * 60 * 60 * 1000; //JWT的超期限时间(60*60*24*1)
+
+ /**
+ * token有效期还有30分钟,刷新token 单位ms
+ */
+ public static final long NEED_UPDATE_TIME= 30 * 60 * 1000;
/**
* 校验token是否正确
@@ -56,6 +68,20 @@
}catch (Exception e){
return false;
}
+ }
+
+
+ public static boolean isNeedUpdate(String token,String username,String secret){
+ Date expertsAt =null;
+ try {
+ Algorithm algorithm = Algorithm.HMAC256(secret);
+ JWTVerifier verifier = JWT.require(algorithm).withClaim("username", username).build();
+ expertsAt = verifier.verify(token).getExpiresAt();
+ }catch (Exception e){
+ throw new ApiException("token非法无效");
+ }
+ //如果剩余过期时间少于过期时常的一半时 需要更新
+ return (expertsAt.getTime()-System.currentTimeMillis()) < NEED_UPDATE_TIME;
}
/**
@@ -127,4 +153,30 @@
}
+ /**
+ *
+ * @param response
+ * @param code
+ * @param errorMsg
+ */
+ public static void responseError(ServletResponse response, String errorMsg) {
+ HttpServletResponse httpServletResponse = (HttpServletResponse) response;
+ // issues/I4YH95浏览器显示乱码问题
+ httpServletResponse.setHeader("Content-type", "text/html;charset=UTF-8");
+ CommonResult jsonResult = CommonResult.failed(errorMsg);
+ OutputStream os = null;
+ try {
+ os = httpServletResponse.getOutputStream();
+ httpServletResponse.setCharacterEncoding("UTF-8");
+ // httpServletResponse.setStatus(code);
+ os.write(new ObjectMapper().writeValueAsString(jsonResult).getBytes("UTF-8"));
+ os.flush();
+ os.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/aop/DataDesensitizationAspect.java b/assess-framework/src/main/java/com/gkhy/assess/framework/aop/DataDesensitizationAspect.java
new file mode 100644
index 0000000..09fe57d
--- /dev/null
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/aop/DataDesensitizationAspect.java
@@ -0,0 +1,47 @@
+package com.gkhy.assess.framework.aop;
+
+import com.gkhy.assess.common.annotation.DataDesensitization;
+import com.gkhy.assess.common.utils.DesenseUtil;
+import com.gkhy.assess.common.utils.JwtTokenUtil;
+import com.gkhy.assess.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+
+/**
+ * 数据脱密
+ */
+@Aspect
+@Component
+@Slf4j
+public class DataDesensitizationAspect {
+ @Autowired
+ private HttpServletRequest request;
+ @Pointcut("@annotation(com.gkhy.assess.common.annotation.DataDesensitization)")
+ public void pointcut(){}
+
+ @Around("pointcut()")
+ public Object doaround(ProceedingJoinPoint point) throws Throwable {
+ Object object=point.proceed();
+ String jwtToken = request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN);
+ if(StringUtils.isNotBlank(jwtToken)){//token为空,进行数据脱敏
+ return object;
+ }
+ MethodSignature signature = (MethodSignature) point.getSignature();
+ Method method = signature.getMethod();
+ if(!method.isAnnotationPresent(DataDesensitization.class)){
+ return object;
+ }
+ DesenseUtil.assertResult(object);
+ return object;
+ }
+}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/aop/LogAspect.java b/assess-framework/src/main/java/com/gkhy/assess/framework/aop/LogAspect.java
index f810eb2..510651b 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/aop/LogAspect.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/aop/LogAspect.java
@@ -57,7 +57,10 @@
webLog.put("basePath", StringUtils.removeSuffix(urlStr, URLUtil.url(urlStr).getPath()));
webLog.put("ip", ServletUtil.getClientIP(request,null));
webLog.put("method",request.getMethod());
- Object params=getParameter(method, joinPoint.getArgs());
+ Object params=null;
+ if(!requestURL.equals("/api/app/system/user-face")){
+ params=getParameter(method, joinPoint.getArgs());
+ }
webLog.put("parameter",params);
webLog.put("uri",request.getRequestURI());
webLog.put("url",requestURL.toString());
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
index 579768a..d517027 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
@@ -25,8 +25,6 @@
@Configuration
// 表示通过aop框架暴露该代理对象,AopContext能够访问
@EnableAspectJAutoProxy(exposeProxy = true)
-// 指定要扫描的Mapper类的包的路径
-@MapperScan("com.gkhy.**.mapper")
public class ApplicationConfig
{
@@ -42,6 +40,10 @@
// return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
// }
+ /**
+ * 时间序列化
+ * @return
+ */
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> {
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/config/FilterConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/config/FilterConfig.java
index 94d83f8..fec038e 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/config/FilterConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/config/FilterConfig.java
@@ -25,26 +25,31 @@
@Value("${xss.urlPatterns}")
private String urlPatterns;
-//
-// @SuppressWarnings({ "rawtypes", "unchecked" })
-// @Bean
-// @ConditionalOnProperty(value = "xss.enabled", havingValue = "true")
-// public FilterRegistrationBean xssFilterRegistration()
-// {
-// FilterRegistrationBean registration = new FilterRegistrationBean();
-// registration.setDispatcherTypes(DispatcherType.REQUEST);
-// registration.setFilter(new XssFilter());
-// registration.addUrlPatterns(String.valueOf(StringUtils.split(urlPatterns, ",")));
-// registration.setName("xssFilter");
-// registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
-// Map<String, String> initParameters = new HashMap<String, String>();
-// initParameters.put("excludes", excludes);
-// registration.setInitParameters(initParameters);
-// return registration;
-// }
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
+ @ConditionalOnProperty(value = "xss.enabled", havingValue = "true")
+ public FilterRegistrationBean xssFilterRegistration()
+ {
+ FilterRegistrationBean registration = new FilterRegistrationBean();
+ registration.setDispatcherTypes(DispatcherType.REQUEST);
+ registration.setFilter(new XssFilter());
+ StringUtils.split(urlPatterns,10);
+ registration.addUrlPatterns(String.join(",",StringUtils.split(urlPatterns, ",")));
+ registration.setName("xssFilter");
+ registration.setOrder(FilterRegistrationBean.HIGHEST_PRECEDENCE);
+ Map<String, String> initParameters = new HashMap<String, String>();
+ initParameters.put("excludes", excludes);
+ registration.setInitParameters(initParameters);
+ return registration;
+ }
+
+ /**
+ * 重复请求校验
+ * @return
+ */
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Bean
public FilterRegistrationBean someFilterRegistration()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/config/MyWebMvcConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/config/MyWebMvcConfig.java
index b03009d..df0aa62 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/config/MyWebMvcConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/config/MyWebMvcConfig.java
@@ -2,6 +2,7 @@
import com.gkhy.assess.framework.interceptor.LogInterceptor;
import com.gkhy.assess.framework.interceptor.RepeatSubmitInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@@ -13,6 +14,8 @@
@Configuration
+// 指定要扫描的Mapper类的包的路径
+@MapperScan("com.gkhy.**.mapper")
public class MyWebMvcConfig implements WebMvcConfigurer {
@Value("${image.upload_path}")
private String uploadPath;
@@ -40,4 +43,5 @@
registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**");
}
+
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java b/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
index 633d963..6d6083b 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
@@ -18,6 +18,7 @@
import javax.servlet.http.HttpServletRequest;
import java.sql.SQLException;
+import java.sql.SQLSyntaxErrorException;
/**
* 全局异常处理类
@@ -82,7 +83,7 @@
public CommonResult handleRuntimeException(RuntimeException ex, HttpServletRequest request)
{
writeExceptionLogFile(ex);
- return CommonResult.failed(ex.getMessage());
+ return CommonResult.failed("内部服务异常");
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
index 98bb8c4..f2deed4 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java
@@ -68,8 +68,10 @@
chain.addPathDefinition("/error", "anon");
chain.addPathDefinition("/upload/**", "anon");
- chain.addPathDefinition("/account/login","anon");
- chain.addPathDefinition("/logout", "logout");
+ chain.addPathDefinition("/system/account/login","anon");
+ chain.addPathDefinition("/system/logout", "anon");
+ chain.addPathDefinition("/app/system/account/login","anon");
+ chain.addPathDefinition("/app/system/logout", "anon");
chain.addPathDefinition("/notice/noticeList","anon");
chain.addPathDefinition("/notice/getNoticeById","anon");
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
index ea6f44c..5e5e18d 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.common.api.ResultCode;
+import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.JwtTokenUtil;
import com.gkhy.assess.framework.shiro.JwtToken;
import lombok.extern.slf4j.Slf4j;
@@ -19,6 +20,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
+import java.util.Date;
@Slf4j
public class JwtFilter extends BasicHttpAuthenticationFilter {
@@ -76,6 +78,7 @@
return true;
} catch (Exception e){ //未找到token
log.error(e.getMessage());
+ JwtTokenUtil.responseError(response,e.getMessage());
}
return false;
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
index 31cf00c..ab85786 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
@@ -15,6 +15,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
@Component
@@ -25,6 +26,8 @@
private SysPasswordService passwordService;
@Autowired
private RedisUtils redisUtils;
+ @Autowired
+ private HttpServletRequest request;
public SysUser login(String username, String password) {
SysUser sysUser=sysUserService.getUserByUsernamePhone(username);
@@ -37,6 +40,16 @@
public void validUser(SysUser sysUser){
if(sysUser==null) {
throw new AuthenticationException("用户不存在");
+ }
+ String uri=request.getRequestURI();
+ if(uri.startsWith("/api/system")){
+ if(UserIdentityEnum.EXPERT.getCode().equals(sysUser.getIdentity())){
+ throw new AuthenticationException("专家用户无权登录后台");
+ }
+ }else if(uri.startsWith("/api/app/")){
+ if(!UserIdentityEnum.EXPERT.getCode().equals(sysUser.getIdentity())){
+ throw new AuthenticationException("只有专家用户才能登录APP");
+ }
}
if(UserStatusEnum.DELETED.getCode().equals(sysUser.getDelFlag())){
throw new AuthenticationException("用户已被删除");
@@ -52,14 +65,18 @@
}
public SysUser validJwtToken(String jwtToken){
+
String username= JwtTokenUtil.getUsername(jwtToken);
if(StringUtils.isEmpty(username)){
throw new AuthenticationException("token非法无效!");
}
SysUser sysUser=sysUserService.getUserByUsernamePhone(username);
validUser(sysUser);
+ if(!JwtTokenUtil.verify(jwtToken,username,sysUser.getPassword())){
+ throw new AuthenticationException("token非法无效!");
+ }
if(!jwtTokenRefresh(jwtToken,username,sysUser.getPassword())){
- throw new AuthenticationException("Token失效,请重新登录!");
+ throw new AuthenticationException("Token已失效,请重新登录!");
}
// setRolePermission(sysUser);
return sysUser;
@@ -84,7 +101,7 @@
String cacheToken= (String) redisUtils.get(tokenKey);
if(StringUtils.isNotEmpty(cacheToken)){
// 校验token有效性
- if(!JwtTokenUtil.verify(cacheToken,username,passWord)){
+ if(!JwtTokenUtil.isNeedUpdate(cacheToken,username,passWord)){
String newToken=JwtTokenUtil.sign(username,passWord);
// 设置超时时间
redisUtils.set(tokenKey,newToken);
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java
new file mode 100644
index 0000000..9890066
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java
@@ -0,0 +1,75 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 评估文件上传记录表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_accessory_file")
+@ApiModel(value = "AssAccessoryFile对象", description = "评估文件上传记录表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssAccessoryFile extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("文件名称")
+ @TableField("file_name")
+ private String fileName;
+
+ @ApiModelProperty("文件原始名称")
+ @TableField("origin_name")
+ private String originName;
+
+ @NotBlank(message = "文件存放路径不能为空")
+ @ApiModelProperty(value = "文件存放路径",required = true)
+ @TableField("path")
+ private String path;
+
+ @NotNull(message = "模块code不能为空")
+ @ApiModelProperty(value = "模块code:1主要装置前的合影照片,2现场勘验照片,3企业陪同人员图片,4现场勘验视频,5现场勘验记录附件,6评审记录附件,7评价结论,8过程控制记录文档附件,9项目归档材料,10报备申请附件,11项目整改情况附件",required = true)
+ @TableField("module_type")
+ private Integer moduleType;
+
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAudit.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAudit.java
new file mode 100644
index 0000000..b0c0e6a
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAudit.java
@@ -0,0 +1,159 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 审核表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_audit")
+@ApiModel(value = "AssAudit对象", description = "审核表")
+@JsonInclude(NON_NULL)
+public class AssAudit extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "审核日期不能为空")
+ @ApiModelProperty(value = "审核日期(格式yyyy-MM-dd 00:00:00)",required = true)
+ @TableField("audit_date")
+ private LocalDateTime auditDate;
+
+ @ApiModelProperty("内部审核确定日期")
+ @TableField("affirm_date")
+ private LocalDateTime affirmDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @NotNull(message = "审核类型不能为空")
+ @ApiModelProperty("审核类型(1内部审核2技术审核)")
+ @TableField("audit_type")
+ private Integer auditType;
+
+ @NotNull(message = "审核人不能为空")
+ @ApiModelProperty("审核人id")
+ @TableField("assessor_id")
+ private Long assessorId;
+
+ @ApiModelProperty("已按要求修改完成(0否 1是)")
+ @TableField("is_amend_finish")
+ private Boolean isAmendFinish;
+
+ @ApiModelProperty("评价依据是否充分、准确、有效(0否 1是)")
+ @TableField("is_basis")
+ private Boolean isBasis;
+
+ @ApiModelProperty("结论是否正确(0否 1是)")
+ @TableField("is_conclusion")
+ private Boolean isConclusion;
+
+ @ApiModelProperty("危险有害因素识别是否全面(0否 1是)")
+ @TableField("is_danger_overall")
+ private Boolean isDangerOverall;
+
+ @ApiModelProperty("附件与附图是否有效及规范(0否 1是)")
+ @TableField("is_file")
+ private Boolean isFile;
+
+ @ApiModelProperty("格式是否符合要求(0否 1是)")
+ @TableField("is_format")
+ private Boolean isFormat;
+
+ @ApiModelProperty("对策措施与建议是否可行(0否 1是)")
+ @TableField("is_measure")
+ private Boolean isMeasure;
+
+ @ApiModelProperty("评价方法选择是否适当(0否 1是)")
+ @TableField("is_method_selection")
+ private Boolean isMethodSelection;
+
+ @ApiModelProperty("可报技术负责人审核(0否 1是)")
+ @TableField("is_report_audit")
+ private Boolean isReportAudit;
+
+ @ApiModelProperty("评价范围是否与合同一致(0否 1是)")
+ @TableField("is_scope")
+ private Boolean isScope;
+
+ @ApiModelProperty("文字、数据是否准确(0否 1是)")
+ @TableField("is_text")
+ private Boolean isText;
+
+ @ApiModelProperty("评价单元划分是否合理(0否 1是)")
+ @TableField("is_unit_division")
+ private Boolean isUnitDivision;
+
+ @ApiModelProperty("报告中所列评价依据是否得到引用和验证(0否 1是)")
+ @TableField("is_basis_quote")
+ private Boolean isBasisQuote;
+
+ @ApiModelProperty("评价结论及格式是否正确(0否 1是)")
+ @TableField("is_conclusion_right")
+ private Boolean isConclusionRight;
+
+ @ApiModelProperty("危险有害因素识别是否充分(0否 1是)")
+ @TableField("is_danger_full")
+ private Boolean isDangerFull;
+
+ @ApiModelProperty("现场收集的有关资料是否齐全、有效(0否 1是)")
+ @TableField("is_data")
+ private Boolean isData;
+
+ @ApiModelProperty("报告中是否有重大遗漏(0否 1是)")
+ @TableField("is_omission")
+ private Boolean isOmission;
+
+ @ApiModelProperty("对策措施及建议是否有针对性、合理性(0否 1是)")
+ @TableField("is_measure_equitable")
+ private Boolean isMeasureEquitable;
+
+ @ApiModelProperty("评价方法选用是否合理(0否 1是)")
+ @TableField("is_method_rational")
+ private Boolean isMethodRational;
+
+ @ApiModelProperty("存在问题及建议(500字符)")
+ @TableField("suggestions")
+ private String suggestions;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("审核人对象")
+ @TableField(exist = false)
+ private SysUser assessor;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssConclusion.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssConclusion.java
new file mode 100644
index 0000000..95ac9a2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssConclusion.java
@@ -0,0 +1,69 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 项目结论表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_conclusion")
+@ApiModel(value = "AssConclusion对象", description = "项目结论表")
+@JsonInclude(NON_NULL)
+public class AssConclusion extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "评价结论不能为空")
+ @ApiModelProperty(value = "评价结论",required = true)
+ @TableField("conclusion")
+ private String conclusion;
+
+ @NotNull(message = "是否有评价报告修改说明不能为空")
+ @ApiModelProperty(value = "是否有评价报告修改说明(0否 1是)",required = true)
+ @TableField("is_revise_manual")
+ private Boolean isReviseManual;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("评价结论附件")
+ @TableField(exist = false)
+ List<AssAccessoryFile> accessoryFiles;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssContract.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssContract.java
new file mode 100644
index 0000000..ec298b7
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssContract.java
@@ -0,0 +1,80 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 合同管理表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_contract")
+@ApiModel(value = "AssContract对象", description = "合同管理表")
+@JsonInclude(NON_NULL)
+public class AssContract extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "合同价格不能为空")
+ @ApiModelProperty(value = "合同价格/万",required = true)
+ @TableField("contract_money")
+ private String contractMoney;
+
+ @ApiModelProperty("实际合同价格/万")
+ @TableField("actual_contract_money")
+ private String actualContractMoney;
+
+ @NotNull(message = "合同签订时间不能为空")
+ @ApiModelProperty(value = "合同签订时间(yyyy-MM-dd 00:00:00)",required = true)
+ @TableField("contract_sign_date")
+ private LocalDateTime contractSignDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("合同额外说明(100字以内)")
+ @TableField("contract_introduction")
+ private String contractIntroduction;
+
+ @ApiModelProperty("实际合同额外说明(100字以内)")
+ @TableField("actual_contract_introduction")
+ private String actualContractIntroduction;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssDevice.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssDevice.java
new file mode 100644
index 0000000..9075f00
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssDevice.java
@@ -0,0 +1,73 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 设备表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_device")
+@ApiModel(value = "AssDevice对象", description = "设备表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssDevice extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "设备名称不能为空")
+ @ApiModelProperty(value = "设备名称",required = true)
+ @TableField("device_name")
+ private String deviceName;
+
+ @NotNull(message = "使用开始时间不能为空")
+ @ApiModelProperty(value = "使用开始时间",required = true)
+ @TableField("start_date")
+ private LocalDateTime startDate;
+
+ @NotNull(message = "使用结束时间不能为空")
+ @ApiModelProperty(value = "使用结束时间",required = true)
+ @TableField("end_date")
+ private LocalDateTime endDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimatePlan.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimatePlan.java
new file mode 100644
index 0000000..0ee466b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimatePlan.java
@@ -0,0 +1,92 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 评价项目计划表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_estimate_plan")
+@ApiModel(value = "AssEstimatePlan对象", description = "评价项目计划表")
+@JsonInclude(NON_NULL)
+public class AssEstimatePlan extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "评价机构负责人id不能为空")
+ @ApiModelProperty(value = "评价机构负责人id",required = true)
+ @TableField("auser_id")
+ private Long auserId;
+
+ @NotNull(message = "评价开始时间不能为空")
+ @ApiModelProperty(value = "评价开始时间",required = true)
+ @TableField("start_date")
+ private LocalDateTime startDate;
+
+ @NotNull(message = "评价结束时间不能为空")
+ @ApiModelProperty(value = "评价结束时间",required = true)
+ @TableField("end_date")
+ private LocalDateTime endDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @Valid
+ @NotNull(message = "评价日程安排列表不能为空")
+ @ApiModelProperty(value = "评价日程安排列表",required = true)
+ @TableField(exist = false)
+ private List<AssEstimateSchedule> estimateSchedules;
+
+
+ @ApiModelProperty(value = "项目组成员列表")
+ @TableField(exist = false)
+ private List<AssPlanPerson> planPersons;
+
+
+ @ApiModelProperty("所需仪器列表")
+ @TableField(exist = false)
+ private List<AssDevice> devices;
+
+ @ApiModelProperty("机构负责人对象")
+ @TableField(exist = false)
+ private SysUser auser;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateSchedule.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateSchedule.java
new file mode 100644
index 0000000..b7c506b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateSchedule.java
@@ -0,0 +1,80 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 评价日程安排表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_estimate_schedule")
+@ApiModel(value = "AssEstimateSchedule对象", description = "评价日程安排表")
+@JsonInclude(NON_NULL)
+public class AssEstimateSchedule extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "日程名称不能为空")
+ @ApiModelProperty(value = "日程名称",required = true)
+ @TableField("name")
+ private String name;
+
+ @NotNull(message = "日程类型不能为空")
+ @ApiModelProperty("日程类型:1勘验准备,2现场勘验,3材料分析整理,4评价报告编写,5整改情况现场确认,6整理评价报告,7报告审核,8报告修改")
+ @TableField("schedule_type")
+ private Integer scheduleType;
+
+ @NotNull(message = "开始时间不能为空")
+ @ApiModelProperty("开始时间")
+ @TableField("start_date")
+ private LocalDateTime startDate;
+
+ @NotNull(message = "结束时间不能为空")
+ @ApiModelProperty("结束时间")
+ @TableField("end_date")
+ private LocalDateTime endDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @NotNull(message = "序号不能为空")
+ @ApiModelProperty("序号")
+ @TableField("sort")
+ private Integer sort;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateTask.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateTask.java
new file mode 100644
index 0000000..fa84b3c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateTask.java
@@ -0,0 +1,89 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 评价认为通知表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_estimate_task")
+@ApiModel(value = "AssEstimateTask对象", description = "评价认为通知表")
+@JsonInclude(NON_NULL)
+public class AssEstimateTask extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message ="项目负责人id不能为空" )
+ @ApiModelProperty(value = "项目负责人id",required = true)
+ @TableField("leader_id")
+ private Long leaderId;
+
+ @NotBlank(message ="联系人不能为空" )
+ @ApiModelProperty(value = "联系人(10个字符)",required = true)
+ @TableField("link_man")
+ private String linkMan;
+
+ @NotBlank(message ="联系电话不能为空" )
+ @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!")
+ @ApiModelProperty(value = "联系电话(11个字符)",required = true)
+ @TableField("link_phone")
+ private String linkPhone;
+
+ @ApiModelProperty("传真")
+ @TableField("fax")
+ private String fax;
+
+ @NotNull(message ="任务下达时间不能为空" )
+ @ApiModelProperty(value = "任务下达时间(yyyy-MM-dd 00:00:00)",required = true)
+ @TableField("transmit_date")
+ private LocalDateTime transmitDate;
+
+ @ApiModelProperty("任务下达人")
+ @TableField("transmit_person")
+ private String transmitPerson;
+
+ @NotNull(message ="项目id不能为空" )
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("负责人")
+ @TableField(exist = false)
+ private SysUser leader;
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecognition.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecognition.java
new file mode 100644
index 0000000..60c7de2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecognition.java
@@ -0,0 +1,83 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotNull;
+
+import java.util.List;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 签字确认表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_face_recognition")
+@ApiModel(value = "AssFaceRecognition对象", description = "签字确认表")
+@JsonInclude(NON_NULL)
+public class AssFaceRecognition extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "人员id不能为空")
+ @ApiModelProperty(value = "人员id",required = true)
+ @TableField("person_id")
+ private Long personId;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty(value = "签字图片路径")
+ @TableField("sign_path")
+ private String signPath;
+
+ @ApiModelProperty(value = "承诺书图片id",required = true)
+ @TableField("insurance_pic_id")
+ private Long insurancePicId;
+
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @NotNull(message = "签字图片对象不能为空")
+ @ApiModelProperty(value = "签字图片对象",required = true)
+ @TableField(exist = false)
+ private MultipartFile file;
+
+
+ @ApiModelProperty("人脸识别记录对象")
+ @TableField(exist = false)
+ private AssFaceRecord faceRecord;
+
+ @ApiModelProperty("人员对象")
+ @TableField(exist = false)
+ private SysUser person;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecord.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecord.java
new file mode 100644
index 0000000..9c7a4f1
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecord.java
@@ -0,0 +1,95 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_face_record")
+@ApiModel(value = "AssFaceRecord对象", description = "现场勘验人员人脸识别记录表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssFaceRecord extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "用户id不能为空")
+ @ApiModelProperty(value = "用户id",required = true)
+ @TableField("person_id")
+ private Long personId;
+
+ @ApiModelProperty(value = "人脸识别图片存放路径")
+ @TableField("face_path")
+ private String facePath;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @NotBlank(message = "定位坐标不能为空")
+ @ApiModelProperty(value = "定位坐标(纬度/经度,逗号隔开)",required = true)
+ @TableField("location")
+ private String location;
+
+ @NotNull(message = "是否是现场勘验人脸识别不能为空")
+ @ApiModelProperty(value = "是否是现场勘验人脸识别(0否 1是,默认0)",required = true)
+ @TableField("scene")
+ private Integer scene;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @NotNull(message = "图片对象不能为空")
+ @ApiModelProperty(value = "图片对象",required = true)
+ @TableField(exist = false)
+ private MultipartFile file;
+
+ @ApiModelProperty("项目组成员对象")
+ @TableField(exist = false)
+ private AssPlanPerson planPerson;
+
+ @ApiModelProperty("用户对象")
+ @TableField(exist = false)
+ private SysUser person;
+
+ @ApiModelProperty(value = "现场勘验填报坐标")
+ @TableField(exist = false)
+ private String investLocation;
+
+
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFilingApply.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFilingApply.java
new file mode 100644
index 0000000..8876572
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssFilingApply.java
@@ -0,0 +1,62 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 报备申请表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_filing_apply")
+@ApiModel(value = "AssFilingApply对象", description = "报备申请表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssFilingApply extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @NotNull(message = "报备文件id不能为空")
+ @ApiModelProperty(value = "报备文件id",required = true)
+ @TableField("file_id")
+ private Long fileId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("报备申请附件")
+ @TableField(exist = false)
+ private AssAccessoryFile accessoryFile;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java
new file mode 100644
index 0000000..2126a98
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java
@@ -0,0 +1,108 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 现场勘验记录表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_investigation")
+@ApiModel(value = "AssInvestigation对象", description = "现场勘验记录表")
+@JsonInclude(NON_NULL)
+public class AssInvestigation extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "现场勘验时间不能为空")
+ @ApiModelProperty(value = "现场勘验时间,时间格式yyyy-MM-dd 00:00:00",required = true)
+ @TableField("investigation_date")
+ private LocalDateTime investigationDate;
+
+ @ApiModelProperty("是否第一次(0是,1否)")
+ @TableField("is_first")
+ private Boolean isFirst;
+
+
+ @ApiModelProperty("编制现场安全检查表(1是,0否)")
+ @TableField("is_safety_check")
+ private Integer isSafetyCheck;
+
+ @ApiModelProperty("现场勘验记录(200字)")
+ @TableField("record_data")
+ private String recordData;
+
+ @NotNull(message = "现场勘验坐标不能为空")
+ @ApiModelProperty(value = "现场勘验坐标(纬度/经度,逗号隔开)",required = true)
+ @TableField("location")
+ private String location;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+
+ @ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ @TableField(exist = false)
+ private Integer state;
+
+
+ @ApiModelProperty("现场勘验记录附件")
+ @TableField(exist = false)
+ private List<AssAccessoryFile> assAccessoryFiles;
+
+
+ @ApiModelProperty("企业陪同合照列表")
+ @TableField(exist = false)
+ private List<AssAccessoryFile> ccompanyImages;
+
+ @ApiModelProperty("主要装置前的合影照片列表")
+ @TableField(exist = false)
+ private List<AssAccessoryFile> deviceImages;
+
+ @ApiModelProperty("现场勘验照片")
+ @TableField(exist = false)
+ private List<AssAccessoryFile> investingationImages;
+
+ @ApiModelProperty("现场勘验视频")
+ @TableField(exist = false)
+ private List<AssAccessoryFile> investingationVideos;
+
+
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssPlanPerson.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssPlanPerson.java
new file mode 100644
index 0000000..7e2b11a
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssPlanPerson.java
@@ -0,0 +1,104 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 评价项目组成员表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_plan_person")
+@ApiModel(value = "AssPlanPerson对象", description = "评价项目组成员表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssPlanPerson extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "成员id不能为空")
+ @ApiModelProperty(value = "成员id",required = true)
+ @TableField("person_id")
+ private Long personId;
+
+ @NotNull(message = "工作类型不能为空")
+ @ApiModelProperty(value = "工作类型:1普通人员,2组长",required = true)
+ @TableField("job_type")
+ private Integer jobType;
+
+
+ @ApiModelProperty(value = "项目担任角色:1项目负责人,2项目组成员,3过程控制负责人,4机构评价负责人,5技术负责人,默认2")
+ @TableField("play_role")
+ private Integer playRole;
+
+ @NotNull(message = "承诺后期前往现场勘验不能为空")
+ @ApiModelProperty(value = "承诺后期前往现场勘验(0否,1是)",required = true)
+ @TableField("later_promise")
+ private Boolean laterPromise;
+
+ @NotBlank(message = "承担工作不能为空")
+ @ApiModelProperty(value = "承担工作,多个英文逗号分隔",required = true)
+ @TableField("work")
+ private String work;
+
+ @ApiModelProperty("未到现场勘验原因(最多30字)")
+ @TableField("reason")
+ private String reason;
+
+ @ApiModelProperty("排序")
+ @TableField("sort")
+ private Integer sort;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+
+ @ApiModelProperty(value = "是否已告知 0否 1是 默认0",required = true)
+ @TableField("informed")
+ private Integer informed;
+
+// @ApiModelProperty(value = "从业告知id",required = true)
+// @TableField("work_notification_id")
+// private Long workNotificationId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("成员对象")
+ @TableField(exist = false)
+ private SysUser person;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProcessAudit.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProcessAudit.java
new file mode 100644
index 0000000..967145f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProcessAudit.java
@@ -0,0 +1,184 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 过程控制负责人审核表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_process_audit")
+@ApiModel(value = "AssProcessAudit对象", description = "过程控制负责人审核表")
+@JsonInclude(NON_NULL)
+public class AssProcessAudit extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "审核日期不能为空")
+ @ApiModelProperty(value = "审核日期",required = true)
+ @TableField("audit_date")
+ private LocalDateTime auditDate;
+
+ @NotNull(message = "过程控制负责不能为空")
+ @ApiModelProperty(value = "过程控制负责人id",required = true)
+ @TableField("process_leader_id")
+ private Long processLeaderId;
+
+ @ApiModelProperty("存在问题及建议(500字符)")
+ @TableField("suggestions")
+ private String suggestions;
+
+ @ApiModelProperty("编制安全评价项目计划书(0否 1是)")
+ @TableField("is_estimate_plan")
+ private Boolean isEstimatePlan;
+
+ @ApiModelProperty("评价任务通知书(0否 1是)")
+ @TableField("is_estimate_task")
+ private Boolean isEstimateTask;
+
+ @ApiModelProperty("签订合同(0否 1是)")
+ @TableField("is_sign_contract")
+ private Boolean isSignContract;
+
+ @ApiModelProperty("评价报告外审意见0否 1是)")
+ @TableField("is_exterior_audit")
+ private Boolean isExteriorAudit;
+
+ @ApiModelProperty("报告归档材料完整性(0否 1是)")
+ @TableField("is_full_materials")
+ private Boolean isFullMaterials;
+
+ @ApiModelProperty("评价报告内部审核(0否 1是)")
+ @TableField("is_interior_audit")
+ private Boolean isInteriorAudit;
+
+ @ApiModelProperty("现场勘验记录及影像资料(0否 1是)")
+ @TableField("is_investigation_site")
+ private Boolean isInvestigationSite;
+
+ @ApiModelProperty("评价项目网上信息公开(0否 1是)")
+ @TableField("is_open_information")
+ private Boolean isOpenInformation;
+
+ @ApiModelProperty("被评价单位提供材料清单(0否 1是)")
+ @TableField("is_provide_materials")
+ private Boolean isProvideMaterials;
+
+ @ApiModelProperty("风险分析(0否 1是)")
+ @TableField("is_risk_analyse")
+ private Boolean isRiskAnalyse;
+
+ @ApiModelProperty("技术负责人审核(0否 1是)")
+ @TableField("is_technolgy_audit")
+ private Boolean isTechnolgyAudit;
+
+ @ApiModelProperty("二维码的使用(0否 1是)")
+ @TableField("is_use_qrcode")
+ private Boolean isUseQrcode;
+
+ @ApiModelProperty("从业告知(0否 1是)")
+ @TableField("is_work_notification")
+ private Boolean isWorkNotification;
+
+ @ApiModelProperty("编制安全评价项目计划书-不符合描述(20字符)")
+ @TableField("estimate_plan_des")
+ private String estimatePlanDes;
+
+ @ApiModelProperty("评价任务通知书-不符合描述(20字符)")
+ @TableField("estimate_task_des")
+ private String estimateTaskDes;
+
+ @ApiModelProperty("签订合同-不符合描述(20字符)")
+ @TableField("sign_contract_des")
+ private String signContractDes;
+
+ @ApiModelProperty("评价报告外审意见-不符合描述(20字符)")
+ @TableField("exterior_audit_des")
+ private String exteriorAuditDes;
+
+ @ApiModelProperty("报告归档材料完整性-不符合描述(20字符)")
+ @TableField("full_materials_des")
+ private String fullMaterialsDes;
+
+ @ApiModelProperty("评价报告内部审核-不符合描述(20字符)")
+ @TableField("interior_audit_des")
+ private String interiorAuditDes;
+
+ @ApiModelProperty("现场勘验记录及影像资料-不符合描述(20字符)")
+ @TableField("investigation_site_des")
+ private String investigationSiteDes;
+
+ @ApiModelProperty("评价项目网上信息公开-不符合描述(20字符)")
+ @TableField("open_information_des")
+ private String openInformationDes;
+
+ @ApiModelProperty("被评价单位提供材料清单-不符合描述(20字符)")
+ @TableField("provide_materials_des")
+ private String provideMaterialsDes;
+
+ @ApiModelProperty("风险分析-不符合描述(20字符)")
+ @TableField("risk_analyse_des")
+ private String riskAnalyseDes;
+
+ @ApiModelProperty("技术负责人审核-不符合描述(20字符)")
+ @TableField("technolgy_audit_des")
+ private String technolgyAuditDes;
+
+ @ApiModelProperty("二维码的使用-不符合描述(20字符)")
+ @TableField("use_qrcode_des")
+ private String useQrcodeDes;
+
+ @ApiModelProperty("从业告知-不符合描述(20字符)")
+ @TableField("work_notification_des")
+ private String workNotificationDes;
+
+ @ApiModelProperty("审核结论是否满足过程控制要求(0否 1是)")
+ @TableField("is_full_process")
+ private Boolean isFullProcess;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("过程负责人对象)")
+ @TableField(exist = false)
+ private SysUser processLeader;
+
+ @ApiModelProperty("过程控制附件")
+ @TableField(exist = false)
+ List<AssAccessoryFile> accessoryFiles;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
new file mode 100644
index 0000000..9a2359c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
@@ -0,0 +1,192 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 项目表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-11 14:16:18
+ */
+@Getter
+@Setter
+@TableName("ass_project")
+@Accessors(chain = true)
+@ApiModel(value = "AssProject对象", description = "项目表")
+@JsonInclude(NON_NULL)
+public class AssProject extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "项目名称不能为空")
+ @ApiModelProperty(value = "项目名称",required = true)
+ @TableField("name")
+ private String name;
+
+
+ @ApiModelProperty(value = "项目编号",required = true)
+ @TableField("code")
+ private String code;
+
+
+ @ApiModelProperty(value = "机构id")
+ @TableField("agency_id")
+ private Long agencyId;
+
+ @NotBlank(message = "委托方不能为空")
+ @ApiModelProperty(value = "委托方",required = true)
+ @TableField("client")
+ private String client;
+
+ @NotBlank(message = "省份不能为空")
+ @ApiModelProperty(value = "省份",required = true)
+ @TableField("province")
+ private String province;
+
+ @NotBlank(message = "城市不能为空")
+ @ApiModelProperty(value = "城市",required = true)
+ @TableField("city")
+ private String city;
+
+ @ApiModelProperty("区县")
+ @TableField("district")
+ private String district;
+
+ @NotBlank(message = "业务范围不能为空")
+ @ApiModelProperty(value = "业务范围,字典id",required = true)
+ @TableField("business")
+ private String business;
+
+ @NotBlank(message = "项目投资额不能为空")
+ @ApiModelProperty(value = "项目投资额/万",required = true)
+ @TableField("invest")
+ private String invest;
+
+ @NotBlank(message = "项目地址不能为空")
+ @Length(min=0,max=100,message = "项目地址不能超过{max}字符")
+ @ApiModelProperty(value = "项目地址(最大长度100字符)",required = true)
+ @TableField("address")
+ private String address;
+
+ @ApiModelProperty("实际纬度/经度")
+ @TableField("actual_location")
+ private String actualLocation;
+
+
+ @ApiModelProperty("纬度/经度")
+ @TableField("location")
+ private String location;
+
+ @NotNull(message = "评估类型不能为空")
+ @ApiModelProperty(value = "评估类型,字典id",required = true)
+ @TableField("estimate_type")
+ private Long estimateType;
+
+// @NotBlank(message = "负责人不能为空")
+// @ApiModelProperty(value = "负责人id",required = true)
+// @TableField("leader_id")
+// private Long leaderId;
+
+
+ @ApiModelProperty(value = "项目完成时间")
+ @TableField("filing_date")
+ private LocalDateTime filingDate;
+
+
+ @NotBlank(message = "社会统一信用代码不能为空")
+ @ApiModelProperty(value = "委托单位社会统一信用代码",required = true)
+ @TableField("credit_code")
+ private String creditCode;
+
+ @ApiModelProperty("项目状态(0创建,1风险评估,2合同管理,默认0)")
+ @TableField("report_progress")
+ private Integer reportProgress;
+
+ @ApiModelProperty("项目阶段(1风险分析评价计划,2现场勘验,3项目审核,4出具报告,5项目归档)")
+ @TableField("phase")
+ private Integer phase;
+
+ @ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ @TableField("state")
+ private Integer state;
+
+ @NotBlank(message = "项目基本概况不能为空")
+ @Length(min =1,max = 500,message = "项目基本概况不能超过500字")
+ @ApiModelProperty(value = "项目基本概况(500字以内)",required = true)
+ @TableField("introduction")
+ private String introduction;
+
+ @ApiModelProperty("是否参与评审(0否,1是,默认0)")
+ @TableField("is_review")
+ private Boolean isReview;
+
+
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+
+ @ApiModelProperty("负责人对象")
+ @TableField(exist = false)
+ private SysUser leader;
+
+ @ApiModelProperty("负责人id")
+ @TableField(exist = false)
+ private Long leaderId;
+
+ @ApiModelProperty("业务范围")
+ @TableField(exist = false)
+ private String businessName;
+
+ @ApiModelProperty("评估类型名称")
+ @TableField(exist = false)
+ private String estimateTypeName;
+
+ @ApiModelProperty("项目归档材料列表")
+ @TableField(exist = false)
+ private List<AssProjectMaterial> projectMaterials;
+
+ @ApiModelProperty("项目成员id")
+ @TableField(exist = false)
+ private Long planPersonId;
+
+ @ApiModelProperty("项目成员对象")
+ @TableField(exist = false)
+ private AssPlanPerson planPerson;
+
+ @ApiModelProperty("项目合同")
+ @TableField(exist = false)
+ private AssContract contract;
+
+ @ApiModelProperty("要件数量")
+ @TableField(exist = false)
+ private Integer materialCnt;
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectMaterial.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectMaterial.java
new file mode 100644
index 0000000..b1b95b6
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectMaterial.java
@@ -0,0 +1,72 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 项目归档文件表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_project_material")
+@ApiModel(value = "AssProjectMaterial对象", description = "项目归档文件表")
+@JsonInclude(NON_NULL)
+public class AssProjectMaterial extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "名称不能为空")
+ @ApiModelProperty(value = "名称",required = true)
+ @TableField("name")
+ private String name;
+
+
+ @ApiModelProperty("是否是文件,0否 1是 默认1")
+ @TableField("type")
+ private Integer type;
+
+ @NotNull(message = "项目id为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("评估文件id")
+ @TableField("file_id")
+ private Long fileId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("归档文件附件")
+ @TableField(exist = false)
+ private AssAccessoryFile accessoryFile;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRecitification.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRecitification.java
new file mode 100644
index 0000000..8282aee
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRecitification.java
@@ -0,0 +1,82 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 项目整改情况说明表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_recitification")
+@ApiModel(value = "AssRecitification对象", description = "项目整改情况说明表")
+@Accessors(chain = true)
+@JsonInclude(NON_NULL)
+public class AssRecitification extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotBlank(message = "整改人不能为空")
+ @ApiModelProperty(value = "整改人",required = true)
+ @TableField("rectify_person")
+ private String rectifyPerson;
+
+ @NotNull(message = "整改时间不能为空")
+ @ApiModelProperty(value = "整改时间",required = true)
+ @TableField("rectify_time")
+ private LocalDateTime rectifyTime;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @NotNull(message = "整改文件不能为空")
+ @ApiModelProperty(value = "文件id",required = true)
+ @TableField("file_id")
+ private Long fileId;
+
+ @NotBlank(message = "整改说明不能为空(30字)")
+ @ApiModelProperty(value = "整改说明",required = true)
+ @TableField("reason")
+ private String reason;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("整改附件")
+ @TableField(exist = false)
+ private AssAccessoryFile accessoryFile;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRiskEstimate.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRiskEstimate.java
new file mode 100644
index 0000000..706b967
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssRiskEstimate.java
@@ -0,0 +1,144 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 风险评估表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@Accessors(chain = true)
+@TableName("ass_risk_estimate")
+@ApiModel(value = "AssRiskEstimate对象", description = "风险评估表")
+@JsonInclude(NON_NULL)
+public class AssRiskEstimate extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty(value = "项目id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @NotBlank(message = "行业风险特性不能为空")
+ @Length(min =1,max = 500,message = "行业风险特性长度1~500字")
+ @ApiModelProperty(value = "行业风险特性(500字以内)",required = true)
+ @TableField("risk_character")
+ private String riskCharacter;
+
+ @NotBlank(message = "周边环境不能为空")
+ @Length(min =1,max = 500,message = "周边环境长度1~500字")
+ @ApiModelProperty(value = "周边环境(500字以内)",required = true)
+ @TableField("surroundings")
+ private String surroundings;
+
+
+ @Length(min =0,max = 500,message = "主要生产装置长度不能超过500字")
+ @ApiModelProperty(value = "主要生产装置(500字以内)",required = true)
+ @TableField("equipment")
+ private String equipment;
+
+ @Length(min =0,max = 500,message = "生产工艺概况长度不能超过500字")
+ @ApiModelProperty(value = "生产工艺概况(500字以内)",required = true)
+ @TableField("technology")
+ private String technology;
+
+ @NotNull(message = "评价费用是否在本机构所接受的范围内不能为空")
+ @ApiModelProperty(value = "评价费用是否在本机构所接受的范围内(0否,1是)",required = true)
+ @TableField("is_accept_chargess")
+ private Boolean isAcceptChargess;
+
+ @NotNull(message = "项目的可行性不能为空")
+ @ApiModelProperty(value = "项目的可行性(0否,1是)",required = true)
+ @TableField("is_feasibility")
+ private Boolean isFeasibility;
+
+ @NotNull(message = "是否能在约定的时间内完成评价报告不能为空")
+ @ApiModelProperty(value = "是否能在约定的时间内完成评价报告(0否,1是)",required = true)
+ @TableField("is_finish_report")
+ private Boolean isFinishReport;
+
+ @NotNull(message = "评价项目是否在本机构资质业务范围内不能为空")
+ @ApiModelProperty(value = "评价项目是否在本机构资质业务范围内(0否,1是)",required = true)
+ @TableField("is_in_business")
+ private Boolean isInBusiness;
+
+ @NotNull(message = "是否需要聘请相关专业的技术专家不能为空")
+ @ApiModelProperty(value = "是否需要聘请相关专业的技术专家(0否,1是)",required = true)
+ @TableField("is_need_expert")
+ private Boolean isNeedExpert;
+
+ @NotNull(message = "评价人员专业构成是否满足评价项目需要不能为空")
+ @ApiModelProperty(value = "评价人员专业构成是否满足评价项目需要(0否,1是)",required = true)
+ @TableField("is_satisfy_need")
+ private Boolean isSatisfyNeed;
+
+ @NotNull(message = "评估时间不能为空")
+ @ApiModelProperty(value = "评估时间(格式yyyy-MM-dd 00:00:00)",required = true)
+ @TableField("estimate_date")
+ private LocalDateTime estimateDate;
+
+ @NotBlank(message = "技术负责人意见不能为空")
+ @Length(min =1,max = 30,message = "技术负责人意见长度1~30字")
+ @ApiModelProperty(value = "技术负责人意见(30字以内)",required = true)
+ @TableField("tech_opinion")
+ private String techOpinion;
+
+ @NotBlank(message = "风险评估人意见不能为空")
+ @Length(min =1,max = 30,message = "风险评估人意见长度1~30字")
+ @ApiModelProperty(value = "风险评估人意见(30字以内)",required = true)
+ @TableField("risk_opinion")
+ private String riskOpinion;
+
+ @NotBlank(message = "机构评价负责人意见不能为空")
+ @Length(min =1,max = 30,message = "机构评价负责人意见长度1~30字")
+ @ApiModelProperty(value = "机构评价负责人意见(30字以内)",required = true)
+ @TableField("agency_opinon")
+ private String agencyOpinon;
+
+ @ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ @TableField("state")
+ private Integer state;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @Valid
+ @NotNull(message = "项目不能为空")
+ @ApiModelProperty("项目")
+ @TableField(exist = false)
+ private AssProject project;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssWorkNotification.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssWorkNotification.java
new file mode 100644
index 0000000..83f962d
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssWorkNotification.java
@@ -0,0 +1,78 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 从业告知表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@TableName("ass_work_notification")
+@ApiModel(value = "AssWorkNotification对象", description = "从业告知表")
+@JsonInclude(NON_NULL)
+public class AssWorkNotification extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @NotNull(message = "服务开始时间不能为空")
+ @ApiModelProperty(value = "服务开始时间",required = true)
+ @TableField("service_start_date")
+ private LocalDateTime serviceStartDate;
+
+ @NotNull(message = "服务结束时间不能为空")
+ @ApiModelProperty(value = "服务结束时间",required = true)
+ @TableField("service_end_date")
+ private LocalDateTime serviceEndDate;
+
+ @NotNull(message = "计划现场勘验时间不能为空")
+ @ApiModelProperty(value = "计划现场勘验时间",required = true)
+ @TableField("investigation_plan_date")
+ private LocalDateTime investigationPlanDate;
+
+ @NotNull(message = "项目id不能为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ @TableField("project_id")
+ private Long projectId;
+
+ @ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ @TableField("state")
+ private Integer state;
+
+ @ApiModelProperty("审核人员id")
+ @TableField("audit_id")
+ private Long auditId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
index 51943af..ed2f452 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
@@ -1,16 +1,16 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.annotation.DataDesensitizationType;
import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.common.enums.SensitiveTypeEnum;
import com.gkhy.assess.common.validate.AgencyGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -23,6 +23,7 @@
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -49,6 +50,7 @@
@NotBlank(message = "机构名称不能为空")
+ @Length(min = 1, max = 50, message = "机构名称不能超过50个字符")
@ApiModelProperty("机构名称")
@TableField("name")
private String name;
@@ -83,6 +85,7 @@
@NotBlank(message = "经营地址不能为空")
+ @Length(min = 1, max = 100, message = "经营地址不能超过100个字符")
@ApiModelProperty(value = "经营地址",required = true)
@TableField("address")
private String address;
@@ -98,8 +101,10 @@
private String legalPerson;
+ @DataDesensitizationType(type = SensitiveTypeEnum.MOBILE_PHONE)
@NotBlank(message = "法人电话不能为空")
@Length(min = 11, max = 11, message = "手机号只能为11位")
+ @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!")
@ApiModelProperty(value = "法人电话",required = true)
@TableField("legal_phone")
private String legalPhone;
@@ -110,9 +115,10 @@
@TableField("manager")
private String manager;
-
+ @DataDesensitizationType(type = SensitiveTypeEnum.MOBILE_PHONE)
@NotBlank(message = "负责人电话不能为空")
@Length(min = 11, max = 11, message = "手机号只能为11位")
+ @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!")
@ApiModelProperty(value = "负责人电话",required = true)
@TableField("manager_phone")
private String managerPhone;
@@ -127,16 +133,16 @@
@NotNull(message = "发证日期不能为空")
@ApiModelProperty(value = "发证日期",required = true)
@TableField("issue_date")
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime issueDate;
@NotNull(message = "有效日期不能为空")
@ApiModelProperty(value = "有效日期",required = true)
@TableField("valid_date")
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validDate;
@@ -159,6 +165,7 @@
@NotBlank(message = "注册地址不能为空")
+ @Length(min = 1, max = 100, message = "注册地址不能超过100个字符")
@ApiModelProperty(value = "注册地址",required = true)
@TableField("reg_address")
private String regAddress;
@@ -191,4 +198,9 @@
@TableField(exist = false)
private SysUser user;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAttach.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAttach.java
index 33ec092..1f5cba9 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAttach.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAttach.java
@@ -12,6 +12,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
+import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
@@ -29,6 +30,7 @@
@Setter
@TableName("sys_attach")
@ApiModel(value = "SysAttach对象", description = "系统上传文件表,用户信息相关的")
+@Accessors(chain = true)
@JsonInclude(NON_NULL)
public class SysAttach implements Serializable {
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysConfig.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysConfig.java
index 44487da..58c33a9 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysConfig.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysConfig.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
@@ -66,5 +64,10 @@
@TableField("remark")
private String remark;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictData.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictData.java
index b4be289..0803364 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictData.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictData.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -13,6 +11,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
+import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
@@ -29,6 +28,7 @@
@Getter
@Setter
@TableName("sys_dict_data")
+@Accessors(chain = true)
@ApiModel(value = "SysDictData对象", description = "字典数据表")
@JsonInclude(NON_NULL)
public class SysDictData extends BaseEntity {
@@ -65,4 +65,14 @@
@TableField("status")
private Integer status;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictType.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictType.java
index 0c57758..24262fd 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictType.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysDictType.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -54,4 +52,14 @@
@TableField("status")
private Integer status;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertClassify.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertClassify.java
index a5a603e..532710d 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertClassify.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertClassify.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@@ -37,8 +35,8 @@
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键")
- @TableId(value = "classify_id", type = IdType.AUTO)
- private Long classifyId;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
@NotBlank(message = "分类名称不能为空")
@ApiModelProperty(value = "分类名称",required = true)
@@ -53,6 +51,11 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
@ApiModelProperty("子分类")
@TableField(exist = false)
private List<SysExpertClassify> children;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java
index 969c2aa..b755c85 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java
@@ -1,18 +1,22 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -30,59 +34,75 @@
@Accessors(chain = true)
@ApiModel(value = "SysExpertInfo对象", description = "系统专家信息表")
@JsonInclude(NON_NULL)
-public class SysExpertInfo implements Serializable {
+public class SysExpertInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键")
- @TableId(value = "expert_id", type = IdType.AUTO)
- private Long expertId;
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ @NotBlank(message = "专家名称不能为空")
+ @Length(min=1,max=20,message = "专家名称不能超过20个字")
@ApiModelProperty("专家名称")
@TableField("name")
private String name;
+ @NotNull(message ="性别不能为空" )
@ApiModelProperty("性别(0男,1女,2未知,默认2)")
@TableField("sex")
private Integer sex;
- @ApiModelProperty("类别id")
+ @NotNull(message ="大类别不能为空" )
+ @ApiModelProperty("大类别id")
@TableField("big_classify")
private Long bigClassify;
- @ApiModelProperty("类别id")
+ @NotNull(message ="小类别不能为空" )
+ @ApiModelProperty("小类别id")
@TableField("small_classify")
private Long smallClassify;
+ @NotNull(message ="出生日期不能为空" )
@ApiModelProperty("出生日期")
@TableField("birthday")
private LocalDateTime birthday;
+ @NotBlank(message ="手机号不能为空" )
+ @Length(min = 11, max = 11, message = "手机号只能为11位")
+ @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!")
@ApiModelProperty("手机号")
@TableField("phone")
private String phone;
+ @NotBlank(message ="职称不能为空" )
@ApiModelProperty("职称")
@TableField("title")
private String title;
+ @NotBlank(message ="电子照片不能为空" )
@ApiModelProperty("电子照片")
@TableField("electronic_photo")
private String electronicPhoto;
+ @NotBlank(message ="身份证号码不能为空" )
+ @Length(min = 18, max = 18, message = "身份证只能为18位")
@ApiModelProperty("身份证号码")
@TableField("id_card")
private String idCard;
- @ApiModelProperty("在职状态")
+ @NotNull(message ="在岗情况不能为空" )
+ @ApiModelProperty("在岗情况(0在岗,1退休)")
@TableField("duty_status")
private Integer dutyStatus;
- @ApiModelProperty("公司名称")
+ @NotBlank(message ="单位名称不能为空" )
+ @Length(min=1,max=30,message = "专家名称不能超过30个字")
+ @ApiModelProperty("单位名称")
@TableField("company_name")
private String companyName;
- @ApiModelProperty("公司地址")
+ @ApiModelProperty("单位地址")
@TableField("company_address")
private String companyAddress;
@@ -94,11 +114,11 @@
@TableField("job")
private String job;
- @ApiModelProperty("公司电话")
+ @ApiModelProperty("单位电话")
@TableField("company_telephone")
private String companyTelephone;
- @ApiModelProperty("传真")
+ @ApiModelProperty("传真号")
@TableField("fax_num")
private String faxNum;
@@ -110,7 +130,9 @@
@TableField("graduation_school")
private String graduationSchool;
- @ApiModelProperty("学历")
+ @NotBlank(message ="最高学历不能为空" )
+ @Length(min=1,max=10,message = "最高学历不能超过10个字")
+ @ApiModelProperty("最高学历")
@TableField("degree")
private String degree;
@@ -118,63 +140,66 @@
@TableField("speciality")
private String speciality;
- @ApiModelProperty("当前专业")
+ @ApiModelProperty("现在从事专业或方向")
@TableField("current_profession")
private String currentProfession;
- @ApiModelProperty("支撑安全")
+ @ApiModelProperty("支撑方向安全生产")
@TableField("support_direction_safety")
private String supportDirectionSafety;
- @ApiModelProperty("支撑预防")
+ @ApiModelProperty("支撑方向防灾救灾")
@TableField("support_direction_prevention")
private String supportDirectionPrevention;
- @ApiModelProperty("支持应急")
+ @ApiModelProperty("支撑方向应急救援")
@TableField("support_direction_emergency")
private String supportDirectionEmergency;
- @ApiModelProperty("简述")
+ @ApiModelProperty("简历")
@TableField("resume_key")
private String resumeKey;
+ @ApiModelProperty("论文情况")
@TableField("paper_situation_key")
private String paperSituationKey;
+ @ApiModelProperty("奖励")
@TableField("reward_key")
private String rewardKey;
+ @ApiModelProperty("成绩成果")
@TableField("achievement_key")
private String achievementKey;
+ @ApiModelProperty("专家个人意见")
@TableField("personal_opinion_key")
private String personalOpinionKey;
+ @ApiModelProperty("推荐单位意见")
@TableField("recommend_unit_opinion_key")
private String recommendUnitOpinionKey;
+
+ //来源(1问卷,2系统)
+ @NotNull(message ="来源不能为空" )
+ @ApiModelProperty("来源(1问卷,2系统)")
+ @TableField("source")
+ private Integer source;
@ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
@TableField("del_flag")
private Integer delFlag;
- @ApiModelProperty("创建人")
- @TableField("create_by")
- private String createBy;
- @ApiModelProperty("创建时间")
- @TableField("create_time")
- private LocalDateTime createTime;
+ @ApiModelProperty("审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ @TableField("state")
+ private Integer state;
- @ApiModelProperty("修改人")
- @TableField("update_by")
- private String updateBy;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
- @ApiModelProperty("修改时间")
- @TableField("update_time")
- private LocalDateTime updateTime;
-
- @TableField("remark")
- private String remark;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysLaw.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysLaw.java
index 80c99df..6d6de54 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysLaw.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysLaw.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -13,6 +11,9 @@
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Size;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -36,16 +37,18 @@
@TableId(value = "id", type = IdType.AUTO)
private Long id;
-
- @ApiModelProperty("住标题")
+ @Length(min = 1, max = 50, message = "主标题不能超过50个字符")
+ @ApiModelProperty("主标题")
@TableField("title")
private String title;
+ @Length(min = 0, max = 50, message = "副标题不能超过50个字符")
@ApiModelProperty("副标题")
@TableField("sub_title")
private String subTitle;
@ApiModelProperty("内容")
+ @Length(min = 1,max=16777215,message = "法律法规内容过长,无法保存")
@TableField("content")
private String content;
@@ -53,6 +56,7 @@
@TableField("law_type")
private String lawType;
+ @Length(min = 0, max = 50, message = "颁布机构名称不能超过50个字符")
@ApiModelProperty("颁布机构")
@TableField("pub_agency")
private String pubAgency;
@@ -85,5 +89,15 @@
@TableField("remark")
private String remark;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysNotice.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysNotice.java
index 2baba16..ba22f7c 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysNotice.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysNotice.java
@@ -1,9 +1,7 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.time.LocalDateTime;
@@ -13,6 +11,7 @@
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
@@ -40,11 +39,13 @@
private Long id;
@NotBlank(message = "通知标题不能为空")
- @ApiModelProperty(value = "通知标题",required = true)
+ @Length(min = 1, max = 50, message = "标题不能超过50个字符")
+ @ApiModelProperty(value = "通知标题(50个字)",required = true)
@TableField("title")
private String title;
@NotBlank(message = "通知内容不能为空")
+ @Length(min = 1,max=16777215,message = "通知内容过长,无法保存")
@ApiModelProperty(value = "通知内容",required = true)
@TableField("content")
private String content;
@@ -73,5 +74,15 @@
@TableField("remark")
private String remark;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0代表存在,1代表删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysRegion.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysRegion.java
index 221bc87..c416388 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysRegion.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysRegion.java
@@ -1,17 +1,19 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
import java.io.Serializable;
import java.util.List;
+import com.gkhy.assess.common.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
/**
* <p>
@@ -26,13 +28,15 @@
@Accessors(chain = true)
@TableName("sys_region")
@ApiModel(value = "SysRegion对象", description = "系统地区表")
-public class SysRegion implements Serializable {
+public class SysRegion extends BaseEntity {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
+ @NotBlank(message = "地区名称不能为空")
+ @Length(min = 1, max = 20, message = "地区名称不能超过20个字符")
@ApiModelProperty("地区名称")
@TableField("name")
private String name;
@@ -49,6 +53,11 @@
@TableField("region_type")
private Integer regionType;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
@TableField(exist = false)
private List<SysRegion> children;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
index cefea2c..b76074d 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
@@ -1,14 +1,12 @@
package com.gkhy.assess.system.domain;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gkhy.assess.common.domain.BaseEntity;
import com.gkhy.assess.common.validate.AgencyGroup;
import com.gkhy.assess.common.validate.ExpertGroup;
import com.gkhy.assess.common.validate.MonitorGroup;
+import com.gkhy.assess.system.domain.vo.PersonProjectVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -17,6 +15,7 @@
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
+import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
@@ -53,6 +52,7 @@
@TableField("username")
private String username;
+ @Length(min = 0, max = 20, message = "用户昵称/姓名不能超过20个字符")
@ApiModelProperty("用户昵称/姓名")
@TableField("name")
private String name;
@@ -85,6 +85,9 @@
@TableField("avatar")
private String avatar;
+ /**
+ * 密码生成规则:md5(用户名+密码+盐)
+ */
@NotBlank(message = "密码不能为空")
@ApiModelProperty(value = "密码(base64)",required = true)
@TableField("password")
@@ -132,7 +135,7 @@
private String jobTitle;
@NotBlank(message = "专业方向不能为空",groups ={ExpertGroup.class} )
- @ApiModelProperty("专业方向")
+ @ApiModelProperty("专业方向,新增时传(json字符串{'专业id':'证书编号1','专业id':'证书编号2'}),查询时传字典id")
@TableField("major")
private String major;
@@ -152,25 +155,50 @@
@TableField("pwd_update_date")
private LocalDateTime pwdUpdateDate;
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("证书编号")
+ @TableField("certificate_no")
+ private String certificateNo;
+
+ @ApiModelProperty("近期证件照路径")
+ @TableField("id_photo")
+ private String idPhoto;
+
+ @ApiModelProperty("评价师等级")
+ @TableField("level")
+ private String level;
+
@Valid
@NotNull(message = "机构不能为空",groups ={AgencyGroup.class} )
- @ApiModelProperty("机构对象,只限创建机构用户传")
+ @ApiModelProperty("机构对象,只限创建机构用户传参")
@TableField(exist = false)
private SysAgency agency;
@NotNull(message = "社保照片不能为空",groups ={ExpertGroup.class} )
- @ApiModelProperty("社保照片路径列表,创建专家传")
+ @ApiModelProperty("社保照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> socialAttach;
@NotNull(message = "医保照片不能为空",groups ={ExpertGroup.class} )
- @ApiModelProperty("医保照片路径列表,创建专家传")
+ @ApiModelProperty("医保照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> medicalAttach;
@NotNull(message = "工资照片不能为空",groups ={ExpertGroup.class} )
- @ApiModelProperty("工资照片路径列表,创建专家传")
+ @ApiModelProperty("工资照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> salaryAttach;
+ @ApiModelProperty("专业列表")
+ @TableField(exist = false)
+ List<String> majorNames;
+
+ @ApiModelProperty("汇总项目信息")
+ @TableField(exist = false)
+ private PersonProjectVO personProjectVO;
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java
new file mode 100644
index 0000000..f90bf31
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java
@@ -0,0 +1,86 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 用户人脸数据表
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-01-09 17:10:01
+ */
+@Getter
+@Setter
+@TableName("sys_user_face")
+@Accessors(chain = true)
+@ApiModel(value = "SysUserFace对象", description = "用户人脸数据表")
+@JsonInclude(NON_NULL)
+public class SysUserFace implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+ @NotBlank(message = "人脸数据不能为空")
+ @ApiModelProperty(value = "人脸数据",required = true)
+ @TableField("face_base")
+ private String faceBase;
+
+ @NotNull(message = "用户id不能为空")
+ @ApiModelProperty(value = "用户id",required = true)
+ @TableField("user_id")
+ private Long userId;
+
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @ApiModelProperty("创建人")
+ @TableField("create_by")
+ private String createBy;
+
+ @TableField("create_time")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("更新人")
+ @TableField("update_by")
+ private String updateBy;
+
+ @TableField("update_time")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("原因说明")
+ @TableField("remark")
+ private String remark;
+
+
+ @NotNull(message = "图片对象不能为空")
+ @ApiModelProperty(value = "图片对象",required = true)
+ @TableField(exist = false)
+ private MultipartFile file;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/PersonProjectVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/PersonProjectVO.java
new file mode 100644
index 0000000..d771e3f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/PersonProjectVO.java
@@ -0,0 +1,22 @@
+package com.gkhy.assess.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Setter
+@Getter
+@ApiModel(value = "个人参与项目汇总对象", description = "个人参与项目汇总对象")
+public class PersonProjectVO {
+ @ApiModelProperty("成员用户id")
+ private Long personId;
+
+ @ApiModelProperty("参与的项目数量")
+ private Integer projectCount;
+
+ @ApiModelProperty("最新评价项目时间")
+ private LocalDateTime lastEstimateTime;
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectMaterialVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectMaterialVO.java
new file mode 100644
index 0000000..1fbb41d
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectMaterialVO.java
@@ -0,0 +1,53 @@
+package com.gkhy.assess.system.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.gkhy.assess.system.domain.AssContract;
+import com.gkhy.assess.system.domain.AssProjectMaterial;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import java.util.List;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 项目归档文件表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Getter
+@Setter
+@ApiModel(value = "ProjectMaterialVO对象", description = "项目归档表单")
+@JsonInclude(NON_NULL)
+public class ProjectMaterialVO {
+
+ @NotNull(message = "项目id为空")
+ @ApiModelProperty(value = "项目id",required = true)
+ private Long projectId;
+
+ @Valid
+ @NotNull(message = "项目归档列表不能为空")
+ @ApiModelProperty(value = "项目归档列表",required = true)
+ private List<AssProjectMaterial> projectMaterials;
+
+ @Valid
+ @NotNull(message = "合同对象不能为空")
+ @ApiModelProperty(value = "合同对象",required = true)
+ private AssContract contract;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java
new file mode 100644
index 0000000..664c082
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/ProjectStaticVO.java
@@ -0,0 +1,31 @@
+package com.gkhy.assess.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+@Setter
+@Getter
+@ApiModel(value = "项目统计对象", description = "项目统计对象")
+@Accessors(chain = true)
+public class ProjectStaticVO {
+ @ApiModelProperty("项目总数")
+ private Integer projectTotal;
+
+ @ApiModelProperty("风险分析及计划评价总数")
+ private Integer riskTotal;
+
+ @ApiModelProperty("现场勘验总数")
+ private Integer investigationTotal;
+
+ @ApiModelProperty("项目审核总数")
+ private Integer reviewTotal;
+
+ @ApiModelProperty("出具报告总数")
+ private Integer reportTotal;
+
+ @ApiModelProperty("项目归档总数")
+ private Integer archiveTotal;
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/UploadObjectVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/UploadObjectVO.java
index 0932e0b..d9c4cc8 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/UploadObjectVO.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/UploadObjectVO.java
@@ -17,6 +17,9 @@
@ApiModelProperty("文件保存相对路径")
private String path;
+ @ApiModelProperty("文件原始名称")
+ private String originName;
+
// @ApiModelProperty("访问链接")
// private String url;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java
new file mode 100644
index 0000000..6e7a39e
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/AccessoryFileTypeEnum.java
@@ -0,0 +1,41 @@
+package com.gkhy.assess.system.enums;
+
+/**
+ * 评估文件类型
+ *
+ */
+public enum AccessoryFileTypeEnum
+{
+ DEVICE_IMAGE(1, "评价机构项目现场勘验人员在主要装置前的合影照片"),
+ INVESTINGATION_IMAGE(2, "评价机构项目现场勘验照片"),
+ COMPANY_IMAGE(3, "评价机构项目现场勘验人员与企业陪同人员图片"),
+ INVESTINGATION_VIDEO(4, "评价机构项目现场勘验视频"),
+
+ INVESTINGATION_ATTACHMENT(5, "现场勘验记录附件"),
+
+ REVIEW_RECORD(6, "评审记录附件"),
+ CONCLUSION(7, "评价结论"),
+ PROCESS_ATTACHMENT(8, "过程控制记录文档附件"),
+ PROJECT_MATERIAL(9, "项目归档材料"),
+ FILING_APPLY(10, "报备申请附件"),
+ PROJECT_RECITIFICATON(11, "项目整改情况附件");
+
+ private final Integer code;
+ private final String info;
+
+ AccessoryFileTypeEnum(Integer code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public Integer getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/PlayRoleEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/PlayRoleEnum.java
new file mode 100644
index 0000000..b7756c3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/PlayRoleEnum.java
@@ -0,0 +1,47 @@
+package com.gkhy.assess.system.enums;
+
+/**
+ * 项目成员担任角色
+ *
+ */
+public enum PlayRoleEnum
+{
+ PROJECT_LEADER(1, "项目负责人"),
+ PROJECT_MEMBER(2, "项目组成员"),
+ PROCESS_LEADER(3, "过程控制负责人"),
+ ANGENCY_LEADER(4, "机构评价负责人"),
+ TEACH_LEADER(5, "技术负责人"),
+ INNER_LEADER(6, "内部审核员");
+
+ private final Integer code;
+ private final String info;
+
+ PlayRoleEnum(Integer code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public Integer getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+
+ public static PlayRoleEnum getInfoByCode(Integer code) {
+ PlayRoleEnum[] values = PlayRoleEnum.values();
+ for (PlayRoleEnum value : values) {
+ if (value.getCode().equals(code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/ProgressPhaseEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/ProgressPhaseEnum.java
new file mode 100644
index 0000000..fe1566d
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/ProgressPhaseEnum.java
@@ -0,0 +1,51 @@
+package com.gkhy.assess.system.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 项目五大阶段
+ *
+ */
+public enum ProgressPhaseEnum
+{
+ RISK(1, "风险分析评价计划"),
+ INVESTIGATION(2, "现场勘验"),
+ REVIEW(3, "项目审核"),
+ REPORT(4, "出具报告"),
+ ARCHIVE(5, "项目归档");
+
+ private final Integer code;
+ private final String info;
+
+ ProgressPhaseEnum(Integer code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public Integer getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+
+ public static Integer getPhaseByProcess(int reportProgress){
+ if(reportProgress<=ReportProgressEnum.ESTIMATE_PLAN.getCode()){
+ return ProgressPhaseEnum.RISK.getCode();
+ }else if(reportProgress<=ReportProgressEnum.INVESTINGATION.getCode()){
+ return ProgressPhaseEnum.INVESTIGATION.getCode();
+ }else if(reportProgress<=ReportProgressEnum.REVIEW_RECORD.getCode()){
+ return ProgressPhaseEnum.REVIEW.getCode();
+ }else if(reportProgress<=ReportProgressEnum.PROCESS_AUDIT.getCode()){
+ return ProgressPhaseEnum.REPORT.getCode();
+ }else{
+ return ProgressPhaseEnum.ARCHIVE.getCode();
+ }
+ }
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/enums/ReportProgressEnum.java b/assess-system/src/main/java/com/gkhy/assess/system/enums/ReportProgressEnum.java
new file mode 100644
index 0000000..d6032c0
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/enums/ReportProgressEnum.java
@@ -0,0 +1,141 @@
+package com.gkhy.assess.system.enums;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 项目状态类型(五大阶段的详细状态)
+ *
+ */
+public enum ReportProgressEnum
+{
+ ADD(0, "新增"),
+ RISK_ESTIMATE(1, "项目分析分析"),
+ CONTRACT(2, "合同管理"),
+ ESTIMATE_TASK(3, "评价任务通知"),
+ ESTIMATE_PLAN(4, "评价项目计划"),
+ WORK_NOTIFICATION(5, "从业告知"),
+ INVESTINGATION(6, "现场勘验记录"),
+ INNER_AUDIT(7, "内部审核"),
+ TECH_AUDIT(8, "技术负责人审核"),
+ REVIEW_RECORD(9, "评审记录"),
+ CONCLUSION(10, "评价结论"),
+ PROCESS_AUDIT(11, "过程控制人审核"),
+ PROJECT_MATERIAL(12, "项目归档"),
+ FACE_RECOGNITION(13, "签字确认"),
+ CONFIRM_FINAL(14, "确认完结");
+
+ private final Integer code;
+ private final String info;
+
+ ReportProgressEnum(Integer code, String info)
+ {
+ this.code = code;
+ this.info = info;
+ }
+
+ public Integer getCode()
+ {
+ return code;
+ }
+
+ public String getInfo()
+ {
+ return info;
+ }
+
+ public static ReportProgressEnum getByCode(Integer code) {
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode().equals(code)) {
+ return e;
+ }
+ }
+ throw new RuntimeException("enum not exists.");
+ }
+
+ public static List<Integer> getProcessByPhase(int projectPhase){
+ if(projectPhase==ProgressPhaseEnum.RISK.getCode()){
+ return getRiskProcess();
+ }else if(projectPhase==ProgressPhaseEnum.INVESTIGATION.getCode()){
+ return getInvestigationProcess();
+ }else if(projectPhase==ProgressPhaseEnum.REVIEW.getCode()){
+ return getReviewProcess();
+ }else if(projectPhase==ProgressPhaseEnum.REPORT.getCode()){
+ return getReportProcess();
+ }else if(projectPhase==ProgressPhaseEnum.ARCHIVE.getCode()){
+ return getArchiveProcess();
+ }
+ return null;
+ }
+
+ /**
+ *
+ * 风险分析及计划评价阶段 项目状态码
+ * @return
+ */
+ public static List<Integer> getRiskProcess(){
+ List<Integer> riskProcess=new ArrayList<>();
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode()<=4) {
+ riskProcess.add(e.getCode());
+ }
+ }
+ return riskProcess;
+ }
+
+ /**
+ * 现场勘验阶段 项目状态码
+ * @return
+ */
+ public static List<Integer> getInvestigationProcess(){
+ List<Integer> investigationProcess=new ArrayList<>();
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode()>4 &&e.getCode()<=6) {
+ investigationProcess.add(e.getCode());
+ }
+ }
+ return investigationProcess;
+ }
+
+ /**
+ * 项目审核阶段 项目状态码
+ * @return
+ */
+ public static List<Integer> getReviewProcess(){
+ List<Integer> reviewProcess=new ArrayList<>();
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode()>6 &&e.getCode()<=9) {
+ reviewProcess.add(e.getCode());
+ }
+ }
+ return reviewProcess;
+ }
+
+ /**
+ * 出具报告阶段 项目状态码
+ * @return
+ */
+ public static List<Integer> getReportProcess(){
+ List<Integer> reportProcess=new ArrayList<>();
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode()>9 &&e.getCode()<=11) {
+ reportProcess.add(e.getCode());
+ }
+ }
+ return reportProcess;
+ }
+
+ /**
+ * 项目归档阶段 项目状态码
+ * @return
+ */
+ public static List<Integer> getArchiveProcess(){
+ List<Integer> archiveProcess=new ArrayList<>();
+ for (ReportProgressEnum e : values()) {
+ if (e.getCode()>11) {
+ archiveProcess.add(e.getCode());
+ }
+ }
+ return archiveProcess;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java
new file mode 100644
index 0000000..775f14c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java
@@ -0,0 +1,43 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评估文件上传记录表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssAccessoryFileMapper extends BaseMapper<AssAccessoryFile> {
+ /**
+ * 根据项目id获取评估文件
+ * @param projectId
+ * @param moduleType
+ * @return
+ */
+ List<AssAccessoryFile> getAccessoryFileByProjectId(@Param("projectId") Long projectId, @Param("moduleType") Integer moduleType);
+
+ /**
+ * 获取数量
+ * @param projectId
+ * @param moduleType
+ * @return
+ */
+ Integer getAccessoryFileCountByProjectId(@Param("projectId") Long projectId, @Param("moduleType") Integer moduleType);
+
+ /**
+ * 根据id删除评估文件
+ * @param accessoryFileId
+ * @return
+ */
+ int deleteAccessoryFileById(Long accessoryFileId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAuditMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAuditMapper.java
new file mode 100644
index 0000000..a13d886
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAuditMapper.java
@@ -0,0 +1,42 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 审核表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssAuditMapper extends BaseMapper<AssAudit> {
+
+ /**
+ * 根据项目id获取审核数量
+ * @param projectId
+ * @param auditType
+ * @return
+ */
+ int getCountByProjectId(@Param("projectId") Long projectId,@Param("auditType") Integer auditType);
+
+ /**
+ * 根据项目id获取审核记录
+ * @param projectId
+ * @return
+ */
+ AssAudit getAuditByProjectId(Long projectId,Integer auditType);
+
+ /**
+ * 根据id获取审核记录
+ * @param auditId
+ * @return
+ */
+ AssAudit getAuditById(Long auditId);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssConclusionMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssConclusionMapper.java
new file mode 100644
index 0000000..d4ed75c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssConclusionMapper.java
@@ -0,0 +1,40 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssConclusion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 项目结论表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssConclusionMapper extends BaseMapper<AssConclusion> {
+
+ /**
+ * 根据项目id获取评价结论数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 更具项目id获取评价结论
+ * @param projectId
+ * @return
+ */
+ AssConclusion getConclusionByProjectId(Long projectId);
+
+ /**
+ * 根据id获取评价结论
+ * @param conclusionId
+ * @return
+ */
+ AssConclusion getConclusionById(Long conclusionId);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssContractMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssContractMapper.java
new file mode 100644
index 0000000..415450b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssContractMapper.java
@@ -0,0 +1,40 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssContract;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 合同管理表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssContractMapper extends BaseMapper<AssContract> {
+ /**
+ * 根据项目id获取合同信息
+ * @param projectId
+ * @return
+ */
+ AssContract getContractByProjectId(Long projectId);
+
+
+
+ /**
+ * 根据id获取合同
+ * @param contractId
+ * @return
+ */
+ AssContract getContractById(Long contractId);
+
+
+ /**
+ * 根据项目id获取合同数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssDeviceMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssDeviceMapper.java
new file mode 100644
index 0000000..87fd6ad
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssDeviceMapper.java
@@ -0,0 +1,40 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssDevice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设备表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssDeviceMapper extends BaseMapper<AssDevice> {
+
+ /**
+ * 根据名称查询设备
+ * @param deviceName
+ * @return
+ */
+ AssDevice getDeviceByName(String deviceName);
+
+ /**
+ * 根据项目id获取设备列表
+ * @param projectId
+ * @return
+ */
+ List<AssDevice> getDevicesByProjectId(Long projectId);
+
+ /**
+ * 批量删除设备
+ * @param ids
+ * @return
+ */
+ int deleteDeviceByIds(List<Long> ids);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimatePlanMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimatePlanMapper.java
new file mode 100644
index 0000000..895b6c4
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimatePlanMapper.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.assess.system.domain.AssEstimatePlan;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 评价项目计划表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssEstimatePlanMapper extends BaseMapper<AssEstimatePlan> {
+
+ /**
+ * 根据项目id获取评价计划数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取评价计划
+ * @param projectId
+ * @return
+ */
+ AssEstimatePlan getEstimatePlanByProjectId(Long projectId);
+
+ /**
+ * 根据id获取评价计划
+ * @param estimatePlanId
+ * @return
+ */
+ AssEstimatePlan getEstimatePlanById(Long estimatePlanId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateScheduleMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateScheduleMapper.java
new file mode 100644
index 0000000..40bb8af
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateScheduleMapper.java
@@ -0,0 +1,33 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssEstimateSchedule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价日程安排表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssEstimateScheduleMapper extends BaseMapper<AssEstimateSchedule> {
+
+ /**
+ * 根据项目id获取评价日程安排表
+ * @param projectId
+ * @return
+ */
+ List<AssEstimateSchedule> getEstimateScheduleByProjectId(Long projectId);
+
+ /**
+ * 根据id批量删除评价日程
+ * @param ids
+ * @return
+ */
+ int deleteEstimateScheduleByIds(List<Long> ids);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateTaskMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateTaskMapper.java
new file mode 100644
index 0000000..45af0ed
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssEstimateTaskMapper.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssEstimateTask;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 评价认为通知表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssEstimateTaskMapper extends BaseMapper<AssEstimateTask> {
+ /**
+ * 根据项目id获取评价任务通知数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取评价任务通知
+ * @param projectId
+ * @return
+ */
+ AssEstimateTask getTaskByProjectId(Long projectId);
+
+ /**
+ * 根据id获取评价任务通知
+ * @param taskId
+ * @return
+ */
+ AssEstimateTask getTaskById(Long taskId);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java
new file mode 100644
index 0000000..8530086
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java
@@ -0,0 +1,47 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssFaceRecognition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 签字确认表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssFaceRecognitionMapper extends BaseMapper<AssFaceRecognition> {
+ /**
+ * 根据项目id获取签字确认数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取签字确认
+ * @param projectId
+ * @return
+ */
+ List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId);
+
+ /**
+ * 根据id获取签字确认
+ * @param faceRecognitionId
+ * @return
+ */
+ AssFaceRecognition getFaceRecognitionById(Long faceRecognitionId);
+
+
+ /**
+ * 获取项目签字确认数量
+ * @param projectId
+ * @return
+ */
+ int getFaceRecognitionCount(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecordMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecordMapper.java
new file mode 100644
index 0000000..025f1b8
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecordMapper.java
@@ -0,0 +1,27 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssFaceRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssFaceRecordMapper extends BaseMapper<AssFaceRecord> {
+ /**
+ * 获取人脸识别列表
+ * @param projectId
+ * @return
+ */
+ List<AssFaceRecord> faceRecordList(@Param("projectId") Long projectId, @Param("scene") Integer scene);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFilingApplyMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFilingApplyMapper.java
new file mode 100644
index 0000000..d0f3ce3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFilingApplyMapper.java
@@ -0,0 +1,25 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssFilingApply;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 报备申请表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssFilingApplyMapper extends BaseMapper<AssFilingApply> {
+ /**
+ * 根据项目id获取报备列表
+ * @param projectId
+ * @return
+ */
+ List<AssFilingApply> getFilingApplyByProjectId(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java
new file mode 100644
index 0000000..559ab35
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java
@@ -0,0 +1,41 @@
+package com.gkhy.assess.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.assess.system.domain.AssInvestigation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 现场勘验记录表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssInvestigationMapper extends BaseMapper<AssInvestigation> {
+
+ /**
+ * 根据项目id获取现场勘验记录数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+
+ /**
+ * 根据项目id获取现场勘验记录
+ * @param projectId
+ * @return
+ */
+ AssInvestigation getInvestigationByProjectId(Long projectId);
+
+ /**
+ * 根据id获取现场勘验记录
+ * @param investigationId
+ * @return
+ */
+ AssInvestigation getInvestigationById(Long investigationId);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssPlanPersonMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssPlanPersonMapper.java
new file mode 100644
index 0000000..df83799
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssPlanPersonMapper.java
@@ -0,0 +1,47 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价项目组成员表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssPlanPersonMapper extends BaseMapper<AssPlanPerson> {
+ /**
+ * 根据项目id获取项目普通成员
+ * @param projectId
+ * @return
+ */
+ List<AssPlanPerson> getPlanPersonByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取项目成员,包括负责人,技术负责人,过程负责人等
+ * @param projectId
+ * @return
+ */
+ List<AssPlanPerson> getAllPlanPersonByProjectId(Long projectId);
+
+ /**
+ * 根据id删除项目成员
+ * @param ids
+ * @return
+ */
+ int deletePlanPersonByIds(List<Long> ids);
+
+ /**
+ * 根据id列表获取项目组成员
+ * @param ids
+ * @return
+ */
+ List<AssPlanPerson> getPlanPersonsByIds(List<Long> ids);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProcessAuditMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProcessAuditMapper.java
new file mode 100644
index 0000000..0d67da3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProcessAuditMapper.java
@@ -0,0 +1,38 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProcessAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 过程控制负责人审核表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssProcessAuditMapper extends BaseMapper<AssProcessAudit> {
+ /**
+ * 根据项目id获取过程控制数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取过程控制
+ * @param projectId
+ * @return
+ */
+ AssProcessAudit getProcessAuditByProjectId(Long projectId);
+
+ /**
+ * 根据id获取过程控制
+ * @param processAuditId
+ * @return
+ */
+ AssProcessAudit getProcessAuditById(Long processAuditId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java
new file mode 100644
index 0000000..8f1747b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java
@@ -0,0 +1,82 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.assess.system.domain.vo.PersonProjectVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-11 14:16:18
+ */
+@Mapper
+public interface AssProjectMapper extends BaseMapper<AssProject> {
+
+ /**
+ * 项目列表
+ * @param project
+ * @return
+ */
+ List<AssProject> projectList(AssProject project);
+
+
+ /**
+ * 根据id获取项目详情
+ * @param projectId
+ * @return
+ */
+ AssProject getProjectById(Long projectId);
+
+ /**
+ * 根据项目名称获取项目
+ * @param name
+ * @return
+ */
+ AssProject getProjectByName(String name);
+
+ /**
+ * 获取项目状态
+ * @param projectId
+ * @return
+ */
+ Integer getReportProgress(Long projectId);
+
+ /**
+ * 根据项目组成员id获取项目
+ * @param personId
+ * @param finish
+ * @return
+ */
+ List<AssProject> getMemberProjectByUserId(@Param("personId") Long personId,@Param("finish") Integer finish,@Param("agencyId") Long agencyId);
+
+
+ /**
+ * 根据项目组长id获取项目
+ * @param personId
+ * @return
+ */
+ List<AssProject> getLeaderProjectByUserId(@Param("personId")Long personId,@Param("agencyId")Long agencyId);
+
+ /**
+ * 获取项目总数
+ * @param project
+ * @return
+ */
+ Integer getProjectCount(AssProject project);
+
+ /**
+ * 根据成员id列表汇总项目数量
+ * @param personIds
+ * @return
+ */
+ List<PersonProjectVO> getProjectByPersonIds(List<Long> personIds);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMaterialMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMaterialMapper.java
new file mode 100644
index 0000000..484237b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMaterialMapper.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProjectMaterial;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
+/**
+ * <p>
+ * 项目归档文件表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssProjectMaterialMapper extends BaseMapper<AssProjectMaterial> {
+ /**
+ * 根据项目id获取项目归档数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取项目归档
+ * @param projectId
+ * @return
+ */
+ List<AssProjectMaterial> getProjectMaterialByProjectId(Long projectId);
+
+ /**
+ * 根据id或许项目归档
+ * @param projectMaterialId
+ * @return
+ */
+ AssProjectMaterial getProjectMaterialById(Long projectMaterialId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRecitificationMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRecitificationMapper.java
new file mode 100644
index 0000000..83cbd67
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRecitificationMapper.java
@@ -0,0 +1,28 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssRecitification;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目整改情况说明表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssRecitificationMapper extends BaseMapper<AssRecitification> {
+
+ /**
+ * 分页获取整改情况
+ * @param projectId
+ * @return
+ */
+ List<AssRecitification> recitificationList(@Param("projectId") Long projectId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRiskEstimateMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRiskEstimateMapper.java
new file mode 100644
index 0000000..69ac1b2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssRiskEstimateMapper.java
@@ -0,0 +1,48 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.domain.AssRiskEstimate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 风险评估表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssRiskEstimateMapper extends BaseMapper<AssRiskEstimate> {
+
+ /**
+ * 根据项目id获取项目风险评估详情
+ * @param projectId
+ * @return
+ */
+ AssRiskEstimate getRiskEstimateByProjectId(Long projectId);
+
+ /**
+ * 根据id获取风险评估
+ * @param riskId
+ * @return
+ */
+ AssRiskEstimate getRiskEstimateById(Long riskId);
+
+
+ /**
+ * 根据风险评估id获取项目
+ * @param riskId
+ * @return
+ */
+ AssProject getProjectByRiskId(Long riskId);
+
+
+ /**
+ * 根据项目id获取风险评估数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssWorkNotificationMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssWorkNotificationMapper.java
new file mode 100644
index 0000000..c12a4d3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssWorkNotificationMapper.java
@@ -0,0 +1,38 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssWorkNotification;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 从业告知表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Mapper
+public interface AssWorkNotificationMapper extends BaseMapper<AssWorkNotification> {
+ /**
+ * 根据项目id获取从业告知数量
+ * @param projectId
+ * @return
+ */
+ int getCountByProjectId(Long projectId);
+
+ /**
+ * 根据项目id获取从业告知
+ * @param projectId
+ * @return
+ */
+ AssWorkNotification getWorkNotificationByProjectId(Long projectId);
+
+ /**
+ * 根据id获取从业告知
+ * @param workNotificationId
+ * @return
+ */
+ AssWorkNotification getWorkNotificationById(Long workNotificationId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAgencyMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAgencyMapper.java
index c702e64..092835a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAgencyMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAgencyMapper.java
@@ -23,12 +23,6 @@
*/
SysAgency checkAgencyNameUnique(String name);
- /**
- * 根据id删除机构
- * @param agencyId
- * @return
- */
- int deleteAgencyById(Long agencyId);
/**
* 根据条件查询机构列表
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
index 2e55e73..abeb7ea 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysAttachMapper.java
@@ -33,4 +33,12 @@
* @return
*/
int deleteAttachsByUserId(Long userId, Integer type);
+
+
+ /**
+ * 根据ids批量删除附件
+ * @param ids
+ * @return
+ */
+ int deleteAttachsByIds(List<Long> ids);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysDictTypeMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysDictTypeMapper.java
index 4871cec..1d6445b 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysDictTypeMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysDictTypeMapper.java
@@ -3,6 +3,7 @@
import com.gkhy.assess.system.domain.SysDictType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -35,7 +36,7 @@
* @param dictType
* @return
*/
- SysDictType checkDictTypeUnique(String dictType);
+ SysDictType checkDictTypeUnique(@Param("dictType") String dictType, @Param("name") String name);
/**
* 根据类型获取数据字典
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysExpertInfoMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysExpertInfoMapper.java
index abab04d..d945c6f 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysExpertInfoMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysExpertInfoMapper.java
@@ -36,4 +36,11 @@
* @return
*/
int deleteBatchByIds(Long[] expertIds);
+
+ /**
+ * 根据id获取专家信息
+ * @param expertId
+ * @return
+ */
+ SysExpertInfo getExpertInfoById(Long expertId);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserFaceMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserFaceMapper.java
new file mode 100644
index 0000000..7c253c0
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserFaceMapper.java
@@ -0,0 +1,23 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.SysUserFace;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户人脸数据表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-01-09 17:10:01
+ */
+@Mapper
+public interface SysUserFaceMapper extends BaseMapper<SysUserFace> {
+ /**
+ * 根据用户id获取人脸识别数据
+ * @param userId
+ * @return
+ */
+ SysUserFace getFaceByUserId(Long userId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
index f4b8f2f..ece8e63 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
@@ -73,19 +73,7 @@
*/
public SysUser getUserById(Long userId);
- /**
- * 删除用户
- * @param userId
- * @return
- */
- public int deleteUserById(Long userId);
- /**
- * 批量删除用户
- * @param userIds
- * @return
- */
- public int deleteUserByIds(Long[] userIds);
/**
* 校验用户名称是否唯一
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java
new file mode 100644
index 0000000..f1eb175
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java
@@ -0,0 +1,57 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评估文件上传记录表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssAccessoryFileService extends IService<AssAccessoryFile> {
+ /**
+ * 上传评估文件(包括图片、文件、视频等)
+ * @param projectId
+ * @param moduleType
+ * @param file
+ * @return
+ */
+ AssAccessoryFile uploadFile(Long projectId,Integer moduleType,MultipartFile file);
+
+ /**
+ * 根据项目id获取评估文件
+ * @param projectId
+ * @param moduleType
+ * @return
+ */
+ List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId, Integer moduleType);
+
+ /**
+ * 根据id删除评估文件
+ * @param accessoryFileId
+ * @return
+ */
+ int deleteById(Long accessoryFileId);
+
+ /**
+ * 根据项目id批量删除评估文件
+ * @param projectId
+ * @param moduleType
+ * @return
+ */
+ int deleteByProjectId(Long projectId,Integer moduleType);
+
+ /**
+ * 获取数量
+ * @param projectId
+ * @param moduleType
+ * @return
+ */
+ Integer getAccessoryFileCountByProjectId(Long projectId, Integer moduleType);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssAuditService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAuditService.java
new file mode 100644
index 0000000..ec81453
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAuditService.java
@@ -0,0 +1,43 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssAudit;
+
+/**
+ * <p>
+ * 审核表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssAuditService extends IService<AssAudit> {
+
+ /**
+ * 新增审核
+ * @param audit
+ * @return
+ */
+ int addAudit(AssAudit audit);
+
+ /**
+ * 修改审核
+ * @param audit
+ * @return
+ */
+ int editAudit(AssAudit audit);
+
+ /**
+ * 根据项目id获取审核
+ * @param projectId
+ * @return
+ */
+ AssAudit getAuditByProjectId(Long projectId,Integer auditType);
+
+ /**
+ * 根据id获取审核
+ * @param auditId
+ * @return
+ */
+ AssAudit getAuditById(Long auditId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssConclusionService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssConclusionService.java
new file mode 100644
index 0000000..a10774f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssConclusionService.java
@@ -0,0 +1,45 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssConclusion;
+
+/**
+ * <p>
+ * 项目结论表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssConclusionService extends IService<AssConclusion> {
+
+ /**
+ * 新增评审结论
+ * @param conclusion
+ * @return
+ */
+ int addConclusion(AssConclusion conclusion);
+
+ /**
+ * 修改评审结论
+ * @param conclusion
+ * @return
+ */
+ int editConclusion(AssConclusion conclusion);
+
+ /**
+ * 根据项目id获取评审结论
+ * @param projectId
+ * @return
+ */
+ AssConclusion getConclusionByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取评审结论
+ * @param conclusionId
+ * @return
+ */
+ AssConclusion getConclusionById(Long conclusionId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssConfirmFinalService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssConfirmFinalService.java
new file mode 100644
index 0000000..919dd0c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssConfirmFinalService.java
@@ -0,0 +1,21 @@
+package com.gkhy.assess.system.service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 确认完结服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssConfirmFinalService {
+
+ /**
+ * 确认完结
+ * @param map
+ * @return
+ */
+ void doConfirmFinal(Map map);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssContractService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssContractService.java
new file mode 100644
index 0000000..7c552a4
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssContractService.java
@@ -0,0 +1,45 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssContract;
+
+/**
+ * <p>
+ * 合同管理表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssContractService extends IService<AssContract> {
+
+
+ /**
+ * 新增合同
+ * @param contract
+ * @return
+ */
+ int addContract(AssContract contract);
+
+ /**
+ * 修改合同
+ * @param contract
+ * @return
+ */
+ int editContract(AssContract contract);
+
+ /**
+ * 根据项目id获取项目合同
+ * @param projectId
+ * @return
+ */
+ AssContract getContractByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取合同详情
+ * @param contractId
+ * @return
+ */
+ AssContract getContractById(Long contractId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssDeviceService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssDeviceService.java
new file mode 100644
index 0000000..c6e381f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssDeviceService.java
@@ -0,0 +1,66 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssDevice;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设备表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssDeviceService extends IService<AssDevice> {
+ /**
+ * 新增设备
+ * @param device
+ * @return
+ */
+ int addDevice(AssDevice device);
+
+ /**
+ * 修改设备
+ * @param device
+ * @return
+ */
+ int editDevice(AssDevice device);
+
+ /**
+ * 删除设备
+ * @param deviceId
+ * @return
+ */
+ int deleteById(Long deviceId);
+
+ /**
+ * 根据id获取报备
+ * @param deviceId
+ * @return
+ */
+ AssDevice getDeviceById(Long deviceId);
+
+
+ /**
+ * 检验设备名称是否唯一
+ * @param device
+ * @return
+ */
+ boolean checkNameUnique(AssDevice device);
+
+ /**
+ * 根据项目id获取设备列表
+ * @param projectId
+ * @return
+ */
+ List<AssDevice> getByProjectId(Long projectId);
+
+ /**
+ * 批量删除设备
+ * @param ids
+ * @return
+ */
+ int deleteByIds(List<Long> ids,Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimatePlanService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimatePlanService.java
new file mode 100644
index 0000000..17242ae
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimatePlanService.java
@@ -0,0 +1,44 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssEstimatePlan;
+
+/**
+ * <p>
+ * 评价项目计划表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssEstimatePlanService extends IService<AssEstimatePlan> {
+
+ /**
+ * 新增评价计划
+ * @param estimatePlan
+ * @return
+ */
+ int addEstimatePlan(AssEstimatePlan estimatePlan);
+
+ /**
+ * 修改评价计划
+ * @param estimatePlan
+ * @return
+ */
+ int editEstimatePlan(AssEstimatePlan estimatePlan);
+
+ /**
+ * 根据项目id获取评价计划
+ * @param projectId
+ * @return
+ */
+ AssEstimatePlan getEstimatePlanByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取评价计划详情
+ * @param estimatePlanId
+ * @return
+ */
+ AssEstimatePlan getEstimatePlanById(Long estimatePlanId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateScheduleService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateScheduleService.java
new file mode 100644
index 0000000..7a18d8a
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateScheduleService.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssEstimateSchedule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价日程安排表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssEstimateScheduleService extends IService<AssEstimateSchedule> {
+ /**
+ * 根据项目id获取评价日程安排
+ * @param projectId
+ * @return
+ */
+ List<AssEstimateSchedule> getByProjectId(Long projectId);
+
+
+ /**
+ * 新增日程安排
+ * @param estimateSchedule
+ * @return
+ */
+ int addSchedule(AssEstimateSchedule estimateSchedule);
+
+ /**
+ * 编辑日程安排
+ * @param estimateSchedule
+ * @return
+ */
+ int editSchedule(AssEstimateSchedule estimateSchedule);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateTaskService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateTaskService.java
new file mode 100644
index 0000000..24dbe54
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssEstimateTaskService.java
@@ -0,0 +1,43 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssEstimateTask;
+
+/**
+ * <p>
+ * 评价任务通知表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssEstimateTaskService extends IService<AssEstimateTask> {
+
+ /**
+ * 新增评价任务通知
+ * @param estimateTask
+ * @return
+ */
+ int addEstimateTask(AssEstimateTask estimateTask);
+
+ /**
+ * 编辑评价任务通知
+ * @param estimateTask
+ * @return
+ */
+ int editEstimateTask(AssEstimateTask estimateTask);
+
+ /**
+ * 根据项目id获取评价任务通知
+ * @param projectId
+ * @return
+ */
+ AssEstimateTask getEstimateTaskByProjectId(Long projectId);
+
+ /**
+ * 根据id获取评价任务通知详情
+ * @param taskId
+ * @return
+ */
+ AssEstimateTask getEstimateTaskById(Long taskId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecognitionService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecognitionService.java
new file mode 100644
index 0000000..254d831
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecognitionService.java
@@ -0,0 +1,67 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssFaceRecognition;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 签字确认表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssFaceRecognitionService extends IService<AssFaceRecognition> {
+ /**
+ * 项目状态流转
+ * @param map
+ */
+ void doFaceRecognition(Map map);
+
+ /**
+ * 新增签字确认
+ * @param faceRecognition
+ * @return
+ */
+ int addFaceRecognition(AssFaceRecognition faceRecognition);
+
+ /**
+ * 修改签字确认
+ * @param faceRecognition
+ * @return
+ */
+ int editFaceRecognition(AssFaceRecognition faceRecognition);
+
+ /**
+ * 根据项目id获取签字确认
+ * @param projectId
+ * @return
+ */
+ List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取签字确认
+ * @param faceRecognitionId
+ * @return
+ */
+ AssFaceRecognition getFaceRecognitionById(Long faceRecognitionId);
+
+ /**
+ * 根据成员id获取签字确认
+ * @param projectId
+ * @param personId
+ * @return
+ */
+ AssFaceRecognition getRecognitionByPersonId(Long projectId, Long personId);
+
+ /**
+ * 校验是否都签字确认
+ * @param projectId
+ * @return
+ */
+ Boolean checkAllFaceRecongnition(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecordService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecordService.java
new file mode 100644
index 0000000..b1a094c
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFaceRecordService.java
@@ -0,0 +1,46 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssFaceRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssFaceRecordService extends IService<AssFaceRecord> {
+ /**
+ * 新增人脸识别
+ * @param faceRecord
+ * @return
+ */
+ int addFaceRecord(AssFaceRecord faceRecord);
+
+ /**
+ * 获取人脸识别列表
+ * @param projectId
+ * @return
+ */
+ List<AssFaceRecord> faceRecordList(Long projectId,Integer scene);
+
+ /**
+ * 编辑人脸识别
+ * @param faceRecord
+ * @return
+ */
+ int editFaceRecord(AssFaceRecord faceRecord);
+
+ /**
+ * 删除人脸识别
+ * @param faceId
+ * @return
+ */
+ int deleteById(Long faceId);
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssFilingApplyService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFilingApplyService.java
new file mode 100644
index 0000000..15b473a
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssFilingApplyService.java
@@ -0,0 +1,53 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssFilingApply;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 报备申请表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssFilingApplyService extends IService<AssFilingApply> {
+
+ /**
+ * 新增报备
+ * @param filingApply
+ * @return
+ */
+ int addFilingApply(AssFilingApply filingApply);
+
+ /**
+ * 修改报备
+ * @param filingApply
+ * @return
+ */
+ int editFilingApply(AssFilingApply filingApply);
+
+ /**
+ * 根据项目id获取报备
+ * @param projectId
+ * @return
+ */
+ List<AssFilingApply> getFilingApplyByProjectId(Long projectId);
+
+ /**
+ * 删除报备
+ * @param filingApplyId
+ * @return
+ */
+ int deleteById(Long filingApplyId);
+
+ /**
+ * 根据id获取报备
+ * @param filingApplyId
+ * @return
+ */
+ AssFilingApply getFilingApplyById(Long filingApplyId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java
new file mode 100644
index 0000000..4e8d8dd
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java
@@ -0,0 +1,50 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssInvestigation;
+
+/**
+ * <p>
+ * 现场勘验记录表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssInvestigationService extends IService<AssInvestigation> {
+
+ /**
+ * 新增勘验记录
+ * @param investigation
+ * @return
+ */
+ int addInvestigation(AssInvestigation investigation,String requestSourceType);
+
+ /**
+ * 修改勘验记录
+ * @param investigation
+ * @return
+ */
+ int editInvestigation(AssInvestigation investigation);
+
+ /**
+ * 根据项目id获取勘验记录
+ * @param projectId
+ * @return
+ */
+ AssInvestigation getInvestigationByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取勘验记录
+ * @param investigationId
+ * @return
+ */
+ AssInvestigation getInvestigationById(Long investigationId);
+
+ /**
+ * 项目状态流转
+ * @param projectId
+ */
+ void doInvestigationProcess(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssPlanPersonService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssPlanPersonService.java
new file mode 100644
index 0000000..8c18244
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssPlanPersonService.java
@@ -0,0 +1,66 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价项目组成员表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssPlanPersonService extends IService<AssPlanPerson> {
+
+ /**
+ * 根据项目id获取项目成员
+ * @param projectId
+ * @return
+ */
+ List<AssPlanPerson> getByProjectId(Long projectId);
+
+
+ /**
+ * 新增项目组成员
+ * @param planPerson
+ * @return
+ */
+ int addPlanPerson(AssPlanPerson planPerson);
+
+ /**
+ * 编辑项目组成员
+ * @param planPerson
+ * @return
+ */
+ int editPlanPerson(AssPlanPerson planPerson);
+
+ /**
+ * 根据id删除项目组成员
+ * @param planPersonId
+ * @return
+ */
+ int deletePlanPersonById(Long planPersonId);
+
+ /**
+ * 根据成员id删除项目组成员
+ * @param personId
+ * @return
+ */
+ int deletePlanPersonByPersonId(Long personId);
+
+ /**
+ * 校验项目成员是否唯一
+ * @param planPerson
+ */
+ void checkPersonUnique(AssPlanPerson planPerson);
+
+ /**
+ * 根据成员id获取成员详细信息
+ * @param personId
+ * @return
+ */
+ AssPlanPerson getPlanPersonByPersonId(Long personId,Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssProcessAuditService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProcessAuditService.java
new file mode 100644
index 0000000..e883d5a
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProcessAuditService.java
@@ -0,0 +1,43 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssProcessAudit;
+
+/**
+ * <p>
+ * 过程控制负责人审核表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssProcessAuditService extends IService<AssProcessAudit> {
+ /**
+ * 新增过程控制审核
+ * @param processAudit
+ * @return
+ */
+ int addProcessAudit(AssProcessAudit processAudit);
+
+ /**
+ * 修改过程控制审核
+ * @param processAudit
+ * @return
+ */
+ int editProcessAudit(AssProcessAudit processAudit);
+
+ /**
+ * 根据项目id获取过程控制审核
+ * @param projectId
+ * @return
+ */
+ AssProcessAudit getProcessAuditByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取过程控制审核
+ * @param processAuditId
+ * @return
+ */
+ AssProcessAudit getProcessAuditById(Long processAuditId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectMaterialService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectMaterialService.java
new file mode 100644
index 0000000..b641654
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectMaterialService.java
@@ -0,0 +1,46 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssProjectMaterial;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.vo.ProjectMaterialVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目归档文件表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssProjectMaterialService extends IService<AssProjectMaterial> {
+ /**
+ * 新增项目归档文件
+ * @param projectMaterialVO
+ * @return
+ */
+ int addProjectMaterial(ProjectMaterialVO projectMaterialVO);
+
+ /**
+ * 修改项目归档文件
+ * @param projectMaterialVO
+ * @return
+ */
+ int editProjectMaterial(ProjectMaterialVO projectMaterialVO);
+
+ /**
+ * 根据项目id获取项目归档文件
+ * @param projectId
+ * @return
+ */
+ List<AssProjectMaterial> getProjectMaterialByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取项目归档文件
+ * @param projectMaterialId
+ * @return
+ */
+ AssProjectMaterial getProjectMaterialById(Long projectMaterialId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectService.java
new file mode 100644
index 0000000..b8116e4
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectService.java
@@ -0,0 +1,130 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.system.domain.AssProject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.vo.ProjectStaticVO;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+
+/**
+ * <p>
+ * 项目表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-11 14:16:18
+ */
+public interface AssProjectService extends IService<AssProject> {
+
+ /**
+ * 根据条件分页查询项目列表
+ * @param project
+ * @return
+ */
+ CommonPage projectList(AssProject project);
+
+ /**
+ * 根据id获取项目
+ * @param projectId
+ * @return
+ */
+ AssProject getProjectById(Long projectId);
+
+
+ /**
+ * 新增项目
+ * @param project
+ * @return
+ */
+ int addProject(AssProject project);
+
+
+ /**
+ * 根据id删除项目
+ * @param projectId
+ * @return
+ */
+ int deleteProjectById(Long projectId);
+
+ /**
+ * 编辑项目
+ * @param project
+ * @return
+ */
+ int editProject(AssProject project);
+
+
+ /**
+ * 校验项目
+ * @param projectId
+ */
+ AssProject checkProjectDataScope(Long projectId);
+
+
+ /**
+ * 获取项目当前的项目过程状态
+ * @param projectId
+ * @return
+ */
+ Integer getProjectReportProgress(Long projectId);
+
+
+ /**
+ * 检验项目名称是否唯一
+ * @param project
+ * @return
+ */
+ boolean checkNameUnique(AssProject project);
+
+ /**
+ * 校验项目状态
+ * @param projectId
+ * @param reportProgressEnum 项目状态
+ * @return
+ */
+ void checkReportProgress(Long projectId, ReportProgressEnum reportProgressEnum);
+
+ /**
+ * 修改项目状态
+ * @param projectId
+ * @param reportProgressEnum
+ * @return
+ */
+ int changeReportProgress(Long projectId,ReportProgressEnum reportProgressEnum);
+
+
+ /**
+ * 根据项目成员获取项目列表 分页(供app使用)
+ * @param personId
+ * @param finish
+ * @return
+ */
+ CommonPage memberProjects(Long personId,Integer finish);
+
+
+ /**
+ * 根据项目组长id获取项目列表 分页(供app使用)
+ * @param personId
+ * @return
+ */
+ CommonPage leaderProjects(Long personId);
+
+ /**
+ * 项目统计
+ * @return
+ */
+ ProjectStaticVO projectStat(AssProject project);
+
+ /**
+ * 获取项目agencyId
+ * @param projectId
+ * @return
+ */
+ Long getProjectAgencyId(Long projectId);
+
+ /**
+ * 校验当前用户是否拥有操作项目权限
+ * @param projectId
+ */
+ void checkUserAllowed(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssRecitificationService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssRecitificationService.java
new file mode 100644
index 0000000..6745912
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssRecitificationService.java
@@ -0,0 +1,50 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.system.domain.AssRecitification;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 项目整改情况说明表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssRecitificationService extends IService<AssRecitification> {
+ /**
+ * 根据项目id分页获取整改情况
+ * @param projectId
+ * @return
+ */
+ CommonPage recitificationList(Long projectId);
+
+ /**
+ * 新增整改情况
+ * @param recitification
+ * @return
+ */
+ int addRecitification(AssRecitification recitification);
+
+ /**
+ * 修改整改情况
+ * @param recitification
+ * @return
+ */
+ int editRecitification(AssRecitification recitification);
+
+ /**
+ * 删除整改情况
+ * @param recitificationId
+ * @return
+ */
+ int deleteById(Long recitificationId);
+
+ /**
+ * 根据id获取整改情况
+ * @param recitificationId
+ * @return
+ */
+ AssRecitification getRecitificationById(Long recitificationId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssReviewRecordService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssReviewRecordService.java
new file mode 100644
index 0000000..ff107ae
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssReviewRecordService.java
@@ -0,0 +1,11 @@
+package com.gkhy.assess.system.service;
+
+import java.util.Map;
+
+public interface AssReviewRecordService {
+ /**
+ * 状态流转
+ * @param map
+ */
+ void doReview(Map map);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssRiskEstimateService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssRiskEstimateService.java
new file mode 100644
index 0000000..d185069
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssRiskEstimateService.java
@@ -0,0 +1,45 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssRiskEstimate;
+
+/**
+ * <p>
+ * 风险评估表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssRiskEstimateService extends IService<AssRiskEstimate> {
+
+ /**
+ * 新增风险评估
+ * @param riskEstimate
+ * @return
+ */
+ Long addRiskEstimate(AssRiskEstimate riskEstimate);
+
+ /**
+ * 修改风险评估
+ * @param riskEstimate
+ * @return
+ */
+ int editRiskEstimate(AssRiskEstimate riskEstimate);
+
+ /**
+ * 根据项目id获取项目风险评估详情
+ * @param projectId
+ * @return
+ */
+ AssRiskEstimate getRiskEstimateByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取风险评估详情
+ * @param riskId
+ * @return
+ */
+ AssRiskEstimate getRiskEstimateById(Long riskId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssWorkNotificationService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssWorkNotificationService.java
new file mode 100644
index 0000000..fffcebc
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssWorkNotificationService.java
@@ -0,0 +1,44 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.AssWorkNotification;
+
+/**
+ * <p>
+ * 从业告知表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+public interface AssWorkNotificationService extends IService<AssWorkNotification> {
+
+ /**
+ * 新增从业告知
+ * @param workNotification
+ * @return
+ */
+ int addWorkNotification(AssWorkNotification workNotification);
+
+ /**
+ * 修改从业告知
+ * @param workNotification
+ * @return
+ */
+ int editWorkNotification(AssWorkNotification workNotification);
+
+ /**
+ * 根据项目id获取从业告知
+ * @param projectId
+ * @return
+ */
+ AssWorkNotification getWorkNotificationByProjectId(Long projectId);
+
+
+ /**
+ * 根据id获取从业告知详情
+ * @param workNotificationId
+ * @return
+ */
+ AssWorkNotification getWorkNotificationById(Long workNotificationId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAgencyService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAgencyService.java
index 1385517..e7e9ce6 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAgencyService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAgencyService.java
@@ -42,4 +42,11 @@
* @return
*/
boolean changePublic(SysAgency agency);
+
+ /**
+ * 根据id删除机构
+ * @param agencyId
+ * @return
+ */
+ int deleteAgencyById(Long agencyId);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
index 13c5f0e..06dfabd 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysAttachService.java
@@ -29,4 +29,13 @@
* @return
*/
int deleteAttachsByUserId(Long userId,Integer type);
+
+ /**
+ * 批量删除附件
+ * @param ids
+ * @return
+ */
+ int deleteAttachsByIds(List<Long> ids);
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
index 4e22674..8a03413 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java
@@ -12,6 +12,14 @@
*/
public UploadObjectVO uploadFile(MultipartFile file);
+ UploadObjectVO doUpload(MultipartFile file);
+
+ /**
+ * base64字符串
+ * @param imageBase64
+ * @return
+ */
+ UploadObjectVO doUpload(String imageBase64);
public boolean removeFile(String path);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysExpertInfoService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysExpertInfoService.java
index bd60fa5..9f6efe0 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysExpertInfoService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysExpertInfoService.java
@@ -47,4 +47,18 @@
* @return
*/
int delExpertInfoBatch(Long[] expertIds);
+
+ /**
+ * 根据id获取专家信息
+ * @param expertId
+ * @return
+ */
+ SysExpertInfo exportInfoDetail(Long expertId);
+
+ /**
+ * 修改评定状态
+ * @param expertInfo
+ * @return
+ */
+ boolean changeApprove(SysExpertInfo expertInfo);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java
new file mode 100644
index 0000000..0096e0b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java
@@ -0,0 +1,29 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.SysUserFace;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户人脸数据表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-01-09 17:10:01
+ */
+public interface SysUserFaceService extends IService<SysUserFace> {
+ /**
+ * 新增用户人脸识别数据
+ * @param userFace
+ * @return
+ */
+ int addUserFace(SysUserFace userFace);
+
+ /**
+ * 根据用户id获取人脸数据
+ * @param userId
+ * @return
+ */
+ SysUserFace getFaceByUserId(Long userId);
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
index 611359d..21f10f0 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
@@ -25,6 +25,13 @@
AccountVO login(LoginBody loginBody);
/**
+ * app登录
+ * @param loginBody
+ * @return
+ */
+ AccountVO appLogin(LoginBody loginBody);
+
+ /**
* 退出
*/
void logout();
@@ -167,13 +174,6 @@
*/
SysUser checkUserDataScope(Long userId);
- /**
- * 导入用户数据
- * @param userList
- * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
- * @return
- */
- String importUser(List<SysUser> userList,Boolean isUpdateSupport);
/**
* 修改用户状态
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java
new file mode 100644
index 0000000..6e75233
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java
@@ -0,0 +1,93 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.enums.UserIdentityEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
+import com.gkhy.assess.system.mapper.AssAccessoryFileMapper;
+import com.gkhy.assess.system.mapper.AssProjectMapper;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.SysCommonService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评估文件上传记录表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssAccessoryFileServiceImpl extends ServiceImpl<AssAccessoryFileMapper, AssAccessoryFile> implements AssAccessoryFileService {
+
+ @Autowired
+ private SysCommonService commonService;
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public AssAccessoryFile uploadFile(Long projectId, Integer moduleType, MultipartFile file) {
+ if(projectId==null||moduleType==null||file==null){
+ throw new ApiException("参数或者上传文件不能为空");
+ }
+ projectService.checkUserAllowed(projectId);
+ UploadObjectVO uploadObjectVO = commonService.doUpload(file);
+ AssAccessoryFile accessoryFile=new AssAccessoryFile()
+ .setFileName(uploadObjectVO.getFilename())
+ .setOriginName(uploadObjectVO.getOriginName())
+ .setPath(uploadObjectVO.getPath())
+ .setProjectId(projectId)
+ .setModuleType(moduleType);
+ accessoryFile.setCreateBy(ShiroUtils.getSysUser().getName());
+ save(accessoryFile);
+ return accessoryFile;
+ }
+
+ @Override
+ public List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId, Integer moduleType) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getAccessoryFileByProjectId(projectId,moduleType);
+ }
+
+ @Override
+ public Integer getAccessoryFileCountByProjectId(Long projectId, Integer moduleType) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getAccessoryFileCountByProjectId(projectId,moduleType);
+ }
+
+
+ @Override
+ public int deleteById(Long accessoryFileId) {
+ AssAccessoryFile accessoryFile=getById(accessoryFileId);
+ projectService.checkUserAllowed(accessoryFile.getProjectId());
+ return update(Wrappers.<AssAccessoryFile>lambdaUpdate()
+ .eq(AssAccessoryFile::getId,accessoryFileId)
+ .set(AssAccessoryFile::getDelFlag, DeleteFlagEnum.DELETED.getCode())
+ .set(AssAccessoryFile::getUpdateBy,ShiroUtils.getSysUser().getName()))?1:0;
+ }
+
+
+
+ @Override
+ public int deleteByProjectId(Long projectId, Integer moduleType) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.update(null,Wrappers.<AssAccessoryFile>lambdaUpdate()
+ .set(AssAccessoryFile::getDelFlag,DeleteFlagEnum.DELETED.getCode())
+ .set(AssAccessoryFile::getUpdateBy,ShiroUtils.getSysUser().getName())
+ .eq(AssAccessoryFile::getProjectId,projectId)
+ .eq(AssAccessoryFile::getModuleType,moduleType));
+ }
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAuditServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAuditServiceImpl.java
new file mode 100644
index 0000000..240fbb0
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAuditServiceImpl.java
@@ -0,0 +1,106 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.enums.UserIdentityEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssAudit;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.enums.PlayRoleEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssAuditMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssAuditService;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 审核表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssAuditServiceImpl extends ServiceImpl<AssAuditMapper, AssAudit> implements AssAuditService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private AssPlanPersonService planPersonService;
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addAudit(AssAudit audit) {
+ Long projectId=audit.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkAuditCount(projectId,audit.getAuditType());
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(audit.getAssessorId()).setProjectId(projectId));
+ //校验项目状态
+ projectService.checkReportProgress(projectId, audit.getAuditType()==1?ReportProgressEnum.INVESTINGATION:ReportProgressEnum.INNER_AUDIT);
+ audit.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(audit);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,audit.getAuditType()==1?ReportProgressEnum.INNER_AUDIT:ReportProgressEnum.TECH_AUDIT);
+ //todo 新增项目组成员
+ AssPlanPerson planPerson=new AssPlanPerson().setPersonId(audit.getAssessorId())
+ .setPlayRole(audit.getAuditType()==1?PlayRoleEnum.INNER_LEADER.getCode():PlayRoleEnum.TEACH_LEADER.getCode())
+ .setProjectId(projectId);
+ planPersonService.addPlanPerson(planPerson);
+
+ }
+ return row;
+ }
+
+ public void checkAuditCount(Long projectId,Integer auditType){
+ //校验项目下勘验记录数量
+ int count= baseMapper.getCountByProjectId(projectId,auditType);
+ if(count>0){
+ throw new ApiException("项目下已存在审核记录");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editAudit(AssAudit audit) {
+ projectService.checkUserAllowed(audit.getProjectId());
+ AssAudit oldAudit=getById(audit.getId());
+ audit.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(audit);
+ if(row>0){
+ if(audit.getAssessorId()!=null&& !audit.getAssessorId().equals(oldAudit.getAssessorId())){
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(audit.getAssessorId()).setProjectId(oldAudit.getProjectId()));
+ //todo 删除旧的项目成员
+ planPersonService.deletePlanPersonByPersonId(oldAudit.getAssessorId());
+ //todo 新增新的项目成员
+ planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(audit.getAssessorId())
+ .setPlayRole(audit.getAuditType()==1?PlayRoleEnum.INNER_LEADER.getCode():PlayRoleEnum.TEACH_LEADER.getCode())
+ .setProjectId(audit.getProjectId()));
+ }
+ }
+ return row;
+ }
+
+ @Override
+ public AssAudit getAuditByProjectId(Long projectId, Integer auditType) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getAuditByProjectId(projectId,auditType);
+ }
+
+
+ @Override
+ public AssAudit getAuditById(Long auditId) {
+ AssAudit audit= baseMapper.getAuditById(auditId);
+ projectService.checkUserAllowed(audit.getProjectId());
+ return audit;
+ }
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java
new file mode 100644
index 0000000..646d7ac
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java
@@ -0,0 +1,86 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.enums.UserIdentityEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssConclusion;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssConclusionMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import com.gkhy.assess.system.service.AssConclusionService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 项目结论表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssConclusionServiceImpl extends ServiceImpl<AssConclusionMapper, AssConclusion> implements AssConclusionService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private AssAccessoryFileService accessoryFileService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addConclusion(AssConclusion conclusion) {
+ Long projectId=conclusion.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkConclusionCount(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.REVIEW_RECORD);
+ conclusion.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(conclusion);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.CONCLUSION);
+ }
+ return row;
+ }
+
+ public void checkConclusionCount(Long projectId){
+ //校验项目下评审结论数量
+ int count= baseMapper.getCountByProjectId(projectId);
+ if(count>0){
+ throw new ApiException("项目下已存在评审结论");
+ }
+ }
+
+ @Override
+ public int editConclusion(AssConclusion conclusion) {
+ projectService.checkUserAllowed(conclusion.getProjectId());
+ conclusion.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(conclusion);
+ return row;
+ }
+
+ @Override
+ public AssConclusion getConclusionByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ AssConclusion conclusion= baseMapper.getConclusionByProjectId(projectId);
+ conclusion.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.CONCLUSION.getCode()));
+ return conclusion;
+ }
+
+
+ @Override
+ public AssConclusion getConclusionById(Long conclusionId) {
+ AssConclusion conclusion= baseMapper.getConclusionById(conclusionId);
+ projectService.checkUserAllowed(conclusion.getProjectId());
+ return conclusion;
+ }
+
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConfirmFinalServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConfirmFinalServiceImpl.java
new file mode 100644
index 0000000..360a5c6
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConfirmFinalServiceImpl.java
@@ -0,0 +1,36 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.service.AssConfirmFinalService;
+import com.gkhy.assess.system.service.AssProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+
+/**
+ * <p>
+ * 确认完结服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-1-4 10:46:54
+ */
+@Service
+public class AssConfirmFinalServiceImpl implements AssConfirmFinalService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public void doConfirmFinal(Map map) {
+ Long projectId= Long.parseLong(map.get("projectId").toString());
+ projectService.checkUserAllowed(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.FACE_RECOGNITION);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.CONFIRM_FINAL);
+ }
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssContractServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssContractServiceImpl.java
new file mode 100644
index 0000000..fd0a8fa
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssContractServiceImpl.java
@@ -0,0 +1,75 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssContract;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssContractMapper;
+import com.gkhy.assess.system.service.AssContractService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 合同管理表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssContractServiceImpl extends ServiceImpl<AssContractMapper, AssContract> implements AssContractService {
+ @Autowired
+ private AssProjectService projectService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addContract(AssContract contract) {
+ Long projectId=contract.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkConstractCount(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId,ReportProgressEnum.RISK_ESTIMATE);
+ contract.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(contract);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.CONTRACT);
+ }
+ return row;
+ }
+
+ public void checkConstractCount(Long projectId){
+ //校验项目下风险评估数量
+ int contractCount= baseMapper.getCountByProjectId(projectId);
+ if(contractCount>0){
+ throw new ApiException("项目下已存在合同信息");
+ }
+ }
+
+ @Override
+ public int editContract(AssContract contract) {
+ projectService.checkUserAllowed(contract.getProjectId());
+ contract.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(contract);
+ return row;
+ }
+
+ @Override
+ public AssContract getContractByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getContractByProjectId(projectId);
+ }
+
+
+ @Override
+ public AssContract getContractById(Long contractId) {
+
+ AssContract contract= baseMapper.getContractById(contractId);
+ projectService.checkUserAllowed(contract.getProjectId());
+ return contract;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssDeviceServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssDeviceServiceImpl.java
new file mode 100644
index 0000000..69c900d
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssDeviceServiceImpl.java
@@ -0,0 +1,105 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssDevice;
+import com.gkhy.assess.system.mapper.AssDeviceMapper;
+import com.gkhy.assess.system.service.AssDeviceService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设备表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssDeviceServiceImpl extends ServiceImpl<AssDeviceMapper, AssDevice> implements AssDeviceService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public int addDevice(AssDevice device) {
+ projectService.checkUserAllowed(device.getProjectId());
+ if(!checkNameUnique(device)){
+ throw new ApiException("项目下已存在相同设备");
+ }
+ device.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(device);
+ return row;
+ }
+
+
+ @Override
+ public int editDevice(AssDevice device) {
+ projectService.checkUserAllowed(device.getProjectId());
+ if(!checkNameUnique(device)){
+ throw new ApiException("项目下已存在相同设备");
+ }
+ device.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(device);
+ return row;
+ }
+
+
+ @Override
+ public int deleteById(Long deviceId) {
+ AssDevice device=getById(deviceId);
+ if(device==null){
+ throw new ApiException("设备不存在");
+ }
+ projectService.checkUserAllowed(device.getProjectId());
+ device=new AssDevice().setId(deviceId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ device.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(device);
+ }
+
+ @Override
+ public AssDevice getDeviceById(Long deviceId) {
+ AssDevice device= getById(deviceId);
+ projectService.checkUserAllowed(device.getProjectId());
+ return device;
+ }
+
+ @Override
+ public boolean checkNameUnique(AssDevice device) {
+ LambdaQueryWrapper<AssDevice> lambdaQueryWrapper = Wrappers.<AssDevice>lambdaQuery()
+ .eq(AssDevice::getDeviceName, device.getDeviceName())
+ .eq(AssDevice::getDelFlag, DeleteFlagEnum.UN_DELETE)
+ .eq(AssDevice::getProjectId, device.getProjectId());
+ if(device.getId()!=null){
+ lambdaQueryWrapper.ne(AssDevice::getId,device.getId());
+ }
+ long contractCount= count(lambdaQueryWrapper);
+ if(contractCount>0){
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public List<AssDevice> getByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getDevicesByProjectId(projectId);
+ }
+
+ @Override
+ public int deleteByIds(List<Long> ids,Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.update(null,Wrappers.<AssDevice>lambdaUpdate()
+ .in(AssDevice::getId,ids)
+ .set(AssDevice::getDelFlag,DeleteFlagEnum.DELETED.getCode())
+ .set(AssDevice::getUpdateBy,ShiroUtils.getSysUser().getUsername()));
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimatePlanServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimatePlanServiceImpl.java
new file mode 100644
index 0000000..b402d2f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimatePlanServiceImpl.java
@@ -0,0 +1,108 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssEstimatePlan;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.enums.PlayRoleEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssEstimatePlanMapper;
+import com.gkhy.assess.system.service.*;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 评价项目计划表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssEstimatePlanServiceImpl extends ServiceImpl<AssEstimatePlanMapper, AssEstimatePlan> implements AssEstimatePlanService {
+ @Autowired
+ private AssProjectService projectService;
+
+ @Autowired
+ private AssEstimateScheduleService estimateScheduleService;
+
+ @Autowired
+ private AssPlanPersonService planPersonService;
+
+ @Autowired
+ private AssDeviceService deviceService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addEstimatePlan(AssEstimatePlan estimatePlan) {
+ Long projectId=estimatePlan.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkEstimatePlanCount(projectId);
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimatePlan.getAuserId()).setProjectId(projectId));
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.ESTIMATE_TASK);
+ estimatePlan.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(estimatePlan);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.ESTIMATE_PLAN);
+ //todo 机构负责人
+ planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(estimatePlan.getAuserId())
+ .setPlayRole(PlayRoleEnum.ANGENCY_LEADER.getCode())
+ .setProjectId(projectId));
+ }
+ //todo 新增评价日程安排
+ estimateScheduleService.saveBatch(estimatePlan.getEstimateSchedules());
+ return row;
+ }
+
+ public void checkEstimatePlanCount(Long projectId){
+ //校验项目下评价计划数量
+ int contractCount= baseMapper.getCountByProjectId(projectId);
+ if(contractCount>0){
+ throw new ApiException("项目下已存在评价计划信息");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editEstimatePlan(AssEstimatePlan estimatePlan) {
+ projectService.checkUserAllowed(estimatePlan.getProjectId());
+ AssEstimatePlan oldPlan=getById(estimatePlan.getId());
+ estimatePlan.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(estimatePlan);
+ if(row>0) {
+ if (estimatePlan.getAuserId() != null && !estimatePlan.getAuserId().equals(oldPlan.getAuserId())) {
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimatePlan.getAuserId()).setProjectId(oldPlan.getProjectId()));
+ //todo 删除旧的项目成员
+ planPersonService.deletePlanPersonByPersonId(oldPlan.getAuserId());
+ //todo 新增新的项目成员
+ planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(estimatePlan.getAuserId())
+ .setPlayRole(PlayRoleEnum.ANGENCY_LEADER.getCode())
+ .setProjectId(oldPlan.getProjectId()));
+ }
+ }
+ return row;
+ }
+
+ @Override
+ public AssEstimatePlan getEstimatePlanByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ AssEstimatePlan assEstimatePlan= baseMapper.getEstimatePlanByProjectId(projectId);
+ assEstimatePlan.setPlanPersons(planPersonService.getByProjectId(projectId));
+ assEstimatePlan.setEstimateSchedules(estimateScheduleService.getByProjectId(projectId));
+ assEstimatePlan.setDevices(deviceService.getByProjectId(projectId));
+ return assEstimatePlan;
+ }
+
+
+ @Override
+ public AssEstimatePlan getEstimatePlanById(Long estimatePlanId) {
+ AssEstimatePlan estimatePlan= baseMapper.getEstimatePlanById(estimatePlanId);
+ projectService.checkUserAllowed(estimatePlan.getProjectId());
+ return estimatePlan;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateScheduleServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateScheduleServiceImpl.java
new file mode 100644
index 0000000..5bcb70b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateScheduleServiceImpl.java
@@ -0,0 +1,71 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssEstimateSchedule;
+import com.gkhy.assess.system.mapper.AssEstimateScheduleMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssEstimateScheduleService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价日程安排表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssEstimateScheduleServiceImpl extends ServiceImpl<AssEstimateScheduleMapper, AssEstimateSchedule> implements AssEstimateScheduleService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public List<AssEstimateSchedule> getByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getEstimateScheduleByProjectId(projectId);
+ }
+
+
+ @Override
+ public int addSchedule(AssEstimateSchedule estimateSchedule) {
+ projectService.checkUserAllowed(estimateSchedule.getProjectId());
+ if(!checkNameUnique(estimateSchedule)){
+ throw new ApiException("项目下已存在该日程安排");
+ }
+ estimateSchedule.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.insert(estimateSchedule);
+ }
+
+ public boolean checkNameUnique(AssEstimateSchedule estimateSchedule) {
+ LambdaQueryWrapper<AssEstimateSchedule> lambdaQueryWrapper = Wrappers.<AssEstimateSchedule>lambdaQuery()
+ .eq(AssEstimateSchedule::getName, estimateSchedule.getName())
+ .eq(AssEstimateSchedule::getDelFlag, DeleteFlagEnum.UN_DELETE)
+ .eq(AssEstimateSchedule::getProjectId, estimateSchedule.getProjectId());
+ if(estimateSchedule.getId()!=null){
+ lambdaQueryWrapper.ne(AssEstimateSchedule::getId,estimateSchedule.getId());
+ }
+ long contractCount= count(lambdaQueryWrapper);
+ if(contractCount>0){
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int editSchedule(AssEstimateSchedule estimateSchedule) {
+ projectService.checkUserAllowed(estimateSchedule.getProjectId());
+ if(!checkNameUnique(estimateSchedule)){
+ throw new ApiException("项目下已存在该日程安排");
+ }
+ estimateSchedule.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(estimateSchedule);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateTaskServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateTaskServiceImpl.java
new file mode 100644
index 0000000..261bfd2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateTaskServiceImpl.java
@@ -0,0 +1,96 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssEstimateTask;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.enums.PlayRoleEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssEstimateTaskMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssEstimateTaskService;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 评价任务通知表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssEstimateTaskServiceImpl extends ServiceImpl<AssEstimateTaskMapper, AssEstimateTask> implements AssEstimateTaskService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private AssPlanPersonService planPersonService;
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addEstimateTask(AssEstimateTask estimateTask) {
+ Long projectId=estimateTask.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkTaskCount(projectId);
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimateTask.getLeaderId()).setProjectId(projectId));
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.CONTRACT);
+ estimateTask.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(estimateTask);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.ESTIMATE_TASK);
+ //todo 新增项目组成员
+ AssPlanPerson planPerson=new AssPlanPerson().setPersonId(estimateTask.getLeaderId())
+ .setPlayRole(PlayRoleEnum.PROJECT_LEADER.getCode())
+ .setProjectId(projectId);
+ planPersonService.addPlanPerson(planPerson);
+ }
+ return row;
+ }
+
+ public void checkTaskCount(Long projectId){
+ //校验项目下评价任务数量
+ int contractCount= baseMapper.getCountByProjectId(projectId);
+ if(contractCount>0){
+ throw new ApiException("项目下已存在评价任务数量");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editEstimateTask(AssEstimateTask estimateTask) {
+ projectService.checkUserAllowed(estimateTask.getProjectId());
+ AssEstimateTask oldTask=getById(estimateTask.getId());
+ estimateTask.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(estimateTask);
+ if(row>0 &&estimateTask.getLeaderId()!=null&& !estimateTask.getLeaderId().equals(oldTask.getLeaderId())){
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimateTask.getLeaderId()).setProjectId(oldTask.getProjectId()));
+ //todo 删除旧的项目成员
+ planPersonService.deletePlanPersonByPersonId(oldTask.getLeaderId());
+ //todo 新增新的项目成员
+ planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(estimateTask.getLeaderId())
+ .setPlayRole(PlayRoleEnum.PROJECT_LEADER.getCode())
+ .setProjectId(oldTask.getProjectId()));
+ }
+ return row;
+ }
+
+ @Override
+ public AssEstimateTask getEstimateTaskByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getTaskByProjectId(projectId);
+ }
+
+
+ @Override
+ public AssEstimateTask getEstimateTaskById(Long taskId) {
+ AssEstimateTask estimateTask= baseMapper.getTaskById(taskId);
+ projectService.checkUserAllowed(estimateTask.getProjectId());
+ return estimateTask;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
new file mode 100644
index 0000000..79215f3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
@@ -0,0 +1,131 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.common.utils.StringUtils;
+import com.gkhy.assess.system.domain.AssFaceRecognition;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssFaceRecognitionMapper;
+import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
+import com.gkhy.assess.system.service.AssFaceRecognitionService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.SysCommonService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 签字确认表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssFaceRecognitionServiceImpl extends ServiceImpl<AssFaceRecognitionMapper, AssFaceRecognition> implements AssFaceRecognitionService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private SysCommonService commonService;
+ @Autowired
+ private AssPlanPersonMapper planPersonMapper;
+
+ @Override
+ public int addFaceRecognition(AssFaceRecognition faceRecognition) {
+ int row=0;
+ projectService.checkUserAllowed(faceRecognition.getProjectId());
+ UploadObjectVO uploadObjectVO=commonService.doUpload(faceRecognition.getFile());
+ faceRecognition.setSignPath(uploadObjectVO.getPath());
+ AssFaceRecognition existRecord=checkFaceRecognitionUnique(faceRecognition.getPersonId(),faceRecognition.getProjectId());
+ if(existRecord!=null){
+ existRecord.setSignPath(faceRecognition.getSignPath());
+ existRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ row =baseMapper.updateById(existRecord);
+ }else{
+ faceRecognition.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ row=baseMapper.insert(faceRecognition);
+ }
+ return row;
+ }
+
+ @Override
+ public void doFaceRecognition(Map map) {
+ Long projectId= Long.parseLong(map.get("projectId").toString());
+ projectService.checkUserAllowed(projectId);
+ //todo 校验项目成员是否都完成了签字确认
+ checkAllFaceRecongnition(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.PROJECT_MATERIAL);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.FACE_RECOGNITION);
+ }
+
+ @Override
+ public Boolean checkAllFaceRecongnition(Long projectId){
+ projectService.checkUserAllowed(projectId);
+ List<AssPlanPerson> planPersonList=planPersonMapper.getAllPlanPersonByProjectId(projectId);
+ List<AssFaceRecognition> faceRecognitionList=baseMapper.getFaceRecognitionByProjectId(projectId);
+ Map<Long,AssFaceRecognition> map=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k1));
+ String message="";
+ for(AssPlanPerson planPerson:planPersonList){
+ if(map.get(planPerson.getPersonId())==null){
+ message=message+planPerson.getPerson().getName()+",";
+ }
+ }
+ if(StringUtils.isNotBlank(message)){
+ message=message+"未签字确认";
+ throw new ApiException(message);
+ }
+ return true;
+ }
+
+ public AssFaceRecognition checkFaceRecognitionUnique(Long personId,Long projectId){
+ LambdaQueryWrapper<AssFaceRecognition> lambdaQueryWrapper = Wrappers.<AssFaceRecognition>lambdaQuery()
+ .eq(AssFaceRecognition::getPersonId, personId)
+ .eq(AssFaceRecognition::getProjectId, projectId)
+ .eq(AssFaceRecognition::getDelFlag, DeleteFlagEnum.UN_DELETE);
+ return getOne(lambdaQueryWrapper);
+ }
+
+ @Override
+ public int editFaceRecognition(AssFaceRecognition faceRecognition) {
+ projectService.checkUserAllowed(faceRecognition.getProjectId());
+ faceRecognition.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(faceRecognition);
+ return row;
+ }
+
+ @Override
+ public List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getFaceRecognitionByProjectId(projectId);
+ }
+
+
+ @Override
+ public AssFaceRecognition getFaceRecognitionById(Long faceRecognitionId) {
+ AssFaceRecognition faceRecognition= baseMapper.getFaceRecognitionById(faceRecognitionId);
+ projectService.checkUserAllowed(faceRecognition.getProjectId());
+ return faceRecognition;
+ }
+
+ @Override
+ public AssFaceRecognition getRecognitionByPersonId(Long projectId, Long personId) {
+ projectService.checkUserAllowed(projectId);
+ return getOne(Wrappers.<AssFaceRecognition>lambdaQuery()
+ .eq(AssFaceRecognition::getPersonId,personId)
+ .eq(AssFaceRecognition::getProjectId,projectId)
+ .eq(AssFaceRecognition::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()));
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecordServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecordServiceImpl.java
new file mode 100644
index 0000000..1e4e9b3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecordServiceImpl.java
@@ -0,0 +1,87 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssFaceRecord;
+import com.gkhy.assess.system.mapper.AssFaceRecordMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
+import com.gkhy.assess.system.service.AssFaceRecordService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.SysCommonService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 现场勘验人员人脸识别记录表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssFaceRecordServiceImpl extends ServiceImpl<AssFaceRecordMapper, AssFaceRecord> implements AssFaceRecordService {
+ @Autowired
+ private SysCommonService commonService;
+ @Autowired
+ private AssProjectService projectService;
+
+ @Override
+ public int addFaceRecord(AssFaceRecord faceRecord) {
+ int row=0;
+ projectService.checkUserAllowed(faceRecord.getProjectId());
+ UploadObjectVO uploadObjectVO=commonService.doUpload(faceRecord.getFile());
+ faceRecord.setFacePath(uploadObjectVO.getPath());
+ AssFaceRecord existRecord=checkFaceUnique(faceRecord.getPersonId(),faceRecord.getProjectId());
+ if(existRecord!=null){
+ throw new ApiException("已存在人脸识别记录");
+// existRecord.setFacePath(uploadObjectVO.getPath());
+// existRecord.setLocation(faceRecord.getLocation());
+// existRecord.setScene(faceRecord.getScene());
+// row =baseMapper.updateById(existRecord);
+ }else{
+ faceRecord.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ row=baseMapper.insert(faceRecord);
+ }
+ return row;
+ }
+
+ public AssFaceRecord checkFaceUnique(Long personId,Long projectId) {
+ LambdaQueryWrapper<AssFaceRecord> lambdaQueryWrapper = Wrappers.<AssFaceRecord>lambdaQuery()
+ .eq(AssFaceRecord::getPersonId, personId)
+ .eq(AssFaceRecord::getProjectId, projectId)
+ .eq(AssFaceRecord::getDelFlag, DeleteFlagEnum.UN_DELETE);
+ return getOne(lambdaQueryWrapper);
+ }
+
+
+ @Override
+ public List<AssFaceRecord> faceRecordList(Long projectId,Integer scene) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.faceRecordList(projectId,scene);
+ }
+
+ @Override
+ public int editFaceRecord(AssFaceRecord faceRecord) {
+ projectService.checkUserAllowed(faceRecord.getProjectId());
+ faceRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(faceRecord);
+ return row;
+ }
+
+ @Override
+ public int deleteById(Long faceId) {
+ AssFaceRecord faceRecord=getById(faceId);
+ projectService.checkUserAllowed(faceRecord.getProjectId());
+ faceRecord=new AssFaceRecord().setId(faceId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ faceRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(faceRecord);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFilingApplyServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFilingApplyServiceImpl.java
new file mode 100644
index 0000000..5fde535
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFilingApplyServiceImpl.java
@@ -0,0 +1,66 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.system.domain.AssFilingApply;
+import com.gkhy.assess.system.mapper.AssFilingApplyMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssFilingApplyService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 报备申请表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssFilingApplyServiceImpl extends ServiceImpl<AssFilingApplyMapper, AssFilingApply> implements AssFilingApplyService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public int addFilingApply(AssFilingApply filingApply) {
+ projectService.checkUserAllowed(filingApply.getProjectId());
+ filingApply.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(filingApply);
+ return row;
+ }
+
+ @Override
+ public int editFilingApply(AssFilingApply filingApply) {
+ projectService.checkUserAllowed(filingApply.getProjectId());
+ filingApply.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(filingApply);
+ return row;
+ }
+
+ @Override
+ public List<AssFilingApply> getFilingApplyByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getFilingApplyByProjectId(projectId);
+ }
+
+ @Override
+ public int deleteById(Long filingApplyId) {
+ AssFilingApply filingApply=getById(filingApplyId);
+ projectService.checkUserAllowed(filingApply.getProjectId());
+ filingApply=new AssFilingApply().setId(filingApplyId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ filingApply.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(filingApply);
+ return row;
+ }
+
+ @Override
+ public AssFilingApply getFilingApplyById(Long filingApplyId) {
+ AssFilingApply filingApply=getById(filingApplyId);
+ projectService.checkUserAllowed(filingApply.getProjectId());
+ return filingApply;
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java
new file mode 100644
index 0000000..97c7212
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java
@@ -0,0 +1,125 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.enums.RequestSourceEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssInvestigation;
+import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssInvestigationMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import com.gkhy.assess.system.service.AssInvestigationService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 现场勘验记录表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssInvestigationServiceImpl extends ServiceImpl<AssInvestigationMapper, AssInvestigation> implements AssInvestigationService {
+
+ @Autowired
+ private AssProjectService projectService;
+
+ @Autowired
+ private AssAccessoryFileService accessoryFileService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addInvestigation(AssInvestigation investigation,String requestSourceType) {
+ Long projectId=investigation.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkInvestigationCount(projectId);
+ investigation.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ if(investigation.getIsSafetyCheck()!=null&&investigation.getIsSafetyCheck()==1){
+ Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode());
+ if(fileCount==0){
+ throw new ApiException("未上传现场安全检查表");
+ }
+ }
+ //校验图片数量
+ Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode());
+ if(fileCount==0){
+ throw new ApiException("主要装置前的合影照片不能为空");
+ }
+ fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode());
+ if(fileCount==0){
+ throw new ApiException("现场勘验照片照片不能为空");
+ }
+ fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode());
+ if(fileCount==0){
+ throw new ApiException("现场勘验人员与企业陪同人员图片不能为空");
+ }
+// fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode());
+// if(fileCount==0){
+// throw new ApiException("现场勘验视频不能为空");
+// }
+ int row=baseMapper.insert(investigation);
+ if(requestSourceType== RequestSourceEnum.WEB.getCode()){
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION);
+ }
+ //校验项目状态
+// projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
+// int row=baseMapper.insert(investigation);
+// if(row>0 && (investigation.getState()==null||!investigation.getState().equals(ApproveStatusEnum.TEMPORARY.getCode()))) {
+// //更新项目状态
+// projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION);
+// }
+ return row;
+ }
+
+ public void checkInvestigationCount(Long projectId){
+ //校验项目下勘验记录数量
+ int count= baseMapper.getCountByProjectId(projectId);
+ if(count>0){
+ throw new ApiException("项目下已存在现场勘验记录");
+ }
+ }
+
+ @Override
+ public int editInvestigation(AssInvestigation investigation) {
+ projectService.checkUserAllowed(investigation.getProjectId());
+ investigation.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(investigation);
+ return row;
+ }
+
+ @Override
+ public AssInvestigation getInvestigationByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ AssInvestigation investigation= baseMapper.getInvestigationByProjectId(projectId);
+ investigation.setAssAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode()));
+ investigation.setCcompanyImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode()));
+ investigation.setDeviceImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode()));
+ investigation.setInvestingationImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode()));
+ investigation.setInvestingationVideos(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode()));
+
+ return investigation;
+ }
+
+
+ @Override
+ public AssInvestigation getInvestigationById(Long investigationId) {
+ return baseMapper.getInvestigationById(investigationId);
+ }
+
+ @Override
+ public void doInvestigationProcess(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java
new file mode 100644
index 0000000..b8fbf46
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java
@@ -0,0 +1,105 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.common.utils.StringUtils;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.enums.PlayRoleEnum;
+import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 评价项目组成员表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssPlanPersonServiceImpl extends ServiceImpl<AssPlanPersonMapper, AssPlanPerson> implements AssPlanPersonService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public List<AssPlanPerson> getByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getPlanPersonByProjectId(projectId);
+ }
+
+
+ @Override
+ public int addPlanPerson(AssPlanPerson planPerson) {
+ projectService.checkUserAllowed(planPerson.getProjectId());
+ checkPersonUnique(planPerson);
+ planPerson.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.insert(planPerson);
+ }
+
+
+ @Override
+ public void checkPersonUnique(AssPlanPerson planPerson) {
+ LambdaQueryWrapper<AssPlanPerson> lambdaQueryWrapper = Wrappers.<AssPlanPerson>lambdaQuery()
+ .eq(AssPlanPerson::getPersonId, planPerson.getPersonId())
+ .eq(AssPlanPerson::getDelFlag, DeleteFlagEnum.UN_DELETE)
+ .eq(AssPlanPerson::getProjectId, planPerson.getProjectId());
+ if(planPerson.getId()!=null){
+ lambdaQueryWrapper.ne(AssPlanPerson::getId,planPerson.getId());
+ }
+ AssPlanPerson pPerson= getOne(lambdaQueryWrapper);
+ if(pPerson!=null){
+ PlayRoleEnum playRoleEnum=PlayRoleEnum.getInfoByCode(pPerson.getPlayRole());
+ String message=playRoleEnum!=null?playRoleEnum.getInfo():"";
+ if(StringUtils.isBlank(message)){
+ message="改用户已存在";
+ }else{
+ message="该用户已担任"+message;
+ }
+ throw new ApiException(message);
+ }
+ }
+
+ @Override
+ public AssPlanPerson getPlanPersonByPersonId(Long personId,Long projectId) {
+ return getOne(Wrappers.<AssPlanPerson>lambdaQuery()
+ .eq(AssPlanPerson::getPersonId,personId)
+ .eq(AssPlanPerson::getDelFlag,DeleteFlagEnum.UN_DELETE.getCode())
+ .eq(AssPlanPerson::getProjectId,projectId));
+ }
+
+ @Override
+ public int editPlanPerson(AssPlanPerson planPerson) {
+ projectService.checkUserAllowed(planPerson.getProjectId());
+ if(planPerson.getPersonId()!=null){
+ checkPersonUnique(planPerson);
+ }
+ planPerson.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(planPerson);
+ }
+
+ @Override
+ public int deletePlanPersonById(Long planPersonId) {
+ AssPlanPerson planPerson=getById(planPersonId);
+ projectService.checkUserAllowed(planPerson.getProjectId());
+ planPerson=new AssPlanPerson().setId(planPersonId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ planPerson.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(planPerson);
+ }
+
+ @Override
+ public int deletePlanPersonByPersonId(Long personId) {
+ return baseMapper.update(null,Wrappers.<AssPlanPerson>lambdaUpdate()
+ .set(AssPlanPerson::getDelFlag,DeleteFlagEnum.DELETED.getCode())
+ .set(AssPlanPerson::getUpdateBy,ShiroUtils.getSysUser().getUsername())
+ .eq(AssPlanPerson::getPersonId,personId));
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java
new file mode 100644
index 0000000..a6f1b86
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java
@@ -0,0 +1,101 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.domain.AssProcessAudit;
+import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
+import com.gkhy.assess.system.enums.PlayRoleEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssProcessAuditMapper;
+import com.gkhy.assess.system.service.AssAccessoryFileService;
+import com.gkhy.assess.system.service.AssPlanPersonService;
+import com.gkhy.assess.system.service.AssProcessAuditService;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 过程控制负责人审核表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssProcessAuditServiceImpl extends ServiceImpl<AssProcessAuditMapper, AssProcessAudit> implements AssProcessAuditService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private AssPlanPersonService planPersonService;
+ @Autowired
+ private AssAccessoryFileService accessoryFileService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addProcessAudit(AssProcessAudit processAudit) {
+ Long projectId=processAudit.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkProcessAuditCount(projectId);
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId()).setProjectId(projectId));
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.CONCLUSION);
+ processAudit.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(processAudit);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.PROCESS_AUDIT);
+ //todo 新增项目组成员
+ AssPlanPerson planPerson=new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId())
+ .setPlayRole(PlayRoleEnum.PROCESS_LEADER.getCode())
+ .setProjectId(projectId);
+ planPersonService.addPlanPerson(planPerson);
+ }
+ return row;
+ }
+
+ public void checkProcessAuditCount(Long projectId){
+ //校验项目下过程控制数量
+ int count= baseMapper.getCountByProjectId(projectId);
+ if(count>0){
+ throw new ApiException("项目下已存在过程控制");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editProcessAudit(AssProcessAudit processAudit) {
+ projectService.checkUserAllowed(processAudit.getProjectId());
+ AssProcessAudit oldProcess=getById(processAudit.getId());
+ processAudit.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(processAudit);
+ if(row>0 && processAudit.getProcessLeaderId()!=null&& !processAudit.getProcessLeaderId().equals(oldProcess.getProcessLeaderId())){
+ planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId()).setProjectId(oldProcess.getProjectId()));
+ //todo 删除旧的项目成员
+ planPersonService.deletePlanPersonByPersonId(oldProcess.getProcessLeaderId());
+ //todo 新增新的项目成员
+ planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId())
+ .setPlayRole(PlayRoleEnum.PROCESS_LEADER.getCode())
+ .setProjectId(oldProcess.getProjectId()));
+ }
+ return row;
+ }
+
+ @Override
+ public AssProcessAudit getProcessAuditByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ AssProcessAudit processAudit= baseMapper.getProcessAuditByProjectId(projectId);
+ processAudit.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.PROCESS_ATTACHMENT.getCode()));
+ return processAudit;
+ }
+
+
+ @Override
+ public AssProcessAudit getProcessAuditById(Long processAuditId) {
+ return baseMapper.getProcessAuditById(processAuditId);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectMaterialServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectMaterialServiceImpl.java
new file mode 100644
index 0000000..22faebb
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectMaterialServiceImpl.java
@@ -0,0 +1,91 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssContract;
+import com.gkhy.assess.system.domain.AssProjectMaterial;
+import com.gkhy.assess.system.domain.vo.ProjectMaterialVO;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssProjectMaterialMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssContractService;
+import com.gkhy.assess.system.service.AssProjectMaterialService;
+import com.gkhy.assess.system.service.AssProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目归档文件表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssProjectMaterialServiceImpl extends ServiceImpl<AssProjectMaterialMapper, AssProjectMaterial> implements AssProjectMaterialService {
+
+ @Autowired
+ private AssProjectService projectService;
+ @Autowired
+ private AssContractService contractService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addProjectMaterial(ProjectMaterialVO projectMaterialVO) {
+ List<AssProjectMaterial> projectMaterials=projectMaterialVO.getProjectMaterials();
+ Long projectId=projectMaterialVO.getProjectId();
+ if(projectMaterials==null||projectMaterials.size()!=3){
+ throw new ApiException("项目归档为空或者项目归档数量不正确");
+ }
+ projectService.checkUserAllowed(projectId);
+ checkProjectMaterialCount(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.PROCESS_AUDIT);
+ boolean b=saveBatch(projectMaterials);
+ if(b) {
+ //更新合同
+ AssContract contract= projectMaterialVO.getContract();
+ contractService.updateById(contract);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.PROJECT_MATERIAL);
+ }
+ return 1;
+ }
+
+ public void checkProjectMaterialCount(Long projectId){
+ //校验项目下项目归档数量
+ int count= baseMapper.getCountByProjectId(projectId);
+ if(count>0){
+ throw new ApiException("项目下已存在项目归档");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editProjectMaterial(ProjectMaterialVO projectMaterialVO) {
+ Long projectId=projectMaterialVO.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ boolean b=updateBatchById(projectMaterialVO.getProjectMaterials());
+ if(b){
+ //更新合同
+ AssContract contract= projectMaterialVO.getContract();
+ contractService.updateById(contract);
+ }
+ return 1;
+ }
+
+ @Override
+ public List<AssProjectMaterial> getProjectMaterialByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getProjectMaterialByProjectId(projectId);
+ }
+
+
+ @Override
+ public AssProjectMaterial getProjectMaterialById(Long projectMaterialId) {
+ return baseMapper.getProjectMaterialById(projectMaterialId);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
new file mode 100644
index 0000000..baec209
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java
@@ -0,0 +1,249 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.enums.UserIdentityEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.common.utils.PageUtil;
+import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.domain.vo.ProjectStaticVO;
+import com.gkhy.assess.system.enums.ProgressPhaseEnum;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
+import com.gkhy.assess.system.mapper.AssProjectMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 项目表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-11 14:16:18
+ */
+@Service
+public class AssProjectServiceImpl extends ServiceImpl<AssProjectMapper, AssProject> implements AssProjectService {
+ @Autowired
+ private AssPlanPersonMapper planPersonMapper;
+
+ @Override
+ public CommonPage projectList(AssProject project) {
+ SysUser user= ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ //机构用户只能查看本机构的项目
+ if(user.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ project.setAgencyId(user.getAgencyId());
+ }
+ PageUtil.startPage();
+ List<AssProject> projects=baseMapper.projectList(project);
+ //获取签字确认人数
+ return CommonPage.restPage(projects);
+ }
+
+ @Override
+ public AssProject getProjectById(Long projectId) {
+ return baseMapper.getProjectById(projectId);
+ }
+
+ @Override
+ public int addProject(AssProject project) {
+ //todo 校验用户,只有机构账号有权限创建项目
+ SysUser user= ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())){
+ throw new ApiException("无权操作,只有机构用户可以创建项目");
+ }
+ if(user.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ if(!checkNameUnique(project)){
+ throw new ApiException("项目名已存在");
+ }
+ project.setAgencyId(user.getAgencyId());
+ project.setReportProgress(ReportProgressEnum.ADD.getCode());
+ project.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(project);
+ return row;
+ }
+
+ @Override
+ public int deleteProjectById(Long projectId) {
+ //todo 权限校验
+ SysUser user= ShiroUtils.getSysUser();
+ checkUserAllowed(projectId);
+ AssProject project=new AssProject()
+ .setId(projectId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ project.setUpdateBy(user.getUsername());
+ return baseMapper.updateById(project);
+ }
+
+ @Override
+ public int editProject(AssProject project) {
+ Long projectId=project.getId();
+ if(projectId==null){
+ throw new ApiException("项目id不能为空");
+ }
+ checkUserAllowed(projectId);
+ if(!checkNameUnique(project)){
+ throw new ApiException("项目名已存在");
+ }
+ project.setAgencyId(null);//机构id不能修改
+ project.setReportProgress(null);//项目状态不能修改
+ project.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(project);
+ return row;
+ }
+
+ @Override
+ public AssProject checkProjectDataScope(Long projectId) {
+ return null;
+ }
+
+ @Override
+ public Integer getProjectReportProgress(Long projectId) {
+ checkUserAllowed(projectId);
+ return baseMapper.getReportProgress(projectId);
+ }
+
+
+ @Override
+ public boolean checkNameUnique(AssProject project) {
+ Long projectId = project.getId()==null? -1L : project.getId();
+ AssProject pro = baseMapper.getProjectByName(project.getName());
+ if (pro!=null && pro.getId().longValue() != projectId.longValue())
+ {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void checkReportProgress(Long projectId, ReportProgressEnum reportProgressEnum) {
+ Integer reportProgress= getProjectReportProgress(projectId);
+ if(reportProgressEnum.getCode()!=reportProgress){
+ throw new ApiException(String.format("项目状态不是%s,不能操作", reportProgressEnum.getInfo()));
+ }
+ }
+
+ @Override
+ public int changeReportProgress(Long projectId, ReportProgressEnum reportProgressEnum) {
+ AssProject project=new AssProject().setId(projectId)
+ .setReportProgress(reportProgressEnum.getCode())
+ .setPhase(ProgressPhaseEnum.getPhaseByProcess(reportProgressEnum.getCode()));
+ project.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ if(reportProgressEnum.getCode().equals(ReportProgressEnum.CONFIRM_FINAL.getCode())){
+ project.setFilingDate(LocalDateTime.now());
+ }
+ return baseMapper.updateById(project);
+ }
+
+ @Override
+ public CommonPage memberProjects(Long personId, Integer finish) {
+ SysUser user= ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.EXPERT.getCode())){
+ throw new ApiException("无权限,只有专家用户才能操作");
+ }
+
+ PageUtil.startPage();
+ List<AssProject> projects=baseMapper.getMemberProjectByUserId(personId,finish,user.getAgencyId());
+ if(projects.size()>0) {
+ getProjectPlanPerson(projects);
+ }
+ return CommonPage.restPage(projects);
+ }
+
+ @Override
+ public CommonPage leaderProjects(Long personId) {
+ SysUser user= ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.EXPERT.getCode())){
+ throw new ApiException("无权限,只有专家用户才能操作");
+ }
+ PageUtil.startPage();
+ List<AssProject> projects=baseMapper.getLeaderProjectByUserId(personId,user.getAgencyId());
+ return CommonPage.restPage(projects);
+ }
+
+ private void getProjectPlanPerson(List<AssProject> projects){
+ List<Long> planPersonIds=projects.stream().map(AssProject::getPlanPersonId).collect(Collectors.toList());
+ List<AssPlanPerson> planPersonList=planPersonMapper.getPlanPersonsByIds(planPersonIds);
+ Map<Long,AssPlanPerson> maps=planPersonList.stream().collect(Collectors.toMap(AssPlanPerson::getId,a -> a));
+ for(AssProject project:projects){
+ project.setPlanPerson(maps.get(project.getPlanPersonId()));
+ }
+ }
+
+ @Override
+ public ProjectStaticVO projectStat(AssProject project) {
+ SysUser user=ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ if(user.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ project.setAgencyId(user.getAgencyId());
+ }
+ Integer projectTotal=baseMapper.getProjectCount(project);
+ project.setPhase(ProgressPhaseEnum.RISK.getCode());
+ Integer riskTotal=baseMapper.getProjectCount(project);
+
+ project.setPhase(ProgressPhaseEnum.INVESTIGATION.getCode());
+ Integer investigationTotal=baseMapper.getProjectCount(project);
+
+ project.setPhase(ProgressPhaseEnum.REVIEW.getCode());
+ Integer reviewTotal=baseMapper.getProjectCount(project);
+
+ project.setPhase(ProgressPhaseEnum.REPORT.getCode());
+ Integer reportTotal=baseMapper.getProjectCount(project);
+
+ project.setPhase(ProgressPhaseEnum.ARCHIVE.getCode());
+ Integer archiveTotal=baseMapper.getProjectCount(project);
+
+ ProjectStaticVO projectStaticVO=new ProjectStaticVO()
+ .setProjectTotal(projectTotal)
+ .setRiskTotal(riskTotal)
+ .setInvestigationTotal(investigationTotal)
+ .setReviewTotal(reviewTotal)
+ .setReportTotal(reportTotal)
+ .setArchiveTotal(archiveTotal);
+ return projectStaticVO;
+ }
+
+ @Override
+ public Long getProjectAgencyId(Long projectId) {
+ AssProject project=getOne(Wrappers.<AssProject>lambdaQuery()
+ .select(AssProject::getAgencyId)
+ .eq(AssProject::getId,projectId)
+ .eq(AssProject::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()));
+ if(project==null){
+ throw new ApiException("项目不存在");
+ }
+ return project.getAgencyId();
+ }
+
+ @Override
+ public void checkUserAllowed(Long projectId) {
+ if(projectId==null){
+ throw new ApiException("项目id不能为空");
+ }
+ SysUser currentUser=ShiroUtils.getSysUser();
+ if(!Objects.equals(currentUser.getIdentity(),UserIdentityEnum.MONITOR.getCode())){
+ if(!Objects.equals(currentUser.getAgencyId(), getProjectAgencyId(projectId))){
+ throw new ApiException("没有权限操作其他机构数据");
+ }
+ }
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRecitificationServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRecitificationServiceImpl.java
new file mode 100644
index 0000000..7a156c2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRecitificationServiceImpl.java
@@ -0,0 +1,69 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
+import com.gkhy.assess.common.utils.PageUtil;
+import com.gkhy.assess.system.domain.AssProcessAudit;
+import com.gkhy.assess.system.domain.AssRecitification;
+import com.gkhy.assess.system.mapper.AssRecitificationMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.AssRecitificationService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目整改情况说明表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssRecitificationServiceImpl extends ServiceImpl<AssRecitificationMapper, AssRecitification> implements AssRecitificationService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public CommonPage recitificationList(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ PageUtil.startPage();
+ List<AssRecitification> recitifications=baseMapper.recitificationList(projectId);
+ return CommonPage.restPage(recitifications);
+ }
+
+ @Override
+ public int addRecitification(AssRecitification recitification) {
+ projectService.checkUserAllowed(recitification.getProjectId());
+ recitification.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(recitification);
+ return row;
+ }
+
+ @Override
+ public int editRecitification(AssRecitification recitification) {
+ projectService.checkUserAllowed(recitification.getProjectId());
+ recitification.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(recitification);
+ return row;
+ }
+
+ @Override
+ public int deleteById(Long recitificationId) {
+ AssRecitification recitification=getById(recitificationId);
+ projectService.checkUserAllowed(recitification.getProjectId());
+ recitification=new AssRecitification()
+ .setId(recitificationId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ recitification.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(recitification);
+ }
+
+ @Override
+ public AssRecitification getRecitificationById(Long recitificationId) {
+ return getById(recitificationId);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssReviewRecordServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssReviewRecordServiceImpl.java
new file mode 100644
index 0000000..224f303
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssReviewRecordServiceImpl.java
@@ -0,0 +1,24 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.AssReviewRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+@Service
+public class AssReviewRecordServiceImpl implements AssReviewRecordService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ public void doReview(Map map) {
+ Long projectId= Long.parseLong(map.get("projectId").toString());
+ projectService.checkUserAllowed(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.TECH_AUDIT);
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.REVIEW_RECORD);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRiskEstimateServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRiskEstimateServiceImpl.java
new file mode 100644
index 0000000..735c168
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssRiskEstimateServiceImpl.java
@@ -0,0 +1,89 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssProject;
+import com.gkhy.assess.system.domain.AssRiskEstimate;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssRiskEstimateMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.AssRiskEstimateService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 风险评估表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssRiskEstimateServiceImpl extends ServiceImpl<AssRiskEstimateMapper, AssRiskEstimate> implements AssRiskEstimateService {
+ @Autowired
+ private AssProjectService projectService;
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public Long addRiskEstimate(AssRiskEstimate riskEstimate) {
+ SysUser user= ShiroUtils.getSysUser();
+ if(user.getAgencyId()==null){
+ throw new ApiException("无权操作,只有机构用户有权操作");
+ }
+ AssProject project=riskEstimate.getProject();
+ project.setAgencyId(user.getAgencyId());
+ projectService.addProject(project);
+ Long projectId=project.getId();
+ riskEstimate.setProjectId(projectId);
+ riskEstimate.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(riskEstimate);
+ if(row>0){
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.RISK_ESTIMATE);
+ }
+ return projectId;
+ }
+
+ public void checkRiskEstimateCount(Long projectId){
+ //校验项目下风险评估数量
+ int contractCount= baseMapper.getCountByProjectId(projectId);
+ if(contractCount>0){
+ throw new ApiException("项目下已存在风险评估信息");
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editRiskEstimate(AssRiskEstimate riskEstimate) {
+ AssProject project=riskEstimate.getProject();
+ projectService.editProject(project);
+ Long riskId=riskEstimate.getId();
+ if(riskId==null){
+ throw new ApiException("项目风险分析id不能为空");
+ }
+ riskEstimate.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(riskEstimate);
+ return row;
+ }
+
+ @Override
+ public AssRiskEstimate getRiskEstimateByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ AssRiskEstimate riskEstimate= baseMapper.getRiskEstimateByProjectId(projectId);
+ if(riskEstimate==null){
+ throw new ApiException("项目风险分析不存在");
+ }
+ riskEstimate.setProject(projectService.getProjectById(riskEstimate.getProjectId()));
+ return riskEstimate;
+ }
+
+
+ @Override
+ public AssRiskEstimate getRiskEstimateById(Long riskId) {
+ return baseMapper.getRiskEstimateById(riskId);
+ }
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java
new file mode 100644
index 0000000..b422bac
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssWorkNotificationServiceImpl.java
@@ -0,0 +1,71 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssWorkNotification;
+import com.gkhy.assess.system.enums.ReportProgressEnum;
+import com.gkhy.assess.system.mapper.AssWorkNotificationMapper;
+import com.gkhy.assess.system.service.AssProjectService;
+import com.gkhy.assess.system.service.AssWorkNotificationService;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 从业告知表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-12-12 10:46:54
+ */
+@Service
+public class AssWorkNotificationServiceImpl extends ServiceImpl<AssWorkNotificationMapper, AssWorkNotification> implements AssWorkNotificationService {
+ @Autowired
+ private AssProjectService projectService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addWorkNotification(AssWorkNotification workNotification) {
+ Long projectId=workNotification.getProjectId();
+ projectService.checkUserAllowed(projectId);
+ checkWorkNotificationCount(projectId);
+ //校验项目状态
+ projectService.checkReportProgress(projectId, ReportProgressEnum.ESTIMATE_PLAN);
+ workNotification.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.insert(workNotification);
+ if(row>0) {
+ //更新项目状态
+ projectService.changeReportProgress(projectId,ReportProgressEnum.WORK_NOTIFICATION);
+ }
+ return row;
+ }
+
+ public void checkWorkNotificationCount(Long projectId){
+ //校验项目下从业告知数量
+ int count= baseMapper.getCountByProjectId(projectId);
+ if(count>0){
+ throw new ApiException("项目下已存在从业告知");
+ }
+ }
+
+ @Override
+ public int editWorkNotification(AssWorkNotification workNotification) {
+ projectService.checkUserAllowed(workNotification.getProjectId());
+ workNotification.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(workNotification);
+ return row;
+ }
+
+ @Override
+ public AssWorkNotification getWorkNotificationByProjectId(Long projectId) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getWorkNotificationByProjectId(projectId);
+ }
+
+ @Override
+ public AssWorkNotification getWorkNotificationById(Long workNotificationId) {
+ return baseMapper.getWorkNotificationById(workNotificationId);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAgencyServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAgencyServiceImpl.java
index 65803ab..6ce89ad 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAgencyServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAgencyServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.system.domain.SysAgency;
@@ -58,6 +59,14 @@
return updateById(ay);
}
+ @Override
+ public int deleteAgencyById(Long agencyId) {
+ SysAgency agency=new SysAgency().setId(agencyId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return baseMapper.updateById(agency);
+ }
+
public SysAgency checkAgencyDataScope(Long agencyId) {
if(agencyId==null){
throw new ApiException("机构id为空!");
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
index 24130a5..5bac989 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysAttachServiceImpl.java
@@ -29,5 +29,10 @@
return baseMapper.deleteAttachsByUserId(userId,type);
}
+ @Override
+ public int deleteAttachsByIds(List<Long> ids) {
+ return baseMapper.deleteAttachsByIds(ids);
+ }
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
index 25f68bd..c957622 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java
@@ -7,10 +7,9 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
+import sun.misc.BASE64Decoder;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
+import java.io.*;
import java.util.Date;
import java.util.UUID;
@@ -22,6 +21,9 @@
@Override
public UploadObjectVO uploadFile(MultipartFile file) {
+ if(file==null){
+ throw new ApiException("上传文件不能为空");
+ }
UploadObjectVO uploadObjectVO=doUpload(file);
return uploadObjectVO;
}
@@ -41,8 +43,10 @@
return true;
}
+ @Override
public UploadObjectVO doUpload(MultipartFile file){
- String filename=file.getOriginalFilename();
+ String originName=file.getOriginalFilename();
+ String filename=originName;
String subfix=filename.substring(filename.lastIndexOf("."));
filename= UUID.randomUUID().toString().replace("-","")+subfix;
String systemDir=System.getProperty("user.dir");
@@ -62,24 +66,47 @@
}
filePath=filePath.replace("\\","/");
UploadObjectVO uploadObjectVO=new UploadObjectVO().setFilename(filename)
- .setPath(filePath);
+ .setPath(filePath).setOriginName(originName);
return uploadObjectVO;
}
-
- public boolean checkImageType(String subfix){
- if(".jpg".equalsIgnoreCase(subfix)||
- ".jpeg".equalsIgnoreCase(subfix)||
- ".png".equalsIgnoreCase(subfix)||
- ".bmp".equalsIgnoreCase(subfix)||
- ".tif".equalsIgnoreCase(subfix)||
- ".jfif".equalsIgnoreCase(subfix)||
- ".webp".equalsIgnoreCase(subfix)||
- ".gif".equalsIgnoreCase(subfix)
- ){
- return true;
+ @Override
+ public UploadObjectVO doUpload(String imageBase64) {
+ String originName="";
+ String filename=originName;
+ String subfix=".png";
+ filename= UUID.randomUUID().toString().replace("-","")+subfix;
+ String systemDir=System.getProperty("user.dir");
+ String dateStr= DateUtil.format(new Date(),"yyyyMMdd");
+ String filePath=uploadPath+File.separator+dateStr;
+ File dirFile=new File(filePath);
+ if(!dirFile.exists()){
+ dirFile.mkdirs();
}
- return false;
+ filePath=filePath+File.separator+filename;
+ BASE64Decoder decoder = new BASE64Decoder();
+ try {
+ // Base64解码
+ byte[] bytes = decoder.decodeBuffer(imageBase64);
+ for (int i = 0; i < bytes.length; ++i) {
+ if (bytes[i] < 0) {// 调整异常数据
+ bytes[i] += 256;
+ }
+ }
+ // 生成jpeg图片
+ OutputStream out = new FileOutputStream(systemDir+File.separator+filePath);
+ out.write(bytes);
+ out.flush();
+ out.close();
+ } catch (FileNotFoundException e) {
+ throw new ApiException("找不到文件");
+ } catch (IOException e) {
+ throw new ApiException("发生错误,请联系管理员");
+ }
+ filePath=filePath.replace("\\","/");
+ UploadObjectVO uploadObjectVO=new UploadObjectVO().setFilename(filename)
+ .setPath(filePath).setOriginName(originName);
+ return uploadObjectVO;
}
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictDataServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictDataServiceImpl.java
index 0cf0828..c7aa3fc 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictDataServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictDataServiceImpl.java
@@ -1,12 +1,16 @@
package com.gkhy.assess.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.system.domain.SysDictData;
import com.gkhy.assess.system.mapper.SysDictDataMapper;
import com.gkhy.assess.system.service.SysDictDataService;
+import com.gkhy.assess.system.utils.ShiroUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -29,6 +33,10 @@
@Override
public int addDictData(SysDictData dictData) {
+ if(!checkDictDataUnique(dictData)){
+ throw new ApiException("已存在相同字典数据");
+ }
+ dictData.setCreateBy(ShiroUtils.getSysUser().getUsername());
boolean b=save(dictData);
if(!b){
throw new ApiException("新增字典数据失败");
@@ -36,8 +44,27 @@
return 1;
}
+ public boolean checkDictDataUnique(SysDictData dictData) {
+ LambdaQueryWrapper<SysDictData> lambdaQueryWrapper = Wrappers.<SysDictData>lambdaQuery()
+ .eq(SysDictData::getDictType, dictData.getDictType())
+ .eq(SysDictData::getDelFlag, DeleteFlagEnum.UN_DELETE)
+ .eq(SysDictData::getLabel, dictData.getLabel());
+ if(dictData.getId()!=null){
+ lambdaQueryWrapper.ne(SysDictData::getId,dictData.getId());
+ }
+ long existCount= count(lambdaQueryWrapper);
+ if(existCount>0){
+ return false;
+ }
+ return true;
+ }
+
@Override
public int editDictData(SysDictData dictData) {
+ if(!checkDictDataUnique(dictData)){
+ throw new ApiException("已存在相同字典数据");
+ }
+ dictData.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(dictData);
if(!b){
throw new ApiException("修改字典数据失败");
@@ -47,7 +74,10 @@
@Override
public int deleteDictDataById(Long dictId) {
- boolean b=removeById(dictId);
+ SysDictData sysDictData=new SysDictData().setId(dictId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ sysDictData.setUpdateBy(ShiroUtils.getSysUser().getName());
+ boolean b=updateById(sysDictData);
if(!b){
throw new ApiException("删除字典数据失败");
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictTypeServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictTypeServiceImpl.java
index f26be53..b088ff1 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictTypeServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysDictTypeServiceImpl.java
@@ -1,20 +1,21 @@
package com.gkhy.assess.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.system.domain.SysDictData;
import com.gkhy.assess.system.domain.SysDictType;
-import com.gkhy.assess.system.domain.SysLaw;
import com.gkhy.assess.system.mapper.SysDictDataMapper;
import com.gkhy.assess.system.mapper.SysDictTypeMapper;
import com.gkhy.assess.system.service.SysDictTypeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.system.utils.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -45,6 +46,10 @@
@Override
public int addDictType(SysDictType dictType) {
+ if(!checkDictTypeUnique(dictType)){
+ throw new ApiException("新增字典类型已存在");
+ }
+ dictType.setCreateBy(ShiroUtils.getSysUser().getUsername());
boolean b=save(dictType);
if(!b){
throw new ApiException("新增字典类型失败");
@@ -55,8 +60,12 @@
@Override
// @Transactional(rollbackFor = RuntimeException.class)
public int editDictType(SysDictType dict) {
+ if(!checkDictTypeUnique(dict)){
+ throw new ApiException("字典类型已存在");
+ }
SysDictType oldDict= baseMapper.getDictTypeById(dict.getId());
dict.setDictType(oldDict.getDictType());//字典类型不能修改
+ dict.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(dict);
if(!b){
throw new ApiException("修改数据字典类型失败");
@@ -70,7 +79,10 @@
if(dictDataMapper.countDictDataByType(dictType.getDictType())>0){
throw new ApiException(String.format("%1$s已分配,不能删除", dictType.getName()));
}
- boolean b=removeById(dictId);
+ SysDictType sysDictType=new SysDictType().setId(dictId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ sysDictType.setUpdateBy(ShiroUtils.getSysUser().getName());
+ boolean b=updateById(sysDictType);
if(!b){
throw new ApiException("删除字典类型失败");
}
@@ -87,7 +99,7 @@
@Override
public boolean checkDictTypeUnique(SysDictType dict) {
Long dictId = ObjectUtil.isNull(dict.getId()) ? -1L : dict.getId();
- SysDictType dictType = baseMapper.checkDictTypeUnique(dict.getDictType());
+ SysDictType dictType = baseMapper.checkDictTypeUnique(dict.getDictType(),dict.getName());
if (ObjectUtil.isNotNull(dictType) && dictType.getId().longValue() != dictId.longValue())
{
return false;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertClassifyServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertClassifyServiceImpl.java
index c3f44fd..d452bcc 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertClassifyServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertClassifyServiceImpl.java
@@ -33,6 +33,7 @@
if(StringUtils.isNotBlank(expertClassify.getClassifyName())){
lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName());
}
+ lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag,DeleteFlagEnum.UN_DELETE.getCode());
List<SysExpertClassify> classifies= list(lambdaQueryWrapper);
//筛选出所有一级标签
return classifies.stream()
@@ -44,7 +45,7 @@
public List<SysExpertClassify> listClassifyChildren(SysExpertClassify classify,List<SysExpertClassify> classifies){
//递归查找子类
return classifies.stream()
- .filter(classifyEntity -> Objects.equals(classifyEntity.getParentId(), classify.getClassifyId()))
+ .filter(classifyEntity -> Objects.equals(classifyEntity.getParentId(), classify.getId()))
.peek(classifyEntity -> classifyEntity.setChildren(this.listClassifyChildren(classifyEntity,classifies)))
.collect(Collectors.toList());
}
@@ -63,8 +64,9 @@
@Override
public int delClassify(Long classifyId) {
SysExpertClassify classify = new SysExpertClassify();
- classify.setClassifyId(classifyId);
+ classify.setId(classifyId);
classify.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ classify.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(classify);
if(!b){
throw new ApiException("删除专家分类失败");
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertInfoServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertInfoServiceImpl.java
index ce0272d..fe922cb 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertInfoServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysExpertInfoServiceImpl.java
@@ -1,6 +1,8 @@
package com.gkhy.assess.system.service.impl;
+import cn.hutool.core.util.ObjectUtil;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.system.domain.SysAgency;
@@ -50,6 +52,7 @@
if(!checkIdCardUnique(expertInfo)){
throw new ApiException(expertInfo.getIdCard()+"身份证号码已经存在");
}
+ expertInfo.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(expertInfo);
if(!b){
throw new ApiException("修改专家信息失败");
@@ -60,8 +63,9 @@
@Override
public int delExpertInfo(Long expertId) {
SysExpertInfo expertInfo = new SysExpertInfo();
- expertInfo.setExpertId(expertId);
- expertInfo.setDelFlag(1);
+ expertInfo.setId(expertId);
+ expertInfo.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ expertInfo.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b= updateById(expertInfo);
if(!b){
throw new ApiException("删除专家信息失败");
@@ -74,10 +78,37 @@
return baseMapper.deleteBatchByIds(expertIds);
}
+ @Override
+ public SysExpertInfo exportInfoDetail(Long expertId) {
+ return baseMapper.getExpertInfoById(expertId);
+ }
+
+
+
+ public SysExpertInfo checkExpertInfoDataScope(Long expertId) {
+ if(expertId==null){
+ throw new ApiException("专家id为空!");
+ }
+ SysExpertInfo expertInfo = baseMapper.getExpertInfoById(expertId);
+ if (ObjectUtil.isNull(expertInfo))
+ {
+ throw new ApiException("专家数据不存在!");
+ }
+ return expertInfo;
+ }
+
+ @Override
+ public boolean changeApprove(SysExpertInfo expertInfo) {
+ checkExpertInfoDataScope(expertInfo.getId());
+ SysExpertInfo se=new SysExpertInfo().setId(expertInfo.getId()).setState(expertInfo.getState());
+ se.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ return updateById(se);
+ }
+
public boolean checkIdCardUnique(SysExpertInfo expertInfo){
- Long expertId = expertInfo.getExpertId()==null? -1L : expertInfo.getExpertId();
+ Long expertId = expertInfo.getId()==null? -1L : expertInfo.getId();
SysExpertInfo info = baseMapper.checkIdcardUnique(expertInfo.getIdCard());
- if (info!=null && info.getExpertId().longValue() != expertId.longValue())
+ if (info!=null && info.getId().longValue() != expertId.longValue())
{
return false;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysLawServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysLawServiceImpl.java
index 22b85e0..13a83e1 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysLawServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysLawServiceImpl.java
@@ -1,14 +1,14 @@
package com.gkhy.assess.system.service.impl;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
import com.gkhy.assess.system.domain.SysLaw;
-import com.gkhy.assess.system.domain.SysNotice;
import com.gkhy.assess.system.mapper.SysLawMapper;
import com.gkhy.assess.system.service.SysLawService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.system.utils.ShiroUtils;
import org.springframework.stereotype.Service;
@@ -40,6 +40,7 @@
@Override
public int addLaw(SysLaw law) {
boolean b=save(law);
+ law.setCreateBy(ShiroUtils.getSysUser().getUsername());
if(!b){
throw new ApiException("新增法律法规失败");
}
@@ -48,6 +49,7 @@
@Override
public int editLaw(SysLaw law) {
+ law.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(law);
if(!b){
throw new ApiException("修改法律法规失败");
@@ -57,7 +59,10 @@
@Override
public int deleteLawById(Long lawId) {
- boolean b=removeById(lawId);
+ SysLaw sysLaw=new SysLaw().setId(lawId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ sysLaw.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ boolean b=updateById(sysLaw);
if(!b){
throw new ApiException("删除法律法规失败");
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysNoticeServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysNoticeServiceImpl.java
index 51c50e9..acab316 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysNoticeServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysNoticeServiceImpl.java
@@ -3,8 +3,10 @@
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.PageUtil;
+import com.gkhy.assess.system.domain.SysLaw;
import com.gkhy.assess.system.domain.SysNotice;
import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.mapper.SysNoticeMapper;
@@ -57,7 +59,10 @@
@Override
public int deleteNoticeById(Long noticeId) {
- boolean b=removeById(noticeId);
+ SysNotice sysNotice=new SysNotice().setId(noticeId)
+ .setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ sysNotice.setUpdateBy(ShiroUtils.getSysUser().getName());
+ boolean b=updateById(sysNotice);
if(!b){
throw new ApiException("删除通知失败");
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysRegionServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysRegionServiceImpl.java
index 6baaa09..5556dca 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysRegionServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysRegionServiceImpl.java
@@ -11,6 +11,7 @@
import com.gkhy.assess.system.domain.SysRegion;
import com.gkhy.assess.system.mapper.SysRegionMapper;
import com.gkhy.assess.system.service.SysRegionService;
+import com.gkhy.assess.system.utils.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -76,6 +77,7 @@
throw new ApiException("已存在相同地区名称");
}
region.setRegionType(RegionTypeEnum.INSIDE.getCode());
+ region.setCreateBy(ShiroUtils.getSysUser().getUsername());
boolean b=save(region);
if(!b){
throw new ApiException("新增地区失败");
@@ -107,6 +109,7 @@
if(!checkRegionUnique(region)){
throw new ApiException("已存在相同地区名称");
}
+ region.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(region);
if(!b){
throw new ApiException("修改地区失败");
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java
new file mode 100644
index 0000000..c384eb1
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java
@@ -0,0 +1,50 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.domain.SysUserFace;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
+import com.gkhy.assess.system.mapper.SysUserFaceMapper;
+import com.gkhy.assess.system.mapper.SysUserMapper;
+import com.gkhy.assess.system.service.SysCommonService;
+import com.gkhy.assess.system.service.SysUserFaceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 用户人脸数据表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-01-09 17:10:01
+ */
+@Service
+public class SysUserFaceServiceImpl extends ServiceImpl<SysUserFaceMapper, SysUserFace> implements SysUserFaceService {
+ @Autowired
+ private SysCommonService commonService;
+ @Autowired
+ private SysUserMapper userMapper;
+ @Override
+ @Transactional
+ public int addUserFace(SysUserFace userFace) {
+ int row=0;
+ SysUserFace oldUserFace=baseMapper.getFaceByUserId(userFace.getUserId());
+ UploadObjectVO uploadObjectVO =commonService.doUpload(userFace.getFile());
+ if(oldUserFace==null){
+ row= baseMapper.insert(userFace);
+ }else{
+ row= baseMapper.updateById(new SysUserFace().setId(oldUserFace.getId()).setFaceBase(userFace.getFaceBase()));
+ }
+ userMapper.updateById(new SysUser().setId(userFace.getUserId()).setIdPhoto(uploadObjectVO.getPath()));
+ return row;
+ }
+
+ @Override
+ public SysUserFace getFaceByUserId(Long userId) {
+ return baseMapper.getFaceByUserId(userId);
+ }
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
index a552f44..5004259 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
@@ -2,19 +2,22 @@
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
import com.gkhy.assess.common.constant.CacheConstant;
import com.gkhy.assess.common.domain.vo.AccountVO;
import com.gkhy.assess.common.domain.vo.LoginBody;
import com.gkhy.assess.common.enums.AttachTypeEnum;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.*;
-import com.gkhy.assess.system.domain.SysAgency;
-import com.gkhy.assess.system.domain.SysAttach;
-import com.gkhy.assess.system.domain.SysUser;
-import com.gkhy.assess.system.mapper.SysAgencyMapper;
+import com.gkhy.assess.system.domain.*;
+import com.gkhy.assess.system.domain.vo.PersonProjectVO;
+import com.gkhy.assess.system.mapper.AssProjectMapper;
+import com.gkhy.assess.system.mapper.SysUserFaceMapper;
import com.gkhy.assess.system.mapper.SysUserMapper;
import com.gkhy.assess.system.service.SysAgencyService;
import com.gkhy.assess.system.service.SysAttachService;
@@ -24,6 +27,7 @@
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,9 +35,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
/**
@@ -55,18 +58,20 @@
@Autowired
private HttpServletRequest request;
- @Autowired
- private SysAgencyMapper agencyMapper;
+
@Autowired
private SysAgencyService agencyService;
@Autowired
private SysAttachService attachService;
-
+ @Autowired
+ private SysUserFaceMapper userFaceMapper;
+ @Autowired
+ private AssProjectMapper projectMapper;
@Override
public AccountVO login(LoginBody loginBody) {
// 验证码校验
- // validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
+ //validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
Subject subject= SecurityUtils.getSubject();
String msg ;
@@ -75,10 +80,52 @@
SysUser sysUser = (SysUser) subject.getPrincipal();
AccountVO accountVO = new AccountVO();
BeanUtils.copyProperties(sysUser, accountVO);
-
+ if(sysUser.getAgencyId()!=null){
+ SysAgency agency=agencyService.getOne(Wrappers.<SysAgency>lambdaQuery()
+ .select(SysAgency::getId,SysAgency::getName)
+ .eq(SysAgency::getId,sysUser.getAgencyId()));
+ accountVO.setAgentName(agency.getName());
+ accountVO.setAgentId(agency.getId());
+ }
String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
accountVO.setToken(token);
cacheUserToken(sysUser.getUsername(),token);
+ return accountVO;
+ }catch (UnknownAccountException | IncorrectCredentialsException uae){
+ throw new ApiException("用户名/密码错误,请重新输入");
+ } catch (LockedAccountException lae) { // 账号已被锁定
+ msg = "账号已被锁定";
+ throw new ApiException(msg);
+ }catch (AuthenticationException ae) { // 其他身份验证异常
+ msg = "用户认证失败:"+ae.getMessage();
+ throw new ApiException(msg);
+ }
+ }
+
+
+
+ @Override
+ public AccountVO appLogin(LoginBody loginBody) {
+ // 验证码校验
+ UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
+ Subject subject= SecurityUtils.getSubject();
+ String msg ;
+ try {
+ subject.login(usernamePasswordToken);
+ SysUser sysUser = (SysUser) subject.getPrincipal();
+ AccountVO accountVO = new AccountVO();
+ BeanUtils.copyProperties(sysUser, accountVO);
+ if(sysUser.getAgencyId()!=null){
+ SysAgency agency=agencyService.getOne(Wrappers.<SysAgency>lambdaQuery()
+ .select(SysAgency::getId,SysAgency::getName)
+ .eq(SysAgency::getId,sysUser.getAgencyId()));
+ accountVO.setAgentName(agency.getName());
+ accountVO.setAgentId(agency.getId());
+ }
+ String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
+ accountVO.setToken(token);
+ cacheUserToken(sysUser.getUsername(),token);
+ accountVO.setUserFace(userFaceMapper.getFaceByUserId(sysUser.getId()));
return accountVO;
}catch (UnknownAccountException | IncorrectCredentialsException uae){
throw new ApiException("用户名/密码错误,请重新输入");
@@ -97,14 +144,14 @@
*/
public void cacheUserToken(String username,String newToken){
-// String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
-// String oldToken = (String) redisUtils.get(userKey);
-// if (StrUtil.isNotBlank(oldToken)) {
-// String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken));
-// redisUtils.del(oldTokenkey);
-// redisUtils.del(userKey);
-// }
-// redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2);
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ String oldToken = (String) redisUtils.get(userKey);
+ if (StringUtils.isNotBlank(oldToken)) {
+ String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken));
+ redisUtils.del(oldTokenkey);
+ redisUtils.del(userKey);
+ }
+ redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2);
String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(newToken));
@@ -142,9 +189,14 @@
@Override
public void logout() {
String jwtToken = request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN);
- String key= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
- //删除redis缓存
- redisUtils.del(key);
+ if(StringUtils.isNotBlank(jwtToken)){
+ String username=JwtTokenUtil.getUsername(jwtToken);
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
+ //删除redis缓存
+ redisUtils.del(tokenKey);
+ redisUtils.del(userKey);
+ }
}
@Override
@@ -163,8 +215,25 @@
@Override
public CommonPage<SysUser> expertList(SysUser user) {
+ SysUser currentUser= ShiroUtils.getSysUser();
+ if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ //机构用户只能查看本机构的专家
+ if(currentUser.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ user.setAgencyId(currentUser.getAgencyId());
+ }
PageUtil.startPage();
List<SysUser> users=baseMapper.expertList(user);
+ if(users.size()>0) {
+ //统计用户参与项目的信息
+ List<Long> userIds = users.stream().map(item -> item.getId()).collect(Collectors.toList());
+ List<PersonProjectVO> personProjectVOList = projectMapper.getProjectByPersonIds(userIds);
+ Map<Long, PersonProjectVO> maps = personProjectVOList.stream().collect(Collectors.toMap(PersonProjectVO::getPersonId, a -> a));
+ for (SysUser sysUser : users) {
+ sysUser.setPersonProjectVO(maps.get(sysUser.getId()));
+ }
+ }
return CommonPage.restPage(users);
}
@@ -216,8 +285,10 @@
}
String originPsword=Base64.decodeStr(user.getPassword());
validatorPassword(originPsword);
+ //密码生成规则:md5(username+password+salt)
user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
user.setIdentity(UserIdentityEnum.MONITOR.getCode());
+ user.setCreateBy(ShiroUtils.getSysUser().getUsername());
boolean b=save(user);
if(!b){
throw new ApiException("创建监管用户信息失败");
@@ -246,15 +317,16 @@
if(!agencyService.checkAgencyNameUnique(new SysAgency().setName(agency.getName()))){
throw new ApiException("机构名称已存在");
}
- int i=agencyMapper.insert(agency);
- if(i<1){
+ agency.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ boolean b=agencyService.save(agency);
+ if(!b){
throw new ApiException("保存机构信息失败");
}
user.setIdentity(UserIdentityEnum.AGENCY.getCode());
user.setAgencyId(agency.getId());
user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
-
- boolean b=save(user);
+ user.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ b=save(user);
if(!b){
throw new ApiException("创建机构用户信息失败");
}
@@ -264,6 +336,8 @@
@Override
@Transactional(rollbackFor = RuntimeException.class)
public int addExpert(SysUser user) {
+ user.setIdentity(UserIdentityEnum.EXPERT.getCode());
+ checkUserAllowed(user);
//校验用户信息
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
@@ -271,11 +345,19 @@
if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
throw new ApiException("手机号已存在");
}
+ String major=user.getMajor();
+ List<Integer> majors=new ArrayList<>();
+ JSONObject jsonObject=JSONObject.parseObject(major);
+ jsonObject.forEach((key,value)-> {
+ majors.add(Integer.valueOf(key));
+ });
+ user.setMajor(StringUtils.join(",",majors));
+ user.setCertificateNo(major);
String originPsword=Base64.decodeStr(user.getPassword());
validatorPassword(originPsword);
- user.setIdentity(UserIdentityEnum.EXPERT.getCode());
user.setCreateBy(ShiroUtils.getSysUser().getUsername());
user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
+
boolean b=save(user);
if(!b){
throw new ApiException("创建专家信息失败");
@@ -322,22 +404,31 @@
@Override
@Transactional(rollbackFor = RuntimeException.class)
public int deleteUserById(Long userId) {
- SysUser user=getUserById(userId);
- if(user==null){
- throw new ApiException("用户不存在");
- }
+ SysUser currentUser=ShiroUtils.getSysUser();
+ SysUser user=checkUserDataScope(userId);
if(Objects.equals(ShiroUtils.getUserId(), userId)){
throw new ApiException("不能删除自己账号");
}
- //机构用户,将机构信息设置成删除状态
- if(user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())){
- if(user.getAgencyId()==null){
- throw new ApiException("获取机构id为空");
+ if(user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())||user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ throw new ApiException("没有权限,只有监管用户才能操作");
}
- agencyMapper.deleteAgencyById(user.getAgencyId());
+ //机构用户,将机构信息设置成删除状态
+ if(user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())) {
+ if (user.getAgencyId() == null) {
+ throw new ApiException("获取机构id为空");
+ }
+ SysAgency agency=new SysAgency().setId(user.getAgencyId());
+ agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ agency.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ agencyService.updateById(agency);
+ }
}
delCacheByUsername(user.getUsername());
- return baseMapper.deleteUserById(userId);
+ user=new SysUser().setId(userId);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ user.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ return baseMapper.updateById(user);
}
@Override
@@ -351,6 +442,7 @@
}
delCacheByUsername(user.getUsername());
user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(user);
if(!b){
throw new ApiException("更新监管用户信息失败");
@@ -380,8 +472,10 @@
}
delCacheByUsername(user.getUsername());
+ agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
agencyService.updateById(agency);
user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(user);
if(!b){
throw new ApiException("更新用户失败");
@@ -391,6 +485,7 @@
@Override
public int editExpert(SysUser user) {
+ checkUserDataScope(user.getId());
//校验用户信息
if(!checkUsernameUnique(user)){
throw new ApiException("用户名已存在");
@@ -398,13 +493,23 @@
if(!checkPhoneUnique(user)){
throw new ApiException("手机号已存在");
}
- user.setPassword(null);
- boolean b=updateById(user);
- if(!b){
- throw new ApiException("更新专家信息失败");
+ String major=user.getMajor();
+ if(StringUtils.isNotBlank(major)){
+ List<Integer> majors=new ArrayList<>();
+ JSONObject jsonObject=JSONObject.parseObject(major);
+ jsonObject.forEach((key,value)-> {
+ majors.add(Integer.valueOf(key));
+ });
+ user.setMajor(StringUtils.join(",",majors));
+ user.setCertificateNo(major);
}
- //刪除旧数据
- attachService.deleteAttachsByUserId(user.getId(),null);
+ user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(user);
+
+ List<SysAttach> existAttaches=attachService.getAttachsByUserId(user.getId(),null);
+ // 刪除旧数据
+ // attachService.deleteAttachsByUserId(user.getId(),null);
List<SysAttach> socialAttach=user.getSocialAttach();
List<SysAttach> medicalAttach=user.getMedicalAttach();
@@ -425,9 +530,20 @@
attach.setUserId(user.getId());
attaches.add(attach);
}
- attachService.saveBatch(attaches);
+ attachService.saveOrUpdateBatch(attaches);
+
+ List<Long> newIds=attaches.stream().map(SysAttach::getId).collect(Collectors.toList());
+ List<Long> delIds=new ArrayList<>();
+ for(SysAttach attach:existAttaches){
+ if(!newIds.contains(attach.getId())){
+ delIds.add(attach.getId());
+ }
+ }
+ if(!delIds.isEmpty()){
+ attachService.deleteAttachsByIds(delIds);
+ }
delCacheByUsername(user.getUsername());
- return 1;
+ return row;
}
@@ -435,7 +551,6 @@
public boolean resetUserPwd(SysUser user) {
String originPsword=Base64.decodeStr(user.getPassword());
validatorPassword(originPsword);
- checkUserAllowed(user);
SysUser oldUser=checkUserDataScope(user.getId());
SysUser newUser=new SysUser().setId(user.getId()).setPassword(JwtTokenUtil.encryptPassword(oldUser.getUsername(),originPsword,oldUser.getSalt()));
newUser.setUpdateBy(ShiroUtils.getSysUser().getUsername());
@@ -478,7 +593,15 @@
@Override
public void checkUserAllowed(SysUser user) {
-
+ SysUser currentUser=ShiroUtils.getSysUser();
+ if(!Objects.equals(currentUser.getIdentity(), UserIdentityEnum.MONITOR.getCode())){
+ if(Objects.equals(user.getIdentity(), UserIdentityEnum.MONITOR.getCode())){
+ throw new ApiException("无权操作监管用户");
+ }
+ if(!Objects.equals(currentUser.getAgencyId(), user.getAgencyId())){
+ throw new ApiException("无权操作其他机构用户");
+ }
+ }
}
@Override
@@ -486,67 +609,19 @@
if(userId==null){
throw new ApiException("用户id为空!");
}
- SysUser user = baseMapper.getUserById(userId);
+ SysUser user = getById(userId);
if (ObjectUtil.isNull(user))
{
throw new ApiException("用户数据不存在!");
}
+ checkUserAllowed(user);
return user;
}
- @Override
- public String importUser(List<SysUser> userList,Boolean isUpdateSupport) {
- if(ObjectUtil.isEmpty(userList)||userList.size()==0){
- throw new ApiException("导入用户数据不能为空");
- }
- int successNum=0;
- int failureNum=0;
- StringBuilder successMsg=new StringBuilder();
- StringBuilder failureMsg=new StringBuilder();
- String password=configService.getConfigByKey("sys.user.initPassword");
- for(SysUser user:userList){
- try {
- SysUser u = baseMapper.getUserByUsername(user.getUsername());
- if (ObjectUtil.isNull(u)) {
- BeanValidators.validateWithException(validator, user);
- user.setPassword(JwtTokenUtil.md5Encode(user.getUsername() + password));
- user.setCreateBy("");
- save(user);
- successNum++;
- successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 导入成功");
- } else if (isUpdateSupport) {
- BeanValidators.validateWithException(validator, user);
- checkUserAllowed(u);
- checkUserDataScope(u.getId());
- user.setId(u.getId());
- user.setUpdateBy("");
- updateById(user);
- successNum++;
- successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 更新成功");
- } else {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUsername() + " 已存在");
- }
- }catch (Exception e){
- failureNum++;
- String msg = "<br/>" + failureNum + "、账号 " + user.getUsername() + " 导入失败:";
- failureMsg.append(msg + e.getMessage());
- log.error(msg, e);
- }
- }
- if (failureNum > 0){
- failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
- throw new ApiException(failureMsg.toString());
- }else{
- successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
- }
- return successMsg.toString();
- }
@Override
public boolean changeUserStatus(SysUser user) {
- checkUserAllowed(user);
SysUser existUser=checkUserDataScope(user.getId());
SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
@@ -556,7 +631,6 @@
@Override
public boolean changeApprove(SysUser user) {
- checkUserAllowed(user);
SysUser existUser=checkUserDataScope(user.getId());
SysUser su=new SysUser().setId(user.getId()).setState(user.getState());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
diff --git a/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml b/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml
new file mode 100644
index 0000000..ac9b382
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.assess.system.mapper.AssAccessoryFileMapper">
+ <update id="deleteAccessoryFileById" parameterType="java.lang.Long">
+ update ass_accessory_file set del_flag=1 where id=#{accessoryFileId}
+ </update>
+
+
+ <select id="getAccessoryFileByProjectId" resultType="com.gkhy.assess.system.domain.AssAccessoryFile">
+ select id,file_name,path,module_type,project_id,del_flag,origin_name,create_time from ass_accessory_file
+ where project_id=#{projectId} and del_flag=0 and module_type=#{moduleType}
+ </select>
+
+ <select id="getAccessoryFileCountByProjectId" resultType="java.lang.Integer">
+ select count(1) from ass_accessory_file
+ where project_id=#{projectId} and del_flag=0 and module_type=#{moduleType}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssAuditMapper.xml b/assess-system/src/main/resources/mapper/AssAuditMapper.xml
new file mode 100644
index 0000000..794d6bb
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssAuditMapper.xml
@@ -0,0 +1,71 @@
+<?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.gkhy.assess.system.mapper.AssAuditMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssAudit" id="auditResult">
+ <id property="id" column="id" />
+ <result property="auditDate" column="audit_date" />
+ <result property="affirmDate" column="affirm_date" />
+ <result property="projectId" column="project_id" />
+ <result property="auditType" column="audit_type" />
+ <result property="assessorId" column="assessor_id" />
+ <result property="isAmendFinish" column="is_amend_finish" />
+ <result property="isBasis" column="is_basis" />
+ <result property="isConclusion" column="is_conclusion" />
+ <result property="isDangerOverall" column="is_danger_overall" />
+ <result property="isFile" column="is_file" />
+ <result property="isFormat" column="is_format" />
+ <result property="isMeasure" column="is_measure" />
+ <result property="isMethodSelection" column="is_method_selection" />
+ <result property="isReportAudit" column="is_report_audit" />
+ <result property="isScope" column="is_scope" />
+ <result property="isText" column="is_text" />
+ <result property="isUnitDivision" column="is_unit_division" />
+ <result property="isBasisQuote" column="is_basis_quote" />
+ <result property="isConclusionRight" column="is_conclusion_right" />
+ <result property="isDangerFull" column="is_danger_full" />
+ <result property="isData" column="is_data" />
+ <result property="isOmission" column="is_omission" />
+ <result property="isMeasureEquitable" column="is_measure_equitable" />
+ <result property="isMethodRational" column="is_method_rational" />
+ <result property="suggestions" column="suggestions" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="assessor" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="assessor_id" />
+ <result property="name" column="assessor_name" />
+ </resultMap>
+
+ <sql id="selectAuditVo">
+ select a.id,a.audit_date,a.affirm_date,a.project_id,a.audit_type,a.assessor_id,a.is_amend_finish,
+ a.is_basis,a.is_conclusion,a.is_danger_overall,a.is_file,a.is_format,a.is_measure,a.is_method_selection,
+ a.is_method_selection,a.is_report_audit,a.is_scope,a.is_text,a.is_unit_division,a.is_basis_quote,
+ a.is_conclusion_right,a.is_conclusion_right,a.is_danger_full,a.is_data,a.is_omission,a.is_measure_equitable,
+ a.is_method_rational,a.is_method_rational,a.suggestions,
+ a.version,a.del_flag,a.create_by,a.create_time,a.update_by,a.update_time,a.remark,u.name as assessor_name
+ from ass_audit a
+ left join sys_user u on u.id=a.assessor_id
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer">
+ select count(1) from ass_audit where project_id=#{projectId} and audit_type=#{auditType} and del_flag=0
+ </select>
+
+ <select id="getAuditByProjectId" resultMap="auditResult">
+ <include refid="selectAuditVo"/>
+ where a.project_id=#{projectId} and a.del_flag=0 and a.audit_type=#{auditType}
+ </select>
+
+ <select id="getAuditById" resultMap="auditResult">
+ <include refid="selectAuditVo"/>
+ where a.id=#{auditId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssConclusionMapper.xml b/assess-system/src/main/resources/mapper/AssConclusionMapper.xml
new file mode 100644
index 0000000..ad211a8
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssConclusionMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.assess.system.mapper.AssConclusionMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssConclusion" id="conclusionResult">
+ <id property="id" column="id" />
+ <result property="conclusion" column="conclusion" />
+ <result property="isReviseManual" column="is_revise_manual" />
+ <result property="projectId" column="project_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectConclusionVo">
+ select c.id,c.conclusion,c.is_revise_manual,c.project_id,
+ c.version,c.del_flag,c.create_by,c.create_time,c.update_by,c.update_time,c.remark
+ from ass_conclusion c
+ </sql>
+
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_conclusion where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getConclusionByProjectId" resultMap="conclusionResult">
+ <include refid="selectConclusionVo"/>
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getConclusionById" resultMap="conclusionResult">
+ <include refid="selectConclusionVo"/>
+ where id=#{conclusionId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssContractMapper.xml b/assess-system/src/main/resources/mapper/AssContractMapper.xml
new file mode 100644
index 0000000..f697100
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssContractMapper.xml
@@ -0,0 +1,42 @@
+<?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.gkhy.assess.system.mapper.AssContractMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssContract" id="ContractResult">
+ <id property="id" column="id" />
+ <result property="contractMoney" column="contract_money" />
+ <result property="actualContractMoney" column="actual_contract_money" />
+ <result property="contractSignDate" column="contract_sign_date" />
+ <result property="projectId" column="project_id" />
+ <result property="contractIntroduction" column="contract_introduction" />
+ <result property="actualContractIntroduction" column="actual_contract_introduction" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectContractVo">
+ select c.id,c.contract_money, c.actual_contract_money,c.contract_sign_date,c.project_id,c.contract_introduction,c.actual_contract_introduction,
+ c.del_flag,c.create_by,c.create_time,c.update_by,c.update_time,c.remark
+ from ass_contract c
+ </sql>
+
+
+ <select id="getContractByProjectId" resultMap="ContractResult">
+ <include refid="selectContractVo"/>
+ where project_id=#{projectId} and del_flag=0 limit 1
+ </select>
+
+ <select id="getContractById" resultMap="ContractResult">
+ <include refid="selectContractVo"/>
+ where id=#{contractId}
+ </select>
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer">
+ select count(1) from ass_contract where project_id=#{projectId} and del_flag=0
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssDeviceMapper.xml b/assess-system/src/main/resources/mapper/AssDeviceMapper.xml
new file mode 100644
index 0000000..f0e6eb3
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssDeviceMapper.xml
@@ -0,0 +1,42 @@
+<?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.gkhy.assess.system.mapper.AssDeviceMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssDevice" id="deviceResult">
+ <id property="id" column="id" />
+ <result property="deviceName" column="device_name" />
+ <result property="startDate" column="start_date" />
+ <result property="endDate" column="end_date" />
+ <result property="projectId" column="project_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectDeviceVo">
+ select d.id,d.device_name,d.start_date,d.end_date,d.project_id,
+ d.version,d.del_flag,d.create_by,d.create_time,d.update_by,d.update_time,d.remark
+ from ass_device d
+ </sql>
+
+
+ <update id="deleteDeviceByIds">
+ update ass_device set del_flag=1 where id in
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </update>
+
+ <select id="getDeviceByName" resultMap="deviceResult">
+ <include refid="selectDeviceVo"/>
+ where id=#{deviceId}
+ </select>
+
+ <select id="getDevicesByProjectId" resultType="com.gkhy.assess.system.domain.AssDevice">
+ <include refid="selectDeviceVo"/>
+ where project_id=#{projectId} and del_flag=0
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssEstimatePlanMapper.xml b/assess-system/src/main/resources/mapper/AssEstimatePlanMapper.xml
new file mode 100644
index 0000000..784c604
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssEstimatePlanMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.assess.system.mapper.AssEstimatePlanMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssEstimatePlan" id="estimatePlanResult">
+ <id property="id" column="id" />
+ <result property="auserId" column="auser_id" />
+ <result property="startDate" column="start_date" />
+ <result property="endDate" column="end_date" />
+ <result property="projectId" column="project_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="auser" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="assessor_id" />
+ <result property="name" column="assessor_name" />
+ </resultMap>
+
+ <sql id="selectEstimatePlanVo">
+ select e.id,e.auser_id, e.start_date,e.end_date,e.project_id,
+ e.del_flag,e.create_by,e.create_time,e.update_by,e.update_time,e.remark,u.id as assessor_id,u.name as assessor_name
+ from ass_estimate_plan e
+ left join sys_user u on u.id=e.auser_id
+ </sql>
+
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_estimate_plan
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getEstimatePlanByProjectId" resultMap="estimatePlanResult">
+ <include refid="selectEstimatePlanVo"/>
+ where e.project_id=#{projectId} and e.del_flag=0
+ </select>
+
+ <select id="getEstimatePlanById" resultMap="estimatePlanResult">
+ <include refid="selectEstimatePlanVo"/>
+ where e.id=#{estimatePlanId}
+ </select>
+
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssEstimateScheduleMapper.xml b/assess-system/src/main/resources/mapper/AssEstimateScheduleMapper.xml
new file mode 100644
index 0000000..c9f35b9
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssEstimateScheduleMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.assess.system.mapper.AssEstimateScheduleMapper">
+
+ <update id="deleteEstimateScheduleByIds">
+ update ass_estimate_schedule set del_flag=1
+ where id in
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </update>
+
+ <select id="getEstimateScheduleByProjectId" resultType="com.gkhy.assess.system.domain.AssEstimateSchedule">
+ select * from ass_estimate_schedule
+ where project_id=#{projectId} and del_flag=0 order by sort asc
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssEstimateTaskMapper.xml b/assess-system/src/main/resources/mapper/AssEstimateTaskMapper.xml
new file mode 100644
index 0000000..e64f93f
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssEstimateTaskMapper.xml
@@ -0,0 +1,48 @@
+<?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.gkhy.assess.system.mapper.AssEstimateTaskMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssEstimateTask" id="estimateTaskResult">
+ <id property="id" column="id" />
+ <result property="leaderId" column="leader_id" />
+ <result property="linkMan" column="link_man" />
+ <result property="linkPhone" column="link_phone" />
+ <result property="projectId" column="project_id" />
+ <result property="fax" column="fax" />
+ <result property="transmitDate" column="transmit_date" />
+ <result property="transmitPerson" column="transmit_person" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="leader" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="leader_id" />
+ <result property="name" column="leader_name" />
+ </resultMap>
+
+ <sql id="selectEstimateTaskVo">
+ select e.id,e.leader_id,e.link_man,e.link_phone,e.project_id,e.fax,e.transmit_date,e.transmit_person,
+ e.del_flag,e.create_by,e.create_time,e.update_by,e.update_time,e.remark,u.name as leader_name
+ from ass_estimate_task e
+ left join sys_user u on u.id=e.leader_id
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_estimate_task where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getTaskByProjectId" resultMap="estimateTaskResult">
+ <include refid="selectEstimateTaskVo"/>
+ where e.project_id=#{projectId} and e.del_flag=0 limit 1
+ </select>
+
+ <select id="getTaskById" resultType="com.gkhy.assess.system.domain.AssEstimateTask">
+ select * from ass_estimate_task where id=#{taskId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml b/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml
new file mode 100644
index 0000000..7465df5
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml
@@ -0,0 +1,68 @@
+<?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.gkhy.assess.system.mapper.AssFaceRecognitionMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssFaceRecognition" id="faceRecognitionResult">
+ <id property="id" column="id" />
+ <result property="personId" column="person_id" />
+ <result property="projectId" column="project_id" />
+ <result property="signPath" column="sign_path" />
+ <result property="insurancePicId" column="insurance_pic_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="faceRecord" javaType="com.gkhy.assess.system.domain.AssFaceRecord" resultMap="faceRecordesult" />
+ <association property="person" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ </resultMap>
+
+ <resultMap id="faceRecordesult" type="com.gkhy.assess.system.domain.AssFaceRecord">
+ <id property="id" column="person_id" />
+ <result property="facePath" column="face_path" />
+ <result property="updateTime" column="face_time" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="person_id" />
+ <result property="name" column="person_name" />
+ <result property="major" column="person_major" />
+ <result property="phone" column="person_phone" />
+ <result property="post" column="person_post" />
+ <result property="level" column="person_level" />
+ </resultMap>
+
+ <sql id="selectFaceRecognitionVo">
+ select f.id,f.person_id,f.project_id,f.sign_path,f.insurance_pic_id,
+ f.version,f.del_flag,f.create_by,f.create_time,f.update_by,f.update_time,f.remark,
+ u.name as person_name,u.major as person_major,u.phone as person_phone,u.post as person_post,u.level as person_level,
+ a.face_path,a.update_time as face_time
+ from ass_face_recognition f
+ left join sys_user u on u.id=f.person_id
+ left join ass_face_record a on a.person_id=f.person_id
+
+ </sql>
+
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_face_recognition where project_id=#{projectId} and del_flag=0
+
+ </select>
+
+ <select id="getFaceRecognitionByProjectId" resultMap="faceRecognitionResult">
+ <include refid="selectFaceRecognitionVo"/>
+ where f.project_id=#{projectId} and f.del_flag=0 and a.del_flag=0
+ </select>
+
+ <select id="getFaceRecognitionById" resultMap="faceRecognitionResult">
+ <include refid="selectFaceRecognitionVo"/>
+ where f.id=#{faceRecognitionId} and a.del_flag=0
+ </select>
+
+ <select id="getFaceRecognitionCount" resultType="java.lang.Integer">
+ select count(1) from ass_face_recognition where project_id=#{projectId} and del_flag=0
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssFaceRecordMapper.xml b/assess-system/src/main/resources/mapper/AssFaceRecordMapper.xml
new file mode 100644
index 0000000..68e1ba6
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssFaceRecordMapper.xml
@@ -0,0 +1,53 @@
+<?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.gkhy.assess.system.mapper.AssFaceRecordMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssFaceRecord" id="faceResult">
+ <id property="id" column="id" />
+ <result property="personId" column="person_id" />
+ <result property="facePath" column="face_path" />
+ <result property="projectId" column="project_id" />
+ <result property="location" column="location" />
+ <result property="scene" column="scene" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <result property="investLocation" column="invest_location" />
+ <association property="person" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ <association property="planPerson" javaType="com.gkhy.assess.system.domain.AssPlanPerson" resultMap="planPersonResult" />
+ </resultMap>
+
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="person_id" />
+ <result property="name" column="person_name" />
+ <result property="major" column="person_major" />
+ </resultMap>
+
+ <resultMap id="planPersonResult" type="com.gkhy.assess.system.domain.AssPlanPerson">
+ <id property="id" column="person_id" />
+ <result property="laterPromise" column="later_promise" />
+ <result property="work" column="work" />
+ </resultMap>
+
+ <sql id="selectFaceRecordVo">
+ select f.id,f.person_id, f.face_path,f.project_id,f.location,f.scene,
+ f.del_flag,f.create_by,f.create_time,f.update_by,f.update_time,f.remark,a.origin_name,a.file_name,a.path,
+ u.name as person_name,u.major as person_major,p.later_promise,p.work,i.location as invest_location
+ from ass_face_record f
+ left join sys_user u on u.id=f.person_id
+ left join ass_plan_person p on p.project_id=f.project_id
+ left join ass_investigation i on i.project_id=f.project_id
+ </sql>
+
+
+ <select id="faceRecordList" resultMap="faceResult">
+ <include refid="selectFaceRecordVo"/>
+ where f.project_id=#{projectId} and f.del_flag=0
+ and f.scene=#{scene} and p.del_flag=0 and i.del_flag=0
+
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssFilingApplyMapper.xml b/assess-system/src/main/resources/mapper/AssFilingApplyMapper.xml
new file mode 100644
index 0000000..e8875a4
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssFilingApplyMapper.xml
@@ -0,0 +1,37 @@
+<?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.gkhy.assess.system.mapper.AssFilingApplyMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssFilingApply" id="filingApplyResult">
+ <id property="id" column="id" />
+ <result property="projectId" column="project_id" />
+ <result property="fileId" column="file_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="accessoryFile" javaType="com.gkhy.assess.system.domain.AssAccessoryFile" resultMap="fileResult" />
+ </resultMap>
+
+ <resultMap id="fileResult" type="com.gkhy.assess.system.domain.AssAccessoryFile">
+ <id property="id" column="file_id" />
+ <result property="originName" column="origin_name" />
+ <result property="fileName" column="file_name" />
+ <result property="path" column="path" />
+ </resultMap>
+
+ <sql id="selectFilingApplyVo">
+ select f.id,f.file_id,f.project_id,
+ f.version,f.del_flag,f.create_by,f.create_time,f.update_by,f.update_time,f.remark
+ from ass_filing_apply f
+ left join ass_accessory_file a on a.id=f.file_id
+ </sql>
+
+
+ <select id="getFilingApplyByProjectId" resultMap="filingApplyResult">
+ <include refid="selectFilingApplyVo"/>
+ where f.project_id=#{projectId} and f.del_flag=0
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml b/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml
new file mode 100644
index 0000000..44c6e9d
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssInvestigationMapper.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.gkhy.assess.system.mapper.AssInvestigationMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssInvestigation" id="investigationResult">
+ <id property="id" column="id" />
+ <result property="investigationDate" column="investigation_date" />
+ <result property="isFirst" column="is_first" />
+ <result property="isSafetyCheck" column="is_safety_check" />
+ <result property="projectId" column="project_id" />
+ <result property="recordData" column="record_data" />
+ <result property="location" column="location" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectInvestigationVo">
+ select i.id,i.investigation_date, i.is_first,i.is_safety_check,i.project_id,i.record_data,i.location,
+ i.del_flag,i.create_by,i.create_time,i.update_by,i.update_time,i.remark
+ from ass_investigation i
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_investigation where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getInvestigationByProjectId" resultMap="investigationResult">
+ <include refid="selectInvestigationVo"/>
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getInvestigationById" resultMap="investigationResult">
+ <include refid="selectInvestigationVo"/>
+ where id=#{investigationId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml b/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml
new file mode 100644
index 0000000..c9b183c
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml
@@ -0,0 +1,75 @@
+<?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.gkhy.assess.system.mapper.AssPlanPersonMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssPlanPerson" id="planPersonResult">
+ <id property="id" column="id" />
+ <result property="personId" column="person_id" />
+ <result property="jobType" column="job_type" />
+ <result property="laterPromise" column="later_promise" />
+ <result property="work" column="work" />
+ <result property="informed" column="informed" />
+ <result property="sort" column="sort" />
+ <result property="playRole" column="play_role" />
+ <result property="reason" column="reason" />
+ <result property="projectId" column="project_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="person" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="person_id" />
+ <result property="name" column="person_name" />
+ <result property="major" column="person_major" />
+ <result property="certificateNo" column="certificate_no" />
+ <collection property="majorNames" ofType="java.lang.String" select="getMajorById" column="{major=person_major}"/>
+ </resultMap>
+
+ <sql id="selectPlanPersonVo">
+ select p.id,p.person_id, p.job_type,p.later_promise,p.informed,p.work,p.sort,p.reason,p.project_id,p.play_role,
+ p.del_flag,p.create_by,p.create_time,p.update_by,p.update_time,p.remark,u.name as person_name,u.major as person_major,u.certificate_no
+ from ass_plan_person p
+ left join sys_user u on u.id=p.person_id
+ </sql>
+
+ <update id="deletePlanPersonByIds">
+ update ass_plan_person set del_flag=1 where id in
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </update>
+
+
+
+ <select id="getPlanPersonByProjectId" resultMap="planPersonResult">
+ <include refid="selectPlanPersonVo"/>
+ where p.project_id=#{projectId} and p.del_flag=0 and p.play_role=2
+ </select>
+
+
+ <select id="getAllPlanPersonByProjectId" resultMap="planPersonResult">
+ <include refid="selectPlanPersonVo"/>
+ where p.project_id=#{projectId} and p.del_flag=0
+ </select>
+
+ <select id="getPlanPersonsByIds" resultType="com.gkhy.assess.system.domain.AssPlanPerson">
+ select * from ass_plan_person
+ where id in
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </select>
+
+ <select id="getMajorById" resultType="java.lang.String">
+ select label from sys_dict_data where id in
+ <foreach item="item" index="index" collection="major.split(',')" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProcessAuditMapper.xml b/assess-system/src/main/resources/mapper/AssProcessAuditMapper.xml
new file mode 100644
index 0000000..9b6a8e3
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssProcessAuditMapper.xml
@@ -0,0 +1,80 @@
+<?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.gkhy.assess.system.mapper.AssProcessAuditMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssProcessAudit" id="processAuditResult">
+ <id property="id" column="id" />
+ <result property="auditDate" column="audit_date" />
+ <result property="processLeaderId" column="process_leader_id" />
+ <result property="suggestions" column="suggestions" />
+ <result property="isEstimatePlan" column="is_estimate_plan" />
+ <result property="isEstimateTask" column="is_estimate_task" />
+ <result property="isSignContract" column="is_sign_contract" />
+ <result property="isExteriorAudit" column="is_exterior_audit" />
+ <result property="isFullMaterials" column="is_full_materials" />
+ <result property="isInteriorAudit" column="is_interior_audit" />
+ <result property="isInvestigationSite" column="is_investigation_site" />
+ <result property="isOpenInformation" column="is_open_information" />
+ <result property="isProvideMaterials" column="is_provide_materials" />
+ <result property="isRiskAnalyse" column="is_risk_analyse" />
+ <result property="isTechnolgyAudit" column="is_technolgy_audit" />
+ <result property="isUseQrcode" column="is_use_qrcode" />
+ <result property="isWorkNotification" column="is_work_notification" />
+ <result property="estimatePlanDes" column="estimate_plan_des" />
+ <result property="estimateTaskDes" column="estimate_task_des" />
+ <result property="signContractDes" column="sign_contract_des" />
+ <result property="exteriorAuditDes" column="exterior_audit_des" />
+ <result property="fullMaterialsDes" column="full_materials_des" />
+ <result property="interiorAuditDes" column="interior_audit_des" />
+ <result property="investigationSiteDes" column="investigation_site_des" />
+ <result property="openInformationDes" column="open_information_des" />
+ <result property="provideMaterialsDes" column="provide_materials_des" />
+ <result property="riskAnalyseDes" column="risk_analyse_des" />
+ <result property="technolgyAuditDes" column="technolgy_audit_des" />
+ <result property="useQrcodeDes" column="use_qrcode_des" />
+ <result property="workNotificationDes" column="work_notification_des" />
+ <result property="isFullProcess" column="is_full_process" />
+ <result property="projectId" column="project_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="processLeader" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="process_leader_id" />
+ <result property="name" column="leader_name" />
+ </resultMap>
+
+
+ <sql id="selectProcessAuditVo">
+ select p.id,p.audit_date,p.process_leader_id,p.suggestions,p.is_estimate_plan,p.is_estimate_task,p.is_sign_contract,
+ p.is_exterior_audit,p.is_full_materials,p.is_interior_audit,p.is_investigation_site,p.is_open_information,
+ p.is_provide_materials,p.is_risk_analyse,p.is_technolgy_audit,p.is_use_qrcode,p.is_work_notification,
+ p.estimate_plan_des,p.estimate_task_des,p.sign_contract_des,p.exterior_audit_des,p.full_materials_des,
+ p.interior_audit_des,p.investigation_site_des,p.open_information_des,p.provide_materials_des,p.risk_analyse_des,
+ p.technolgy_audit_des,p.use_qrcode_des,p.work_notification_des,p.is_full_process,p.project_id,
+ p.version,p.del_flag,p.create_by,p.create_time,p.update_by,p.update_time,p.remark,u.name as leader_name
+ from ass_process_audit p
+ left join sys_user u on u.id=p.process_leader_id
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_process_audit where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getProcessAuditByProjectId" resultMap="processAuditResult">
+ <include refid="selectProcessAuditVo"/>
+ where p.project_id=#{projectId} and p.del_flag=0
+ </select>
+
+ <select id="getProcessAuditById" resultMap="processAuditResult">
+ <include refid="selectProcessAuditVo"/>
+ where p.id=#{processAuditId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProjectMapper.xml b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
new file mode 100644
index 0000000..5aa9f2a
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
@@ -0,0 +1,235 @@
+<?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.gkhy.assess.system.mapper.AssProjectMapper">
+
+ <resultMap type="com.gkhy.assess.system.domain.AssProject" id="projectResult">
+ <id property="id" column="id" />
+ <result property="name" column="name" />
+ <result property="code" column="code" />
+ <result property="client" column="client" />
+ <result property="province" column="province" />
+ <result property="city" column="city" />
+ <result property="district" column="district" />
+ <result property="business" column="business" />
+ <result property="invest" column="invest" />
+ <result property="address" column="address" />
+ <result property="actualLocation" column="actual_location" />
+ <result property="location" column="location" />
+ <result property="materialCnt" column="material_cnt" />
+ <result property="estimateType" column="estimate_type" />
+ <result property="filingDate" column="filing_date" />
+ <result property="creditCode" column="credit_code" />
+ <result property="reportProgress" column="report_progress" />
+ <result property="phase" column="phase" />
+ <result property="state" column="state" />
+ <result property="agencyId" column="agency_id" />
+ <result property="introduction" column="introduction" />
+ <result property="isReview" column="is_review" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <result property="businessName" column="business_name" />
+ <result property="leaderId" column="leader_id" />
+ <result property="estimateTypeName" column="estimate_type_name" />
+ <association property="leader" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
+ <association property="contract" javaType="com.gkhy.assess.system.domain.AssContract" resultMap="contractResult" />
+ </resultMap>
+
+ <resultMap id="userResult" type="com.gkhy.assess.system.domain.SysUser">
+ <id property="id" column="leader_id" />
+ <result property="name" column="leader_name" />
+ </resultMap>
+
+ <resultMap id="contractResult" type="com.gkhy.assess.system.domain.AssContract">
+ <id property="id" column="contract_id" />
+ <result property="contractMoney" column="contract_money" />
+ <result property="actualContractMoney" column="actual_contract_money" />
+ </resultMap>
+
+ <sql id="selectProjectVo">
+ select distinct p.id,p.name, p.code,p.client,p.province,p.city,p.district,p.business,p.invest,p.address,p.agency_id,
+ p.actual_location,p.location,p.estimate_type,p.filing_date,
+ p.credit_code,p.report_progress,p.phase,p.state,p.introduction,p.is_review,p.del_flag,p.create_by,p.create_time,
+ p.update_by,p.update_time,p.remark,d1.label as business_name,d2.label as estimate_type_name,e.leader_id,u.name as leader_name,
+ c.id as contract_id,c.contract_money,c.actual_contract_money,
+ (select count(*) from ass_project_material m where m.project_id=p.id and m.file_id is not null) as material_cnt
+ from ass_project p
+ left join ass_estimate_task e on e.project_id=p.id
+ left join sys_user u on u.id=e.leader_id
+ left join sys_dict_data d1 on d1.id=p.business
+ left join sys_dict_data d2 on d2.id=p.estimate_type
+ left join ass_contract c on c.project_id=p.id
+ </sql>
+
+
+ <select id="projectList" resultMap="projectResult">
+ <include refid="selectProjectVo"/>
+ <if test="params.personId != null and params.personId != ''">
+ left join ass_plan_person a on a.project_id=p.id
+ </if>
+ <if test="params.lostMaterial != null">
+ left join ass_project_material m on m.project_id=p.id
+ </if>
+ <where>
+ and p.del_flag = 0
+ <if test="name != null and name != ''">
+ AND p.name like concat('%', #{name}, '%')
+ </if>
+ <if test="client != null and client != ''">
+ AND p.client like concat('%', #{client}, '%')
+ </if>
+ <if test="business != null and business != ''">
+ AND p.business = #{business}
+ </if>
+ <if test="estimateType != null and estimateType != ''">
+ AND p.estimate_type = #{estimateType}
+ </if>
+ <if test="province != null and province != ''">
+ AND p.province = #{province}
+ </if>
+ <if test="city != null and city != ''">
+ AND p.city = #{city}
+ </if>
+ <if test="district != null and district != ''">
+ AND p.district = #{district}
+ </if>
+ <if test="agencyId!=null and agencyId!=''">
+ AND p.agency_id=#{agencyId}
+ </if>
+ <if test="phase!=null and phase!=''">
+ AND p.phase=#{phase}
+ </if>
+ <if test="params.startTime != null "><!-- 开始时间检索 -->
+ and date_format(p.create_time,'%y%m%d') >= date_format(#{params.startTime},'%y%m%d')
+ </if>
+ <if test="params.endTime != null "><!-- 结束时间检索 -->
+ and date_format(p.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+ </if>
+ <if test="params.personId != null and params.personId != ''">
+ and a.person_id=#{params.personId} and a.del_flag=0
+ </if>
+ <if test="params.lostMaterial != null and params.lostMaterial==1">
+ and (m.file_id is null)
+ </if>
+ <if test="params.lostMaterial != null and params.lostMaterial==0">
+ and (m.file_id is not null)
+ </if>
+ </where>
+ order by p.create_time desc
+ </select>
+
+ <select id="getProjectById" resultMap="projectResult">
+ <include refid="selectProjectVo"/>
+ where p.id=#{projectId}
+ </select>
+
+ <select id="getProjectByName" resultType="com.gkhy.assess.system.domain.AssProject">
+ select id,name from ass_project
+ where name=#{name}
+ </select>
+
+ <select id="getReportProgress" resultType="java.lang.Integer">
+ select report_progress from ass_project
+ where id=#{projectId}
+ </select>
+
+ <select id="getMemberProjectByUserId" resultMap="projectResult">
+ select p.id,p.name,p.report_progress,p.code,p.client,p.province,p.city,p.district,p.business,p.create_time,a.id as plan_person_id,
+ e.leader_id,u.name as leader_name
+ from ass_project p
+ left join ass_plan_person a on a.project_id=p.id
+ left join ass_estimate_task e on e.project_id=p.id
+ left join sys_user u on u.id=e.leader_id
+ <where>
+ and a.person_id=#{personId} and p.del_flag=0 and a.del_flag=0
+ <if test="finish!=null and finish==1">
+ and p.report_progress=14
+ </if>
+ <if test="finish!=null and finish==0">
+ and p.report_progress!=14
+ </if>
+ <if test="agencyId!=null and agencyId!=''">
+ AND p.agency_id=#{agencyId}
+ </if>
+ </where>
+ order by p.create_time desc
+ </select>
+
+ <select id="getLeaderProjectByUserId" resultMap="projectResult">
+ select p.id,p.name,p.report_progress,p.code,p.client,p.province,p.city,p.district,p.business,p.create_time,a.id as plan_person_id,
+ e.leader_id,u.name as leader_name
+ from ass_project p
+ left join ass_plan_person a on a.project_id=p.id
+ left join ass_estimate_task e on e.project_id=p.id
+ left join sys_user u on u.id=e.leader_id
+ where a.person_id=#{personId} and p.del_flag=0 and a.job_type=2 and a.del_flag=0
+ <if test="agencyId!=null and agencyId!=''">
+ and p.agency_id=#{agencyId}
+ </if>
+ order by p.create_time desc
+ </select>
+
+ <select id="getProjectCount" resultType="java.lang.Integer">
+ select count(distinct p.id) from ass_project p
+ <if test="params.lostMaterial != null">
+ left join ass_project_material m on m.project_id=p.id
+ </if>
+ <where>
+ and p.del_flag=0
+ <if test="agencyId!=null and agencyId!=''">
+ and p.agency_id=#{agencyId}
+ </if>
+ <if test="name != null and name != ''">
+ AND p.name like concat('%', #{name}, '%')
+ </if>
+ <if test="client != null and client != ''">
+ AND p.client like concat('%', #{client}, '%')
+ </if>
+ <if test="business != null and business != ''">
+ AND p.business = #{business}
+ </if>
+ <if test="estimateType != null and estimateType != ''">
+ AND p.estimate_type = #{estimateType}
+ </if>
+ <if test="province != null and province != ''">
+ AND p.province = #{province}
+ </if>
+ <if test="city != null and city != ''">
+ AND p.city = #{city}
+ </if>
+ <if test="district != null and district != ''">
+ AND p.district = #{district}
+ </if>
+ <if test="phase!=null and phase!=''">
+ AND p.phase=#{phase}
+ </if>
+ <if test="params.startTime != null "><!-- 开始时间检索 -->
+ and date_format(p.create_time,'%y%m%d') >= date_format(#{params.startTime},'%y%m%d')
+ </if>
+ <if test="params.endTime != null "><!-- 结束时间检索 -->
+ and date_format(p.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
+ </if>
+ <if test="params.lostMaterial != null and params.lostMaterial==1">
+ and (m.file_id is null)
+ </if>
+ <if test="params.lostMaterial != null and params.lostMaterial==0">
+ and (m.file_id is not null)
+ </if>
+ </where>
+ </select>
+
+ <select id="getProjectByPersonIds" resultType="com.gkhy.assess.system.domain.vo.PersonProjectVO">
+ select a.person_id,count(*) as project_count,max(p.create_time) as last_estimate_time from ass_project p
+ left join ass_plan_person a on a.project_id=p.id
+ where a.del_flag=0 and p.del_flag=0 and a.person_id in
+ <foreach collection="personIds" item="personId" open="(" separator="," close=")">
+ #{personId}
+ </foreach>
+ group by a.person_id
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProjectMaterialMapper.xml b/assess-system/src/main/resources/mapper/AssProjectMaterialMapper.xml
new file mode 100644
index 0000000..b384925
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssProjectMaterialMapper.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.assess.system.mapper.AssProjectMaterialMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssProjectMaterial" id="projectMaterialResult">
+ <id property="id" column="id" />
+ <result property="name" column="name" />
+ <result property="type" column="type" />
+ <result property="projectId" column="project_id" />
+ <result property="fileId" column="file_id" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="accessoryFile" javaType="com.gkhy.assess.system.domain.AssAccessoryFile" resultMap="fileResult" />
+
+ </resultMap>
+
+ <resultMap id="fileResult" type="com.gkhy.assess.system.domain.AssAccessoryFile">
+ <id property="id" column="file_id" />
+ <result property="originName" column="origin_name" />
+ <result property="fileName" column="file_name" />
+ <result property="path" column="path" />
+ </resultMap>
+
+
+ <sql id="selectProjectMaterialVo">
+ select p.id,p.name,p.type,p.project_id,p.file_id,
+ p.version,p.del_flag,p.create_by,p.create_time,p.update_by,p.update_time,p.remark,a.origin_name,a.file_name,a.path
+ from ass_project_material p
+ left join ass_accessory_file a on a.id=p.file_id
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_project_material where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getProjectMaterialByProjectId" resultMap="projectMaterialResult">
+ <include refid="selectProjectMaterialVo"/>
+ where p.project_id=#{projectId} and p.del_flag=0
+ </select>
+
+ <select id="getProjectMaterialById" resultMap="projectMaterialResult">
+ <include refid="selectProjectMaterialVo"/>
+ where p.id=#{projectMaterialId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssRecitificationMapper.xml b/assess-system/src/main/resources/mapper/AssRecitificationMapper.xml
new file mode 100644
index 0000000..32cd96b
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssRecitificationMapper.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.gkhy.assess.system.mapper.AssRecitificationMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssRecitification" id="recitifyResult">
+ <id property="id" column="id" />
+ <result property="rectifyPerson" column="rectify_person" />
+ <result property="rectifyTime" column="rectify_time" />
+ <result property="projectId" column="project_id" />
+ <result property="fileId" column="file_id" />
+ <result property="reason" column="reason" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ <association property="accessoryFile" javaType="com.gkhy.assess.system.domain.AssAccessoryFile" resultMap="fileResult" />
+ </resultMap>
+
+ <resultMap id="fileResult" type="com.gkhy.assess.system.domain.AssAccessoryFile">
+ <id property="id" column="file_id" />
+ <result property="originName" column="origin_name" />
+ <result property="fileName" column="file_name" />
+ <result property="path" column="path" />
+ </resultMap>
+
+ <sql id="selectProjectMaterialVo">
+ select r.id,r.rectify_person,r.rectify_person,r.project_id,r.file_id,r.reason,
+ r.version,r.del_flag,r.create_by,r.create_time,r.update_by,r.update_time,r.remark,a.origin_name,a.file_name,a.path
+ from ass_recitification r
+ left join ass_accessory_file a on a.id=r.file_id
+ </sql>
+
+
+
+ <select id="recitificationList" resultMap="recitifyResult">
+ <include refid="selectProjectMaterialVo"/>
+ where r.project_id=#{projectId} and r.del_flag=0
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssRiskEstimateMapper.xml b/assess-system/src/main/resources/mapper/AssRiskEstimateMapper.xml
new file mode 100644
index 0000000..c9bfe07
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssRiskEstimateMapper.xml
@@ -0,0 +1,59 @@
+<?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.gkhy.assess.system.mapper.AssRiskEstimateMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssRiskEstimate" id="riskEstimateResult">
+ <id property="id" column="id" />
+ <result property="projectId" column="project_id" />
+ <result property="riskCharacter" column="risk_character" />
+ <result property="surroundings" column="surroundings" />
+ <result property="equipment" column="equipment" />
+ <result property="technology" column="technology" />
+ <result property="isAcceptChargess" column="is_accept_chargess" />
+ <result property="isFeasibility" column="is_feasibility" />
+ <result property="isFinishReport" column="is_finish_report" />
+ <result property="isInBusiness" column="is_in_business" />
+ <result property="isNeedExpert" column="is_need_expert" />
+ <result property="isSatisfyNeed" column="is_satisfy_need" />
+ <result property="estimateDate" column="estimate_date" />
+ <result property="techOpinion" column="tech_opinion" />
+ <result property="riskOpinion" column="risk_opinion" />
+ <result property="agencyOpinon" column="agency_opinon" />
+ <result property="state" column="state" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectRiskEstimateVo">
+ select r.id,r.project_id,r.risk_character,r.surroundings,r.equipment,r.technology,r.is_accept_chargess,r.is_feasibility,
+ r.is_finish_report,r.is_in_business,r.is_need_expert,r.is_satisfy_need,r.estimate_date,r.tech_opinion,r.risk_opinion,
+ r.agency_opinon,r.state,r.del_flag,r.version,r.del_flag,r.create_by,r.create_time,r.update_by,r.update_time,r.remark
+ from ass_risk_estimate r
+ </sql>
+
+ <select id="getRiskEstimateByProjectId" resultType="com.gkhy.assess.system.domain.AssRiskEstimate">
+ <include refid="selectRiskEstimateVo"/>
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getRiskEstimateById" resultType="com.gkhy.assess.system.domain.AssRiskEstimate">
+ <include refid="selectRiskEstimateVo"/>
+ where r.id=#{riskId}
+ </select>
+
+ <select id="getProjectByRiskId" resultType="com.gkhy.assess.system.domain.AssProject">
+ select p.id,p.name,p.report_progress from ass_project p
+ left join ass_risk_estimate r on r.project_id=p.id
+ where r.id=${riskId}
+ </select>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer">
+ select count(1) from ass_risk_estimate where project_id=#{projectId} and del_flag=0
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssWorkNotificationMapper.xml b/assess-system/src/main/resources/mapper/AssWorkNotificationMapper.xml
new file mode 100644
index 0000000..50d886f
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssWorkNotificationMapper.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.gkhy.assess.system.mapper.AssWorkNotificationMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssWorkNotification" id="WorkNotificationResult">
+ <id property="id" column="id" />
+ <result property="serviceStartDate" column="service_start_date" />
+ <result property="serviceEndDate" column="service_end_date" />
+ <result property="investigationPlanDate" column="investigation_plan_date" />
+ <result property="projectId" column="project_id" />
+ <result property="auditId" column="audit_id" />
+ <result property="state" column="state" />
+ <result property="delFlag" column="del_flag" />
+ <result property="version" column="version" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="remark" column="remark" />
+ </resultMap>
+
+ <sql id="selectWorkNotificationVo">
+ select w.id,w.service_start_date, w.service_end_date,w.investigation_plan_date,w.project_id,w.state,w.audit_id,
+ w.del_flag,w.create_by,w.create_time,w.update_by,w.update_time,w.remark
+ from ass_work_notification w
+ </sql>
+
+
+ <select id="getCountByProjectId" resultType="java.lang.Integer" parameterType="java.lang.Long">
+ select count(1) from ass_work_notification where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getWorkNotificationByProjectId" resultMap="WorkNotificationResult">
+ <include refid="selectWorkNotificationVo"/>
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
+ <select id="getWorkNotificationById" resultMap="WorkNotificationResult">
+ <include refid="selectWorkNotificationVo"/>
+ where id=#{workNotificationId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/system/SysAgencyMapper.xml b/assess-system/src/main/resources/mapper/SysAgencyMapper.xml
similarity index 92%
rename from assess-system/src/main/resources/mapper/system/SysAgencyMapper.xml
rename to assess-system/src/main/resources/mapper/SysAgencyMapper.xml
index cab000a..8afaa7e 100644
--- a/assess-system/src/main/resources/mapper/system/SysAgencyMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysAgencyMapper.xml
@@ -59,11 +59,20 @@
<if test="name != null and name != ''">
AND a.name like concat('%', #{name}, '%')
</if>
+ <if test="province != null and province != ''">
+ AND a.province=#{province}
+ </if>
<if test="city != null and city != ''">
AND a.city=#{city}
</if>
+ <if test="district != null and district != ''">
+ AND a.district=#{district}
+ </if>
<if test="business != null and business != ''">
AND a.business like concat("%",#{business},"%")
+ </if>
+ <if test="publication != null">
+ AND a.publication =#{publication}
</if>
</where>
order by a.create_time desc
@@ -73,10 +82,6 @@
<include refid="selectAgencyVo"/>
where a.del_flag = 0 and a.id=#{agencyId}
</select>
-
- <delete id="deleteAgencyById" parameterType="java.lang.Long">
- update sys_agency set del_flag=1 where id=#{agencyId}
- </delete>
<select id="getBusinessById" resultType="java.lang.String">
diff --git a/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml b/assess-system/src/main/resources/mapper/SysAttachMapper.xml
similarity index 65%
rename from assess-system/src/main/resources/mapper/system/SysAttachMapper.xml
rename to assess-system/src/main/resources/mapper/SysAttachMapper.xml
index abdd9ff..b9e3450 100644
--- a/assess-system/src/main/resources/mapper/system/SysAttachMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysAttachMapper.xml
@@ -1,6 +1,7 @@
<?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.gkhy.assess.system.mapper.SysAttachMapper">
+
<delete id="deleteAttachsByUserId">
delete from sys_attach
<where>
@@ -14,13 +15,17 @@
</where>
</delete>
+ <delete id="deleteAttachsByIds">
+ delete from sys_attach where id in
+ <foreach collection="ids" item="id" separator="," open="(" close=")">
+ #{id}
+ </foreach>
+ </delete>
+
<select id="getAttachsByUserId" resultType="com.gkhy.assess.system.domain.SysAttach">
- select * from sys_attach
- <where>
- and user_id=#{userId}
- <if test="type!=null and type!=''">
- and type=#{type}
- </if>
- </where>
+ select * from sys_attach where user_id=#{userId}
+ <if test="type!=null and type!=''">
+ and type=#{type}
+ </if>
</select>
</mapper>
diff --git a/assess-system/src/main/resources/mapper/system/SysConfigMapper.xml b/assess-system/src/main/resources/mapper/SysConfigMapper.xml
similarity index 100%
rename from assess-system/src/main/resources/mapper/system/SysConfigMapper.xml
rename to assess-system/src/main/resources/mapper/SysConfigMapper.xml
diff --git a/assess-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/assess-system/src/main/resources/mapper/SysDictDataMapper.xml
similarity index 90%
rename from assess-system/src/main/resources/mapper/system/SysDictDataMapper.xml
rename to assess-system/src/main/resources/mapper/SysDictDataMapper.xml
index 4fa0e8a..3d6e404 100644
--- a/assess-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysDictDataMapper.xml
@@ -12,12 +12,12 @@
</update>
<select id="countDictDataByType" resultType="java.lang.Integer">
- select count(1) from sys_dict_data where dict_type=#{dictType}
+ select count(1) from sys_dict_data where dict_type=#{dictType} and del_flag=0
</select>
<select id="getDictDataByType" resultType="com.gkhy.assess.system.domain.SysDictData">
<include refid="selectDictDataVo"/>
- where d.dict_type=#{dictType} and d.status=0
+ where d.dict_type=#{dictType} and d.status=0 and d.del_flag=0
order by d.sort asc
</select>
@@ -29,13 +29,14 @@
<select id="dictDataList" resultType="com.gkhy.assess.system.domain.SysDictData">
<include refid="selectDictDataVo"/>
<where>
+ and del_flag=0
<if test="dictType != null and dictType != ''">
AND dict_type = #{dictType}
</if>
<if test="label != null and label != ''">
AND label like concat('%', #{label}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND status = #{status}
</if>
</where>
diff --git a/assess-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/assess-system/src/main/resources/mapper/SysDictTypeMapper.xml
similarity index 79%
rename from assess-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
rename to assess-system/src/main/resources/mapper/SysDictTypeMapper.xml
index bd85203..2622601 100644
--- a/assess-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysDictTypeMapper.xml
@@ -9,10 +9,11 @@
<select id="dictTypeList" resultType="com.gkhy.assess.system.domain.SysDictType">
<include refid="selectDictTypeVo"/>
<where>
+ and d.del_flag=0
<if test="name != null and name != ''">
AND d.name like concat('%', #{name}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND d.status = #{status}
</if>
<if test="dictType != null and dictType != ''">
@@ -28,12 +29,19 @@
<select id="checkDictTypeUnique" resultType="com.gkhy.assess.system.domain.SysDictType">
<include refid="selectDictTypeVo"/>
- where d.dict_type = #{dictType} limit 1
+ <where>
+ and (d.dict_type = #{dictType}
+ <if test="name!=null and name!=''">
+ or name=#{name}
+ </if>
+ )
+ and d.del_flag=0 limit 1
+ </where>
</select>
<select id="getDictTypeByType" resultType="com.gkhy.assess.system.domain.SysDictType">
<include refid="selectDictTypeVo"/>
- where d.dict_type = #{dictType}
+ where d.dict_type = #{dictType} and d.del_flag=0
</select>
diff --git a/assess-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml b/assess-system/src/main/resources/mapper/SysExpertClassifyMapper.xml
similarity index 100%
rename from assess-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml
rename to assess-system/src/main/resources/mapper/SysExpertClassifyMapper.xml
diff --git a/assess-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml b/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
similarity index 72%
rename from assess-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
rename to assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
index 1bd95ed..36bc8ef 100644
--- a/assess-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
@@ -3,24 +3,24 @@
<mapper namespace="com.gkhy.assess.system.mapper.SysExpertInfoMapper">
<sql id="selectExpertInfoVo">
- select expert_id,name,sex,birthday,phone,title,electronic_photo,id_card,duty_status,
+ select id,name,sex,birthday,phone,title,state,electronic_photo,id_card,duty_status,
company_name,company_address,dept_name,job,company_telephone,fax_num,email,
graduation_school,degree,speciality,current_profession,support_direction_safety,
support_direction_prevention,support_direction_emergency,resume_key,paper_situation_key,
reward_key,achievement_key,personal_opinion_key,recommend_unit_opinion_key,remark,create_by,
- create_time,big_classify,small_classify,del_flag
- from sys_agency
+ create_time,big_classify,small_classify,del_flag,source
+ from sys_expert_info
</sql>
- <delete id="deleteBatchByIds">
- update expert_info set del_flag = 1 where expert_id in
+ <update id="deleteBatchByIds">
+ update expert_info set del_flag = 1 where id in
<foreach collection="expertIds" item="expertId" separator="," open="(" close=")">
#{expertId}
</foreach>
- </delete>
+ </update>
<select id="expertInfoList" resultType="com.gkhy.assess.system.domain.SysExpertInfo">
- <include refid="selectExpertInfoVo"/>
+ select id,name,sex,birthday,phone,title,degree,state,speciality,big_classify,small_classify,create_time from sys_expert_info
<where>
and del_flag = 0
<if test="name != null and name != ''">
@@ -35,6 +35,9 @@
<if test="dutyStatus != null">
and duty_status = #{dutyStatus}
</if>
+ <if test="state != null">
+ and state = #{state}
+ </if>
<if test="params.startTime != null "><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d') >= date_format(#{params.startTime},'%y%m%d')
</if>
@@ -45,6 +48,11 @@
order by create_time desc
</select>
<select id="checkIdcardUnique" resultType="com.gkhy.assess.system.domain.SysExpertInfo">
- select expert_id,name from sys_expert_info where del_flag=0 limit 1
+ select id,name from sys_expert_info where id_card=#{idCard} and del_flag=0 limit 1
+ </select>
+
+ <select id="getExpertInfoById" resultType="com.gkhy.assess.system.domain.SysExpertInfo">
+ <include refid="selectExpertInfoVo"/>
+ where id=#{expertId}
</select>
</mapper>
diff --git a/assess-system/src/main/resources/mapper/system/SysLawMapper.xml b/assess-system/src/main/resources/mapper/SysLawMapper.xml
similarity index 93%
rename from assess-system/src/main/resources/mapper/system/SysLawMapper.xml
rename to assess-system/src/main/resources/mapper/SysLawMapper.xml
index 679233f..875265d 100644
--- a/assess-system/src/main/resources/mapper/system/SysLawMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysLawMapper.xml
@@ -9,10 +9,11 @@
<select id="lawList" resultType="com.gkhy.assess.system.domain.SysLaw">
select l.id,l.title,l.sub_title,l.law_type,l.pub_agency,l.pub_date,l.create_time from sys_law l
<where>
+ and l.del_flag=0
<if test="title != null and title != ''">
AND l.title like concat('%', #{title}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND l.status = #{status}
</if>
</where>
diff --git a/assess-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/assess-system/src/main/resources/mapper/SysNoticeMapper.xml
similarity index 93%
rename from assess-system/src/main/resources/mapper/system/SysNoticeMapper.xml
rename to assess-system/src/main/resources/mapper/SysNoticeMapper.xml
index 290bbcf..73b31c1 100644
--- a/assess-system/src/main/resources/mapper/system/SysNoticeMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysNoticeMapper.xml
@@ -10,10 +10,11 @@
<select id="noticeList" resultType="com.gkhy.assess.system.domain.SysNotice">
select n.id,n.title,n.create_time,n.update_time from sys_notice n
<where>
+ and n.del_flag=0
<if test="title != null and title != ''">
AND n.title like concat('%', #{title}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND n.status = #{status}
</if>
</where>
diff --git a/assess-system/src/main/resources/mapper/system/SysRegionMapper.xml b/assess-system/src/main/resources/mapper/SysRegionMapper.xml
similarity index 100%
rename from assess-system/src/main/resources/mapper/system/SysRegionMapper.xml
rename to assess-system/src/main/resources/mapper/SysRegionMapper.xml
diff --git a/assess-system/src/main/resources/mapper/SysUserFaceMapper.xml b/assess-system/src/main/resources/mapper/SysUserFaceMapper.xml
new file mode 100644
index 0000000..71bc06c
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/SysUserFaceMapper.xml
@@ -0,0 +1,8 @@
+<?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.gkhy.assess.system.mapper.SysUserFaceMapper">
+
+ <select id="getFaceByUserId" resultType="com.gkhy.assess.system.domain.SysUserFace">
+ select * from sys_user_face where del_flag=0 and user_id=#{userId} limit 1
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/system/SysUserMapper.xml b/assess-system/src/main/resources/mapper/SysUserMapper.xml
similarity index 80%
rename from assess-system/src/main/resources/mapper/system/SysUserMapper.xml
rename to assess-system/src/main/resources/mapper/SysUserMapper.xml
index f42a7e2..5ebd431 100644
--- a/assess-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysUserMapper.xml
@@ -22,6 +22,9 @@
<result property="expertType" column="expert_type" />
<result property="jobTitle" column="job_title" />
<result property="major" column="major" />
+ <result property="level" column="level" />
+ <result property="idPhoto" column="id_photo" />
+ <result property="certificateNo" column="certificate_no" />
<result property="state" column="state" />
<result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" />
@@ -35,6 +38,7 @@
<collection property="socialAttach" ofType="com.gkhy.assess.system.domain.SysAttach" select="getSocialAttachByUserId" column="{userId=id}"/>
<collection property="medicalAttach" ofType="com.gkhy.assess.system.domain.SysAttach" select="getMedicalAttachByUserId" column="{userId=id}"/>
<collection property="salaryAttach" ofType="com.gkhy.assess.system.domain.SysAttach" select="getSalaryAttachByUserId" column="{userId=id}"/>
+ <collection property="majorNames" ofType="java.lang.String" select="getMajorById" column="{major=major}"/>
</resultMap>
@@ -45,23 +49,17 @@
</resultMap>
<sql id="selectUserVo">
- select u.id,u.username, u.name,u.identity,u.user_type,u.phone,u.sex,u.status,u.del_flag,u.manage_region,u.expert_type,u.agency_id,u.post,u.job_title,u.major,u.state,u.create_time,u.remark,a.id as agency_id,a.name as agency_name,a.credit_code
+ select u.id,u.username, u.name,u.identity,u.user_type,u.phone,u.sex,u.status,
+ u.del_flag,u.manage_region,u.expert_type,u.agency_id,u.post,u.job_title,
+ u.major,u.state,u.create_time,u.remark,u.level,u.id_photo,u.certificate_no,
+ a.id as agency_id,a.name as agency_name,a.credit_code
from sys_user u
left join sys_agency a on u.agency_id=a.id
</sql>
- <delete id="deleteUserById" parameterType="java.lang.Long">
- update sys_user set del_flag=1 where id=#{userId}
- </delete>
- <delete id="deleteUserByIds">
- update sys_user set del_flag = 1 where id in
- <foreach collection="userIds" item="userId" open="(" separator="," close=")">
- #{userId}
- </foreach>
- </delete>
<select id="getUserByUsername" resultMap="SysUserResult">
- select id,username,name,password,salt,identity,state,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,state,status,del_flag,agency_id,major from sys_user
where username=#{username} and del_flag=0
</select>
@@ -72,7 +70,7 @@
<if test="username != null and username != ''">
AND u.username like concat('%', #{username}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND u.status = #{status}
</if>
<if test="phone != null and phone != ''">
@@ -89,7 +87,7 @@
<if test="username != null and username != ''">
AND u.username like concat('%', #{username}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="status != null">
AND u.status = #{status}
</if>
<if test="phone != null and phone != ''">
@@ -106,8 +104,14 @@
<if test="username != null and username != ''">
AND u.username like concat('%', #{username}, '%')
</if>
- <if test="status != null and status != ''">
+ <if test="name != null and name != ''">
+ AND u.name like concat('%', #{name}, '%')
+ </if>
+ <if test="status != null">
AND u.status = #{status}
+ </if>
+ <if test="level != null and level!=''">
+ AND u.level = #{level}
</if>
<if test="phone != null and phone != ''">
AND u.phone like concat('%', #{phone}, '%')
@@ -115,6 +119,16 @@
<if test="expertType != null and expertType != ''">
AND u.expert_type =#{expertType}
</if>
+ <if test="agencyId != null and agencyId != ''">
+ AND u.agency_id =#{agencyId}
+ </if>
+ <if test="major != null and major != ''">
+ AND u.major like concat("%",#{major},"%")
+ </if>
+ <if test="post != null and post != ''">
+ AND u.post =#{post}
+ </if>
+
</where>
order by u.create_time desc
</select>
@@ -122,17 +136,17 @@
<select id="getUserByPhone" resultMap="SysUserResult">
- select id,username,name,password,salt,identity,state,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,state,status,del_flag,major from sys_user
where phone=#{phone} and del_flag=0
</select>
<select id="getUserByEmail" resultMap="SysUserResult">
- select id,username,name,password,salt,identity,state,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,state,status,del_flag,major from sys_user
where email=#{email} and del_flag=0
</select>
<select id="getUserById" resultMap="SysUserResult">
- select id,username,name,password,salt,identity,status,del_flag,agency_id from sys_user
+ select id,username,name,password,salt,identity,status,del_flag,agency_id,major from sys_user
where id=#{userId}
</select>
@@ -149,7 +163,7 @@
</select>
<select id="getUserByUsernamePhone" resultType="com.gkhy.assess.system.domain.SysUser">
- select id,username,name,password,salt,identity,state,status,del_flag from sys_user
+ select id,username,name,password,salt,identity,state,status,del_flag,agency_id from sys_user
where (username=#{username} or phone=#{username}) and del_flag=0
</select>
@@ -166,6 +180,13 @@
select id,name,path,type,user_id,create_time from sys_attach where user_id=#{userId} and type=3 order by create_time desc
</select>
+ <select id="getMajorById" resultType="java.lang.String">
+ select label from sys_dict_data where id in
+ <foreach item="item" index="index" collection="major.split(',')" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </select>
+
<select id="getUserInfoById" resultMap="SysUserResult">
<include refid="selectUserVo"/>
where u.id=#{userId}
diff --git a/assess-system/src/test/java/com/gkhy/system/MybatisPlusGenerator.java b/assess-system/src/test/java/com/gkhy/system/MybatisPlusGenerator.java
index 8c72f52..2617aab 100644
--- a/assess-system/src/test/java/com/gkhy/system/MybatisPlusGenerator.java
+++ b/assess-system/src/test/java/com/gkhy/system/MybatisPlusGenerator.java
@@ -13,10 +13,10 @@
public class MybatisPlusGenerator {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
- String model="/gkhy-system";
+ String model="/assess-system";
// 数据库配置
DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig
- .Builder("jdbc:mysql://localhost:3306/gkhy" +
+ .Builder("jdbc:mysql://localhost:3306/smart_assess" +
"?useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"
, "root", "password");
FastAutoGenerator.create(dataSourceConfigBuilder)
@@ -40,7 +40,7 @@
// 包配置
.packageConfig((scanner, builder) -> {
// 父包名
- builder.parent("com.gkhy")
+ builder.parent("com.gkhy.assess")
// 模块名
.moduleName("system")
// Entity 包名
@@ -54,7 +54,7 @@
// Mapper 包名
.mapper("mapper")
// MapperXML 包名
- .xml("mapper.system")
+ .xml("mapper")
// 路径配置信息
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") +model+ "/src/main/resources/mapper/"));
})
diff --git a/pom.xml b/pom.xml
index 5fbb586..10f15ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,6 @@
<artifactId>assess-admin</artifactId>
<version>${assess.version}</version>
</dependency>
-
<!--MyBatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
--
Gitblit v1.9.2