From 28aaf2ffa1dbb860a292ba330a7e9362e60e7832 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期五, 12 七月 2024 16:41:03 +0800
Subject: [PATCH] update
---
assess-admin/src/main/resources/application-dev.yml | 1
assess-admin/src/main/resources/db/migration/V20240712001_change_expert_info.sql | 6
assess-system/src/main/java/com/gkhy/assess/system/domain/AssDevice.java | 7
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementServiceImpl.java | 139 ++++
assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java | 1
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectController.java | 3
assess-system/src/main/resources/mapper/AssProjectSupplementFileMapper.xml | 12
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateTask.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/AssConclusion.java | 8
assess-admin/src/main/resources/db/migration/V20240611002_project_supplement_file.sql | 17
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysCommonServiceImpl.java | 15
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementMapper.java | 41 +
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysUserController.java | 2
assess-admin/src/main/resources/db/migration/V20240615001_change_project.sql | 5
assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java | 3
assess-system/src/main/java/com/gkhy/assess/system/domain/vo/SysExpertInfoExcelVO.java | 105 +++
assess-system/src/main/java/com/gkhy/assess/system/excel/ExpertExcelListener.java | 98 +++
assess-system/src/main/java/com/gkhy/assess/system/service/SysCommonService.java | 6
assess-system/src/main/java/com/gkhy/assess/system/domain/AssContract.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/AssRiskEstimate.java | 6
assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysCommonController.java | 10
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimateTaskServiceImpl.java | 6
assess-admin/src/main/resources/application.yml | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java | 22
assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementService.java | 58 ++
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplementFile.java | 71 ++
assess-admin/src/main/resources/db/migration/V20240613001_change_supplement_file.sql | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/AssAudit.java | 7
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java | 9
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java | 7
assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementFileService.java | 34 +
assess-common/src/main/java/com/gkhy/assess/common/excel/SexConvert.java | 33 +
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java | 19
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java | 8
assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectMaterial.java | 6
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementFileMapper.java | 33 +
assess-system/src/main/resources/mapper/AssProjectSupplementMapper.xml | 50 +
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssEstimatePlanServiceImpl.java | 19
assess-admin/src/test/java/com/gkhy/admin/ExcelTest.java | 33 +
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java | 1
assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/AssWorkNotification.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProcessAudit.java | 6
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 172 ++++-
assess-system/src/main/java/com/gkhy/assess/system/service/AssPlanPersonService.java | 9
assess-common/pom.xml | 5
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/ShiroConfig.java | 1
pom.xml | 7
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAuditServiceImpl.java | 6
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementFileServiceImpl.java | 39 +
assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectServiceImpl.java | 20
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java | 19
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectMapper.java | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFilingApply.java | 6
assess-system/src/main/java/com/gkhy/assess/system/domain/AssRecitification.java | 6
assess-common/src/main/java/com/gkhy/assess/common/excel/BirthdayConvert.java | 34 +
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecognition.java | 8
assess-system/src/main/resources/mapper/SysUserMapper.xml | 9
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java | 3
assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java | 23
assess-system/src/main/java/com/gkhy/assess/system/domain/AssFaceRecord.java | 6
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssPlanPersonMapper.java | 6
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java | 24
assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml | 4
assess-system/src/main/resources/mapper/AssProjectMapper.xml | 16
assess-admin/src/main/resources/db/migration/V20240611001_project_supplement.sql | 20
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecordServiceImpl.java | 10
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplement.java | 106 +++
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimateSchedule.java | 7
assess-system/src/main/java/com/gkhy/assess/system/domain/SysExpertInfo.java | 8
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java | 6
assess-common/src/main/java/com/gkhy/assess/common/excel/DutyConvert.java | 33 +
assess-system/src/main/java/com/gkhy/assess/system/domain/AssEstimatePlan.java | 6
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectSupplementController.java | 71 ++
assess-system/src/main/java/com/gkhy/assess/system/domain/AssPlanPerson.java | 12
assess-admin/src/main/resources/db/migration/V20240614001_add_index.sql | 44 +
80 files changed, 1,503 insertions(+), 199 deletions(-)
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
index 63580c4..97c3298 100644
--- 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
@@ -3,11 +3,14 @@
import com.gkhy.assess.common.annotation.RepeatSubmit;
import com.gkhy.assess.common.api.CommonResult;
+import com.gkhy.assess.system.domain.AssProjectSupplement;
import com.gkhy.assess.system.service.AssAccessoryFileService;
+import com.gkhy.assess.system.service.AssProjectSupplementFileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -28,6 +31,8 @@
public class AssAccessoryFileController {
@Autowired
private AssAccessoryFileService assAccessoryFileService;
+ @Autowired
+ private AssProjectSupplementFileService assProjectSupplementFileService;
@RepeatSubmit
@ApiOperation(value = "评估文件上传(图片/文件)")
@@ -36,8 +41,8 @@
@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));
+ 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获取评估文件")
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
index 9bdaf66..1243d26 100644
--- 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
@@ -9,6 +9,8 @@
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.web.bind.annotation.*;
@@ -69,6 +71,7 @@
@RepeatSubmit
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "删除项目")
@DeleteMapping("/remove/{projectId}")
public CommonResult deleteProject(@PathVariable(value = "projectId")Long projectId){
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectSupplementController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectSupplementController.java
new file mode 100644
index 0000000..ebdd9ee
--- /dev/null
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssProjectSupplementController.java
@@ -0,0 +1,71 @@
+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.AssProjectSupplement;
+import com.gkhy.assess.system.service.AssProjectSupplementService;
+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-11 14:16:18
+ */
+@Api(tags = "项目补录前端控制器")
+@RestController
+@RequestMapping("/manage/project-supplement")
+public class AssProjectSupplementController {
+ @Autowired
+ private AssProjectSupplementService projectSupplementService;
+
+ @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")
+ })
+ @GetMapping("/list")
+ public CommonResult projectList(AssProjectSupplement projectSupplement){
+ return CommonResult.success(projectSupplementService.projectSupplementList(projectSupplement));
+ }
+
+ @ApiOperation(value = "根据id获取项目详情")
+ @GetMapping("/detail/{projectId}")
+ public CommonResult projectDetail(@PathVariable(value = "projectId") Long projectId){
+ return CommonResult.success(projectSupplementService.getProjectSupplementById(projectId));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "创建项目补录")
+ @PostMapping("/add")
+ public CommonResult addProject(@Validated @RequestBody AssProjectSupplement projectSupplement){
+ return CommonResult.success(projectSupplementService.addProjectSupplement(projectSupplement));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "编辑项目补录")
+ @PutMapping("/edit")
+ public CommonResult editProject(@Validated @RequestBody AssProjectSupplement projectSupplement){
+ return CommonResult.success(projectSupplementService.editProjectSupplement(projectSupplement));
+ }
+
+
+ @RepeatSubmit
+ @ApiOperation(value = "删除项目")
+ @DeleteMapping("/remove/{projectId}")
+ public CommonResult deleteProject(@PathVariable(value = "projectId")Long projectId){
+ return CommonResult.success(projectSupplementService.deleteProjectSupplement(projectId));
+ }
+
+}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysCommonController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysCommonController.java
index b3e22f6..6ef14fb 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysCommonController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysCommonController.java
@@ -13,6 +13,8 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+
@Api(tags = "通用接口前端控制器")
@RestController
@RequestMapping("/system/common")
@@ -34,4 +36,12 @@
}
+ @ApiOperation(value = "Excel导入")
+ @GetMapping("/importExcel")
+ public CommonResult importExcel() throws IOException {
+ commonService.importExcel();
+ return CommonResult.success();
+ }
+
+
}
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 2f13c70..4945ee7 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
@@ -90,7 +90,7 @@
}
@RepeatSubmit
- @RequiresPermissions("system:assess:monitor")
+ @RequiresPermissions(value = {"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "编辑机构")
@PutMapping("/editAgency")
public CommonResult editAgency(@RequestBody SysUser user){
diff --git a/assess-admin/src/main/resources/application-dev.yml b/assess-admin/src/main/resources/application-dev.yml
index 4a7ca0a..e579e73 100644
--- a/assess-admin/src/main/resources/application-dev.yml
+++ b/assess-admin/src/main/resources/application-dev.yml
@@ -8,7 +8,6 @@
url: jdbc:mysql://localhost:3306/smart_assess?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: password
- # 从库数据源
slave:
enabled: false
url:
diff --git a/assess-admin/src/main/resources/application.yml b/assess-admin/src/main/resources/application.yml
index 79b029e..64b5108 100644
--- a/assess-admin/src/main/resources/application.yml
+++ b/assess-admin/src/main/resources/application.yml
@@ -7,7 +7,7 @@
multipart:
enabled: true
# 单个文件大小
- max-file-size: 20MB
+ max-file-size: 50MB
# 设置总上传的文件大小
max-request-size: 100MB
mvc:
diff --git a/assess-admin/src/main/resources/db/migration/V20240611001_project_supplement.sql b/assess-admin/src/main/resources/db/migration/V20240611001_project_supplement.sql
new file mode 100644
index 0000000..2b0e259
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240611001_project_supplement.sql
@@ -0,0 +1,20 @@
+
+-- ----------------------------
+-- 项目补录表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`ass_project_supplement` (
+`id` bigint NOT NULL AUTO_INCREMENT,
+`name` varchar(50) NOT NULL COMMENT '项目名称',
+`writer` varchar(50) NOT NULL COMMENT '报告撰写人',
+`reviewer` varchar(50) NOT NULL COMMENT '报告审批人',
+`filing_date` datetime NOT NULL COMMENT '项目时间',
+`agency_id` bigint NOT 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/V20240611002_project_supplement_file.sql b/assess-admin/src/main/resources/db/migration/V20240611002_project_supplement_file.sql
new file mode 100644
index 0000000..c181d6d
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240611002_project_supplement_file.sql
@@ -0,0 +1,17 @@
+
+-- ----------------------------
+-- 项目补录附件表
+-- ----------------------------
+CREATE TABLE `smart_assess`.`ass_project_supplement_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 '文件存放路径',
+`project_id` bigint NOT NULL COMMENT '项目补录id',
+`version` int NULL DEFAULT 0 COMMENT '乐观锁',
+`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,
+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/V20240613001_change_supplement_file.sql b/assess-admin/src/main/resources/db/migration/V20240613001_change_supplement_file.sql
new file mode 100644
index 0000000..91dcaea
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240613001_change_supplement_file.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `smart_assess`.`ass_project_supplement_file`
+MODIFY COLUMN `origin_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件原始名称';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240614001_add_index.sql b/assess-admin/src/main/resources/db/migration/V20240614001_add_index.sql
new file mode 100644
index 0000000..e79ef69
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240614001_add_index.sql
@@ -0,0 +1,44 @@
+ALTER TABLE `smart_assess`.`ass_project`
+ADD INDEX `index_agency_id`(`agency_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_audit`
+ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_conclusion`
+ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_contract`
+ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_estimate_plan`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_estimate_task`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_filing_apply`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_investigation`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_process_audit`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_project_material`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_project_supplement`
+ ADD INDEX `index_agency_id`(`agency_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_project_supplement_file`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_recitification`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_risk_estimate`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
+
+ALTER TABLE `smart_assess`.`ass_work_notification`
+ ADD INDEX `index_project_id`(`project_id`) USING BTREE;
diff --git a/assess-admin/src/main/resources/db/migration/V20240615001_change_project.sql b/assess-admin/src/main/resources/db/migration/V20240615001_change_project.sql
new file mode 100644
index 0000000..444bbf4
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240615001_change_project.sql
@@ -0,0 +1,5 @@
+ALTER TABLE `smart_assess`.`ass_project`
+MODIFY COLUMN `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目名称';
+
+ALTER TABLE `smart_assess`.`ass_project_supplement`
+MODIFY COLUMN `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目名称';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240712001_change_expert_info.sql b/assess-admin/src/main/resources/db/migration/V20240712001_change_expert_info.sql
new file mode 100644
index 0000000..8b440b0
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240712001_change_expert_info.sql
@@ -0,0 +1,6 @@
+ALTER TABLE `smart_assess`.`sys_expert_info`
+MODIFY COLUMN `title` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '职称',
+MODIFY COLUMN `company_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '单位名称',
+MODIFY COLUMN `current_profession` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '现在从事专业或方向',
+ADD COLUMN `domain` varchar(10) NULL COMMENT '专家领域',
+ADD COLUMN `level` varchar(10) NULL COMMENT '入库分级';
\ No newline at end of file
diff --git a/assess-admin/src/test/java/com/gkhy/admin/ExcelTest.java b/assess-admin/src/test/java/com/gkhy/admin/ExcelTest.java
new file mode 100644
index 0000000..873d322
--- /dev/null
+++ b/assess-admin/src/test/java/com/gkhy/admin/ExcelTest.java
@@ -0,0 +1,33 @@
+package com.gkhy.admin;
+
+import com.alibaba.excel.EasyExcel;
+import com.gkhy.assess.admin.GkhyAdminApplication;
+import com.gkhy.assess.system.excel.ExpertExcelListener;
+import com.gkhy.assess.system.domain.vo.SysExpertInfoExcelVO;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.io.Resource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = GkhyAdminApplication.class)
+//@ActiveProfiles("dev")
+@Slf4j
+public class ExcelTest {
+ @Autowired
+ private ApplicationContext applicationContext;
+
+ @Test
+ public void testExcel() throws IOException {
+ Resource resource = applicationContext.getResource("classpath:abc.xlsx");
+ InputStream resourceAsStream =resource.getInputStream();
+ EasyExcel.read(resourceAsStream, SysExpertInfoExcelVO.class,new ExpertExcelListener()).sheet(0).doRead();
+ }
+}
diff --git a/assess-common/pom.xml b/assess-common/pom.xml
index 2e310ce..f22f60d 100644
--- a/assess-common/pom.xml
+++ b/assess-common/pom.xml
@@ -116,6 +116,11 @@
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>com.alibaba</groupId>
+ <artifactId>easyexcel</artifactId>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
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 8d8860f..047dfa7 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
@@ -33,6 +33,9 @@
@ApiModelProperty(value = "机构Id")
private Long agentId;
+ @ApiModelProperty(value = "审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废 默认1)")
+ private Integer state;
+
@ApiModelProperty("用户角色")
private String role;
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/excel/BirthdayConvert.java b/assess-common/src/main/java/com/gkhy/assess/common/excel/BirthdayConvert.java
new file mode 100644
index 0000000..5bc0f4c
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/excel/BirthdayConvert.java
@@ -0,0 +1,34 @@
+package com.gkhy.assess.common.excel;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.ReadConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.data.DataFormatData;
+
+import java.util.Date;
+
+public class BirthdayConvert implements Converter<Date> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Date.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public Date convertToJavaData(ReadConverterContext<?> context) throws Exception {
+ DataFormatData dataFormatData = context.getReadCellData().getDataFormatData();
+ Object data = context.getReadCellData().getData();
+ String borthday=dataFormatData.toString();
+ borthday=borthday.trim();
+ String year=borthday.substring(0,4);
+
+ return new Date();
+
+ }
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/excel/DutyConvert.java b/assess-common/src/main/java/com/gkhy/assess/common/excel/DutyConvert.java
new file mode 100644
index 0000000..9a52ec3
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/excel/DutyConvert.java
@@ -0,0 +1,33 @@
+package com.gkhy.assess.common.excel;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.ReadConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+
+public class DutyConvert implements Converter<Integer> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Integer.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public Integer convertToJavaData(ReadConverterContext<?> context) throws Exception {
+ String duty=context.getReadCellData().getStringValue();
+ switch (duty){
+ case "在岗":
+ return 0;
+ case "退休":
+ return 1;
+ default:
+ return 0;
+ }
+
+ }
+}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/excel/SexConvert.java b/assess-common/src/main/java/com/gkhy/assess/common/excel/SexConvert.java
new file mode 100644
index 0000000..5a8b2d2
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/excel/SexConvert.java
@@ -0,0 +1,33 @@
+package com.gkhy.assess.common.excel;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.converters.ReadConverterContext;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+
+public class SexConvert implements Converter<Integer> {
+
+ @Override
+ public Class<?> supportJavaTypeKey() {
+ return Integer.class;
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return CellDataTypeEnum.STRING;
+ }
+
+ @Override
+ public Integer convertToJavaData(ReadConverterContext<?> context) throws Exception {
+ String sex=context.getReadCellData().getStringValue();
+ switch (sex){
+ case "男":
+ return 0;
+ case "女":
+ return 1;
+ default:
+ return 2;
+ }
+
+ }
+}
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 dd9aae4..302045a 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
@@ -49,7 +49,7 @@
public static String tokenHead="";
/**Token有效期为1天(Token在reids中缓存时间为两倍) 单位ms*/
- public static final long EXPIRATION=(1 * 24) * 60 * 60 * 1000; //JWT的超期限时间(60*60*24*1)
+ public static final long EXPIRATION=(1 *12) * 60 * 60 * 1000; //JWT的超期限时间(60*60*24*1)
/**
* token有效期还有30分钟,刷新token 单位ms
@@ -127,7 +127,7 @@
* @return
*/
public static String sign(String username,String secret,Integer identity){
- Date date=new Date(System.currentTimeMillis()+EXPIRATION*1000);
+ Date date=new Date(System.currentTimeMillis()+EXPIRATION);
Algorithm algorithm=Algorithm.HMAC256(secret);
return JWT.create().withClaim("username",username)
.withClaim("identity",identity).withExpiresAt(date).sign(algorithm);
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 5bc2a53..f820a65 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
@@ -13,8 +13,10 @@
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
+import java.lang.reflect.Array;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
import java.util.TimeZone;
/**
@@ -61,16 +63,21 @@
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
- final CorsConfiguration corsConfiguration = new CorsConfiguration();
+ final CorsConfiguration config = new CorsConfiguration();
//是否允许请求带有验证信息
- corsConfiguration.setAllowCredentials(true);
+ config.setAllowCredentials(true);
+ config.setAllowedOrigins(Arrays.asList("*"));
+ config.setAllowedMethods(Arrays.asList("*"));
+ config.setAllowCredentials(true);
+ config.setMaxAge(168000L);
+
// 允许访问的客户端域名
- corsConfiguration.addAllowedOriginPattern("*");
- // 允许服务端访问的客户端请求头
- corsConfiguration.addAllowedHeader("*");
- // 允许访问的方法名,GET POST等
- corsConfiguration.addAllowedMethod("*");
- urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
+// config.addAllowedOriginPattern("*");
+// // 允许服务端访问的客户端请求头
+// config.addAllowedHeader("*");
+// // 允许访问的方法名,GET POST等
+// config.addAllowedMethod("*");
+ urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", config);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
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 f2deed4..fa572be 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
@@ -67,6 +67,7 @@
// 配置shiro错误从定向问题 /error 路径的错误处理
chain.addPathDefinition("/error", "anon");
chain.addPathDefinition("/upload/**", "anon");
+ chain.addPathDefinition("/system/common/importExcel", "anon");
chain.addPathDefinition("/system/account/login","anon");
chain.addPathDefinition("/system/logout", "anon");
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
index cd24912..5a55de1 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
@@ -5,6 +5,7 @@
import com.gkhy.assess.common.utils.RequestUtil;
import com.gkhy.assess.common.utils.SpringContextUtils;
import com.gkhy.assess.common.domain.JwtToken;
+import com.gkhy.assess.common.utils.StringUtils;
import com.gkhy.assess.framework.shiro.service.SysLoginService;
import com.gkhy.assess.system.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
@@ -65,7 +66,7 @@
SysUser sysUser=null;
if(authenticationToken instanceof JwtToken){
String token= (String) authenticationToken.getCredentials();
- if(token==null){
+ if(StringUtils.isBlank(token)){
log.info("————————身份认证失败——————————IP地址: "+ RequestUtil.getRequestIp(req) +",URL:"+req.getRequestURI());
throw new AuthenticationException("token为空!");
}
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 96d9a40..f2a37b9 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
@@ -56,11 +56,11 @@
if(UserStatusEnum.DISABLE.getCode().equals(sysUser.getStatus())){
throw new AuthenticationException("用户已被停用");
}
- if(UserIdentityEnum.AGENCY.getCode().equals(sysUser.getIdentity())){
- if(!ApproveStatusEnum.APPROVED.getCode().equals(sysUser.getState())){
- throw new AuthenticationException("机构账户审批还未通过");
- }
- }
+// if(UserIdentityEnum.AGENCY.getCode().equals(sysUser.getIdentity())){
+// if(!ApproveStatusEnum.APPROVED.getCode().equals(sysUser.getState())){
+// throw new AuthenticationException("机构账户审批还未通过");
+// }
+// }
}
public SysUser validJwtToken(String jwtToken){
@@ -76,7 +76,7 @@
throw new AuthenticationException("token非法无效!");
}
if(!jwtTokenRefresh(jwtToken,username,sysUser.getPassword(),identity)){
- throw new AuthenticationException("Token已失效,请重新登录!");
+ throw new AuthenticationException("您的账号登录过期,请重新登录!");
}
// setRolePermission(sysUser);
return sysUser;
@@ -97,16 +97,15 @@
*/
public boolean jwtTokenRefresh(String jwtToken, String username, String passWord, Integer identity){
String tokenKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
- String userKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+username+"_"+identity);
+ // String userKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+username+"_"+identity);
String cacheToken= (String) redisUtils.get(tokenKey);
if(StringUtils.isNotEmpty(cacheToken)){
// 校验token有效性
if(!JwtTokenUtil.isNeedUpdate(cacheToken,username,passWord,identity)){
String newToken=JwtTokenUtil.sign(username,passWord,identity);
// 设置超时时间
- redisUtils.set(tokenKey,newToken);
- redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
- redisUtils.expire(userKey,(JwtTokenUtil.EXPIRATION*2/1000)+2);
+ redisUtils.set(tokenKey,newToken,JwtTokenUtil.EXPIRATION*2/1000);
+ // redisUtils.expire(userKey,(JwtTokenUtil.EXPIRATION*2/1000)+2);
}
return true;
}
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
index 24c7e2e..2bbcbfd 100644
--- 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
@@ -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;
@@ -65,6 +63,7 @@
@TableField("project_id")
private Long projectId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index b0c0e6a..eadfc01 100644
--- 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
@@ -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;
@@ -147,6 +145,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 95ac9a2..99a407b 100644
--- 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
@@ -1,9 +1,6 @@
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.util.List;
@@ -15,6 +12,7 @@
import lombok.Setter;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -54,6 +52,7 @@
@TableField("project_id")
private Long projectId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
@@ -62,6 +61,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @NotEmpty(message = "评价报告不能为空")
@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
index ec298b7..4dfb7d7 100644
--- 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
@@ -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.math.BigDecimal;
import java.time.LocalDateTime;
@@ -71,6 +69,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@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
index 9075f00..18453d8 100644
--- 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
@@ -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;
@@ -66,6 +64,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@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
index 0ee466b..238ee3a 100644
--- 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
@@ -1,9 +1,6 @@
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.time.LocalDateTime;
import java.util.List;
@@ -64,6 +61,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index b7c506b..93543f6 100644
--- 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
@@ -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;
@@ -68,6 +66,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index fa84b3c..a263e76 100644
--- 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
@@ -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;
@@ -79,6 +77,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 0992ee0..ceb2aee 100644
--- 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
@@ -1,9 +1,6 @@
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;
@@ -55,12 +52,13 @@
@TableField("sign_path")
private String signPath;
- @NotBlank(message = "承诺书图片路径不能为空")
+ // @NotBlank(message = "承诺书图片路径不能为空")
@ApiModelProperty(value = "承诺书图片路径",required = true)
@TableField("insurance_path")
private String insurancePath;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 9c7a4f1..cd57849 100644
--- 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
@@ -1,9 +1,6 @@
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;
@@ -64,6 +61,7 @@
@TableField("scene")
private Integer scene;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 8876572..d02fd21 100644
--- 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
@@ -1,9 +1,6 @@
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;
@@ -47,6 +44,7 @@
@TableField("file_id")
private Long fileId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 28c791a..214c3ff 100644
--- 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
@@ -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;
@@ -73,6 +71,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 7e2b11a..feb2b87 100644
--- 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
@@ -1,11 +1,10 @@
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.JsonInclude;
import com.gkhy.assess.common.domain.BaseEntity;
@@ -93,6 +92,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
@@ -101,4 +101,8 @@
@TableField(exist = false)
private SysUser person;
+ @ApiModelProperty("项目担任角色数组")
+ @TableField(exist = false)
+ private List<Integer> playRoles;
+
}
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
index 967145f..05da18d 100644
--- 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
@@ -1,9 +1,6 @@
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.system.domain.SysUser;
@@ -165,6 +162,7 @@
@TableField("project_id")
private Long projectId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 6fca7e2..6639a88 100644
--- 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
@@ -42,6 +42,7 @@
private Long id;
@NotBlank(message = "项目名称不能为空")
+ @Length(min=1,max=100,message = "项目名称不能超过{max}字符")
@ApiModelProperty(value = "项目名称",required = true)
@TableField("name")
private String name;
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
index b1b95b6..cd6e697 100644
--- 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
@@ -1,9 +1,6 @@
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;
@@ -56,6 +53,7 @@
@TableField("file_id")
private Long fileId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplement.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplement.java
new file mode 100644
index 0000000..1a3e66b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplement.java
@@ -0,0 +1,106 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 项目补录表
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:14
+ */
+@Getter
+@Setter
+@TableName("ass_project_supplement")
+@ApiModel(value = "AssProjectSupplement对象", description = "项目补录表")
+public class AssProjectSupplement implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+
+ @NotBlank(message = "项目名称不能为空")
+ @Length(min=1,max=100,message = "项目名称不能超过{max}字符")
+ @ApiModelProperty(value = "项目名称",required = true)
+ @TableField("name")
+ private String name;
+
+ @NotBlank(message = "报告撰写人不能为空")
+ @Length(min=1,max=50,message = "报告撰写人不能超过{max}字符")
+ @ApiModelProperty(value = "报告撰写人",required = true)
+ @TableField("writer")
+ private String writer;
+
+ @NotBlank(message = "报告审批人不能为空")
+ @Length(min=1,max=50,message = "报告审批人不能超过{max}字符")
+ @ApiModelProperty(value = "报告审批人",required = true)
+ @TableField("reviewer")
+ private String reviewer;
+
+ @NotNull(message = "项目时间不能为空")
+ @ApiModelProperty(value = "项目时间",required = true)
+ @TableField("filing_date")
+ private LocalDateTime filingDate;
+
+ @NotNull(message = "机构id不能为空")
+ @ApiModelProperty(value = "机构id",required = true)
+ @TableField("agency_id")
+ private Long agencyId;
+
+ @ApiModelProperty("删除标志(0正常,1删除,默认0)")
+ @TableField("del_flag")
+ private Integer delFlag;
+
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @ApiModelProperty("创建人")
+ @TableField("create_by")
+ private String createBy;
+
+ @ApiModelProperty("创建时间")
+ @TableField("create_time")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("更新人")
+ @TableField("update_by")
+ private String updateBy;
+
+ @ApiModelProperty("更新时间")
+ @TableField("update_time")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("备注")
+ @TableField("remark")
+ private String remark;
+
+ @NotEmpty(message = "附件列表不能为空")
+ @ApiModelProperty(value = "附件列表",required = true)
+ @TableField(exist = false)
+ private List<AssProjectSupplementFile> files;
+
+ @ApiModelProperty("机构名称")
+ @TableField(exist = false)
+ private String agencyName;
+
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplementFile.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplementFile.java
new file mode 100644
index 0000000..16a8e77
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProjectSupplementFile.java
@@ -0,0 +1,71 @@
+package com.gkhy.assess.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * <p>
+ * 项目补录附件表
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:15
+ */
+@Getter
+@Setter
+@TableName("ass_project_supplement_file")
+@ApiModel(value = "AssProjectSupplementFile对象", description = "项目补录附件表")
+public class AssProjectSupplementFile implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("文件名称")
+ @TableField("file_name")
+ private String fileName;
+
+ @Length(min = 0,max = 100,message = "文件名长度不能超过100个字符")
+ @ApiModelProperty("文件原始名称")
+ @TableField("origin_name")
+ private String originName;
+
+ @ApiModelProperty("文件存放路径")
+ @TableField("path")
+ private String path;
+
+ @ApiModelProperty("项目补录id")
+ @TableField("project_id")
+ private Long projectId;
+
+ @Version
+ @ApiModelProperty("乐观锁")
+ @TableField("version")
+ private Integer version;
+
+ @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;
+
+
+}
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
index 8282aee..7899e8c 100644
--- 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
@@ -1,9 +1,6 @@
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.time.LocalDateTime;
@@ -66,6 +63,7 @@
@TableField("reason")
private String reason;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 706b967..4df4982 100644
--- 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
@@ -1,9 +1,6 @@
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.time.LocalDateTime;
@@ -131,6 +128,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
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
index 83f962d..092d671 100644
--- 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
@@ -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;
@@ -71,6 +69,7 @@
@TableField("del_flag")
private Integer delFlag;
+ @Version
@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 f08252a..94a72a3 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
@@ -74,7 +74,7 @@
private String province;
- @NotBlank(message = "市不能为空")
+ // @NotBlank(message = "市不能为空")
@ApiModelProperty(value = "市",required = true)
@TableField("city")
private String city;
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 b755c85..2d201cc 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
@@ -200,6 +200,14 @@
@TableField("version")
private Integer version;
+ @ApiModelProperty("专家领域")
+ @TableField("domain")
+ private String domain;
+
+ @ApiModelProperty("入库分级")
+ @TableField("level")
+ private String level;
+
}
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 3c08c3d..128ec62 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
@@ -178,17 +178,15 @@
@TableField(exist = false)
private SysAgency agency;
- @NotNull(message = "社保照片不能为空",groups ={ExpertGroup.class} )
+
@ApiModelProperty("社保照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> socialAttach;
- @NotNull(message = "医保照片不能为空",groups ={ExpertGroup.class} )
@ApiModelProperty("医保照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> medicalAttach;
- @NotNull(message = "工资照片不能为空",groups ={ExpertGroup.class} )
@ApiModelProperty("工资照片路径列表,创建专家传参")
@TableField(exist = false)
private List<SysAttach> salaryAttach;
@@ -201,4 +199,8 @@
@TableField(exist = false)
private PersonProjectVO personProjectVO;
+ @ApiModelProperty("机构名称")
+ @TableField(exist = false)
+ private String agencyName;
+
}
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
index b013c9a..07de6f8 100644
--- 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
@@ -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;
@@ -50,6 +48,7 @@
@TableField("user_id")
private Long userId;
+ @Version
@ApiModelProperty("乐观锁")
@TableField("version")
private Integer version;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/SysExpertInfoExcelVO.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/SysExpertInfoExcelVO.java
new file mode 100644
index 0000000..6c4abd2
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/vo/SysExpertInfoExcelVO.java
@@ -0,0 +1,105 @@
+package com.gkhy.assess.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.gkhy.assess.common.domain.BaseEntity;
+import com.gkhy.assess.common.excel.BirthdayConvert;
+import com.gkhy.assess.common.excel.DutyConvert;
+import com.gkhy.assess.common.excel.SexConvert;
+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 java.io.Serializable;
+import java.time.LocalDateTime;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+/**
+ * <p>
+ * 系统专家信息表
+ * </p>
+ *
+ * @author kzy
+ * @since 2023-11-27 16:33:33
+ */
+@Getter
+@Setter
+public class SysExpertInfoExcelVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("序号")
+ @ExcelProperty(value = "序号",index = 0)
+ private String number;
+
+ @ApiModelProperty("专家名称")
+ @ExcelProperty(value = "姓名",index = 1)
+ private String name;
+
+ @ApiModelProperty("身份证号码")
+ @ExcelProperty(value = "身份证号",index = 2)
+ private String idCard;
+
+
+ @ApiModelProperty("出生日期")
+ @ExcelProperty(value = "出生年月",index = 3)
+ private LocalDateTime birthday;
+
+ @ApiModelProperty("性别(0男,1女,2未知,默认2)")
+ @ExcelProperty(value = "性别",converter = SexConvert.class,index = 4)
+ private Integer sex;
+
+ @ApiModelProperty("最高学历")
+ @ExcelProperty(value = "学历",index = 5)
+ private String degree;
+
+
+ @ApiModelProperty("专业")
+ @ExcelProperty(value = "所学专业",index = 6)
+ private String speciality;
+
+ @ApiModelProperty("职称")
+ @ExcelProperty(value = "职称",index = 7)
+ private String title;
+
+ @ApiModelProperty("在岗情况(0在岗,1退休)")
+ @ExcelProperty(value = "在岗情况",converter = DutyConvert.class,index = 8)
+ private Integer dutyStatus;
+
+
+ @ApiModelProperty("单位名称")
+ @ExcelProperty(value = "单位全称",index = 9)
+ private String companyName;
+
+
+
+ @ApiModelProperty("现在从事专业或方向")
+ @ExcelProperty(value = "现从事专业及方向",index = 10)
+ private String currentProfession;
+
+
+ @ApiModelProperty("手机号")
+ @ExcelProperty(value = "联系方式",index = 11)
+ private String phone;
+
+ @ApiModelProperty("支撑方向安全生产")
+ @ExcelProperty(value = "支持方向",index = 12)
+ private String supportDirectionSafety;
+
+ @ApiModelProperty("专家领域")
+ @ExcelProperty(value = "专家领域",index = 13)
+ private String domain;
+
+ @ApiModelProperty("入库分级")
+ @ExcelProperty(value = "入库分级",index = 14)
+ private String level;
+
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/excel/ExpertExcelListener.java b/assess-system/src/main/java/com/gkhy/assess/system/excel/ExpertExcelListener.java
new file mode 100644
index 0000000..296877f
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/excel/ExpertExcelListener.java
@@ -0,0 +1,98 @@
+package com.gkhy.assess.system.excel;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.util.ListUtils;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.utils.StringUtils;
+import com.gkhy.assess.system.domain.SysExpertInfo;
+import com.gkhy.assess.system.domain.vo.SysExpertInfoExcelVO;
+import com.gkhy.assess.system.service.SysExpertInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+
+public class ExpertExcelListener extends AnalysisEventListener<SysExpertInfoExcelVO> {
+
+
+ private static final int BATCH_COUNT=100;
+
+ private List<SysExpertInfoExcelVO> cachedDateList= ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);
+
+ @Override
+ public void onException(Exception exception, AnalysisContext context) throws Exception {
+ log.error("解析异常:",exception);
+ throw exception;
+ }
+
+ @Override
+ public void invoke(SysExpertInfoExcelVO sysExpertInfoExcelVO, AnalysisContext analysisContext) {
+ if(!StringUtils.isBlank(sysExpertInfoExcelVO.getName())){
+ cachedDateList.add(sysExpertInfoExcelVO);
+ }
+ if(cachedDateList.size()>=BATCH_COUNT){
+ saveData();
+ cachedDateList.clear();
+ }
+ }
+
+ private void saveData(){
+ for(SysExpertInfoExcelVO sysExpertInfoExcelVO:cachedDateList){
+ String direction=sysExpertInfoExcelVO.getSupportDirectionSafety();
+ String name=sysExpertInfoExcelVO.getName();
+ String idCard = sysExpertInfoExcelVO.getIdCard();
+ SysExpertInfo existExpertInfo = SpringUtil.getBean(SysExpertInfoService.class).getOne(Wrappers.<SysExpertInfo>lambdaQuery()
+ .eq(true, SysExpertInfo::getIdCard, idCard)
+ .last(" limit 1"));
+ direction=direction.replace("安全生产:","").trim();
+ String[] splits = direction.split("、");
+ List<String> safetyArray=new ArrayList<>();
+ for(String str:splits){
+ str=str.trim();
+ String code="1";
+ if(str.equals("现场检查")){
+ code="1";
+ }else if(str.equals("调查评估")){
+ code="2";
+ }else if(str.equals("咨询服务")){
+ code="3";
+ }else if(str.equals("教育培训")){
+ code="4";
+ }else{
+ code="5";
+ }
+ safetyArray.add(code);
+ }
+ if(existExpertInfo!=null){
+ existExpertInfo.setState(2);
+ existExpertInfo.setSupportDirectionSafety(String.join( ",",safetyArray));
+ existExpertInfo.setDomain(sysExpertInfoExcelVO.getDomain());
+ existExpertInfo.setLevel(sysExpertInfoExcelVO.getLevel());
+ SpringUtil.getBean(SysExpertInfoService.class).updateById(existExpertInfo);
+ }else{
+ SysExpertInfo sysExpertInfo=new SysExpertInfo();
+ BeanUtils.copyProperties(sysExpertInfoExcelVO,sysExpertInfo);
+ sysExpertInfo.setSupportDirectionSafety(String.join( ",",safetyArray));
+ sysExpertInfo.setState(2);
+ SpringUtil.getBean(SysExpertInfoService.class).save(sysExpertInfo);
+ }
+ }
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+ saveData();
+ log.info("sheet={}解析完成",analysisContext.readSheetHolder().getSheetName());
+ }
+}
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
index 0bf27f5..ab954ff 100644
--- 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
@@ -53,4 +53,10 @@
*/
List<PersonRecognitionVO> getPersonAndRecognitionCount(List<Long> projectIds);
+ /**
+ * 查找项目组长人数
+ * @param projectId
+ * @return
+ */
+ int getMajorPlanPersonCountByProject(Long projectId);
}
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
index 8f1747b..890aac0 100644
--- 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
@@ -39,7 +39,7 @@
* @param name
* @return
*/
- AssProject getProjectByName(String name);
+ AssProject getProjectByName(@Param("name")String name,@Param("agencyId")Long agencyId);
/**
* 获取项目状态
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementFileMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementFileMapper.java
new file mode 100644
index 0000000..39d40bf
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementFileMapper.java
@@ -0,0 +1,33 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProjectSupplementFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目补录附件表 Mapper 接口
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:15
+ */
+@Mapper
+public interface AssProjectSupplementFileMapper extends BaseMapper<AssProjectSupplementFile> {
+ /**
+ * 获取项目的附件
+ * @param projectId
+ * @return
+ */
+ List<AssProjectSupplementFile> getFilesByProjectId(Long projectId);
+
+
+ /**
+ * 根据项目id删除附件
+ * @param projectId
+ * @return
+ */
+ int deleteByProjectId(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementMapper.java
new file mode 100644
index 0000000..d85bda4
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssProjectSupplementMapper.java
@@ -0,0 +1,41 @@
+package com.gkhy.assess.system.mapper;
+
+import com.gkhy.assess.system.domain.AssProjectSupplement;
+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 2024-06-11 15:44:14
+ */
+@Mapper
+public interface AssProjectSupplementMapper extends BaseMapper<AssProjectSupplement> {
+ /**
+ * 根据名称获取项目
+ * @param name
+ * @param agencyId
+ * @return
+ */
+ AssProjectSupplement getProjectByName(@Param("name") String name, @Param("agencyId") Long agencyId);
+
+ /**
+ * 分页获取项目列表
+ * @param projectSupplement
+ * @return
+ */
+ List<AssProjectSupplement> projectList(AssProjectSupplement projectSupplement);
+
+ /**
+ * 根据id查询项目
+ * @param projectSupplementId
+ * @return
+ */
+ AssProjectSupplement getProjectSupplementById(Long projectSupplementId);
+}
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
index 8c18244..1d23096 100644
--- 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
@@ -49,7 +49,7 @@
* @param personId
* @return
*/
- int deletePlanPersonByPersonId(Long personId);
+ int deletePlanPersonByPersonId(Long personId,Long projectId,Integer playCode);
/**
* 校验项目成员是否唯一
@@ -63,4 +63,11 @@
* @return
*/
AssPlanPerson getPlanPersonByPersonId(Long personId,Long projectId);
+
+ /**
+ * 查询项目成员组长人数
+ * @param projectId
+ * @return
+ */
+ int getMajorPlanPersonCountByProject(Long projectId);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementFileService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementFileService.java
new file mode 100644
index 0000000..b86c0b4
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementFileService.java
@@ -0,0 +1,34 @@
+package com.gkhy.assess.system.service;
+
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.gkhy.assess.system.domain.AssProjectSupplementFile;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目补录附件表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:15
+ */
+public interface AssProjectSupplementFileService extends IService<AssProjectSupplementFile> {
+
+ /**
+ * 根据项目id获取文件
+ * @param projectId
+ * @return
+ */
+ List<AssProjectSupplementFile> getSupplementFileByProjectId(Long projectId);
+
+
+ /**
+ * 根据项目id批量删除文件
+ * @param projectId
+ * @return
+ */
+ int deleteByProjectId(Long projectId);
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementService.java
new file mode 100644
index 0000000..b30c892
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssProjectSupplementService.java
@@ -0,0 +1,58 @@
+package com.gkhy.assess.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.common.api.CommonPage;
+import com.gkhy.assess.system.domain.AssProjectSupplement;
+
+/**
+ * <p>
+ * 项目补录表 服务类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:14
+ */
+public interface AssProjectSupplementService extends IService<AssProjectSupplement> {
+ /**
+ * 新增项目补录
+ * @param projectSupplement
+ * @return
+ */
+ int addProjectSupplement(AssProjectSupplement projectSupplement);
+
+ /**
+ * 编辑项目补录
+ * @param projectSupplement
+ * @return
+ */
+ int editProjectSupplement(AssProjectSupplement projectSupplement);
+
+ /**
+ * 根据id获取项目补录信息
+ * @param projectSupplementId
+ * @return
+ */
+ AssProjectSupplement getProjectSupplementById(Long projectSupplementId);
+
+ /**
+ * 分页获取项目补录
+ * @param projectSupplement
+ * @return
+ */
+ CommonPage projectSupplementList(AssProjectSupplement projectSupplement);
+
+ /**
+ * 删除项目补录
+ * @param projectSupplementId
+ * @return
+ */
+ int deleteProjectSupplement(Long projectSupplementId);
+
+ /**
+ * 校验名称是否唯一
+ * @param projectSupplement
+ * @return
+ */
+ Boolean checkNameUnique(AssProjectSupplement projectSupplement);
+
+}
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 8a03413..8c8116f 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
@@ -3,6 +3,8 @@
import com.gkhy.assess.system.domain.vo.UploadObjectVO;
import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+
public interface SysCommonService {
/**
@@ -22,4 +24,8 @@
UploadObjectVO doUpload(String imageBase64);
public boolean removeFile(String path);
+
+
+
+ public void importExcel() throws IOException;
}
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
index 240fbb0..bcedb40 100644
--- 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
@@ -41,7 +41,7 @@
Long projectId=audit.getProjectId();
projectService.checkUserAllowed(projectId);
checkAuditCount(projectId,audit.getAuditType());
- planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(audit.getAssessorId()).setProjectId(projectId));
+ // 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());
@@ -76,9 +76,9 @@
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()));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(audit.getAssessorId()).setProjectId(oldAudit.getProjectId()));
//todo 删除旧的项目成员
- planPersonService.deletePlanPersonByPersonId(oldAudit.getAssessorId());
+ planPersonService.deletePlanPersonByPersonId(oldAudit.getAssessorId(),audit.getProjectId(),audit.getAuditType()==1?PlayRoleEnum.INNER_LEADER.getCode():PlayRoleEnum.TEACH_LEADER.getCode());
//todo 新增新的项目成员
planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(audit.getAssessorId())
.setPlayRole(audit.getAuditType()==1?PlayRoleEnum.INNER_LEADER.getCode():PlayRoleEnum.TEACH_LEADER.getCode())
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
index 0cff0a8..b2ed2a0 100644
--- 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
@@ -41,6 +41,7 @@
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.REVIEW_RECORD);
conclusion.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ conclusion.setIsReviseManual(true);
int row=baseMapper.insert(conclusion);
if(row>0) {
//更新项目状态
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
index ee94840..b192665 100644
--- 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
@@ -44,9 +44,10 @@
Long projectId=estimatePlan.getProjectId();
projectService.checkUserAllowed(projectId);
checkEstimatePlanCount(projectId);
- planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimatePlan.getAuserId()).setProjectId(projectId));
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.ESTIMATE_TASK);
+ //校验是否设置了组长
+ checkMajorPlanPersonCount(projectId);
estimatePlan.setCreateBy(ShiroUtils.getSysUser().getUsername());
int row=baseMapper.insert(estimatePlan);
if(row>0) {
@@ -70,10 +71,22 @@
}
}
+ /**
+ * 校验项目组成员是否设置了组长
+ * @param projectId
+ */
+ public void checkMajorPlanPersonCount(Long projectId){
+ int count=planPersonService.getMajorPlanPersonCountByProject(projectId);
+ if(count<1){
+ throw new ApiException("项目组成员中必须有一个人设置为组长");
+ }
+ }
+
@Override
@Transactional(rollbackFor = RuntimeException.class)
public int editEstimatePlan(AssEstimatePlan estimatePlan) {
projectService.checkUserAllowed(estimatePlan.getProjectId());
+ checkMajorPlanPersonCount(estimatePlan.getProjectId());
AssEstimatePlan oldPlan=getById(estimatePlan.getId());
estimatePlan.setUpdateBy(ShiroUtils.getSysUser().getUsername());
int row=baseMapper.updateById(estimatePlan);
@@ -83,9 +96,9 @@
}
if(row>0) {
if (estimatePlan.getAuserId() != null && !estimatePlan.getAuserId().equals(oldPlan.getAuserId())) {
- planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimatePlan.getAuserId()).setProjectId(oldPlan.getProjectId()));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimatePlan.getAuserId()).setProjectId(oldPlan.getProjectId()));
//todo 删除旧的项目成员
- planPersonService.deletePlanPersonByPersonId(oldPlan.getAuserId());
+ planPersonService.deletePlanPersonByPersonId(oldPlan.getAuserId(),estimatePlan.getProjectId(),PlayRoleEnum.ANGENCY_LEADER.getCode());
//todo 新增新的项目成员
planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(estimatePlan.getAuserId())
.setPlayRole(PlayRoleEnum.ANGENCY_LEADER.getCode())
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
index 261bfd2..9b4c1e2 100644
--- 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
@@ -36,7 +36,7 @@
Long projectId=estimateTask.getProjectId();
projectService.checkUserAllowed(projectId);
checkTaskCount(projectId);
- planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimateTask.getLeaderId()).setProjectId(projectId));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimateTask.getLeaderId()).setProjectId(projectId));
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.CONTRACT);
estimateTask.setCreateBy(ShiroUtils.getSysUser().getUsername());
@@ -69,9 +69,9 @@
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()));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(estimateTask.getLeaderId()).setProjectId(oldTask.getProjectId()));
//todo 删除旧的项目成员
- planPersonService.deletePlanPersonByPersonId(oldTask.getLeaderId());
+ planPersonService.deletePlanPersonByPersonId(oldTask.getLeaderId(),estimateTask.getProjectId(),PlayRoleEnum.PROJECT_LEADER.getCode());
//todo 新增新的项目成员
planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(estimateTask.getLeaderId())
.setPlayRole(PlayRoleEnum.PROJECT_LEADER.getCode())
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
index df6722f..917922f 100644
--- 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
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -69,6 +70,8 @@
public Boolean checkAllFaceRecongnition(Long projectId){
projectService.checkUserAllowed(projectId);
List<AssPlanPerson> planPersonList=planPersonMapper.getAllPlanPersonByProjectId(projectId);
+ Map<Long,AssPlanPerson> planPersonMap=planPersonList.stream().collect(Collectors.toMap(AssPlanPerson::getPersonId,a -> a,(k1,k2) -> k1));
+ planPersonList=planPersonMap.values().stream().collect(Collectors.toList());
List<AssFaceRecognition> faceRecognitionList=baseMapper.getSimpleFaceRecognitionByProjectId(projectId);
Map<Long,AssFaceRecognition> map=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k1));
String message="";
@@ -104,7 +107,21 @@
public List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId) {
projectService.checkUserAllowed(projectId);
List<AssFaceRecognition> faceRecognitionList= baseMapper.getFaceRecognitionByProjectId(projectId);
- return faceRecognitionList;
+ //同一个人员担任多种角色
+ Map<Long,List<Integer>> playRoleMap=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,p -> {
+ List<Integer> pRoles=new ArrayList<>();
+ pRoles.add(p.getPlanPerson().getPlayRole());
+ return pRoles;
+ },(List<Integer>value1,List<Integer> value2) -> {
+ value1.addAll(value2);
+ return value1;
+ }));
+ Map<Long,AssFaceRecognition> faceMap=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k2));
+ List<AssFaceRecognition> faceRecognitions=faceMap.values().stream().collect(Collectors.toList());
+ for(AssFaceRecognition faceRecognition:faceRecognitions){
+ faceRecognition.getPlanPerson().setPlayRoles(playRoleMap.get(faceRecognition.getPersonId()));
+ }
+ return faceRecognitions;
}
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
index 1e4e9b3..8dbff18 100644
--- 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
@@ -40,11 +40,11 @@
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);
+ // 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);
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
index 24f5e55..bb5661c 100644
--- 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
@@ -1,9 +1,14 @@
package com.gkhy.assess.system.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.enums.RequestSourceEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.system.domain.AssAccessoryFile;
import com.gkhy.assess.system.domain.AssInvestigation;
+import com.gkhy.assess.system.domain.AssPlanPerson;
import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
import com.gkhy.assess.system.enums.ReportProgressEnum;
import com.gkhy.assess.system.mapper.AssInvestigationMapper;
@@ -43,6 +48,11 @@
public Long addInvestigation(AssInvestigation investigation) {
Long projectId=investigation.getProjectId();
projectService.checkUserAllowed(projectId);
+ String location=investigation.getLocation();
+ String[] locationArray = location.split(",");
+ if(locationArray.length!=2){
+ throw new ApiException("现场勘验位置格式不正确");
+ }
// checkInvestigationCount(projectId);
investigation.setCreateBy(ShiroUtils.getSysUser().getUsername());
if(investigation.getIsSafetyCheck()!=null&&investigation.getIsSafetyCheck()==1){
@@ -68,6 +78,7 @@
}
fileIds.add(accessoryFile.getId());
}
+
baseMapper.insert(investigation);
//更新图片过程id
accessoryFileService.batchUpdateAccessoryFileProcessId(fileIds,investigation.getId());
@@ -89,6 +100,11 @@
throw new ApiException("现场勘验记录id不能为空!");
}
projectService.checkUserAllowed(investigation.getProjectId());
+ String location=investigation.getLocation();
+ String[] locationArray = location.split(",");
+ if(locationArray.length!=2){
+ throw new ApiException("现场勘验位置格式不正确");
+ }
investigation.setUpdateBy(ShiroUtils.getSysUser().getUsername());
List<AssAccessoryFile> accessFiles=new ArrayList<>();
accessFiles.addAll(investigation.getCompanyImages());
@@ -138,6 +154,14 @@
Long projectId= Long.parseLong(map.get("projectId").toString());
projectService.checkUserAllowed(projectId);
+ LambdaQueryWrapper< AssInvestigation > lambdaQueryWrapper = Wrappers.<AssInvestigation>lambdaQuery()
+ .eq(AssInvestigation::getProjectId, projectId)
+ .eq(AssInvestigation::getDelFlag, DeleteFlagEnum.UN_DELETE);
+
+ Long count= count(lambdaQueryWrapper);
+ if(count<1){
+ throw new ApiException("现场勘验记录不能为空");
+ }
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
//更新项目状态
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
index 3d3f27b..5b9beeb 100644
--- 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
@@ -1,5 +1,6 @@
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.gkhy.assess.common.enums.DeleteFlagEnum;
@@ -17,7 +18,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -48,13 +52,16 @@
return baseMapper.insert(planPerson);
}
-
@Override
public void checkPersonUnique(AssPlanPerson planPerson) {
+ if(planPerson.getPlayRole()==null){
+ planPerson.setPlayRole(PlayRoleEnum.PROJECT_MEMBER.getCode());
+ }
LambdaQueryWrapper<AssPlanPerson> lambdaQueryWrapper = Wrappers.<AssPlanPerson>lambdaQuery()
.eq(AssPlanPerson::getPersonId, planPerson.getPersonId())
.eq(AssPlanPerson::getDelFlag, DeleteFlagEnum.UN_DELETE)
- .eq(AssPlanPerson::getProjectId, planPerson.getProjectId());
+ .eq(AssPlanPerson::getProjectId, planPerson.getProjectId())
+ .eq(AssPlanPerson::getPlayRole,planPerson.getPlayRole());
if(planPerson.getId()!=null){
lambdaQueryWrapper.ne(AssPlanPerson::getId,planPerson.getId());
}
@@ -84,6 +91,11 @@
}
@Override
+ public int getMajorPlanPersonCountByProject(Long projectId) {
+ return baseMapper.getMajorPlanPersonCountByProject(projectId);
+ }
+
+ @Override
public int editPlanPerson(AssPlanPerson planPerson) {
projectService.checkUserAllowed(planPerson.getProjectId());
if(planPerson.getPersonId()!=null){
@@ -104,10 +116,12 @@
}
@Override
- public int deletePlanPersonByPersonId(Long personId) {
+ public int deletePlanPersonByPersonId(Long personId,Long projectId,Integer playCode) {
return baseMapper.update(null,Wrappers.<AssPlanPerson>lambdaUpdate()
.set(AssPlanPerson::getDelFlag,DeleteFlagEnum.DELETED.getCode())
.set(AssPlanPerson::getUpdateBy,ShiroUtils.getSysUser().getUsername())
- .eq(AssPlanPerson::getPersonId,personId));
+ .eq(AssPlanPerson::getPersonId,personId)
+ .eq(AssPlanPerson::getProjectId,projectId)
+ .eq(AssPlanPerson::getPlayRole,playCode));
}
}
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
index ec01bbf..ee6bf7b 100644
--- 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
@@ -41,7 +41,7 @@
Long projectId=processAudit.getProjectId();
projectService.checkUserAllowed(projectId);
checkProcessAuditCount(projectId);
- planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId()).setProjectId(projectId));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId()).setProjectId(projectId));
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.CONCLUSION);
processAudit.setCreateBy(ShiroUtils.getSysUser().getUsername());
@@ -74,9 +74,9 @@
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()));
+ // planPersonService.checkPersonUnique(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId()).setProjectId(oldProcess.getProjectId()));
//todo 删除旧的项目成员
- planPersonService.deletePlanPersonByPersonId(oldProcess.getProcessLeaderId());
+ planPersonService.deletePlanPersonByPersonId(oldProcess.getProcessLeaderId(),processAudit.getProjectId(),PlayRoleEnum.PROCESS_LEADER.getCode());
//todo 新增新的项目成员
planPersonService.addPlanPerson(new AssPlanPerson().setPersonId(processAudit.getProcessLeaderId())
.setPlayRole(PlayRoleEnum.PROCESS_LEADER.getCode())
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
index deb847c..2346449 100644
--- 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
@@ -86,10 +86,11 @@
if(user.getAgencyId()==null){
throw new ApiException("用户机构id为空");
}
+ project.setAgencyId(user.getAgencyId());
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);
@@ -101,7 +102,14 @@
//todo 权限校验
SysUser user= ShiroUtils.getSysUser();
checkUserAllowed(projectId);
- AssProject project=new AssProject()
+ //判断项目流转状态
+ AssProject project=getById(projectId);
+ if(project.getReportProgress().equals(ReportProgressEnum.CONFIRM_FINAL.getCode())){
+ if(!user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ throw new ApiException("没有权限删除确认完结的项目,请联系监管用户删除");
+ }
+ }
+ project=new AssProject()
.setId(projectId)
.setDelFlag(DeleteFlagEnum.DELETED.getCode());
project.setUpdateBy(user.getUsername());
@@ -115,9 +123,9 @@
throw new ApiException("项目id不能为空");
}
checkUserAllowed(projectId);
- if(!checkNameUnique(project)){
- throw new ApiException("项目名已存在");
- }
+// if(!checkNameUnique(project)){
+// throw new ApiException("项目名已存在");
+// }
project.setAgencyId(null);//机构id不能修改
project.setReportProgress(null);//项目状态不能修改
project.setUpdateBy(ShiroUtils.getSysUser().getUsername());
@@ -140,7 +148,7 @@
@Override
public boolean checkNameUnique(AssProject project) {
Long projectId = project.getId()==null? -1L : project.getId();
- AssProject pro = baseMapper.getProjectByName(project.getName());
+ AssProject pro = baseMapper.getProjectByName(project.getName(),project.getAgencyId());
if (pro!=null && pro.getId().longValue() != projectId.longValue())
{
return false;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementFileServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementFileServiceImpl.java
new file mode 100644
index 0000000..43b532b
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementFileServiceImpl.java
@@ -0,0 +1,39 @@
+package com.gkhy.assess.system.service.impl;
+
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssAccessoryFile;
+import com.gkhy.assess.system.domain.AssProjectSupplementFile;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
+import com.gkhy.assess.system.mapper.AssProjectSupplementFileMapper;
+import com.gkhy.assess.system.service.AssProjectSupplementFileService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.utils.ShiroUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 项目补录附件表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:15
+ */
+@Service
+public class AssProjectSupplementFileServiceImpl extends ServiceImpl<AssProjectSupplementFileMapper, AssProjectSupplementFile> implements AssProjectSupplementFileService {
+
+
+
+ @Override
+ public List<AssProjectSupplementFile> getSupplementFileByProjectId(Long projectId) {
+ return baseMapper.getFilesByProjectId(projectId);
+ }
+
+
+ @Override
+ public int deleteByProjectId(Long projectId) {
+ return baseMapper.deleteByProjectId(projectId);
+ }
+}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementServiceImpl.java
new file mode 100644
index 0000000..0ef40d3
--- /dev/null
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProjectSupplementServiceImpl.java
@@ -0,0 +1,139 @@
+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.UserIdentityEnum;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.common.utils.PageUtil;
+import com.gkhy.assess.system.domain.AssProjectSupplement;
+import com.gkhy.assess.system.domain.AssProjectSupplementFile;
+import com.gkhy.assess.system.domain.SysAttach;
+import com.gkhy.assess.system.domain.SysUser;
+import com.gkhy.assess.system.mapper.AssProjectSupplementFileMapper;
+import com.gkhy.assess.system.mapper.AssProjectSupplementMapper;
+import com.gkhy.assess.system.service.AssProjectSupplementFileService;
+import com.gkhy.assess.system.service.AssProjectSupplementService;
+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 org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 项目补录表 服务实现类
+ * </p>
+ *
+ * @author kzy
+ * @since 2024-06-11 15:44:14
+ */
+@Service
+public class AssProjectSupplementServiceImpl extends ServiceImpl<AssProjectSupplementMapper, AssProjectSupplement> implements AssProjectSupplementService {
+ @Autowired
+ private AssProjectSupplementFileService projectSupplementFileService;
+ @Autowired
+ private SysCommonService commonService;
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addProjectSupplement(AssProjectSupplement projectSupplement) {
+ if(!checkNameUnique(projectSupplement)){
+ throw new ApiException("补录的项目名称已存在");
+ }
+ projectSupplement.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.insert(projectSupplement);
+ if(row<1){
+ throw new ApiException("新增项目失败");
+ }
+ List<AssProjectSupplementFile> fileList=projectSupplement.getFiles();
+ if(ObjectUtil.isNotEmpty(fileList)) {
+ for (AssProjectSupplementFile file : fileList) {
+ file.setProjectId(projectSupplement.getId());
+ }
+ projectSupplementFileService.saveBatch(fileList);
+ }
+ return row;
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int editProjectSupplement(AssProjectSupplement projectSupplement) {
+ if(!checkNameUnique(projectSupplement)){
+ throw new ApiException("补录的项目名称已存在");
+ }
+ projectSupplement.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row =baseMapper.updateById(projectSupplement);
+ if(row<1){
+ throw new ApiException("编辑项目失败");
+ }
+ List<AssProjectSupplementFile> fileList=projectSupplement.getFiles();
+ List<AssProjectSupplementFile> existFileList=projectSupplementFileService.getSupplementFileByProjectId(projectSupplement.getId());
+ if(ObjectUtil.isNotEmpty(fileList)) {
+ for (AssProjectSupplementFile psf : fileList) {
+ psf.setProjectId(projectSupplement.getId());
+ }
+ projectSupplementFileService.saveOrUpdateBatch(fileList);
+ }
+ //删除附件
+ List<Long> newIds=fileList.stream().map(AssProjectSupplementFile::getId).collect(Collectors.toList());
+ List<Long> delIds = new ArrayList<>();
+ for(AssProjectSupplementFile psf:existFileList){
+ if(!newIds.contains(psf.getId())){
+ delIds.add(psf.getId());
+ }
+ }
+ if(!delIds.isEmpty()){
+ projectSupplementFileService.removeBatchByIds(delIds);
+ }
+ return row;
+ }
+
+ @Override
+ public AssProjectSupplement getProjectSupplementById(Long projectSupplementId) {
+ return baseMapper.getProjectSupplementById(projectSupplementId);
+ }
+
+ @Override
+ public CommonPage projectSupplementList(AssProjectSupplement projectSupplement) {
+ SysUser user= ShiroUtils.getSysUser();
+ if(!user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ //机构用户只能查看本机构的项目
+ if(user.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ projectSupplement.setAgencyId(user.getAgencyId());
+ }
+ PageUtil.startPage();
+ List<AssProjectSupplement> projects=baseMapper.projectList(projectSupplement);
+ return CommonPage.restPage(projects);
+ }
+
+ @Override
+ public int deleteProjectSupplement(Long projectSupplementId) {
+ //删除附件
+ List<AssProjectSupplementFile> fileList=projectSupplementFileService.getSupplementFileByProjectId(projectSupplementId);
+ if(fileList.size()>0){
+ for(AssProjectSupplementFile file:fileList){
+ commonService.removeFile(file.getPath());
+ projectSupplementFileService.removeById(file.getId());
+ }
+ }
+ return baseMapper.deleteById(projectSupplementId);
+ }
+
+ @Override
+ public Boolean checkNameUnique(AssProjectSupplement projectSupplement) {
+ Long projectId = projectSupplement.getId()==null? -1L : projectSupplement.getId();
+ AssProjectSupplement pro = baseMapper.getProjectByName(projectSupplement.getName(),projectSupplement.getAgencyId());
+ if (pro!=null && pro.getId().longValue() != projectId.longValue())
+ {
+ return false;
+ }
+ return true;
+ }
+}
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 c957622..da2a60a 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
@@ -1,10 +1,15 @@
package com.gkhy.assess.system.service.impl;
import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.excel.ExpertExcelListener;
+import com.gkhy.assess.system.domain.vo.SysExpertInfoExcelVO;
import com.gkhy.assess.system.domain.vo.UploadObjectVO;
import com.gkhy.assess.system.service.SysCommonService;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;
@@ -44,6 +49,16 @@
}
@Override
+ public void importExcel() throws IOException {
+ ClassPathResource classPathResource = new ClassPathResource("abc.xlsx");
+ InputStream inputStream = classPathResource.getInputStream();
+ if(inputStream==null){
+ throw new ApiException("获取文件失败");
+ }
+ EasyExcel.read(inputStream, SysExpertInfoExcelVO.class,new ExpertExcelListener()).sheet(0).doRead();
+ }
+
+ @Override
public UploadObjectVO doUpload(MultipartFile file){
String originName=file.getOriginalFilename();
String filename=originName;
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 c0cef63..f77f75f 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
@@ -148,23 +148,42 @@
* 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户
* @param username
*/
- public void cacheUserToken(String username,Integer identity,String newToken){
- String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
- 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);
+// public void cacheUserToken(String username,Integer identity,String newToken){
+// String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
+// 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));
+// // 设置超时时间
+// redisUtils.set(tokenKey,newToken);
+// redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
+// }
+
+ /**
+ * 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户
+ * @param username
+ */
+ public void cacheUserToken(String username,Integer identity,String newToken){
+ // String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
+// 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));
// 设置超时时间
- redisUtils.set(tokenKey,newToken);
- redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
+ redisUtils.set(tokenKey,newToken,JwtTokenUtil.EXPIRATION*2/1000);
}
-
/**
* 校验验证码
@@ -198,11 +217,11 @@
if(StringUtils.isNotBlank(jwtToken)){
String username=JwtTokenUtil.getUsername(jwtToken);
Integer identity=JwtTokenUtil.getIdentity(jwtToken);
- String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
+ // String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
//删除redis缓存
redisUtils.del(tokenKey);
- redisUtils.del(userKey);
+ // redisUtils.del(userKey);
}
}
@@ -355,6 +374,17 @@
if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()).setIdentity(UserIdentityEnum.EXPERT.getCode()))){
throw new ApiException("手机号已存在");
}
+ List<SysAttach> socialAttach=user.getSocialAttach();
+ List<SysAttach> medicalAttach=user.getMedicalAttach();
+ List<SysAttach> salaryAttach=user.getSalaryAttach();
+ //疆外企业必须上传社保、医保、薪资
+ SysAgency agency=agencyService.getAgencyById(user.getAgencyId());
+ if(agency.getAttribute()==0){
+ if(ObjectUtil.isEmpty(socialAttach)||ObjectUtil.isEmpty(medicalAttach)||ObjectUtil.isEmpty(salaryAttach)){
+ throw new ApiException("疆内企业必须上传社保、医保、工资照片");
+ }
+ }
+
String major=user.getMajor();
List<Integer> majors=new ArrayList<>();
JSONObject jsonObject=JSONObject.parseObject(major);
@@ -372,26 +402,32 @@
if(!b){
throw new ApiException("创建专家信息失败");
}
- List<SysAttach> socialAttach=user.getSocialAttach();
- List<SysAttach> medicalAttach=user.getMedicalAttach();
- List<SysAttach> salaryAttach=user.getSalaryAttach();
+
List<SysAttach> attaches=new ArrayList<>();
- for(SysAttach attach:socialAttach){
- attach.setType(AttachTypeEnum.SOCIAL.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(socialAttach!=null&& !socialAttach.isEmpty()) {
+ for (SysAttach attach : socialAttach) {
+ attach.setType(AttachTypeEnum.SOCIAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- for(SysAttach attach:medicalAttach){
- attach.setType(AttachTypeEnum.MEDICAL.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(medicalAttach!=null&& !medicalAttach.isEmpty()) {
+ for (SysAttach attach : medicalAttach) {
+ attach.setType(AttachTypeEnum.MEDICAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- for(SysAttach attach:salaryAttach){
- attach.setType(AttachTypeEnum.SALARY.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(salaryAttach!=null&& !salaryAttach.isEmpty()) {
+ for (SysAttach attach : salaryAttach) {
+ attach.setType(AttachTypeEnum.SALARY.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- attachService.saveBatch(attaches);
+ if(!attaches.isEmpty()) {
+ attachService.saveBatch(attaches);
+ }
return 1;
}
@@ -435,6 +471,7 @@
}
}
delCacheByUsername(user.getUsername(),user.getIdentity());
+ delCacheByUsername(user.getPhone(),user.getIdentity());
user=new SysUser().setId(userId);
user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
user.setDelFlag(DeleteFlagEnum.DELETED.getCode());
@@ -451,6 +488,7 @@
throw new ApiException("手机号已存在");
}
delCacheByUsername(user.getUsername(),UserIdentityEnum.MONITOR.getCode());
+ delCacheByUsername(user.getPhone(),UserIdentityEnum.MONITOR.getCode());
user.setPassword(null);
user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(user);
@@ -480,12 +518,19 @@
if(!agencyService.checkAgencyNameUnique(agency)){
throw new ApiException("机构名称已存在");
}
+ SysUser currentUser=ShiroUtils.getSysUser();
+ if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ if(!user.getId().equals(currentUser.getId())){
+ throw new ApiException("只能修改自身数据");
+ }
+ }
delCacheByUsername(user.getUsername(),UserIdentityEnum.AGENCY.getCode());
- agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ delCacheByUsername(user.getPhone(),UserIdentityEnum.AGENCY.getCode());
+ agency.setUpdateBy(currentUser.getUsername());
agencyService.updateById(agency);
user.setPassword(null);
- user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ user.setUpdateBy(currentUser.getUsername());
boolean b=updateById(user);
if(!b){
throw new ApiException("更新用户失败");
@@ -503,6 +548,17 @@
if(!checkPhoneUnique(user.setIdentity(UserIdentityEnum.EXPERT.getCode()))){
throw new ApiException("手机号已存在");
}
+ List<SysAttach> socialAttach=user.getSocialAttach();
+ List<SysAttach> medicalAttach=user.getMedicalAttach();
+ List<SysAttach> salaryAttach=user.getSalaryAttach();
+ //疆外企业必须上传社保、医保、薪资
+ SysAgency agency=agencyService.getAgencyById(user.getAgencyId());
+ if(agency.getAttribute()==0){
+ if(ObjectUtil.isEmpty(socialAttach)||ObjectUtil.isEmpty(medicalAttach)||ObjectUtil.isEmpty(salaryAttach)){
+ throw new ApiException("疆内企业必须上传社保、医保、工资照片");
+ }
+ }
+
String major=user.getMajor();
if(StringUtils.isNotBlank(major)){
List<Integer> majors=new ArrayList<>();
@@ -521,38 +577,45 @@
// 刪除旧数据
// attachService.deleteAttachsByUserId(user.getId(),null);
- List<SysAttach> socialAttach=user.getSocialAttach();
- List<SysAttach> medicalAttach=user.getMedicalAttach();
- List<SysAttach> salaryAttach=user.getSalaryAttach();
List<SysAttach> attaches=new ArrayList<>();
- for(SysAttach attach:socialAttach){
- attach.setType(AttachTypeEnum.SOCIAL.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(socialAttach!=null&& !socialAttach.isEmpty()) {
+ for (SysAttach attach : socialAttach) {
+ attach.setType(AttachTypeEnum.SOCIAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- for(SysAttach attach:medicalAttach){
- attach.setType(AttachTypeEnum.MEDICAL.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(medicalAttach!=null&& !medicalAttach.isEmpty()) {
+ for (SysAttach attach : medicalAttach) {
+ attach.setType(AttachTypeEnum.MEDICAL.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- for(SysAttach attach:salaryAttach){
- attach.setType(AttachTypeEnum.SALARY.getCode());
- attach.setUserId(user.getId());
- attaches.add(attach);
+ if(salaryAttach!=null&& !salaryAttach.isEmpty()) {
+ for (SysAttach attach : salaryAttach) {
+ attach.setType(AttachTypeEnum.SALARY.getCode());
+ attach.setUserId(user.getId());
+ attaches.add(attach);
+ }
}
- attachService.saveOrUpdateBatch(attaches);
+ if(!attaches.isEmpty()) {
+ 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())){
+ 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()){
+ if (!delIds.isEmpty()) {
attachService.deleteAttachsByIds(delIds);
}
+
delCacheByUsername(user.getUsername(),UserIdentityEnum.EXPERT.getCode());
+ delCacheByUsername(user.getPhone(),UserIdentityEnum.EXPERT.getCode());
return row;
}
@@ -565,6 +628,7 @@
SysUser newUser=new SysUser().setId(user.getId()).setPassword(JwtTokenUtil.encryptPassword(oldUser.getUsername(),originPsword,oldUser.getSalt()));
newUser.setUpdateBy(ShiroUtils.getSysUser().getUsername());
delCacheByUsername(oldUser.getUsername(),oldUser.getIdentity());
+ delCacheByUsername(oldUser.getPhone(),oldUser.getIdentity());
return updateById(newUser);
}
@@ -639,6 +703,7 @@
SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
delCacheByUsername(existUser.getUsername(),existUser.getIdentity());
+ delCacheByUsername(existUser.getPhone(),existUser.getIdentity());
return updateById(su);
}
@@ -648,6 +713,7 @@
SysUser su=new SysUser().setId(user.getId()).setState(user.getState());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
delCacheByUsername(existUser.getUsername(),existUser.getIdentity());
+ delCacheByUsername(existUser.getPhone(),existUser.getIdentity());
return updateById(su);
}
}
diff --git a/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml b/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml
index 1fd23dd..a2caef0 100644
--- a/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssPlanPersonMapper.xml
@@ -81,4 +81,8 @@
group by a.project_id
</select>
+ <select id="getMajorPlanPersonCountByProject" resultType="java.lang.Integer">
+ select count(1) from ass_plan_person where del_flag=0 and job_type=2 and project_id=#{projectId}
+ </select>
+
</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProjectMapper.xml b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
index 6171261..4dc1a92 100644
--- a/assess-system/src/main/resources/mapper/AssProjectMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
@@ -71,7 +71,7 @@
<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
+ left join ass_plan_person pp on pp.project_id=p.id
</if>
<if test="params.lostMaterial != null">
left join ass_project_material m on m.project_id=p.id
@@ -112,7 +112,7 @@
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
+ and pp.person_id=#{params.personId} and pp.del_flag=0
</if>
<if test="params.lostMaterial != null and params.lostMaterial==1">
and (m.file_id is null)
@@ -131,7 +131,7 @@
<select id="getProjectByName" resultType="com.gkhy.assess.system.domain.AssProject">
select id,name from ass_project
- where name=#{name}
+ where name=#{name} and agency_id=#{agencyId} and del_flag=0 limit 1
</select>
<select id="getReportProgress" resultType="java.lang.Integer">
@@ -140,7 +140,7 @@
</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,
+ select distinct 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
@@ -162,7 +162,7 @@
</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,
+ select distinct 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
@@ -225,13 +225,15 @@
</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
+ select d.person_id,count(*) as project_count,max(d.create_time) as last_estimate_time from
+ (select a.person_id,a.project_id,max(p.create_time) as create_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
+ group by a.person_id,a.project_id) d
+ group by d.person_id
</select>
</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProjectSupplementFileMapper.xml b/assess-system/src/main/resources/mapper/AssProjectSupplementFileMapper.xml
new file mode 100644
index 0000000..529cc7a
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssProjectSupplementFileMapper.xml
@@ -0,0 +1,12 @@
+<?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.AssProjectSupplementFileMapper">
+
+ <delete id="deleteByProjectId">
+ delete from ass_project_supplement_file where project_id=#{projectId}
+ </delete>
+
+ <select id="getFilesByProjectId" resultType="com.gkhy.assess.system.domain.AssProjectSupplementFile">
+ select * from ass_project_supplement_file where project_id=#{projectId}
+ </select>
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssProjectSupplementMapper.xml b/assess-system/src/main/resources/mapper/AssProjectSupplementMapper.xml
new file mode 100644
index 0000000..d2fe450
--- /dev/null
+++ b/assess-system/src/main/resources/mapper/AssProjectSupplementMapper.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.AssProjectSupplementMapper">
+ <resultMap type="com.gkhy.assess.system.domain.AssProjectSupplement" id="projectResult">
+ <id property="id" column="id" />
+ <result property="name" column="name" />
+ <result property="writer" column="writer" />
+ <result property="reviewer" column="reviewer" />
+ <result property="filingDate" column="filing_date" />
+ <result property="agencyId" column="agency_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" />
+ <result property="agencyName" column="agency_name" />
+ <collection property="files" ofType="com.gkhy.assess.system.domain.AssProjectSupplementFile" select="getFileByProjectId" column="{projectId=id}"/>
+ </resultMap>
+
+ <select id="getProjectByName" resultType="com.gkhy.assess.system.domain.AssProjectSupplement">
+ select id,name,agency_id from ass_project_supplement where name=#{name} and agency_id=#{agencyId} limit 1
+ </select>
+
+ <select id="projectList" resultMap="projectResult">
+ select s.*,a.name as agency_name from ass_project_supplement s
+ left join sys_agency a on a.id=s.agency_id
+ <where>
+ <if test="name!=null and name!=''">
+ and s.name like ('%',#{name},'%')
+ </if>
+ <if test="agencyId!=null">
+ and s.agency_id =#{agencyId}
+ </if>
+ </where>
+ order by s.create_time desc
+ </select>
+
+ <select id="getFileByProjectId" resultType="com.gkhy.assess.system.domain.AssProjectSupplementFile">
+ select * from ass_project_supplement_file where project_id=#{projectId}
+ </select>
+
+ <select id="getProjectSupplementById" resultMap="projectResult">
+ select s.*,a.name as agency_name from ass_project_supplement s
+ left join sys_agency a on a.id=s.agency_id
+ where s.id=#{projectSupplementId}
+ </select>
+
+</mapper>
diff --git a/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml b/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
index 36bc8ef..29e81b0 100644
--- a/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysExpertInfoMapper.xml
@@ -20,7 +20,7 @@
</update>
<select id="expertInfoList" resultType="com.gkhy.assess.system.domain.SysExpertInfo">
- select id,name,sex,birthday,phone,title,degree,state,speciality,big_classify,small_classify,create_time from sys_expert_info
+ select id,name,sex,birthday,phone,title,degree,state,speciality,big_classify,small_classify,id_card,company_name,domain,level,current_profession,duty_status,support_direction_safety,create_time from sys_expert_info
<where>
and del_flag = 0
<if test="name != null and name != ''">
diff --git a/assess-system/src/main/resources/mapper/SysUserMapper.xml b/assess-system/src/main/resources/mapper/SysUserMapper.xml
index af9f852..9811df4 100644
--- a/assess-system/src/main/resources/mapper/SysUserMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysUserMapper.xml
@@ -46,13 +46,14 @@
<id property="id" column="agency_id" />
<result property="name" column="agency_name" />
<result property="creditCode" column="credit_code" />
+ <result property="attribute" column="attribute" />
</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,u.level,u.id_photo,u.certificate_no,
- a.id as agency_id,a.name as agency_name,a.credit_code
+ a.id as agency_id,a.name as agency_name,a.credit_code,a.attribute
from sys_user u
left join sys_agency a on u.agency_id=a.id
</sql>
@@ -90,9 +91,15 @@
<if test="status != null">
AND u.status = #{status}
</if>
+ <if test="state != null">
+ AND u.state = #{state}
+ </if>
<if test="phone != null and phone != ''">
AND u.phone like concat('%', #{phone}, '%')
</if>
+ <if test="agencyName != null and agencyName != ''">
+ AND a.name like concat('%', #{agencyName}, '%')
+ </if>
</where>
order by u.create_time desc
</select>
diff --git a/pom.xml b/pom.xml
index e6f7a16..00cf479 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
<caffeine.version>2.9.3</caffeine.version>
<kaptcha.version>2.3.2</kaptcha.version>
<commons.io.version>2.13.0</commons.io.version>
+ <easyexcel.version>4.0.1</easyexcel.version>
</properties>
<dependencyManagement>
<dependencies>
@@ -158,6 +159,12 @@
<version>${commons.io.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.alibaba</groupId>
+ <artifactId>easyexcel</artifactId>
+ <version>${easyexcel.version}</version>
+ </dependency>
+
</dependencies>
</dependencyManagement>
--
Gitblit v1.9.2