From 2d27b24029adafdbfc5703b38a519d65beda6a68 Mon Sep 17 00:00:00 2001 From: heheng <heheng@123456> Date: 星期三, 20 十一月 2024 16:23:23 +0800 Subject: [PATCH] 更改 --- expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java | 4 expert-system/src/main/java/com/gkhy/system/domain/SysSettings.java | 53 expert-admin/src/main/resources/banner.txt | 22 expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java | 65 expert-common/src/main/java/com/gkhy/common/core/domain/model/LoginBody.java | 3 expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java | 32 expert-system/src/main/java/com/gkhy/system/mapper/SysDeptMapper.java | 12 expert-framework/src/main/java/com/gkhy/framework/config/SecurityConfig.java | 4 expert-admin/src/main/java/com/gkhy/web/controller/system/SysRegisterController.java | 76 expert-system/src/main/java/com/gkhy/system/service/ISysDeptService.java | 5 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveReqDto.java | 154 - expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java | 23 expert-admin/src/main/java/com/gkhy/web/controller/common/CaptchaController.java | 31 expert-framework/src/main/java/com/gkhy/framework/config/MybatisPlusConfig.java | 45 expert-system/src/main/java/com/gkhy/system/service/ISysSettingsService.java | 41 expert-system/src/main/resources/mapper/system/EvaluationMapper.xml | 4 expert-admin/src/main/resources/application.yml | 58 ry.sh | 2 expert-framework/src/main/java/com/gkhy/framework/config/MyBatisConfig.java | 264 +- expert-common/src/main/java/com/gkhy/common/enums/OpenFlagEnum.java | 10 expert-system/src/main/resources/mapper/system/SysSettingsMapper.xml | 12 expert-system/src/main/java/com/gkhy/system/domain/ProjectExpertDetail.java | 151 expert-system/src/main/java/com/gkhy/system/domain/ApplyRecord.java | 100 expert-system/src/main/java/com/gkhy/system/service/IEvaluationService.java | 5 expert-common/src/main/java/com/gkhy/common/utils/poi/ExcelUtil.java | 4 expert-system/src/main/java/com/gkhy/system/mapper/ProjectFileMapper.java | 11 expert-admin/pom.xml | 24 expert-admin/src/main/java/com/gkhy/web/controller/bussiness/EvaluationController.java | 86 expert-system/src/main/resources/mapper/system/ApplyRecordMapper.xml | 7 expert-common/src/main/java/com/gkhy/common/utils/file/FileUploadUtils.java | 6 expert-admin/src/main/java/com/gkhy/web/controller/system/SysLoginController.java | 7 expert-system/src/main/java/com/gkhy/system/mapper/ApplyRecordMapper.java | 9 expert-common/src/main/java/com/gkhy/common/enums/DeleteFlagEnum.java | 2 expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml | 94 expert-admin/src/main/java/com/gkhy/web/controller/system/SysSettingsController.java | 111 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertSectionResp.java | 16 expert-system/src/main/resources/mapper/system/SysDeptMapper.xml | 20 pom.xml | 99 expert-common/src/main/java/com/gkhy/common/core/domain/BaseEntity.java | 10 expert-common/pom.xml | 20 sql/ry_20240629.sql | 2 expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java | 4 expert-admin/src/main/java/com/gkhy/ExpertServletInitializer.java | 4 expert-common/src/main/java/com/gkhy/common/config/ExpertConfig.java | 8 expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml | 48 expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java | 75 expert-common/src/main/java/com/gkhy/common/utils/file/ImageUtils.java | 4 expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java | 71 expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java | 30 .github/FUNDING.yml | 2 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java | 241 -- expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java | 23 expert-admin/src/main/resources/application-druid.yml | 4 expert-system/src/main/java/com/gkhy/system/mapper/ProjectManagementMapper.java | 30 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectArchiveReq.java | 34 expert-generator/src/main/resources/vm/java/service.java.vm | 20 expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertDetailMapper.java | 10 expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml | 2 expert-framework/src/main/java/com/gkhy/framework/config/ResourcesConfig.java | 4 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertResp.java | 35 expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertInfoController.java | 98 expert-admin/src/main/java/com/gkhy/web/core/config/SwaggerConfig.java | 6 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java | 47 expert-generator/src/main/resources/vm/java/mapper.java.vm | 66 expert-system/src/main/resources/mapper/system/ProjectExpertDetailMapper.xml | 67 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertCheckResp.java | 38 expert-system/src/main/java/com/gkhy/system/service/impl/SysDeptServiceImpl.java | 18 expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java | 201 + expert-system/src/main/java/com/gkhy/system/mapper/EvaluationMapper.java | 6 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertStateResp.java | 35 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertTeamLeaderReqDto.java | 18 bin/run.bat | 6 expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java | 20 expert-generator/src/main/resources/vm/java/sub-domain.java.vm | 111 LICENSE | 2 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectCheckReq.java | 25 expert-system/src/main/resources/mapper/system/ProjectFileMapper.xml | 47 expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectNumResp.java | 25 ry.bat | 24 expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java | 10 expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysProjectExpertReq.java | 30 README.md | 20 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveBatchReqDto.java | 28 expert-admin/src/main/java/com/gkhy/web/controller/common/CommonController.java | 42 expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java | 199 + expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java | 33 expert-system/src/main/java/com/gkhy/system/mapper/SysSettingsMapper.java | 13 expert-system/src/main/java/com/gkhy/system/service/impl/EvaluationServiceImpl.java | 15 expert-admin/src/main/java/com/gkhy/ExpertApplication.java | 4 expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java | 25 expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java | 427 ++- expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectManageSaveReq.java | 83 expert-system/src/main/java/com/gkhy/system/domain/ProjectFile.java | 262 +- expert-system/pom.xml | 5 expert-system/src/main/java/com/gkhy/system/service/impl/SysSettingsServiceImpl.java | 137 expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertSearchReqDto.java | 33 expert-common/src/main/java/com/gkhy/common/core/domain/entity/SysDept.java | 23 expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java | 434 ++++ expert-common/src/main/java/com/gkhy/common/utils/ip/AddressUtils.java | 4 expert-generator/src/main/resources/vm/java/serviceImpl.java.vm | 183 expert-system/src/main/java/com/gkhy/system/domain/Evaluation.java | 159 expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertClassifyController.java | 38 expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java | 4 expert-common/src/main/java/com/gkhy/common/utils/file/FileUtils.java | 4 /dev/null | 0 expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertStateReq.java | 27 expert-system/src/main/java/com/gkhy/system/service/SysExpertInfoService.java | 28 expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml | 98 expert-generator/src/main/resources/vm/java/domain.java.vm | 167 expert-admin/src/main/java/com/gkhy/web/controller/system/SysIndexController.java | 6 110 files changed, 3,680 insertions(+), 2,074 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index fbcab77..dd340e6 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -custom: http://doc.ruoyi.vip/ruoyi-vue/other/donate.html +custom: http://doc.expert.vip/expert-vue/other/donate.html diff --git a/LICENSE b/LICENSE index 8564f29..ba78534 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2018 RuoYi +Copyright (c) 2018 expert Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index e5a47b8..2bfc07d 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ <p align="center"> <img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png"> </p> -<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.8</h1> +<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">expert v3.8.8</h1> <h4 align="center">基于SpringBoot+Vue前后端分离的Java快速开发框架</h4> <p align="center"> - <a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a> - <a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.8-brightgreen.svg"></a> - <a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a> + <a href="https://gitee.com/y_project/expert-Vue/stargazers"><img src="https://gitee.com/y_project/expert-Vue/badge/star.svg?theme=dark"></a> + <a href="https://gitee.com/y_project/expert-Vue"><img src="https://img.shields.io/badge/expert-v3.8.8-brightgreen.svg"></a> + <a href="https://gitee.com/y_project/expert-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a> </p> ## 平台简介 @@ -18,10 +18,10 @@ * 权限认证使用Jwt,支持多终端认证系统。 * 支持加载动态权限菜单,多方式轻松权限控制。 * 高效率开发,使用代码生成器可以一键生成前后端代码。 -* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。 -* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。 -* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud) -* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip) +* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[expert-Vue3](https://github.com/yangzongzhuan/expert-Vue3),保持同步更新。 +* 提供了单应用版本[expert-Vue-fast](https://github.com/yangzongzhuan/expert-Vue-fast),Oracle版本[expert-Vue-Oracle](https://github.com/yangzongzhuan/expert-Vue-Oracle),保持同步更新。 +* 不分离版本,请移步[expert](https://gitee.com/y_project/expert),微服务版本,请移步[expert-Cloud](https://gitee.com/y_project/expert-Cloud) +* 阿里云折扣场:[点我进入](http://aly.expert.vip),腾讯云秒杀场:[点我进入](http://txy.expert.vip) * 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console) ## 内置功能 @@ -50,8 +50,8 @@ - admin/admin123 - 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 -演示地址:http://vue.ruoyi.vip -文档地址:http://doc.ruoyi.vip +演示地址:http://vue.expert.vip +文档地址:http://doc.expert.vip ## 演示图 diff --git a/bin/run.bat b/bin/run.bat index 99c4992..0905107 100644 --- a/bin/run.bat +++ b/bin/run.bat @@ -1,14 +1,14 @@ @echo off echo. -echo [��Ϣ] ʹ��Jar��������Web���̡� +echo [��Ϣ] ʹ��Jar��������Web���̡� echo. cd %~dp0 -cd ../ruoyi-admin/target +cd ../expert-admin/target set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -java -jar %JAVA_OPTS% ruoyi-admin.jar +java -jar %JAVA_OPTS% expert-admin.jar cd bin pause \ No newline at end of file diff --git "a/doc/\350\213\245\344\276\235\347\216\257\345\242\203\344\275\277\347\224\250\346\211\213\345\206\214.docx" "b/doc/\350\213\245\344\276\235\347\216\257\345\242\203\344\275\277\347\224\250\346\211\213\345\206\214.docx" deleted file mode 100644 index 9e4daef..0000000 --- "a/doc/\350\213\245\344\276\235\347\216\257\345\242\203\344\275\277\347\224\250\346\211\213\345\206\214.docx" +++ /dev/null Binary files differ diff --git a/expert-admin/pom.xml b/expert-admin/pom.xml index ead0058..b8d2803 100644 --- a/expert-admin/pom.xml +++ b/expert-admin/pom.xml @@ -24,18 +24,24 @@ <optional>true</optional> <!-- 表示依赖不会传递 --> </dependency> - <!-- swagger3--> <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-boot-starter</artifactId> + <groupId>com.github.xiaoymin</groupId> + <artifactId>knife4j-spring-boot-starter</artifactId> + <version>3.0.3</version> </dependency> - <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --> - <dependency> - <groupId>io.swagger</groupId> - <artifactId>swagger-models</artifactId> - <version>1.6.2</version> - </dependency> +<!-- <!– swagger3–>--> +<!-- <dependency>--> +<!-- <groupId>io.springfox</groupId>--> +<!-- <artifactId>springfox-boot-starter</artifactId>--> +<!-- </dependency>--> + +<!-- <!– 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 –>--> +<!-- <dependency>--> +<!-- <groupId>io.swagger</groupId>--> +<!-- <artifactId>swagger-models</artifactId>--> +<!-- <version>1.6.2</version>--> +<!-- </dependency>--> <!-- Mysql驱动包 --> <dependency> diff --git a/expert-admin/src/main/java/com/gkhy/ExpertApplication.java b/expert-admin/src/main/java/com/gkhy/ExpertApplication.java index da1fae2..391acb4 100644 --- a/expert-admin/src/main/java/com/gkhy/ExpertApplication.java +++ b/expert-admin/src/main/java/com/gkhy/ExpertApplication.java @@ -10,11 +10,11 @@ * @author expert */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -public class expertApplication +public class ExpertApplication { public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); - SpringApplication.run(expertApplication.class, args); + SpringApplication.run(ExpertApplication.class, args); } } diff --git a/expert-admin/src/main/java/com/gkhy/ExpertServletInitializer.java b/expert-admin/src/main/java/com/gkhy/ExpertServletInitializer.java index 30d9f31..d0acb4a 100644 --- a/expert-admin/src/main/java/com/gkhy/ExpertServletInitializer.java +++ b/expert-admin/src/main/java/com/gkhy/ExpertServletInitializer.java @@ -8,11 +8,11 @@ * * @author expert */ -public class expertServletInitializer extends SpringBootServletInitializer +public class ExpertServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { - return application.sources(expertApplication.class); + return application.sources(ExpertApplication.class); } } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/EvaluationController.java b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/EvaluationController.java index 3edc911..de8b19f 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/EvaluationController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/EvaluationController.java @@ -1,36 +1,31 @@ -package com.gkhy.system.controller; +package com.gkhy.web.controller.bussiness; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.gkhy.common.annotation.Log; import com.gkhy.common.core.controller.BaseController; import com.gkhy.common.core.domain.AjaxResult; -import com.gkhy.common.enums.BusinessType; +import com.gkhy.common.core.page.TableDataInfo; import com.gkhy.system.domain.Evaluation; import com.gkhy.system.service.IEvaluationService; -import com.gkhy.common.utils.poi.ExcelUtil; -import com.gkhy.common.core.page.TableDataInfo; +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.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 考评管理Controller - * + * * @author expert * @date 2024-11-13 */ @RestController +@Api(tags = "考评管理-考评管理前端控制器") @RequestMapping("/system/evaluation") -public class EvaluationController extends BaseController -{ +public class EvaluationController extends BaseController { @Autowired private IEvaluationService evaluationService; @@ -38,45 +33,26 @@ * 查询考评管理列表 */ @PreAuthorize("@ss.hasPermi('system:evaluation:list')") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50") + }) + @ApiOperation(value = "考评管理列表") @GetMapping("/list") - public TableDataInfo list(Evaluation evaluation) - { + public TableDataInfo list(Evaluation evaluation) { startPage(); List<Evaluation> list = evaluationService.selectEvaluationList(evaluation); return getDataTable(list); } - /** - * 导出考评管理列表 - */ - @PreAuthorize("@ss.hasPermi('system:evaluation:export')") - @Log(title = "考评管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, Evaluation evaluation) - { - List<Evaluation> list = evaluationService.selectEvaluationList(evaluation); - ExcelUtil<Evaluation> util = new ExcelUtil<Evaluation>(Evaluation.class); - util.exportExcel(response, list, "考评管理数据"); - } - - /** - * 获取考评管理详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:evaluation:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { - return success(evaluationService.selectEvaluationById(id)); - } /** * 新增考评管理 */ @PreAuthorize("@ss.hasPermi('system:evaluation:add')") - @Log(title = "考评管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody Evaluation evaluation) - { + @PostMapping("/add") + @ApiOperation(value = "新增考评管理") + public AjaxResult add(@Validated @RequestBody Evaluation evaluation) { return toAjax(evaluationService.insertEvaluation(evaluation)); } @@ -84,10 +60,9 @@ * 修改考评管理 */ @PreAuthorize("@ss.hasPermi('system:evaluation:edit')") - @Log(title = "考评管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody Evaluation evaluation) - { + @PutMapping("/edit") + @ApiOperation(value = "修改考评管理") + public AjaxResult edit(@Validated @RequestBody Evaluation evaluation) { return toAjax(evaluationService.updateEvaluation(evaluation)); } @@ -95,10 +70,9 @@ * 删除考评管理 */ @PreAuthorize("@ss.hasPermi('system:evaluation:remove')") - @Log(title = "考评管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + @ApiOperation(value = "删除考评管理") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(evaluationService.deleteEvaluationByIds(ids)); } } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertClassifyController.java b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertClassifyController.java index 0291b85..8c669c7 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertClassifyController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertClassifyController.java @@ -1,13 +1,15 @@ -package com.gkhy.assess.admin.controller.web; +package com.gkhy.web.controller.bussiness; -import com.gkhy.assess.common.annotation.RepeatSubmit; -import com.gkhy.assess.common.api.CommonResult; -import com.gkhy.assess.system.domain.SysExpertClassify; -import com.gkhy.assess.system.service.SysExpertClassifyService; + +import com.gkhy.common.annotation.Anonymous; +import com.gkhy.common.annotation.RepeatSubmit; +import com.gkhy.common.core.domain.AjaxResult; +import com.gkhy.system.domain.SysExpertClassify; +import com.gkhy.system.service.SysExpertClassifyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @Api(tags = "专家库-专家分类前端控制器") @@ -19,33 +21,35 @@ @ApiOperation(value = "专家分类列表(树形)") @GetMapping("/tree") - public CommonResult classifyTree(SysExpertClassify expertClassify){ - return CommonResult.success(expertClassifyService.classifyTree(expertClassify)); + @Anonymous + @RepeatSubmit + public AjaxResult classifyTree(SysExpertClassify expertClassify){ + return AjaxResult.success(expertClassifyService.classifyTree(expertClassify)); } - @RequiresPermissions("system:assess:monitor") + @PreAuthorize("@ss.hasPermi('system:assess:monitor')") @RepeatSubmit @ApiOperation(value = "修改专家分类") @PutMapping("/mod") - public CommonResult modClassify(@RequestBody SysExpertClassify expertClassify){ - return CommonResult.success(expertClassifyService.modClassify(expertClassify)); + public AjaxResult modClassify(@RequestBody SysExpertClassify expertClassify){ + return AjaxResult.success(expertClassifyService.modClassify(expertClassify)); } - @RequiresPermissions("system:assess:monitor") + @PreAuthorize("@ss.hasPermi('system:assess:monitor')") @RepeatSubmit @ApiOperation(value = "删除专家分类") @DeleteMapping("/del/{classifyId}") - public CommonResult delClassify(@PathVariable(value = "classifyId") Long classifyId){ - return CommonResult.success(expertClassifyService.delClassify(classifyId)); + public AjaxResult delClassify(@PathVariable(value = "classifyId") Long classifyId){ + return AjaxResult.success(expertClassifyService.delClassify(classifyId)); } - @RequiresPermissions("system:assess:monitor") + @PreAuthorize("@ss.hasPermi('system:assess:monitor')") @RepeatSubmit @ApiOperation(value = "新增专家分类") @PostMapping("/add") - public CommonResult addClassify(@RequestBody SysExpertClassify expertClassify){ - return CommonResult.success(expertClassifyService.addClassify(expertClassify)); + public AjaxResult addClassify(@RequestBody SysExpertClassify expertClassify){ + return AjaxResult.success(expertClassifyService.addClassify(expertClassify)); } } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertInfoController.java b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertInfoController.java index 09a448f..3079375 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertInfoController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ExpertInfoController.java @@ -1,86 +1,116 @@ -package com.gkhy.assess.admin.controller.web; +package com.gkhy.web.controller.bussiness; -import com.gkhy.assess.common.annotation.RepeatSubmit; -import com.gkhy.assess.common.api.CommonResult; -import com.gkhy.assess.system.domain.SysAgency; -import com.gkhy.assess.system.domain.SysExpertClassify; -import com.gkhy.assess.system.domain.SysExpertInfo; -import com.gkhy.assess.system.domain.SysUser; -import com.gkhy.assess.system.service.SysExpertInfoService; + +import com.gkhy.common.annotation.Anonymous; +import com.gkhy.common.annotation.RepeatSubmit; +import com.gkhy.common.core.controller.BaseController; +import com.gkhy.common.core.domain.AjaxResult; +import com.gkhy.common.core.domain.R; +import com.gkhy.common.core.page.TableDataInfo; +import com.gkhy.system.domain.SysExpertInfo; +import com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq; +import com.gkhy.system.domain.vo.request.SysExpertSearchReqDto; +import com.gkhy.system.domain.vo.response.ProjectExpertSectionResp; +import com.gkhy.system.domain.vo.response.SysExpertSearchRep; +import com.gkhy.system.service.SysExpertInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + +/** + * @author admin + */ @Api(tags = "专家库-专家信息前端控制器") @RestController @RequestMapping("/system/expert_info") -public class ExpertInfoController { +public class ExpertInfoController extends BaseController { @Autowired private SysExpertInfoService expertInfoService; - @RequiresPermissions("system:assess:monitor") + // @RequiresPermissions("system:assess:monitor") @ApiOperation(value = "专家列表(分页)") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50") }) @GetMapping("/list") - public CommonResult exportInfoList(SysExpertInfo expertInfo){ - return CommonResult.success(expertInfoService.exportInfoList(expertInfo)); + public TableDataInfo exportInfoList(SysExpertInfo expertInfo) { + startPage(); + List<SysExpertInfo> sysExpertInfos = expertInfoService.exportInfoList(expertInfo); + return getDataTable(sysExpertInfos); + } - @RequiresPermissions("system:assess:monitor") + // @RequiresPermissions("system:assess:monitor") @RepeatSubmit @ApiOperation(value = "新增专家信息") @PostMapping("/add") - public CommonResult addExpertInfo(@RequestBody SysExpertInfo expertInfo){ - return CommonResult.success(expertInfoService.addExpertInfo(expertInfo)); + @Anonymous + public AjaxResult addExpertInfo(@RequestBody SysExpertInfo expertInfo) { + return AjaxResult.success(expertInfoService.addExpertInfo(expertInfo)); } - @RequiresPermissions("system:assess:monitor") + //@RequiresPermissions("system:assess:monitor") @RepeatSubmit @ApiOperation(value = "修改专家信息") @PutMapping("/mod") - public CommonResult modExpertInfo(@RequestBody SysExpertInfo expertInfo){ - return CommonResult.success(expertInfoService.modExpertInfo(expertInfo)); + public AjaxResult modExpertInfo(@RequestBody SysExpertInfo expertInfo) { + return AjaxResult.success(expertInfoService.modExpertInfo(expertInfo)); } - @RequiresPermissions("system:assess:monitor") + //@RequiresPermissions("system:assess:monitor") @RepeatSubmit @ApiOperation(value = "删除专家信息") @DeleteMapping("/del/{expertId}") - public CommonResult delExpertInfo(@PathVariable(value = "expertId") Long expertId){ - return CommonResult.success(expertInfoService.delExpertInfo(expertId)); + public AjaxResult delExpertInfo(@PathVariable(value = "expertId") Long expertId) { + return AjaxResult.success(expertInfoService.delExpertInfo(expertId)); } - @RequiresPermissions("system:assess:monitor") + // @RequiresPermissions("system:assess:monitor") @RepeatSubmit @ApiOperation(value = "批量删除专家信息") @DeleteMapping("/del/batch/{expertIds}") - public CommonResult delExpertInfo(@PathVariable(value = "expertIds") Long[] expertIds){ - return CommonResult.success(expertInfoService.delExpertInfoBatch(expertIds)); + public AjaxResult delExpertInfo(@PathVariable(value = "expertIds") Long[] expertIds) { + return AjaxResult.success(expertInfoService.delExpertInfoBatch(expertIds)); } - @RequiresPermissions("system:assess:monitor") + // @RequiresPermissions("system:assess:monitor") @ApiOperation(value = "根据id获取专家信息") @GetMapping("/detail/{expertId}") - public CommonResult exportInfoDetail(@PathVariable(value = "expertId") Long expertId){ - return CommonResult.success(expertInfoService.exportInfoDetail(expertId)); + public R<SysExpertInfo> exportInfoDetail(@PathVariable(value = "expertId") Long expertId) { + return R.ok(expertInfoService.exportInfoDetail(expertId)); } - @RepeatSubmit - @RequiresPermissions("system:assess:monitor") - @ApiOperation(value = "审批状态修改,审批状态(0暂存,1审核中,2审批通过,3审批驳回,4已作废)") + //@RequiresPermissions("system:assess:monitor") + @ApiOperation(value = "审批状态修改,审批状态(0暂存,1审核中,2审批通过,3审批驳回,4专家库)") @PostMapping("/changeApprove") - public CommonResult changeApprove(@RequestBody SysExpertInfo expertInfo) - { - return CommonResult.success(expertInfoService.changeApprove(expertInfo)); + public AjaxResult changeApprove(@RequestBody SysExpertInfo expertInfo) { + return AjaxResult.success(expertInfoService.changeApprove(expertInfo)); + } + + @RepeatSubmit + //@RequiresPermissions("system:assess:monitor") + @ApiOperation(value = "专家查询审批结果") + @PostMapping("/queryApprove") + @Anonymous + public R<SysExpertSearchRep> queryApprove(@Validated @RequestBody SysExpertSearchReqDto expertInfo) { + return R.ok(expertInfoService.queryApprove(expertInfo)); + } + + @RepeatSubmit + //@RequiresPermissions("system:assess:monitor") + @ApiOperation(value = "随机获取专家数据") + @PostMapping("/getExpertRound") + public R<List<ProjectExpertSectionResp>> getExpertRound(@Validated @RequestBody SysExpertInfoRoundReq expertInfo) { + return R.ok(expertInfoService.getExpertRound(expertInfo)); } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java index 56de2ec..bd5341e 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java @@ -1,25 +1,26 @@ -package com.gkhy.system.controller; +package com.gkhy.web.controller.bussiness; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.gkhy.common.annotation.Log; +import com.gkhy.common.annotation.RepeatSubmit; import com.gkhy.common.core.controller.BaseController; import com.gkhy.common.core.domain.AjaxResult; -import com.gkhy.common.enums.BusinessType; -import com.gkhy.system.domain.ProjectManagement; -import com.gkhy.system.service.IProjectManagementService; -import com.gkhy.common.utils.poi.ExcelUtil; +import com.gkhy.common.core.domain.R; import com.gkhy.common.core.page.TableDataInfo; +import com.gkhy.system.domain.ProjectExpertDetail; +import com.gkhy.system.domain.ProjectFile; +import com.gkhy.system.domain.ProjectManagement; +import com.gkhy.system.domain.vo.request.*; +import com.gkhy.system.domain.vo.response.*; +import com.gkhy.system.service.IProjectManagementService; +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.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 项目管理Controller @@ -29,6 +30,7 @@ */ @RestController @RequestMapping("/system/management") +@Api(tags = "项目管理专家考评-项目管理专家考评前端控制器") public class ProjectManagementController extends BaseController { @Autowired @@ -37,8 +39,13 @@ /** * 查询项目管理列表 */ + @ApiOperation(value = "查询项目管理列表(分页)") @PreAuthorize("@ss.hasPermi('system:management:list')") @GetMapping("/list") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50") + }) public TableDataInfo list(ProjectManagement projectManagement) { startPage(); @@ -46,59 +53,171 @@ return getDataTable(list); } - /** - * 导出项目管理列表 - */ - @PreAuthorize("@ss.hasPermi('system:management:export')") - @Log(title = "项目管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, ProjectManagement projectManagement) - { - List<ProjectManagement> list = projectManagementService.selectProjectManagementList(projectManagement); - ExcelUtil<ProjectManagement> util = new ExcelUtil<ProjectManagement>(ProjectManagement.class); - util.exportExcel(response, list, "项目管理数据"); - } /** * 获取项目管理详细信息 */ @PreAuthorize("@ss.hasPermi('system:management:query')") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) + @ApiOperation(value = "获取项目管理详细信息") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "当前页,默认1") + }) + public R<ProjectManagement> getInfo(@PathVariable("id") Long id) { - return success(projectManagementService.selectProjectManagementById(id)); + return R.ok(projectManagementService.selectProjectManagementById(id)); } /** * 新增项目管理 */ @PreAuthorize("@ss.hasPermi('system:management:add')") - @Log(title = "项目管理", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody ProjectManagement projectManagement) + @ApiOperation(value = "新增编辑项目管理") + @PostMapping("/saveProject") + @RepeatSubmit + public R addProject(@Validated @RequestBody ProjectManageSaveReq projectManagement) { - return toAjax(projectManagementService.insertProjectManagement(projectManagement)); + return R.ok(projectManagementService.insertProjectManagement(projectManagement)); } /** * 修改项目管理 */ @PreAuthorize("@ss.hasPermi('system:management:edit')") - @Log(title = "项目管理", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody ProjectManagement projectManagement) + @ApiOperation(value = "项目专家选取保存-修改") + @PostMapping("/projectExpert") + @RepeatSubmit + public R projectExpert(@Validated @RequestBody ProjectExpertSaveBatchReqDto projectManagement) { - return toAjax(projectManagementService.updateProjectManagement(projectManagement)); + projectManagementService.updateProjectManagement(projectManagement); + return R.ok(); + } + + @PreAuthorize("@ss.hasPermi('system:management:info')") + @ApiOperation(value = "获取项目专家审批用(获取项目信息和专家数据)") + @GetMapping("/projectExpertCheckInfo") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "id", dataType = "long", required = true, value = "当前页,默认1") + }) + public R<ProjectExpertManagementInfoRes> projectExpertCheckInfo(@RequestParam("id") Long id) + { + return R.ok(projectManagementService.projectExpertCheckInfo(id)); + } + + @PreAuthorize("@ss.hasPermi('system:management:edit')") + @ApiOperation(value = "项目专家审批") + @PostMapping("/projectCheck") + @RepeatSubmit + public R projectCheck(@Validated @RequestBody ProjectCheckReq req) + { + projectManagementService.projectCheck(req); + return R.ok(); + } + + @PreAuthorize("@ss.hasPermi('system:management:edit')") + @ApiOperation(value = "项目归档") + @PostMapping("/projectArchive") + @RepeatSubmit + public R projectArchive(@Validated @RequestBody ProjectArchiveReq req) + { + projectManagementService.projectArchive(req); + return R.ok(); } /** * 删除项目管理 */ @PreAuthorize("@ss.hasPermi('system:management:remove')") - @Log(title = "项目管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") + @ApiOperation(value = "删除项目管理") + @RepeatSubmit public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(projectManagementService.deleteProjectManagementByIds(ids)); } + + + /** + * 事后考评列表 + */ + @ApiOperation(value = "事后考评——事后考评(分页)") + @PreAuthorize("@ss.hasPermi('system:management:list')") + @GetMapping("/projectExpertList") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50") + }) + public TableDataInfo projectExpertList(ProjectExpertStateReq req) + { + startPage(); + List<ProjectExpertStateResp> list = projectManagementService.getProjectExpertSate(req); + return getDataTable(list); + } + + @ApiOperation(value = "事后考评——项目专家考评列表(分页)") + @PreAuthorize("@ss.hasPermi('system:management:list')") + @GetMapping("/projectExpertEvaluationList") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50"), + @ApiImplicitParam(paramType = "query", name = "id", dataType = "int", required = true, value = "项目id") + }) + public TableDataInfo projectExpertEvaluationList(@RequestParam("id") Long id) + { + startPage(); + List<ProjectExpertEvaluationResp> projectExpertEvaluationResps = projectManagementService.projectExpertEvaluationList(id); + return getDataTable(projectExpertEvaluationResps); + } + + @PreAuthorize("@ss.hasPermi('system:management:edit')") + @ApiOperation(value = "事后考评——项目专家考评") + @PostMapping("/ProjectExpertDetailSave") + @RepeatSubmit + public R projectExpertDetailSave(@Validated @RequestBody ProjectExpertScoreSaveReq req) + { + projectManagementService.projectExpertDetailSave(req); + return R.ok(); + } + + @ApiOperation(value = "专家考评记录——专家考评记录列表(分页)") + @PreAuthorize("@ss.hasPermi('system:management:list')") + @GetMapping("/projectExpertEvaList") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"), + @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10,最大50"), + }) + public TableDataInfo projectExpertEvaList(SysProjectExpertReq req) + { + startPage(); + List<ProjectExpertResp> projectExpertResps = projectManagementService.projectExpertEvaList(req); + return getDataTable(projectExpertResps); + } + + @ApiOperation(value = "专家考评记录——专家考评记明细") + @PreAuthorize("@ss.hasPermi('system:management:list')") + @GetMapping("/selectProjectExpertDetailList") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "projectExpertId", dataType = "long", required = true, value = "项目专家id") + }) + public R<List<ProjectExpertDetail>> selectProjectExpertDetailList(@RequestParam("projectExpertId") Long projectExpertId) + { + return R.ok(projectManagementService.selectProjectExpertDetailList(projectExpertId)); + } + + @GetMapping("/selectProjectFileList") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "projectId", dataType = "long", required = true, value = "项目id"), + @ApiImplicitParam(paramType = "query", name = "module", dataType = "String", required = true, value = "附件类型1审批附件2项目附件") + }) + @ApiOperation(value = "项目附件相关") + public R<List<ProjectFile>> selectProjectFileList(@RequestParam("projectId") Long projectId, @RequestParam("module") String module ){ + return R.ok(projectManagementService.selectProjectFileList(projectId,module)); + } + + @GetMapping("/getProjectNum") + @ApiOperation(value = "项目统计数量") + public R<ProjectNumResp> getProjectNum(){ + return R.ok(projectManagementService.getProjectNum()); + } + } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/common/CaptchaController.java b/expert-admin/src/main/java/com/gkhy/web/controller/common/CaptchaController.java index 1adc44d..f2c7952 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/common/CaptchaController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/common/CaptchaController.java @@ -1,17 +1,6 @@ package com.gkhy.web.controller.common; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import javax.annotation.Resource; -import javax.imageio.ImageIO; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.FastByteArrayOutputStream; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; -import com.google.code.kaptcha.Producer; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.constant.CacheConstants; import com.gkhy.common.constant.Constants; import com.gkhy.common.core.domain.AjaxResult; @@ -19,6 +8,20 @@ import com.gkhy.common.utils.sign.Base64; import com.gkhy.common.utils.uuid.IdUtils; import com.gkhy.system.service.ISysConfigService; +import com.google.code.kaptcha.Producer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.FastByteArrayOutputStream; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.concurrent.TimeUnit; /** * 验证码操作处理 @@ -26,6 +29,7 @@ * @author expert */ @RestController +@Api(tags = "验证码操作处理") public class CaptchaController { @Resource(name = "captchaProducer") @@ -43,6 +47,7 @@ * 生成验证码 */ @GetMapping("/captchaImage") + @ApiOperation(value = "生成验证码") public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); @@ -61,7 +66,7 @@ BufferedImage image = null; // 生成验证码 - String captchaType = expertConfig.getCaptchaType(); + String captchaType = ExpertConfig.getCaptchaType(); if ("math".equals(captchaType)) { String capText = captchaProducerMath.createText(); diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/common/CommonController.java b/expert-admin/src/main/java/com/gkhy/web/controller/common/CommonController.java index d153648..be5d96a 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/common/CommonController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/common/CommonController.java @@ -1,9 +1,16 @@ package com.gkhy.web.controller.common; -import java.util.ArrayList; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import com.gkhy.common.annotation.Anonymous; +import com.gkhy.common.annotation.RepeatSubmit; +import com.gkhy.common.config.ExpertConfig; +import com.gkhy.common.constant.Constants; +import com.gkhy.common.core.domain.AjaxResult; +import com.gkhy.common.utils.StringUtils; +import com.gkhy.common.utils.file.FileUploadUtils; +import com.gkhy.common.utils.file.FileUtils; +import com.gkhy.framework.config.ServerConfig; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -13,13 +20,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.gkhy.common.config.expertConfig; -import com.gkhy.common.constant.Constants; -import com.gkhy.common.core.domain.AjaxResult; -import com.gkhy.common.utils.StringUtils; -import com.gkhy.common.utils.file.FileUploadUtils; -import com.gkhy.common.utils.file.FileUtils; -import com.gkhy.framework.config.ServerConfig; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; /** * 通用请求处理 @@ -28,6 +33,7 @@ */ @RestController @RequestMapping("/common") +@Api(tags = "附件上传下载") public class CommonController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); @@ -44,6 +50,7 @@ * @param delete 是否删除 */ @GetMapping("/download") + @ApiOperation(value = "通用下载请求") public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) { try @@ -53,7 +60,7 @@ throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); } String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); - String filePath = expertConfig.getDownloadPath() + fileName; + String filePath = ExpertConfig.getDownloadPath() + fileName; response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, realFileName); @@ -73,12 +80,15 @@ * 通用上传请求(单个) */ @PostMapping("/upload") + @ApiOperation(value = "通用上传请求(单个)") + @Anonymous + @RepeatSubmit public AjaxResult uploadFile(MultipartFile file) throws Exception { try { // 上传文件路径 - String filePath = expertConfig.getUploadPath(); + String filePath = ExpertConfig.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; @@ -99,12 +109,13 @@ * 通用上传请求(多个) */ @PostMapping("/uploads") + @ApiOperation(value = "通用上传请求(多个)") public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception { try { // 上传文件路径 - String filePath = expertConfig.getUploadPath(); + String filePath = ExpertConfig.getUploadPath(); List<String> urls = new ArrayList<String>(); List<String> fileNames = new ArrayList<String>(); List<String> newFileNames = new ArrayList<String>(); @@ -136,6 +147,7 @@ * 本地资源通用下载 */ @GetMapping("/download/resource") + @ApiOperation(value = "本地资源通用下载") public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception { @@ -146,7 +158,7 @@ throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); } // 本地资源路径 - String localPath = expertConfig.getProfile(); + String localPath = ExpertConfig.getProfile(); // 数据库资源地址 String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); // 下载名称 diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java index ddc1570..f567dce 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java @@ -1,32 +1,33 @@ package com.gkhy.web.controller.system; -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.gkhy.common.annotation.Anonymous; import com.gkhy.common.annotation.Log; import com.gkhy.common.constant.UserConstants; import com.gkhy.common.core.controller.BaseController; import com.gkhy.common.core.domain.AjaxResult; +import com.gkhy.common.core.domain.R; import com.gkhy.common.core.domain.entity.SysDept; import com.gkhy.common.enums.BusinessType; import com.gkhy.common.utils.StringUtils; import com.gkhy.system.service.ISysDeptService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 部门信息 * * @author expert */ +@Api(tags = "部门-业务处室") @RestController @RequestMapping("/system/dept") public class SysDeptController extends BaseController @@ -39,10 +40,22 @@ */ @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list") - public AjaxResult list(SysDept dept) + @ApiOperation(value = "获取部门列表") + public R<List<SysDept>> list(SysDept dept) { List<SysDept> depts = deptService.selectDeptList(dept); - return success(depts); + return R.ok(depts); + } + + + // @PreAuthorize("@ss.hasPermi('system:dept:list')") + @GetMapping("/getOutDeptList") + @ApiOperation(value = "获取部门列表(公开)") + @Anonymous + public R<List<SysDept>> getOutDeptList(SysDept dept) + { + List<SysDept> depts = deptService.getOutDeptList(dept); + return R.ok(depts); } /** @@ -50,11 +63,15 @@ */ @PreAuthorize("@ss.hasPermi('system:dept:list')") @GetMapping("/list/exclude/{deptId}") - public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "deptId", dataType = "Long", required = true, value = "部门id"), + }) + @ApiOperation(value = "查询部门列表(排除节点)") + public R<List<SysDept>> excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) { List<SysDept> depts = deptService.selectDeptList(new SysDept()); depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + "")); - return success(depts); + return R.ok(depts); } /** @@ -62,10 +79,14 @@ */ @PreAuthorize("@ss.hasPermi('system:dept:query')") @GetMapping(value = "/{deptId}") - public AjaxResult getInfo(@PathVariable Long deptId) + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "deptId", dataType = "Long", required = true, value = "部门id"), + }) + @ApiOperation(value = "根据部门编号获取详细信息") + public R<SysDept> getInfo(@PathVariable Long deptId) { deptService.checkDeptDataScope(deptId); - return success(deptService.selectDeptById(deptId)); + return R.ok(deptService.selectDeptById(deptId)); } /** @@ -73,7 +94,8 @@ */ @PreAuthorize("@ss.hasPermi('system:dept:add')") @Log(title = "部门管理", businessType = BusinessType.INSERT) - @PostMapping + @PostMapping("/add") + @ApiOperation(value = "新增部门业务处室") public AjaxResult add(@Validated @RequestBody SysDept dept) { if (!deptService.checkDeptNameUnique(dept)) @@ -89,6 +111,7 @@ */ @PreAuthorize("@ss.hasPermi('system:dept:edit')") @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @ApiOperation(value = "修改部门门业务处室") @PutMapping public AjaxResult edit(@Validated @RequestBody SysDept dept) { @@ -116,6 +139,7 @@ @PreAuthorize("@ss.hasPermi('system:dept:remove')") @Log(title = "部门管理", businessType = BusinessType.DELETE) @DeleteMapping("/{deptId}") + @ApiOperation(value = "删除部门门业务处室") public AjaxResult remove(@PathVariable Long deptId) { if (deptService.hasChildByDeptId(deptId)) @@ -126,6 +150,7 @@ { return warn("部门存在用户,不允许删除"); } + //todo 校验专家是否申请复用 deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); } diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysIndexController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysIndexController.java index 04d4e73..4df0c6d 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysIndexController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysIndexController.java @@ -1,9 +1,10 @@ package com.gkhy.web.controller.system; +import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.utils.StringUtils; /** @@ -11,12 +12,13 @@ * * @author expert */ + @RestController public class SysIndexController { /** 系统基础配置 */ @Autowired - private expertConfig expertConfig; + private ExpertConfig expertConfig; /** * 访问首页,提示语 diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysLoginController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysLoginController.java index 4d315a0..23e8b27 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysLoginController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysLoginController.java @@ -2,6 +2,9 @@ import java.util.List; import java.util.Set; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -24,6 +27,7 @@ * * @author expert */ +@Api(value = "登录管理", tags = "登录管理") @RestController public class SysLoginController { @@ -46,6 +50,7 @@ * @return 结果 */ @PostMapping("/login") + @ApiOperation("登录") public AjaxResult login(@RequestBody LoginBody loginBody) { AjaxResult ajax = AjaxResult.success(); @@ -62,6 +67,7 @@ * @return 用户信息 */ @GetMapping("getInfo") + @ApiOperation("获取用户信息") public AjaxResult getInfo() { LoginUser loginUser = SecurityUtils.getLoginUser(); @@ -88,6 +94,7 @@ * @return 路由信息 */ @GetMapping("getRouters") + @ApiOperation("获取路由信息") public AjaxResult getRouters() { Long userId = SecurityUtils.getUserId(); diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java index c1f8d01..b7fd121 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysProfileController.java @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.gkhy.common.annotation.Log; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.core.controller.BaseController; import com.gkhy.common.core.domain.AjaxResult; import com.gkhy.common.core.domain.entity.SysUser; @@ -121,7 +121,7 @@ if (!file.isEmpty()) { LoginUser loginUser = getLoginUser(); - String avatar = FileUploadUtils.upload(expertConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); + String avatar = FileUploadUtils.upload(ExpertConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) { AjaxResult ajax = AjaxResult.success(); diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysRegisterController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysRegisterController.java index 184e0ba..ad86f86 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysRegisterController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysRegisterController.java @@ -1,38 +1,38 @@ -package com.gkhy.web.controller.system; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.gkhy.common.core.controller.BaseController; -import com.gkhy.common.core.domain.AjaxResult; -import com.gkhy.common.core.domain.model.RegisterBody; -import com.gkhy.common.utils.StringUtils; -import com.gkhy.framework.web.service.SysRegisterService; -import com.gkhy.system.service.ISysConfigService; - -/** - * 注册验证 - * - * @author expert - */ -@RestController -public class SysRegisterController extends BaseController -{ - @Autowired - private SysRegisterService registerService; - - @Autowired - private ISysConfigService configService; - - @PostMapping("/register") - public AjaxResult register(@RequestBody RegisterBody user) - { - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) - { - return error("当前系统没有开启注册功能!"); - } - String msg = registerService.register(user); - return StringUtils.isEmpty(msg) ? success() : error(msg); - } -} +//package com.gkhy.web.controller.system; +// +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestBody; +//import org.springframework.web.bind.annotation.RestController; +//import com.gkhy.common.core.controller.BaseController; +//import com.gkhy.common.core.domain.AjaxResult; +//import com.gkhy.common.core.domain.model.RegisterBody; +//import com.gkhy.common.utils.StringUtils; +//import com.gkhy.framework.web.service.SysRegisterService; +//import com.gkhy.system.service.ISysConfigService; +// +///** +// * 注册验证 +// * +// * @author expert +// */ +//@RestController +//public class SysRegisterController extends BaseController +//{ +// @Autowired +// private SysRegisterService registerService; +// +// @Autowired +// private ISysConfigService configService; +// +// @PostMapping("/register") +// public AjaxResult register(@RequestBody RegisterBody user) +// { +// if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) +// { +// return error("当前系统没有开启注册功能!"); +// } +// String msg = registerService.register(user); +// return StringUtils.isEmpty(msg) ? success() : error(msg); +// } +//} diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysSettingsController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysSettingsController.java index ea8d9f2..74c206b 100644 --- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysSettingsController.java +++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysSettingsController.java @@ -1,25 +1,24 @@ -package com.gkhy.system.controller; +package com.gkhy.web.controller.system; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.gkhy.common.annotation.Log; +import com.gkhy.common.annotation.Anonymous; +import com.gkhy.common.annotation.RepeatSubmit; import com.gkhy.common.core.controller.BaseController; import com.gkhy.common.core.domain.AjaxResult; -import com.gkhy.common.enums.BusinessType; -import com.gkhy.system.domain.SysSettings; -import com.gkhy.system.service.ISysSettingsService; -import com.gkhy.common.utils.poi.ExcelUtil; +import com.gkhy.common.core.domain.R; import com.gkhy.common.core.page.TableDataInfo; +import com.gkhy.system.domain.ApplyRecord; +import com.gkhy.system.service.ISysSettingsService; +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.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; /** * 系统配置Controller @@ -29,76 +28,46 @@ */ @RestController @RequestMapping("/system/settings") +@Api(tags = "专家申请系统设置-前端控制器") public class SysSettingsController extends BaseController { @Autowired private ISysSettingsService sysSettingsService; - - /** - * 查询系统配置列表 - */ - @PreAuthorize("@ss.hasPermi('system:settings:list')") - @GetMapping("/list") - public TableDataInfo list(SysSettings sysSettings) - { - startPage(); - List<SysSettings> list = sysSettingsService.selectSysSettingsList(sysSettings); - return getDataTable(list); - } - - /** - * 导出系统配置列表 - */ - @PreAuthorize("@ss.hasPermi('system:settings:export')") - @Log(title = "系统配置", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SysSettings sysSettings) - { - List<SysSettings> list = sysSettingsService.selectSysSettingsList(sysSettings); - ExcelUtil<SysSettings> util = new ExcelUtil<SysSettings>(SysSettings.class); - util.exportExcel(response, list, "系统配置数据"); - } - /** * 获取系统配置详细信息 */ - @PreAuthorize("@ss.hasPermi('system:settings:query')") - @GetMapping(value = "/{state}") - public AjaxResult getInfo(@PathVariable("state") String state) + @GetMapping(value = "/getSettings") + @RepeatSubmit + @ApiOperation(value = "获取是否开启1开启2关闭") + @Anonymous + public R<String> getSettings() { - return success(sysSettingsService.selectSysSettingsByState(state)); - } - - /** - * 新增系统配置 - */ - @PreAuthorize("@ss.hasPermi('system:settings:add')") - @Log(title = "系统配置", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody SysSettings sysSettings) - { - return toAjax(sysSettingsService.insertSysSettings(sysSettings)); + return R.ok(sysSettingsService.selectSysSettings()); } /** * 修改系统配置 */ @PreAuthorize("@ss.hasPermi('system:settings:edit')") - @Log(title = "系统配置", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody SysSettings sysSettings) + @GetMapping("/updateSettings") + @RepeatSubmit + @ApiOperation(value = "专家申请系统设置开关") + @ApiImplicitParams({ + @ApiImplicitParam(paramType = "query", name = "sysSettings", dataType = "String", required = false, value = "1开启2关闭") + }) + public AjaxResult updateSettings(String sysSettings) { return toAjax(sysSettingsService.updateSysSettings(sysSettings)); } - /** - * 删除系统配置 - */ - @PreAuthorize("@ss.hasPermi('system:settings:remove')") - @Log(title = "系统配置", businessType = BusinessType.DELETE) - @DeleteMapping("/{states}") - public AjaxResult remove(@PathVariable String[] states) - { - return toAjax(sysSettingsService.deleteSysSettingsByStates(states)); + @PreAuthorize("@ss.hasPermi('system:record:list')") + @GetMapping("/applyList") + @ApiOperation(value = "专家申请系统设置记录") + public TableDataInfo applyList() { + startPage(); + List<ApplyRecord> list = sysSettingsService.selectApplyRecordList(); + return getDataTable(list); } + + } diff --git a/expert-admin/src/main/java/com/gkhy/web/core/config/SwaggerConfig.java b/expert-admin/src/main/java/com/gkhy/web/core/config/SwaggerConfig.java index 36271c0..d99c6ef 100644 --- a/expert-admin/src/main/java/com/gkhy/web/core/config/SwaggerConfig.java +++ b/expert-admin/src/main/java/com/gkhy/web/core/config/SwaggerConfig.java @@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import springfox.documentation.builders.ApiInfoBuilder; @@ -32,7 +32,7 @@ { /** 系统基础配置 */ @Autowired - private expertConfig expertConfig; + private ExpertConfig expertConfig; /** 是否开启swagger */ @Value("${swagger.enabled}") @@ -113,7 +113,7 @@ // 用ApiInfoBuilder进行定制 return new ApiInfoBuilder() // 设置标题 - .title("标题:若依管理系统_接口文档") + .title("标题:专家管理系统_接口文档") // 描述 .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") // 作者信息 diff --git a/expert-admin/src/main/resources/application-druid.yml b/expert-admin/src/main/resources/application-druid.yml index 1f1d605..cf564bf 100644 --- a/expert-admin/src/main/resources/application-druid.yml +++ b/expert-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/expert_management?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowMultiQueries=true username: root - password: password + password: 123456 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/expert-admin/src/main/resources/application.yml b/expert-admin/src/main/resources/application.yml index 2ea29cf..3758b01 100644 --- a/expert-admin/src/main/resources/application.yml +++ b/expert-admin/src/main/resources/application.yml @@ -3,7 +3,7 @@ # 名称 name: expert # 版本 - version: 3.8.8 + version: 1.0.0 # 版权年份 copyrightYear: 2024 # 文件路径 示例( Windows配置D:/expert/uploadPath,Linux配置 /home/expert/uploadPath) @@ -16,7 +16,7 @@ # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 - port: 8080 + port: 8585 servlet: # 应用的访问路径 context-path: / @@ -74,7 +74,7 @@ # 数据库索引 database: 0 # 密码 - password: + #password: # 连接超时时间 timeout: 10s lettuce: @@ -97,14 +97,56 @@ # 令牌有效期(默认30分钟) expireTime: 30 -# MyBatis配置 -mybatis: +## MyBatis配置 +#mybatis: +# # 搜索指定包别名 +# typeAliasesPackage: com.gkhy.**.domain +# # 配置mapper的扫描,找到所有的mapper.xml映射文件 +# mapperLocations: classpath*:mapper/**/*Mapper.xml +# # 加载全局的配置文件 +# configLocation: classpath:mybatis/mybatis-config.xml + + +# mybatis-plus相关配置 +# MyBatis Plus配置 +mybatis-plus: # 搜索指定包别名 typeAliasesPackage: com.gkhy.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml - # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml + global-config: + db-config: + #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; + id-type: auto + #字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断" + field-strategy: NOT_EMPTY + #数据库类型 + db-type: MYSQL + configuration: + # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射 + map-underscore-to-camel-case: true + # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 + call-setters-on-nulls: true +#mybatis-plus: +# # 搜索指定包别名 +# typeAliasesPackage: com.gkhy.**.domain +# # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置) +# mapper-locations: classpath*:mapper/**/*Mapper.xml +# configLocation: classpath:mybatis/mybatis-config.xml +# # 以下配置均有默认值,可以不设置 +# global-config: +# db-config: +# #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; +# id-type: auto +# #字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断" +# field-strategy: NOT_EMPTY +# #数据库类型 +# db-type: MYSQL +# configuration: +# # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射 +# map-underscore-to-camel-case: true +# # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 +# call-setters-on-nulls: true # PageHelper分页插件 pagehelper: @@ -117,7 +159,7 @@ # 是否开启swagger enabled: true # 请求前缀 - pathMapping: /dev-api + pathMapping: / # 防止XSS攻击 xss: diff --git a/expert-admin/src/main/resources/banner.txt b/expert-admin/src/main/resources/banner.txt index 423184f..ee26529 100644 --- a/expert-admin/src/main/resources/banner.txt +++ b/expert-admin/src/main/resources/banner.txt @@ -1,24 +1,2 @@ Application Version: ${expert.version} Spring Boot Version: ${spring-boot.version} -//////////////////////////////////////////////////////////////////// -// _ooOoo_ // -// o8888888o // -// 88" . "88 // -// (| ^_^ |) // -// O\ = /O // -// ____/`---'\____ // -// .' \\| |// `. // -// / \\||| : |||// \ // -// / _||||| -:- |||||- \ // -// | | \\\ - /// | | // -// | \_| ''\---/'' | | // -// \ .-\__ `-` ___/-. / // -// ___`. .' /--.--\ `. . ___ // -// ."" '< `.___\_<|>_/___.' >'"". // -// | | : `- \`.;`\ _ /`;.`/ - ` : | | // -// \ \ `-. \_ __\ /__ _/ .-` / / // -// ========`-.____`-.___\_____/___.-`____.-'======== // -// `=---=' // -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// 佛祖保佑 永不宕机 永无BUG // -//////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/expert-common/pom.xml b/expert-common/pom.xml index 9e49581..696bece 100644 --- a/expert-common/pom.xml +++ b/expert-common/pom.xml @@ -46,7 +46,19 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> - + <!--mybatis-plus--> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-generator</artifactId> + </dependency> + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + </dependency> <!--常用工具类 --> <dependency> <groupId>org.apache.commons</groupId> @@ -118,6 +130,12 @@ <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> + <dependency> + <groupId>io.swagger</groupId> + <artifactId>swagger-annotations</artifactId> + <version>1.6.2</version> + <scope>compile</scope> + </dependency> </dependencies> diff --git a/expert-common/src/main/java/com/gkhy/common/config/ExpertConfig.java b/expert-common/src/main/java/com/gkhy/common/config/ExpertConfig.java index cce1c80..d013d41 100644 --- a/expert-common/src/main/java/com/gkhy/common/config/ExpertConfig.java +++ b/expert-common/src/main/java/com/gkhy/common/config/ExpertConfig.java @@ -10,7 +10,7 @@ */ @Component @ConfigurationProperties(prefix = "expert") -public class expertConfig +public class ExpertConfig { /** 项目名称 */ private String name; @@ -67,7 +67,7 @@ public void setProfile(String profile) { - expertConfig.profile = profile; + ExpertConfig.profile = profile; } public static boolean isAddressEnabled() @@ -77,7 +77,7 @@ public void setAddressEnabled(boolean addressEnabled) { - expertConfig.addressEnabled = addressEnabled; + ExpertConfig.addressEnabled = addressEnabled; } public static String getCaptchaType() { @@ -85,7 +85,7 @@ } public void setCaptchaType(String captchaType) { - expertConfig.captchaType = captchaType; + ExpertConfig.captchaType = captchaType; } /** diff --git a/expert-common/src/main/java/com/gkhy/common/core/domain/BaseEntity.java b/expert-common/src/main/java/com/gkhy/common/core/domain/BaseEntity.java index f80734c..da69756 100644 --- a/expert-common/src/main/java/com/gkhy/common/core/domain/BaseEntity.java +++ b/expert-common/src/main/java/com/gkhy/common/core/domain/BaseEntity.java @@ -1,12 +1,14 @@ package com.gkhy.common.core.domain; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; /** * Entity基类 @@ -19,6 +21,7 @@ /** 搜索值 */ @JsonIgnore + @TableField(exist = false) private String searchValue; /** 创建者 */ @@ -40,6 +43,7 @@ /** 请求参数 */ @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) private Map<String, Object> params; public String getSearchValue() diff --git a/expert-common/src/main/java/com/gkhy/common/core/domain/entity/SysDept.java b/expert-common/src/main/java/com/gkhy/common/core/domain/entity/SysDept.java index d912709..2d4670d 100644 --- a/expert-common/src/main/java/com/gkhy/common/core/domain/entity/SysDept.java +++ b/expert-common/src/main/java/com/gkhy/common/core/domain/entity/SysDept.java @@ -1,40 +1,51 @@ package com.gkhy.common.core.domain.entity; -import java.util.ArrayList; -import java.util.List; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.gkhy.common.core.domain.BaseEntity; +import java.util.ArrayList; +import java.util.List; /** * 部门表 sys_dept * * @author expert */ +@ApiModel(value = "SysDept对象", description = "部门业务处室") public class SysDept extends BaseEntity { private static final long serialVersionUID = 1L; /** 部门ID */ + @ApiModelProperty("主键") private Long deptId; /** 父部门ID */ + @ApiModelProperty("父部门ID") private Long parentId; /** 祖级列表 */ + @ApiModelProperty("祖级列表") private String ancestors; /** 部门名称 */ + @ApiModelProperty("部门名称") + @NotBlank(message ="部门名称不能为空" ) private String deptName; /** 显示顺序 */ + @ApiModelProperty("显示顺序") private Integer orderNum; /** 负责人 */ + @ApiModelProperty("负责人") private String leader; /** 联系电话 */ @@ -44,12 +55,14 @@ private String email; /** 部门状态:0正常,1停用 */ + @ApiModelProperty("部门状态:0正常,1停用") private String status; /** 删除标志(0代表存在 2代表删除) */ private String delFlag; /** 父部门名称 */ + @ApiModelProperty("父部门名称") private String parentName; /** 子部门 */ diff --git a/expert-common/src/main/java/com/gkhy/common/core/domain/model/LoginBody.java b/expert-common/src/main/java/com/gkhy/common/core/domain/model/LoginBody.java index a05d765..28d9065 100644 --- a/expert-common/src/main/java/com/gkhy/common/core/domain/model/LoginBody.java +++ b/expert-common/src/main/java/com/gkhy/common/core/domain/model/LoginBody.java @@ -1,10 +1,13 @@ package com.gkhy.common.core.domain.model; +import io.swagger.annotations.ApiModel; + /** * 用户登录对象 * * @author expert */ +@ApiModel(value = "LoginBody", description = "登录实体") public class LoginBody { /** diff --git a/expert-common/src/main/java/com/gkhy/common/enums/DeleteFlagEnum.java b/expert-common/src/main/java/com/gkhy/common/enums/DeleteFlagEnum.java index efe694b..9ea5548 100644 --- a/expert-common/src/main/java/com/gkhy/common/enums/DeleteFlagEnum.java +++ b/expert-common/src/main/java/com/gkhy/common/enums/DeleteFlagEnum.java @@ -1,4 +1,4 @@ -package com.gkhy.assess.common.enums; +package com.gkhy.common.enums; /** * 删除状态 diff --git a/expert-common/src/main/java/com/gkhy/common/enums/OpenFlagEnum.java b/expert-common/src/main/java/com/gkhy/common/enums/OpenFlagEnum.java index 9ea5548..4c69cf3 100644 --- a/expert-common/src/main/java/com/gkhy/common/enums/OpenFlagEnum.java +++ b/expert-common/src/main/java/com/gkhy/common/enums/OpenFlagEnum.java @@ -4,20 +4,20 @@ * 删除状态 * */ -public enum DeleteFlagEnum +public enum OpenFlagEnum { - UN_DELETE(0, "未删除"), DELETED(1, "已删除"); + OPEN("1", "开启"), CLOSE("2", "关闭"); - private final Integer code; + private final String code; private final String info; - DeleteFlagEnum(Integer code, String info) + OpenFlagEnum(String code, String info) { this.code = code; this.info = info; } - public Integer getCode() + public String getCode() { return code; } diff --git a/expert-common/src/main/java/com/gkhy/common/utils/file/FileUploadUtils.java b/expert-common/src/main/java/com/gkhy/common/utils/file/FileUploadUtils.java index 9c3154e..c4b7ab1 100644 --- a/expert-common/src/main/java/com/gkhy/common/utils/file/FileUploadUtils.java +++ b/expert-common/src/main/java/com/gkhy/common/utils/file/FileUploadUtils.java @@ -6,7 +6,7 @@ import java.util.Objects; import org.apache.commons.io.FilenameUtils; import org.springframework.web.multipart.MultipartFile; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.constant.Constants; import com.gkhy.common.exception.file.FileNameLengthLimitExceededException; import com.gkhy.common.exception.file.FileSizeLimitExceededException; @@ -35,7 +35,7 @@ /** * 默认上传的地址 */ - private static String defaultBaseDir = expertConfig.getProfile(); + private static String defaultBaseDir = ExpertConfig.getProfile(); public static void setDefaultBaseDir(String defaultBaseDir) { @@ -142,7 +142,7 @@ public static final String getPathFileName(String uploadDir, String fileName) throws IOException { - int dirLastIndex = expertConfig.getProfile().length() + 1; + int dirLastIndex = ExpertConfig.getProfile().length() + 1; String currentDir = StringUtils.substring(uploadDir, dirLastIndex); return Constants.RESOURCE_PREFIX + "/" + currentDir + "/" + fileName; } diff --git a/expert-common/src/main/java/com/gkhy/common/utils/file/FileUtils.java b/expert-common/src/main/java/com/gkhy/common/utils/file/FileUtils.java index 207967e..cc7a36a 100644 --- a/expert-common/src/main/java/com/gkhy/common/utils/file/FileUtils.java +++ b/expert-common/src/main/java/com/gkhy/common/utils/file/FileUtils.java @@ -13,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.utils.DateUtils; import com.gkhy.common.utils.StringUtils; import com.gkhy.common.utils.uuid.IdUtils; @@ -73,7 +73,7 @@ */ public static String writeImportBytes(byte[] data) throws IOException { - return writeBytes(data, expertConfig.getImportPath()); + return writeBytes(data, ExpertConfig.getImportPath()); } /** diff --git a/expert-common/src/main/java/com/gkhy/common/utils/file/ImageUtils.java b/expert-common/src/main/java/com/gkhy/common/utils/file/ImageUtils.java index bf8189a..3790a76 100644 --- a/expert-common/src/main/java/com/gkhy/common/utils/file/ImageUtils.java +++ b/expert-common/src/main/java/com/gkhy/common/utils/file/ImageUtils.java @@ -9,7 +9,7 @@ import org.apache.poi.util.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.constant.Constants; import com.gkhy.common.utils.StringUtils; @@ -79,7 +79,7 @@ else { // 本机地址 - String localPath = expertConfig.getProfile(); + String localPath = ExpertConfig.getProfile(); String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); in = new FileInputStream(downloadPath); } diff --git a/expert-common/src/main/java/com/gkhy/common/utils/ip/AddressUtils.java b/expert-common/src/main/java/com/gkhy/common/utils/ip/AddressUtils.java index 3bf48b9..c185a73 100644 --- a/expert-common/src/main/java/com/gkhy/common/utils/ip/AddressUtils.java +++ b/expert-common/src/main/java/com/gkhy/common/utils/ip/AddressUtils.java @@ -4,7 +4,7 @@ import org.slf4j.LoggerFactory; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.constant.Constants; import com.gkhy.common.utils.StringUtils; import com.gkhy.common.utils.http.HttpUtils; @@ -31,7 +31,7 @@ { return "内网IP"; } - if (expertConfig.isAddressEnabled()) + if (ExpertConfig.isAddressEnabled()) { try { diff --git a/expert-common/src/main/java/com/gkhy/common/utils/poi/ExcelUtil.java b/expert-common/src/main/java/com/gkhy/common/utils/poi/ExcelUtil.java index a357806..fd9e405 100644 --- a/expert-common/src/main/java/com/gkhy/common/utils/poi/ExcelUtil.java +++ b/expert-common/src/main/java/com/gkhy/common/utils/poi/ExcelUtil.java @@ -74,7 +74,7 @@ import com.gkhy.common.annotation.Excel.ColumnType; import com.gkhy.common.annotation.Excel.Type; import com.gkhy.common.annotation.Excels; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.core.domain.AjaxResult; import com.gkhy.common.core.text.Convert; import com.gkhy.common.exception.UtilException; @@ -1423,7 +1423,7 @@ */ public String getAbsoluteFile(String filename) { - String downloadPath = expertConfig.getDownloadPath() + filename; + String downloadPath = ExpertConfig.getDownloadPath() + filename; File desc = new File(downloadPath); if (!desc.getParentFile().exists()) { diff --git a/expert-framework/src/main/java/com/gkhy/framework/config/MyBatisConfig.java b/expert-framework/src/main/java/com/gkhy/framework/config/MyBatisConfig.java index 0e21c0f..2c3a807 100644 --- a/expert-framework/src/main/java/com/gkhy/framework/config/MyBatisConfig.java +++ b/expert-framework/src/main/java/com/gkhy/framework/config/MyBatisConfig.java @@ -1,132 +1,132 @@ -package com.gkhy.framework.config; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import javax.sql.DataSource; -import org.apache.ibatis.io.VFS; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.env.Environment; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.core.io.support.ResourcePatternResolver; -import org.springframework.core.type.classreading.CachingMetadataReaderFactory; -import org.springframework.core.type.classreading.MetadataReader; -import org.springframework.core.type.classreading.MetadataReaderFactory; -import org.springframework.util.ClassUtils; -import com.gkhy.common.utils.StringUtils; - -/** - * Mybatis支持*匹配扫描包 - * - * @author expert - */ -@Configuration -public class MyBatisConfig -{ - @Autowired - private Environment env; - - static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; - - public static String setTypeAliasesPackage(String typeAliasesPackage) - { - ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); - MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); - List<String> allResult = new ArrayList<String>(); - try - { - for (String aliasesPackage : typeAliasesPackage.split(",")) - { - List<String> result = new ArrayList<String>(); - aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX - + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; - Resource[] resources = resolver.getResources(aliasesPackage); - if (resources != null && resources.length > 0) - { - MetadataReader metadataReader = null; - for (Resource resource : resources) - { - if (resource.isReadable()) - { - metadataReader = metadataReaderFactory.getMetadataReader(resource); - try - { - result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); - } - catch (ClassNotFoundException e) - { - e.printStackTrace(); - } - } - } - } - if (result.size() > 0) - { - HashSet<String> hashResult = new HashSet<String>(result); - allResult.addAll(hashResult); - } - } - if (allResult.size() > 0) - { - typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); - } - else - { - throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包"); - } - } - catch (IOException e) - { - e.printStackTrace(); - } - return typeAliasesPackage; - } - - public Resource[] resolveMapperLocations(String[] mapperLocations) - { - ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); - List<Resource> resources = new ArrayList<Resource>(); - if (mapperLocations != null) - { - for (String mapperLocation : mapperLocations) - { - try - { - Resource[] mappers = resourceResolver.getResources(mapperLocation); - resources.addAll(Arrays.asList(mappers)); - } - catch (IOException e) - { - // ignore - } - } - } - return resources.toArray(new Resource[resources.size()]); - } - - @Bean - public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception - { - String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); - String mapperLocations = env.getProperty("mybatis.mapperLocations"); - String configLocation = env.getProperty("mybatis.configLocation"); - typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); - VFS.addImplClass(SpringBootVFS.class); - - final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); - sessionFactory.setDataSource(dataSource); - sessionFactory.setTypeAliasesPackage(typeAliasesPackage); - sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ","))); - sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); - return sessionFactory.getObject(); - } -} \ No newline at end of file +//package com.gkhy.framework.config; +// +//import java.io.IOException; +//import java.util.ArrayList; +//import java.util.Arrays; +//import java.util.HashSet; +//import java.util.List; +//import javax.sql.DataSource; +//import org.apache.ibatis.io.VFS; +//import org.apache.ibatis.session.SqlSessionFactory; +//import org.mybatis.spring.SqlSessionFactoryBean; +//import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.annotation.Bean; +//import org.springframework.context.annotation.Configuration; +//import org.springframework.core.env.Environment; +//import org.springframework.core.io.DefaultResourceLoader; +//import org.springframework.core.io.Resource; +//import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +//import org.springframework.core.io.support.ResourcePatternResolver; +//import org.springframework.core.type.classreading.CachingMetadataReaderFactory; +//import org.springframework.core.type.classreading.MetadataReader; +//import org.springframework.core.type.classreading.MetadataReaderFactory; +//import org.springframework.util.ClassUtils; +//import com.gkhy.common.utils.StringUtils; +// +///** +// * Mybatis支持*匹配扫描包 +// * +// * @author expert +// */ +//@Configuration +//public class MyBatisConfig +//{ +// @Autowired +// private Environment env; +// +// static final String DEFAULT_RESOURCE_PATTERN = "**/*.class"; +// +// public static String setTypeAliasesPackage(String typeAliasesPackage) +// { +// ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver(); +// MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver); +// List<String> allResult = new ArrayList<String>(); +// try +// { +// for (String aliasesPackage : typeAliasesPackage.split(",")) +// { +// List<String> result = new ArrayList<String>(); +// aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +// + ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN; +// Resource[] resources = resolver.getResources(aliasesPackage); +// if (resources != null && resources.length > 0) +// { +// MetadataReader metadataReader = null; +// for (Resource resource : resources) +// { +// if (resource.isReadable()) +// { +// metadataReader = metadataReaderFactory.getMetadataReader(resource); +// try +// { +// result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName()); +// } +// catch (ClassNotFoundException e) +// { +// e.printStackTrace(); +// } +// } +// } +// } +// if (result.size() > 0) +// { +// HashSet<String> hashResult = new HashSet<String>(result); +// allResult.addAll(hashResult); +// } +// } +// if (allResult.size() > 0) +// { +// typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0])); +// } +// else +// { +// throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包"); +// } +// } +// catch (IOException e) +// { +// e.printStackTrace(); +// } +// return typeAliasesPackage; +// } +// +// public Resource[] resolveMapperLocations(String[] mapperLocations) +// { +// ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); +// List<Resource> resources = new ArrayList<Resource>(); +// if (mapperLocations != null) +// { +// for (String mapperLocation : mapperLocations) +// { +// try +// { +// Resource[] mappers = resourceResolver.getResources(mapperLocation); +// resources.addAll(Arrays.asList(mappers)); +// } +// catch (IOException e) +// { +// // ignore +// } +// } +// } +// return resources.toArray(new Resource[resources.size()]); +// } +// +// @Bean +// public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception +// { +// String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); +// String mapperLocations = env.getProperty("mybatis.mapperLocations"); +// String configLocation = env.getProperty("mybatis.configLocation"); +// typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage); +// VFS.addImplClass(SpringBootVFS.class); +// +// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); +// sessionFactory.setDataSource(dataSource); +// sessionFactory.setTypeAliasesPackage(typeAliasesPackage); +// sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ","))); +// sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation)); +// return sessionFactory.getObject(); +// } +//} \ No newline at end of file diff --git a/expert-framework/src/main/java/com/gkhy/framework/config/MybatisPlusConfig.java b/expert-framework/src/main/java/com/gkhy/framework/config/MybatisPlusConfig.java index d288787..c6394d7 100644 --- a/expert-framework/src/main/java/com/gkhy/framework/config/MybatisPlusConfig.java +++ b/expert-framework/src/main/java/com/gkhy/framework/config/MybatisPlusConfig.java @@ -1,17 +1,20 @@ -package com.gkhy.common.config; +package com.gkhy.framework.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.github.pagehelper.PageHelper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; import java.util.Properties; @Configuration +@EnableTransactionManagement(proxyTargetClass = true) public class MybatisPlusConfig { /** * 新的分页插件,一缓和二缓遵循mybatis的规则, @@ -19,11 +22,13 @@ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); - PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); - paginationInnerInterceptor.setOverflow(false);//溢出总页数 总是跳到第一页 - interceptor.addInnerInterceptor(paginationInnerInterceptor); - //添加乐观锁插件 - interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); + // 分页插件 + interceptor.addInnerInterceptor(paginationInnerInterceptor()); + // 乐观锁插件 + interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); + // 阻断插件 + interceptor.addInnerInterceptor(blockAttackInnerInterceptor()); + return interceptor; } @@ -38,5 +43,33 @@ pageHelper.setProperties(p); return pageHelper; } + /** + * 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html + */ + public PaginationInnerInterceptor paginationInnerInterceptor() + { + PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); + // 设置数据库类型为mysql + paginationInnerInterceptor.setDbType(DbType.MYSQL); + // 设置最大单页限制数量,默认 500 条,-1 不受限制 + paginationInnerInterceptor.setMaxLimit(-1L); + return paginationInnerInterceptor; + } + + /** + * 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html + */ + public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() + { + return new OptimisticLockerInnerInterceptor(); + } + + /** + * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html + */ + public BlockAttackInnerInterceptor blockAttackInnerInterceptor() + { + return new BlockAttackInnerInterceptor(); + } } diff --git a/expert-framework/src/main/java/com/gkhy/framework/config/ResourcesConfig.java b/expert-framework/src/main/java/com/gkhy/framework/config/ResourcesConfig.java index 5de79e4..517ec28 100644 --- a/expert-framework/src/main/java/com/gkhy/framework/config/ResourcesConfig.java +++ b/expert-framework/src/main/java/com/gkhy/framework/config/ResourcesConfig.java @@ -11,7 +11,7 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import com.gkhy.common.config.expertConfig; +import com.gkhy.common.config.ExpertConfig; import com.gkhy.common.constant.Constants; import com.gkhy.framework.interceptor.RepeatSubmitInterceptor; @@ -31,7 +31,7 @@ { /** 本地文件上传路径 */ registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") - .addResourceLocations("file:" + expertConfig.getProfile() + "/"); + .addResourceLocations("file:" + ExpertConfig.getProfile() + "/"); /** swagger配置 */ registry.addResourceHandler("/swagger-ui/**") diff --git a/expert-framework/src/main/java/com/gkhy/framework/config/SecurityConfig.java b/expert-framework/src/main/java/com/gkhy/framework/config/SecurityConfig.java index df59735..61e45bb 100644 --- a/expert-framework/src/main/java/com/gkhy/framework/config/SecurityConfig.java +++ b/expert-framework/src/main/java/com/gkhy/framework/config/SecurityConfig.java @@ -111,10 +111,10 @@ .authorizeHttpRequests((requests) -> { permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/login", "/register", "/captchaImage").permitAll() + requests.antMatchers("/login", "/register", "/captchaImage","/system/expert_info/**").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() - .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() + .antMatchers("/doc.html","/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) diff --git a/expert-generator/src/main/resources/vm/java/domain.java.vm b/expert-generator/src/main/resources/vm/java/domain.java.vm index 84e0fbc..437ad37 100644 --- a/expert-generator/src/main/resources/vm/java/domain.java.vm +++ b/expert-generator/src/main/resources/vm/java/domain.java.vm @@ -3,103 +3,106 @@ #foreach ($import in $importList) import ${import}; #end +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.gkhy.common.annotation.Excel; +import com.rchuing.sis.common.annotation.Excel; #if($table.crud || $table.sub) -import com.gkhy.common.core.domain.BaseEntity; +import com.rchuing.sis.common.core.domain.BaseEntity; #elseif($table.tree) -import com.gkhy.common.core.domain.TreeEntity; +import com.fenghuang.common.core.domain.TreeEntity; #end /** * ${functionName}对象 ${tableName} - * + * * @author ${author} * @date ${datetime} */ -#if($table.crud || $table.sub) -#set($Entity="BaseEntity") -#elseif($table.tree) -#set($Entity="TreeEntity") -#end -public class ${ClassName} extends ${Entity} -{ - private static final long serialVersionUID = 1L; + #if($table.crud || $table.sub) + #set($Entity="BaseEntity") + #elseif($table.tree) + #set($Entity="TreeEntity") + #end + @TableName(resultMap = "${packageName}.mapper.${ClassName}Mapper.${ClassName}Result") + public class ${ClassName} extends ${Entity} + { + private static final long serialVersionUID = 1L; -#foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) - /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end - private $column.javaType $column.javaField; + #foreach ($column in $columns) + #if(!$table.isSuperColumn($column.javaField)) + /** $column.columnComment */ + #if($column.list) + #set($parentheseIndex=$column.columnComment.indexOf("(")) + #if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) + #else + #set($comment=$column.columnComment) + #end + #if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + #elseif($column.javaType == 'Date') + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") + #else + @Excel(name = "${comment}") + #end + #end + #if($column.isPk == 1) + @TableId(value = "$column.columnName", type = IdType.AUTO) + #end + private $column.javaType $column.javaField; -#end -#end -#if($table.sub) - /** $table.subTable.functionName信息 */ - private List<${subClassName}> ${subclassName}List; + #end + #end + #if($table.sub) + /** $table.subTable.functionName信息 */ + private List<${subClassName}> ${subclassName}List; -#end -#foreach ($column in $columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } + #end + #foreach ($column in $columns) + #if(!$table.isSuperColumn($column.javaField)) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + public void set${AttrName}($column.javaType $column.javaField) { + this.$column.javaField = $column.javaField; + } - public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end -#end + public $column.javaType get${AttrName}() { + return $column.javaField; + } + #end + #end -#if($table.sub) - public List<${subClassName}> get${subClassName}List() - { - return ${subclassName}List; - } + #if($table.sub) + public List<${subClassName}> get${subClassName}List() { + return ${subclassName}List; + } - public void set${subClassName}List(List<${subClassName}> ${subclassName}List) - { - this.${subclassName}List = ${subclassName}List; - } + public void set${subClassName}List(List<${subClassName}> ${subclassName}List) { + this.${subclassName}List = ${subclassName}List; + } -#end - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end -#if($table.sub) - .append("${subclassName}List", get${subClassName}List()) -#end - .toString(); - } -} + #end + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + #foreach ($column in $columns) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + .append("${column.javaField}", get${AttrName}()) + #end + #if($table.sub) + .append("${subclassName}List", get${subClassName}List()) + #end + .toString(); + } + } \ No newline at end of file diff --git a/expert-generator/src/main/resources/vm/java/mapper.java.vm b/expert-generator/src/main/resources/vm/java/mapper.java.vm index 7e7d7c2..8790aba 100644 --- a/expert-generator/src/main/resources/vm/java/mapper.java.vm +++ b/expert-generator/src/main/resources/vm/java/mapper.java.vm @@ -8,15 +8,15 @@ /** * ${functionName}Mapper接口 - * + * * @author ${author} * @date ${datetime} */ -public interface ${ClassName}Mapper +public interface ${ClassName}Mapper { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @@ -24,7 +24,7 @@ /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ @@ -32,7 +32,7 @@ /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -40,7 +40,7 @@ /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -48,7 +48,7 @@ /** * 删除${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ @@ -56,36 +56,36 @@ /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); -#if($table.sub) + #if($table.sub) - /** - * 批量删除${subTable.functionName} - * - * @param ${pkColumn.javaField}s 需要删除的数据主键集合 - * @return 结果 - */ - public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - - /** - * 批量新增${subTable.functionName} - * - * @param ${subclassName}List ${subTable.functionName}列表 - * @return 结果 - */ - public int batch${subClassName}(List<${subClassName}> ${subclassName}List); - + /** + * 批量删除${subTable.functionName} + * + * @param ${pkColumn.javaField}s 需要删除的数据主键集合 + * @return 结果 + */ + public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); - /** - * 通过${functionName}主键删除${subTable.functionName}信息 - * - * @param ${pkColumn.javaField} ${functionName}ID - * @return 结果 - */ - public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); -#end + /** + * 批量新增${subTable.functionName} + * + * @param ${subclassName}List ${subTable.functionName}列表 + * @return 结果 + */ + public int batch${subClassName}(List<${subClassName}> ${subclassName}List); + + + /** + * 通过${functionName}主键删除${subTable.functionName}信息 + * + * @param ${pkColumn.javaField} ${functionName}ID + * @return 结果 + */ + public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); + #end } diff --git a/expert-generator/src/main/resources/vm/java/service.java.vm b/expert-generator/src/main/resources/vm/java/service.java.vm index 264882b..1388232 100644 --- a/expert-generator/src/main/resources/vm/java/service.java.vm +++ b/expert-generator/src/main/resources/vm/java/service.java.vm @@ -2,18 +2,18 @@ import java.util.List; import ${packageName}.domain.${ClassName}; +import com.baomidou.mybatisplus.extension.service.IService; /** * ${functionName}Service接口 - * + * * @author ${author} * @date ${datetime} */ -public interface I${ClassName}Service -{ +public interface I${ClassName}Service extends IService<${ClassName}> { /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @@ -21,7 +21,7 @@ /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName}集合 */ @@ -29,7 +29,7 @@ /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -37,7 +37,7 @@ /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ @@ -45,7 +45,7 @@ /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 * @return 结果 */ @@ -53,9 +53,9 @@ /** * 删除${functionName}信息 - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); -} +} \ No newline at end of file diff --git a/expert-generator/src/main/resources/vm/java/serviceImpl.java.vm b/expert-generator/src/main/resources/vm/java/serviceImpl.java.vm index ca20b6d..8f42917 100644 --- a/expert-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/expert-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -1,169 +1,162 @@ package ${packageName}.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.List; -#foreach ($column in $columns) -#if($column.javaField == 'createTime' || $column.javaField == 'updateTime') -import com.gkhy.common.utils.DateUtils; -#break -#end -#end + #foreach ($column in $columns) + #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') + import com.rchuing.common.utils.DateUtils; + #break + #end + #end import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -#if($table.sub) -import java.util.ArrayList; -import com.gkhy.common.utils.StringUtils; -import org.springframework.transaction.annotation.Transactional; -import ${packageName}.domain.${subClassName}; -#end + #if($table.sub) + import java.util.ArrayList; + import com.rchuing.common.utils.StringUtils; + import org.springframework.transaction.annotation.Transactional; + import ${packageName}.domain.${subClassName}; + #end import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; import ${packageName}.service.I${ClassName}Service; /** * ${functionName}Service业务层处理 - * + * * @author ${author} * @date ${datetime} */ @Service -public class ${ClassName}ServiceImpl implements I${ClassName}Service -{ +public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service { @Autowired private ${ClassName}Mapper ${className}Mapper; /** * 查询${functionName} - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return ${functionName} */ @Override - public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { + public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); } /** * 查询${functionName}列表 - * + * * @param ${className} ${functionName} * @return ${functionName} */ @Override - public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) - { + public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) { return ${className}Mapper.select${ClassName}List(${className}); } /** * 新增${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int insert${ClassName}(${ClassName} ${className}) - { -#foreach ($column in $columns) -#if($column.javaField == 'createTime') - ${className}.setCreateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - int rows = ${className}Mapper.insert${ClassName}(${className}); - insert${subClassName}(${className}); - return rows; -#else - return ${className}Mapper.insert${ClassName}(${className}); -#end + public int insert${ClassName}(${ClassName} ${className}) { + #foreach ($column in $columns) + #if($column.javaField == 'createTime') + ${className}.setCreateTime(DateUtils.getNowDate()); + #end + #end + #if($table.sub) + int rows = ${className}Mapper.insert${ClassName}(${className}); + insert${subClassName}(${className}); + return rows; + #else + return ${className}Mapper.insert${ClassName}(${className}); + #end } /** * 修改${functionName} - * + * * @param ${className} ${functionName} * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int update${ClassName}(${ClassName} ${className}) - { -#foreach ($column in $columns) -#if($column.javaField == 'updateTime') - ${className}.setUpdateTime(DateUtils.getNowDate()); -#end -#end -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); - insert${subClassName}(${className}); -#end + public int update${ClassName}(${ClassName} ${className}) { + #foreach ($column in $columns) + #if($column.javaField == 'updateTime') + ${className}.setUpdateTime(DateUtils.getNowDate()); + #end + #end + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}()); + insert${subClassName}(${className}); + #end return ${className}Mapper.update${ClassName}(${className}); } /** * 批量删除${functionName} - * + * * @param ${pkColumn.javaField}s 需要删除的${functionName}主键 * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); -#end + public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s) { + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s); + #end return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s); } /** * 删除${functionName}信息 - * + * * @param ${pkColumn.javaField} ${functionName}主键 * @return 结果 */ -#if($table.sub) - @Transactional -#end + #if($table.sub) + @Transactional + #end @Override - public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) - { -#if($table.sub) - ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); -#end + public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}) { + #if($table.sub) + ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField}); + #end return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}); } -#if($table.sub) + #if($table.sub) - /** - * 新增${subTable.functionName}信息 - * - * @param ${className} ${functionName}对象 - */ - public void insert${subClassName}(${ClassName} ${className}) - { - List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); - ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); - if (StringUtils.isNotNull(${subclassName}List)) - { - List<${subClassName}> list = new ArrayList<${subClassName}>(); - for (${subClassName} ${subclassName} : ${subclassName}List) + /** + * 新增${subTable.functionName}信息 + * + * @param ${className} ${functionName}对象 + */ + public void insert${subClassName}(${ClassName} ${className}) { + List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List(); + ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}(); + if (StringUtils.isNotNull(${subclassName}List)) { - ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); - list.add(${subclassName}); - } - if (list.size() > 0) - { - ${className}Mapper.batch${subClassName}(list); + List<${subClassName}> list = new ArrayList<${subClassName}>(); + for (${subClassName} ${subclassName} : ${subclassName}List) + { + ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField}); + list.add(${subclassName}); + } + if (list.size() > 0) + { + ${className}Mapper.batch${subClassName}(list); + } } } - } -#end -} + #end +} \ No newline at end of file diff --git a/expert-generator/src/main/resources/vm/java/sub-domain.java.vm b/expert-generator/src/main/resources/vm/java/sub-domain.java.vm index 5025dbb..e2d8e20 100644 --- a/expert-generator/src/main/resources/vm/java/sub-domain.java.vm +++ b/expert-generator/src/main/resources/vm/java/sub-domain.java.vm @@ -1,76 +1,73 @@ package ${packageName}.domain; -#foreach ($import in $subImportList) -import ${import}; -#end + #foreach ($import in $subImportList) + import ${import}; + #end import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.gkhy.common.annotation.Excel; -import com.gkhy.common.core.domain.BaseEntity; +import com.rchuing.common.annotation.Excel; +import com.rchuing.common.core.domain.BaseEntity; /** * ${subTable.functionName}对象 ${subTableName} - * + * * @author ${author} * @date ${datetime} */ -public class ${subClassName} extends BaseEntity -{ +public class ${subClassName} extends BaseEntity { private static final long serialVersionUID = 1L; -#foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) - /** $column.columnComment */ -#if($column.list) -#set($parentheseIndex=$column.columnComment.indexOf("(")) -#if($parentheseIndex != -1) -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) -#else -#set($comment=$column.columnComment) -#end -#if($parentheseIndex != -1) - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") -#elseif($column.javaType == 'Date') - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") -#else - @Excel(name = "${comment}") -#end -#end - private $column.javaType $column.javaField; + #foreach ($column in $subTable.columns) + #if(!$table.isSuperColumn($column.javaField)) + /** $column.columnComment */ + #if($column.list) + #set($parentheseIndex=$column.columnComment.indexOf("(")) + #if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) + #else + #set($comment=$column.columnComment) + #end + #if($parentheseIndex != -1) + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + #elseif($column.javaType == 'Date') + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") + #else + @Excel(name = "${comment}") + #end + #end + private $column.javaType $column.javaField; -#end -#end -#foreach ($column in $subTable.columns) -#if(!$table.isSuperColumn($column.javaField)) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - public void set${AttrName}($column.javaType $column.javaField) - { - this.$column.javaField = $column.javaField; - } + #end + #end + #foreach ($column in $subTable.columns) + #if(!$table.isSuperColumn($column.javaField)) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + public void set${AttrName}($column.javaType $column.javaField) { + this.$column.javaField = $column.javaField; + } - public $column.javaType get${AttrName}() - { - return $column.javaField; - } -#end -#end + public $column.javaType get${AttrName}() { + return $column.javaField; + } + #end + #end @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) -#foreach ($column in $subTable.columns) -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) -#set($AttrName=$column.javaField) -#else -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -#end - .append("${column.javaField}", get${AttrName}()) -#end - .toString(); + #foreach ($column in $subTable.columns) + #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) + #set($AttrName=$column.javaField) + #else + #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + #end + .append("${column.javaField}", get${AttrName}()) + #end + .toString(); } -} +} \ No newline at end of file diff --git a/expert-system/pom.xml b/expert-system/pom.xml index c1e747f..8ddf9ab 100644 --- a/expert-system/pom.xml +++ b/expert-system/pom.xml @@ -22,6 +22,11 @@ <groupId>com.gkhy</groupId> <artifactId>expert-common</artifactId> </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <scope>provided</scope> + </dependency> </dependencies> diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ApplyRecord.java b/expert-system/src/main/java/com/gkhy/system/domain/ApplyRecord.java index a3eca11..43b287b 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/ApplyRecord.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/ApplyRecord.java @@ -1,14 +1,18 @@ package com.gkhy.system.domain; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gkhy.common.annotation.Excel; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import java.util.Date; + /** * 开启申请记录对象 apply_record @@ -16,50 +20,60 @@ * @author expert * @date 2024-11-13 */ - @TableName(resultMap = "com.gkhy.system.mapper.ApplyRecordMapper.ApplyRecordResult") - public class ApplyRecord extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.ApplyRecordMapper.ApplyRecordResult") +@ApiModel(value = "系统配置记录", description = "专家申请系统记录") +public class ApplyRecord extends BaseEntity { + private static final long serialVersionUID = 1L; - /** $column.columnComment */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * $column.columnComment + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 开始时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date startTime; + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty("开始时间") + private Date startTime; - /** 结束时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date endTime; + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + @ApiModelProperty("结束时间") + private Date endTime; - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public Long getId() { - return id; - } - public void setStartTime(Date startTime) { - this.startTime = startTime; - } + public Long getId() { + return id; + } - public Date getStartTime() { - return startTime; - } - public void setEndTime(Date endTime) { - this.endTime = endTime; - } + public void setStartTime(Date startTime) { + this.startTime = startTime; + } - public Date getEndTime() { - return endTime; - } + public Date getStartTime() { + return startTime; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getEndTime() { + return endTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("startTime", getStartTime()) .append("endTime", getEndTime()) @@ -67,6 +81,6 @@ .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/Evaluation.java b/expert-system/src/main/java/com/gkhy/system/domain/Evaluation.java index 91b6bef..49448a9 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/Evaluation.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/Evaluation.java @@ -3,10 +3,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.gkhy.common.annotation.Excel; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * 考评管理对象 evaluation @@ -14,80 +20,103 @@ * @author expert * @date 2024-11-13 */ - @TableName(resultMap = "com.gkhy.system.mapper.EvaluationMapper.EvaluationResult") - public class Evaluation extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.EvaluationMapper.EvaluationResult") +@ApiModel(value = "考评管理对象", description = "考评管理表") +public class Evaluation extends BaseEntity { + private static final long serialVersionUID = 1L; - /** $column.columnComment */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * $column.columnComment + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 分值 */ - @Excel(name = "分值") - private Long score; + /** + * 分值 + */ + @Excel(name = "分值") + @NotNull(message ="分值不能为空" ) + @ApiModelProperty(value = "分值",required = true) + private Long score; - /** 内容 */ - @Excel(name = "内容") - private String content; + /** + * 内容 + */ + @Excel(name = "内容") + @NotBlank(message ="内容不能为空" ) + @ApiModelProperty(value = "内容",required = true) + private String content; - /** 类型1加分项2扣分项 */ - @Excel(name = "类型1加分项2扣分项") - private String scoreType; + /** + * 类型1加分项2扣分项 + */ + @Excel(name = "类型1加分项2扣分项") + @NotBlank(message ="类型不能为空" ) + @ApiModelProperty(value = "类型1加分项2扣分项",required = true) + private String scoreType; - /** 删除标志(0代表存在,1代表删除,默认0) */ - private Long delFlag; + /** + * 删除标志(0代表存在,1代表删除,默认0) + */ + private Long delFlag; - /** 乐观锁 */ - @Excel(name = "乐观锁") - private Long version; + /** + * 乐观锁 + */ + @Excel(name = "乐观锁") + private Long version; - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public Long getId() { - return id; - } - public void setScore(Long score) { - this.score = score; - } + public Long getId() { + return id; + } - public Long getScore() { - return score; - } - public void setContent(String content) { - this.content = content; - } + public void setScore(Long score) { + this.score = score; + } - public String getContent() { - return content; - } - public void setScoreType(String scoreType) { - this.scoreType = scoreType; - } + public Long getScore() { + return score; + } - public String getScoreType() { - return scoreType; - } - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } + public void setContent(String content) { + this.content = content; + } - public Long getDelFlag() { - return delFlag; - } - public void setVersion(Long version) { - this.version = version; - } + public String getContent() { + return content; + } - public Long getVersion() { - return version; - } + public void setScoreType(String scoreType) { + this.scoreType = scoreType; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public String getScoreType() { + return scoreType; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + public void setVersion(Long version) { + this.version = version; + } + + public Long getVersion() { + return version; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("score", getScore()) .append("content", getContent()) @@ -98,6 +127,6 @@ .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java index 4d4364c..5fcb183 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpert.java @@ -3,10 +3,14 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotNull; + /** * 项目专家关联对象 project_expert @@ -14,107 +18,134 @@ * @author expert * @date 2024-11-14 */ - @TableName(resultMap = "com.gkhy.system.mapper.ProjectExpertMapper.ProjectExpertResult") - public class ProjectExpert extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.ProjectExpertMapper.ProjectExpertResult") +@ApiModel(value = "项目专家关联对象", description = "项目专家关联对象表") +public class ProjectExpert extends BaseEntity { + private static final long serialVersionUID = 1L; - /** $column.columnComment */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * $column.columnComment + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 项目id */ - @Excel(name = "项目id") - private Long projectId; + /** + * 项目id + */ + @ApiModelProperty(name = "项目名称",required = true) + @NotNull(message = "项目不能为空") + private Long projectId; - /** 专家id */ - @Excel(name = "专家id") - private Long expertId; + /** + * 专家id + */ + @ApiModelProperty(name = "专家id",required = true) + @NotNull(message = "选择专家") + private Long expertId; - /** 总分 */ - @Excel(name = "总分") - private Long score; + /** + * 总分 + */ + @ApiModelProperty(name = "总分") + private Long score; - /** 评估状态0未评估1已评估 */ - @Excel(name = "评估状态0未评估1已评估") - private Long envaluationState; + /** + * 评估状态0未评估1已评估 + */ + @ApiModelProperty(name = "评估状态0未评估1已评估") + private Long evaluationState; - /** 选取方式1固定2随机 */ - @Excel(name = "选取方式1固定2随机") - private Long selectionMode; + /** + * 选取方式1固定2随机 + */ + @ApiModelProperty(name = "选取方式1固定2随机",required = true) + @NotNull(message = "选取方式不能为空") + private Long selectionMode; - /** 是否组长0否1是 */ - @Excel(name = "是否组长0否1是") - private Long teamLeader; + /** + * 是否组长0否1是 + */ + @ApiModelProperty(name = "是否组长0否1是",required = true) + @NotNull(message = "是否组长不能为空") + private Long teamLeader; - /** 删除标志(0代表存在,1代表删除,默认0) */ - private Long delFlag; + /** + * 删除标志(0代表存在,1代表删除,默认0) + */ + private Long delFlag; - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public Long getId() { - return id; - } - public void setProjectId(Long projectId) { - this.projectId = projectId; - } + public Long getId() { + return id; + } - public Long getProjectId() { - return projectId; - } - public void setExpertId(Long expertId) { - this.expertId = expertId; - } + public void setProjectId(Long projectId) { + this.projectId = projectId; + } - public Long getExpertId() { - return expertId; - } - public void setScore(Long score) { - this.score = score; - } + public Long getProjectId() { + return projectId; + } - public Long getScore() { - return score; - } - public void setEnvaluationState(Long envaluationState) { - this.envaluationState = envaluationState; - } + public void setExpertId(Long expertId) { + this.expertId = expertId; + } - public Long getEnvaluationState() { - return envaluationState; - } - public void setSelectionMode(Long selectionMode) { - this.selectionMode = selectionMode; - } + public Long getExpertId() { + return expertId; + } - public Long getSelectionMode() { - return selectionMode; - } - public void setTeamLeader(Long teamLeader) { - this.teamLeader = teamLeader; - } + public void setScore(Long score) { + this.score = score; + } - public Long getTeamLeader() { - return teamLeader; - } - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } + public Long getScore() { + return score; + } - public Long getDelFlag() { - return delFlag; - } + public void setevaluationState(Long evaluationState) { + this.evaluationState = evaluationState; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public Long getevaluationState() { + return evaluationState; + } + + public void setSelectionMode(Long selectionMode) { + this.selectionMode = selectionMode; + } + + public Long getSelectionMode() { + return selectionMode; + } + + public void setTeamLeader(Long teamLeader) { + this.teamLeader = teamLeader; + } + + public Long getTeamLeader() { + return teamLeader; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("projectId", getProjectId()) .append("expertId", getExpertId()) .append("score", getScore()) - .append("envaluationState", getEnvaluationState()) + .append("evaluationState", getevaluationState()) .append("selectionMode", getSelectionMode()) .append("teamLeader", getTeamLeader()) .append("delFlag", getDelFlag()) @@ -122,6 +153,6 @@ .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpertDetail.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpertDetail.java index 97d99e2..a27a06d 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpertDetail.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectExpertDetail.java @@ -3,10 +3,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.gkhy.common.annotation.Excel; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * 项目专家得分明细对象 project_expert_detail @@ -14,71 +20,94 @@ * @author expert * @date 2024-11-14 */ - @TableName(resultMap = "com.gkhy.system.mapper.ProjectExpertDetailMapper.ProjectExpertDetailResult") - public class ProjectExpertDetail extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.ProjectExpertDetailMapper.ProjectExpertDetailResult") +@ApiModel(value = "项目专家得分明细对象", description = "项目专家得分明细对象表") +public class ProjectExpertDetail extends BaseEntity { + private static final long serialVersionUID = 1L; - /** $column.columnComment */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * $column.columnComment + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 项目专家表id */ - @Excel(name = "项目专家表id") - private Long projectExpert; + /** + * 项目专家表id + */ + @Excel(name = "项目专家表id") + @ApiModelProperty(value = "项目专家表id",required = true) + @NotNull(message = "参数不能为空") + private Long projectExpertId; - /** 内容 */ - @Excel(name = "内容") - private String content; + /** + * 内容 + */ + @Excel(name = "内容") + @NotBlank(message = "内容不能为空") + @ApiModelProperty(value = "内容",required = true) + private String content; - /** 分值 */ - @Excel(name = "分值") - private Long score; + /** + * 分值 + */ + @ApiModelProperty(value = "分值") + @NotNull(message = "分值不能为空") + private Long score; - /** 删除标志(0代表存在,1代表删除,默认0) */ - private Long delFlag; + @NotBlank(message = "评分类型不能为空") + @ApiModelProperty(value = "类型1加分项2扣分项",required = true) + private String scoreType; - public void setId(Long id) { - this.id = id; - } + /** + * 删除标志(0代表存在,1代表删除,默认0) + */ + private Long delFlag; - public Long getId() { - return id; - } - public void setProjectExpert(Long projectExpert) { - this.projectExpert = projectExpert; - } + public void setId(Long id) { + this.id = id; + } - public Long getProjectExpert() { - return projectExpert; - } - public void setContent(String content) { - this.content = content; - } + public Long getId() { + return id; + } - public String getContent() { - return content; - } - public void setScore(Long score) { - this.score = score; - } + public void setProjectExpertId(Long projectExpertId) { + this.projectExpertId = projectExpertId; + } - public Long getScore() { - return score; - } - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } + public Long getProjectExpertId() { + return projectExpertId; + } - public Long getDelFlag() { - return delFlag; - } + public void setContent(String content) { + this.content = content; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public String getContent() { + return content; + } + + public void setScore(Long score) { + this.score = score; + } + + public Long getScore() { + return score; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) - .append("projectExpert", getProjectExpert()) + .append("projectExpert", getProjectExpertId()) .append("content", getContent()) .append("score", getScore()) .append("delFlag", getDelFlag()) @@ -86,6 +115,14 @@ .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } + + public String getScoreType() { + return scoreType; + } + + public void setScoreType( String scoreType) { + this.scoreType = scoreType; + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectFile.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectFile.java index 6e7bbf4..29a626d 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectFile.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectFile.java @@ -3,10 +3,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.gkhy.common.annotation.Excel; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * 项目附件对象 project_file @@ -14,135 +20,171 @@ * @author expert * @date 2024-11-14 */ - @TableName(resultMap = "com.gkhy.system.mapper.ProjectFileMapper.ProjectFileResult") - public class ProjectFile extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.ProjectFileMapper.ProjectFileResult") +@ApiModel(value = "项目附件对象", description = "项目附件对象表") +public class ProjectFile extends BaseEntity { + private static final long serialVersionUID = 1L; - /** $column.columnComment */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * $column.columnComment + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 项目id */ - @Excel(name = "项目id") - private Long projectId; + /** + * 项目id + */ + @ApiModelProperty(value = "项目id",required = true) + @NotNull(message = "参数不能为空") + private Long projectId; - /** 项目附件类型1审批单附件2项目附件 */ - @Excel(name = "项目附件类型1审批单附件2项目附件") - private String module; + /** + * 项目附件类型1审批单附件2项目附件 + */ + @ApiModelProperty(value = "项目附件类型1审批单附件2项目附件") + @NotBlank(message = "项目附件类型不能为空") + private String module; - /** 本地路径 */ - @Excel(name = "本地路径") - private String filePath; + /** + * 本地路径 + */ + @Excel(name = "本地路径") + @ApiModelProperty(value = "本地路径") + private String filePath; - /** 访问路径 */ - @Excel(name = "访问路径") - private String fileUrl; + /** + * 访问路径 + */ + @Excel(name = "访问路径") + @ApiModelProperty(value = "访问路径") + private String fileUrl; - /** 附件名称 */ - @Excel(name = "附件名称") - private String fileName; + /** + * 附件名称 + */ + @ApiModelProperty(value = "附件名称") + private String fileName; - /** 后缀 */ - @Excel(name = "后缀") - private String fileSuffix; + /** + * 后缀 + */ + @ApiModelProperty(value = "后缀") + private String fileSuffix; - /** 附件描述 */ - @Excel(name = "附件描述") - private String fileDesc; + /** + * 附件描述 + */ + @ApiModelProperty(value = "附件描述") + private String fileDesc; - /** 文件大小 */ - @Excel(name = "文件大小") - private Long fileSize; + /** + * 文件大小 + */ + @ApiModelProperty(value = "文件大小") + private Long fileSize; - /** 文件类型 */ - @Excel(name = "文件类型") - private String fileType; + /** + * 文件类型 + */ + @ApiModelProperty(value = "文件类型") + private String fileType; - /** 删除标志(0代表存在,1代表删除,默认0) */ - private Long delFlag; + /** + * 删除标志(0代表存在,1代表删除,默认0) + */ + private Long delFlag; - public void setId(Long id) { - this.id = id; - } + public void setId(Long id) { + this.id = id; + } - public Long getId() { - return id; - } - public void setProjectId(Long projectId) { - this.projectId = projectId; - } + public Long getId() { + return id; + } - public Long getProjectId() { - return projectId; - } - public void setModule(String module) { - this.module = module; - } + public void setProjectId(Long projectId) { + this.projectId = projectId; + } - public String getModule() { - return module; - } - public void setFilePath(String filePath) { - this.filePath = filePath; - } + public Long getProjectId() { + return projectId; + } - public String getFilePath() { - return filePath; - } - public void setFileUrl(String fileUrl) { - this.fileUrl = fileUrl; - } + public void setModule(String module) { + this.module = module; + } - public String getFileUrl() { - return fileUrl; - } - public void setFileName(String fileName) { - this.fileName = fileName; - } + public String getModule() { + return module; + } - public String getFileName() { - return fileName; - } - public void setFileSuffix(String fileSuffix) { - this.fileSuffix = fileSuffix; - } + public void setFilePath(String filePath) { + this.filePath = filePath; + } - public String getFileSuffix() { - return fileSuffix; - } - public void setFileDesc(String fileDesc) { - this.fileDesc = fileDesc; - } + public String getFilePath() { + return filePath; + } - public String getFileDesc() { - return fileDesc; - } - public void setFileSize(Long fileSize) { - this.fileSize = fileSize; - } + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } - public Long getFileSize() { - return fileSize; - } - public void setFileType(String fileType) { - this.fileType = fileType; - } + public String getFileUrl() { + return fileUrl; + } - public String getFileType() { - return fileType; - } - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } + public void setFileName(String fileName) { + this.fileName = fileName; + } - public Long getDelFlag() { - return delFlag; - } + public String getFileName() { + return fileName; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public void setFileSuffix(String fileSuffix) { + this.fileSuffix = fileSuffix; + } + + public String getFileSuffix() { + return fileSuffix; + } + + public void setFileDesc(String fileDesc) { + this.fileDesc = fileDesc; + } + + public String getFileDesc() { + return fileDesc; + } + + public void setFileSize(Long fileSize) { + this.fileSize = fileSize; + } + + public Long getFileSize() { + return fileSize; + } + + public void setFileType(String fileType) { + this.fileType = fileType; + } + + public String getFileType() { + return fileType; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("projectId", getProjectId()) .append("module", getModule()) @@ -158,6 +200,6 @@ .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java b/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java index a1c68c9..473232d 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/ProjectManagement.java @@ -1,14 +1,19 @@ package com.gkhy.system.domain; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.Date; + /** * 项目管理对象 project_management @@ -16,181 +21,244 @@ * @author expert * @date 2024-11-14 */ - @TableName(resultMap = "com.gkhy.system.mapper.ProjectManagementMapper.ProjectManagementResult") - public class ProjectManagement extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.ProjectManagementMapper.ProjectManagementResult") +@ApiModel(value = "项目管理对象", description = "项目管理对象表") +public class ProjectManagement extends BaseEntity { + private static final long serialVersionUID = 1L; - /** 主键 */ - @TableId(value = "id", type = IdType.AUTO) - private Long id; + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; - /** 项目名称 */ - @Excel(name = "项目名称") - private String projectName; + /** + * 项目名称 + */ + @ApiModelProperty(value = "项目名称",required = true) + @NotBlank(message = "项目名称不能为空") + private String projectName; - /** 处室 */ - @Excel(name = "处室") - private Long deptId; + /** + * 处室 + */ + @ApiModelProperty(value = "处室",required = true) + @NotNull(message = "处室不能为空") + private Long deptId; - /** 部门名称 */ - @Excel(name = "部门名称") - private String deptName; + /** + * 部门名称 + */ + @ApiModelProperty(value = "处室名称",required = true) + @NotBlank(message = "处室不能为空") + private String deptName; - /** 被检单位 */ - @Excel(name = "被检单位") - private String companyName; + /** + * 被检单位 + */ + @ApiModelProperty(value = "被检单位") + private String companyName; - /** 项目地址 */ - @Excel(name = "项目地址") - private String projectAddress; + /** + * 项目地址 + */ + @ApiModelProperty(value = "项目地址",required = true) + @NotBlank(message = "项目地址不能为空") + private String projectAddress; - /** 部门带队人员 */ - @Excel(name = "部门带队人员") - private String deptUserName; + /** + * 部门带队人员 + */ + @ApiModelProperty(value = "部门带队人员",required = true) + @NotBlank(message = "处室带队人员不能为空") + private String deptUserName; - /** 乐观锁 */ - @Excel(name = "乐观锁") - private Long version; + /** + * 乐观锁 + */ + @ApiModelProperty(value = "乐观锁") + private Long version; - /** 审批状态(0暂存,1生成审批单,2审批通过,3审批驳回,4完结) */ - @Excel(name = "审批状态(0暂存,1生成审批单,2审批通过,3审批驳回,4完结)") - private Long state; + /** + * 审批状态(0暂存,1生成审批单,2审批通过,3审批驳回,4完结) + */ + @ApiModelProperty(value = "审批状态(0暂存,1选取专家,2生成审批单,3审批通过,4完结)") + private Long state; - /** 项目预计开始日期 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "项目预计开始日期", width = 30, dateFormat = "yyyy-MM-dd") - private Date projectDateStart; + @ApiModelProperty(value = "步骤1暂存2专家选取3审批4完结") + private Long step; - /** 项目预计结束日期 */ - @JsonFormat(pattern = "yyyy-MM-dd") - @Excel(name = "项目预计结束日期", width = 30, dateFormat = "yyyy-MM-dd") - private Date projectDateEnd; + /** + * 项目预计开始日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "项目预计开始日期",required = true) + @NotNull(message = "项目预计开始日期不能为空") + private Date projectDateStart; - /** 专家证书 */ - @Excel(name = "专家证书") - private String expertCertificate; + /** + * 项目预计结束日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "项目预计结束日期", required = true) + @NotNull(message = "项目预计结束日期不能为空") + private Date projectDateEnd; - /** 评估状态0未评估1已评估 */ - @Excel(name = "评估状态0未评估1已评估") - private Long envaluationState; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "项目审批时间") + private Date projectCheckTime; - /** 专家人数 */ - @Excel(name = "专家人数") - private Long expertNum; + /** + * 专家证书 + */ + @ApiModelProperty(value = "专家证书") + private String expertCertificate; - /** 删除标志(0代表存在,1代表删除,默认0) */ - private Long delFlag; + /** + * 评估状态0未评估1已评估 + */ + @ApiModelProperty(value = "评估状态0未评估1已评估") + private Long evaluationState; - public void setId(Long id) { - this.id = id; - } + /** + * 专家人数 + */ + @ApiModelProperty(value = "专家人数") + private Long expertNum; - public Long getId() { - return id; - } - public void setProjectName(String projectName) { - this.projectName = projectName; - } + @ApiModelProperty(value = "专家id") + private Long expertId; - public String getProjectName() { - return projectName; - } - public void setDeptId(Long deptId) { - this.deptId = deptId; - } + @ApiModelProperty(value = "专家名称组长") + private String expertName; - public Long getDeptId() { - return deptId; - } - public void setDeptName(String deptName) { - this.deptName = deptName; - } + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "项目结束日期") + private Date projectEndTime; - public String getDeptName() { - return deptName; - } - public void setCompanyName(String companyName) { - this.companyName = companyName; - } + @ApiModelProperty(value = "项目总结") + private String desc; - public String getCompanyName() { - return companyName; - } - public void setProjectAddress(String projectAddress) { - this.projectAddress = projectAddress; - } + /** + * 删除标志(0代表存在,1代表删除,默认0) + */ + private Long delFlag; - public String getProjectAddress() { - return projectAddress; - } - public void setDeptUserName(String deptUserName) { - this.deptUserName = deptUserName; - } + public void setId(Long id) { + this.id = id; + } - public String getDeptUserName() { - return deptUserName; - } - public void setVersion(Long version) { - this.version = version; - } + public Long getId() { + return id; + } - public Long getVersion() { - return version; - } - public void setState(Long state) { - this.state = state; - } + public void setProjectName(String projectName) { + this.projectName = projectName; + } - public Long getState() { - return state; - } - public void setProjectDateStart(Date projectDateStart) { - this.projectDateStart = projectDateStart; - } + public String getProjectName() { + return projectName; + } - public Date getProjectDateStart() { - return projectDateStart; - } - public void setProjectDateEnd(Date projectDateEnd) { - this.projectDateEnd = projectDateEnd; - } + public void setDeptId(Long deptId) { + this.deptId = deptId; + } - public Date getProjectDateEnd() { - return projectDateEnd; - } - public void setExpertCertificate(String expertCertificate) { - this.expertCertificate = expertCertificate; - } + public Long getDeptId() { + return deptId; + } - public String getExpertCertificate() { - return expertCertificate; - } - public void setEnvaluationState(Long envaluationState) { - this.envaluationState = envaluationState; - } + public void setDeptName(String deptName) { + this.deptName = deptName; + } - public Long getEnvaluationState() { - return envaluationState; - } - public void setExpertNum(Long expertNum) { - this.expertNum = expertNum; - } + public String getDeptName() { + return deptName; + } - public Long getExpertNum() { - return expertNum; - } - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } + public void setCompanyName(String companyName) { + this.companyName = companyName; + } - public Long getDelFlag() { - return delFlag; - } + public String getCompanyName() { + return companyName; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + public void setProjectAddress(String projectAddress) { + this.projectAddress = projectAddress; + } + + public String getProjectAddress() { + return projectAddress; + } + + public void setDeptUserName(String deptUserName) { + this.deptUserName = deptUserName; + } + + public String getDeptUserName() { + return deptUserName; + } + + public void setVersion(Long version) { + this.version = version; + } + + public Long getVersion() { + return version; + } + + public void setState(Long state) { + this.state = state; + } + + public Long getState() { + return state; + } + + public void setProjectDateStart(Date projectDateStart) { + this.projectDateStart = projectDateStart; + } + + public Date getProjectDateStart() { + return projectDateStart; + } + + public void setProjectDateEnd(Date projectDateEnd) { + this.projectDateEnd = projectDateEnd; + } + + public Date getProjectDateEnd() { + return projectDateEnd; + } + + public void setExpertCertificate(String expertCertificate) { + this.expertCertificate = expertCertificate; + } + + public String getExpertCertificate() { + return expertCertificate; + } + + public void setExpertNum(Long expertNum) { + this.expertNum = expertNum; + } + + public Long getExpertNum() { + return expertNum; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("projectName", getProjectName()) .append("deptId", getDeptId()) @@ -204,13 +272,70 @@ .append("projectDateStart", getProjectDateStart()) .append("projectDateEnd", getProjectDateEnd()) .append("expertCertificate", getExpertCertificate()) - .append("envaluationState", getEnvaluationState()) + .append("evaluationState", getEvaluationState()) .append("expertNum", getExpertNum()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) - .toString(); - } - } \ No newline at end of file + .toString(); + } + + public Date getProjectCheckTime() { + return projectCheckTime; + } + + public void setProjectCheckTime(Date projectCheckTime) { + this.projectCheckTime = projectCheckTime; + } + + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public Long getExpertId() { + return expertId; + } + + public void setExpertId(Long expertId) { + this.expertId = expertId; + } + + public String getExpertName() { + return expertName; + } + + public void setExpertName(String expertName) { + this.expertName = expertName; + } + + public Date getProjectEndTime() { + return projectEndTime; + } + + public void setProjectEndTime(Date projectEndTime) { + this.projectEndTime = projectEndTime; + } + + public Long getStep() { + return step; + } + + public void setStep(Long step) { + this.step = step; + } + + public Long getEvaluationState() { + return evaluationState; + } + + public void setEvaluationState(Long evaluationState) { + this.evaluationState = evaluationState; + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java index 532710d..dec36d2 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java @@ -1,19 +1,15 @@ -package com.gkhy.assess.system.domain; +package com.gkhy.system.domain; 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; +import com.gkhy.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.NotBlank; +import java.util.List; import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; diff --git a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java index 2d201cc..c83affc 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertInfo.java @@ -1,12 +1,9 @@ -package com.gkhy.assess.system.domain; +package com.gkhy.system.domain; import com.baomidou.mybatisplus.annotation.*; - -import java.io.Serializable; -import java.time.LocalDateTime; - +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gkhy.assess.common.domain.BaseEntity; +import com.gkhy.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -17,6 +14,7 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import java.util.Date; import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; @@ -66,7 +64,8 @@ @NotNull(message ="出生日期不能为空" ) @ApiModelProperty("出生日期") @TableField("birthday") - private LocalDateTime birthday; + @JsonFormat(pattern = "yyyy-MM-dd") + private Date birthday; @NotBlank(message ="手机号不能为空" ) @Length(min = 11, max = 11, message = "手机号只能为11位") @@ -208,6 +207,25 @@ @TableField("level") private String level; + @ApiModelProperty("评定等级1、一级,2、二级,3、三级") + @TableField("rating_level") + private String ratingLevel; + @JsonFormat(pattern = "yyyy-MM-dd") + @TableField("employment_date_start") + private Date employmentDateStart; + + @JsonFormat(pattern = "yyyy-MM-dd") + @TableField("employment_date_end") + private Date employmentDateEnd; + + @NotNull(message ="业务处室不能为空" ) + @ApiModelProperty("业务处室") + @TableField("dept_id") + private Long deptId; + + @ApiModelProperty("专家证书") + @TableField("expert_certificate") + private String expertCertificate; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/SysSettings.java b/expert-system/src/main/java/com/gkhy/system/domain/SysSettings.java index 92bd6e4..93a4daf 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/SysSettings.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/SysSettings.java @@ -1,12 +1,15 @@ package com.gkhy.system.domain; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.gkhy.common.annotation.Excel; +import com.gkhy.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.rchuing.sis.common.annotation.Excel; -import com.rchuing.sis.common.core.domain.BaseEntity; + +import javax.validation.constraints.NotBlank; + /** * 系统配置对象 sys_settings @@ -14,27 +17,31 @@ * @author expert * @date 2024-11-13 */ - @TableName(resultMap = "com.gkhy.system.mapper.SysSettingsMapper.SysSettingsResult") - public class SysSettings extends BaseEntity - { - private static final long serialVersionUID = 1L; +@TableName(resultMap = "com.gkhy.system.mapper.SysSettingsMapper.SysSettingsResult") +@ApiModel(value = "系统配置对象", description = "专家申请系统设置") +public class SysSettings extends BaseEntity { + private static final long serialVersionUID = 1L; - /** 1开启2关闭 */ - @Excel(name = "1开启2关闭") - private String state; + /** + * 1开启2关闭 + */ + @Excel(name = "1开启2关闭") + @NotBlank(message = "参数不能为空") + @ApiModelProperty("1开启2关闭") + private String state; - public void setState(String state) { - this.state = state; - } + public void setState(String state) { + this.state = state; + } - public String getState() { - return state; - } + public String getState() { + return state; + } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("state", getState()) - .toString(); - } - } \ No newline at end of file + .toString(); + } +} \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectArchiveReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectArchiveReq.java index 61f481f..8ad5648 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectArchiveReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectArchiveReq.java @@ -1,4 +1,36 @@ package com.gkhy.system.domain.vo.request; -public class ProjectArchiveReq { +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gkhy.system.domain.ProjectFile; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@ApiModel(value = "项目归档" , description = "项目归档") +@Data +public class ProjectArchiveReq implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @ApiModelProperty(value = "项目id",required = true) + @NotNull + private Long id; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(name = "项目结束日期",required = true) + @NotNull(message = "结束日期必填") + private Date projectEndTime; + + @ApiModelProperty(name = "项目总结") + private String desc; + + @ApiModelProperty(name = "项目附件") + private List<ProjectFile> projectFile; + } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectCheckReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectCheckReq.java index cf8e40e..0fa6108 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectCheckReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectCheckReq.java @@ -1,4 +1,27 @@ package com.gkhy.system.domain.vo.request; -public class ProjectCheckReq { +import com.gkhy.system.domain.ProjectFile; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@ApiModel(value = "项目审批" , description = "项目审批") +@Data +public class ProjectCheckReq implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(name = "审批状态(3审批通过、1审批不通)",required = true) + @NotNull(message = "参数不能为空") + private Long state; + + @ApiModelProperty(value = "项目id",required = true) + @NotNull + private Long id; + + @ApiModelProperty(name = "项目附件-类型1审批单附件") + private List<ProjectFile> projectFile; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveBatchReqDto.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveBatchReqDto.java index 806236e..f3c336f 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveBatchReqDto.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveBatchReqDto.java @@ -1,4 +1,30 @@ package com.gkhy.system.domain.vo.request; -public class ProjectExpertSaveBatchReqDto { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@ApiModel(value = "项目专家关联对象批量处理", description = "项目专家关联对象批量处理") +@Data +public class ProjectExpertSaveBatchReqDto implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "删除数据") + private List<Long> delData; + + @ApiModelProperty(value = "新增编辑数据") + @NotEmpty + private List<ProjectExpertSaveReqDto> saveData; + /** + * 项目id + */ + @ApiModelProperty(name = "项目id",required = true) + @NotNull(message = "项目不能为空") + private Long id; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveReqDto.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveReqDto.java index 4a18db1..ac9fb77 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveReqDto.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertSaveReqDto.java @@ -1,16 +1,12 @@ -package com.gkhy.system.domain; +package com.gkhy.system.domain.vo.request; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.gkhy.common.annotation.Excel; -import com.gkhy.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; +import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import java.io.Serializable; /** @@ -19,141 +15,47 @@ * @author expert * @date 2024-11-14 */ -@TableName(resultMap = "com.gkhy.system.mapper.ProjectExpertMapper.ProjectExpertResult") -@ApiModel(value = "项目专家关联对象", description = "项目专家关联对象表") -public class ProjectExpert extends BaseEntity { +@ApiModel(value = "项目专家关联对象新增编辑", description = "项目专家关联对象新增编辑") +@Data +public class ProjectExpertSaveReqDto implements Serializable { private static final long serialVersionUID = 1L; - /** - * $column.columnComment - */ - @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "id") private Long id; - /** - * 项目id - */ - @ApiModelProperty(name = "项目名称",required = true) - @NotNull(message = "项目不能为空") - private Long projectId; - - /** - * 专家id - */ +// /** +// * 项目id +// */ +// @ApiModelProperty(name = "项目名称",required = true) +// @NotNull(message = "项目不能为空") +// private Long projectId; @ApiModelProperty(name = "专家id",required = true) @NotNull(message = "选择专家") private Long expertId; - /** - * 总分 - */ - @Excel(name = "总分") - private Long score; + @ApiModelProperty(name = "专家名称",required = true) + @NotBlank(message = "选择专家名称") + private String expertName; - /** - * 评估状态0未评估1已评估 - */ - @ApiModelProperty(name = "评估状态0未评估1已评估") - private Long envaluationState; +// /** +// * 总分 +// */ +// @Excel(name = "总分") +// private Long score; - /** - * 选取方式1固定2随机 - */ +// /** +// * 评估状态0未评估1已评估 +// */ +// @ApiModelProperty(name = "评估状态0未评估1已评估") +// private Long evaluationState; + @ApiModelProperty(name = "选取方式1固定2随机",required = true) @NotNull(message = "选取方式不能为空") private Long selectionMode; - /** - * 是否组长0否1是 - */ @ApiModelProperty(name = "是否组长0否1是",required = true) @NotNull(message = "是否组长不能为空") private Long teamLeader; - /** - * 删除标志(0代表存在,1代表删除,默认0) - */ - private Long delFlag; - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public void setProjectId(Long projectId) { - this.projectId = projectId; - } - - public Long getProjectId() { - return projectId; - } - - public void setExpertId(Long expertId) { - this.expertId = expertId; - } - - public Long getExpertId() { - return expertId; - } - - public void setScore(Long score) { - this.score = score; - } - - public Long getScore() { - return score; - } - - public void setEnvaluationState(Long envaluationState) { - this.envaluationState = envaluationState; - } - - public Long getEnvaluationState() { - return envaluationState; - } - - public void setSelectionMode(Long selectionMode) { - this.selectionMode = selectionMode; - } - - public Long getSelectionMode() { - return selectionMode; - } - - public void setTeamLeader(Long teamLeader) { - this.teamLeader = teamLeader; - } - - public Long getTeamLeader() { - return teamLeader; - } - - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } - - public Long getDelFlag() { - return delFlag; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("projectId", getProjectId()) - .append("expertId", getExpertId()) - .append("score", getScore()) - .append("envaluationState", getEnvaluationState()) - .append("selectionMode", getSelectionMode()) - .append("teamLeader", getTeamLeader()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java index 104a6ab..5b8d301 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertScoreSaveReq.java @@ -1,6 +1,49 @@ package com.gkhy.system.domain.vo.request; -import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; -public class ProjectExpertScoreReq implements Serializable { +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@ApiModel(value = "项目专家人员考评分数" , description = "项目专家人员考评分数") +@Data +public class ProjectExpertScoreSaveReq implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "考评保存数据") + private List<Score> saveData; + + @ApiModelProperty(value = "删除数据") + private List<Long> delData; + + @ApiModelProperty(value = "项目专家id",required = true) + @NotNull + private Long projectExpertId; + + @ApiModelProperty(value = "总分",required = true) + @NotNull(message = "得分不能为空") + private Long score; + + @Data + static public class Score { + + @ApiModelProperty(value = "数据id",required = false) + private Long id; + + @ApiModelProperty(value = "评分",required = true) + @NotNull(message = "分数不能为空") + private Long score; + + @ApiModelProperty(value = "类型1加分项2扣分项",required = true) + @NotBlank(message = "类型不能为空") + private String scoreType; + + @ApiModelProperty(value = "评分内容",required = true) + @NotBlank(message = "内容不能为空") + private String content; + } } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertStateReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertStateReq.java index 8ad5648..fc29c1f 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertStateReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertStateReq.java @@ -1,36 +1,27 @@ package com.gkhy.system.domain.vo.request; import com.fasterxml.jackson.annotation.JsonFormat; -import com.gkhy.system.domain.ProjectFile; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; -import java.util.List; -@ApiModel(value = "项目归档" , description = "项目归档") +@ApiModel(value = "项目考评筛选" , description = "项目考评筛选") @Data -public class ProjectArchiveReq implements Serializable { +public class ProjectExpertStateReq implements Serializable { private static final long serialVersionUID = 1L; - /** - * 主键 - */ - @ApiModelProperty(value = "项目id",required = true) - @NotNull - private Long id; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(name = "项目结束日期",required = true) - @NotNull(message = "结束日期必填") - private Date projectEndTime; + @ApiModelProperty(value = "项目审批时间") + private Date projectCheckTime; - @ApiModelProperty(name = "项目总结") - private String desc; + @ApiModelProperty(value = "项目名称") + private String projectName; - @ApiModelProperty(name = "项目附件") - private List<ProjectFile> projectFile; + @ApiModelProperty(value = "评估状态0未评估1已评估") + private Long evaluationState; + } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertTeamLeaderReqDto.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertTeamLeaderReqDto.java index 4a62d4e..404fd32 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertTeamLeaderReqDto.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectExpertTeamLeaderReqDto.java @@ -1,4 +1,20 @@ package com.gkhy.system.domain.vo.request; -public class ProjectExpertTeamLeaderReqDto { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +@ApiModel(value = "项目专家关联对象设置组长操作", description = "项目专家关联对象设置组长操作") +@Data +public class ProjectExpertTeamLeaderReqDto implements Serializable { + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "id",required = true) + @NotNull + private Long id; + + @ApiModelProperty(name = "是否组长0否1是",required = true) + @NotNull(message = "是否组长不能为空") + private Long teamLeader; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectManageSaveReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectManageSaveReq.java index 29a90ea..fc780ea 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectManageSaveReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/ProjectManageSaveReq.java @@ -1,4 +1,85 @@ package com.gkhy.system.domain.vo.request; -public class ProjectManageSaveReq { +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@ApiModel(value = "项目管理保存" , description = "项目管理保存") +@Data +public class ProjectManageSaveReq implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty(value = "id") + private Long id; + + /** + * 项目名称 + */ + @ApiModelProperty(name = "项目名称",required = true) + @NotBlank(message = "项目名称不能为空") + private String projectName; + + /** + * 处室 + */ + @ApiModelProperty(name = "处室",required = true) + @NotNull(message = "处室不能为空") + private Long deptId; + + /** + * 部门名称 + */ + @ApiModelProperty(name = "处室名称",required = true) + @NotBlank(message = "处室不能为空") + private String deptName; + + /** + * 被检单位 + */ + @ApiModelProperty(name = "被检单位") + private String companyName; + + /** + * 项目地址 + */ + @ApiModelProperty(name = "项目地址",required = true) + @NotBlank(message = "项目地址不能为空") + private String projectAddress; + + /** + * 部门带队人员 + */ + @ApiModelProperty(name = "部门带队人员",required = true) + @NotBlank(message = "处室带队人员不能为空") + private String deptUserName; + + /** + * 项目预计开始日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "项目预计开始日期",required = true) + @NotNull(message = "项目预计开始日期不能为空") + private Date projectDateStart; + + /** + * 项目预计结束日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(name = "项目预计结束日期", required = true) + @NotNull(message = "项目预计结束日期不能为空") + private Date projectDateEnd; + + + @ApiModelProperty(name = "项目概况",required = true) + @NotBlank(message = "项目概况不能为空") + private String remark; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java index db84763..4c1797f 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertInfoRoundReq.java @@ -1,4 +1,25 @@ package com.gkhy.system.domain.vo.request; -public class SysExpertInfoRoundReq { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@ApiModel(value = "项目专家选取随机", description = "项目专家选取随机") +@Data +public class SysExpertInfoRoundReq implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("专家领域") + private List<String> domain; + + @ApiModelProperty("专家数量") + @NotNull + private Integer num; + + @ApiModelProperty("评定等级1、一级,2、二级,3、三级") + private List<String> ratingLevel; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertSearchReqDto.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertSearchReqDto.java index e873d6b..5a3145f 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertSearchReqDto.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysExpertSearchReqDto.java @@ -1,4 +1,35 @@ package com.gkhy.system.domain.vo.request; -public class SysExpertSearchReqDto { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +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; + +/** + * @author admin + */ +@Data +@ApiModel(value = "专家查询信息审核", description = "专家查询信息审核") +public class SysExpertSearchReqDto implements Serializable { + private static final long serialVersionUID = 1L; + + @NotBlank(message ="手机号不能为空" ) + @Length(min = 11, max = 11, message = "手机号只能为11位") + @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$",message = "手机号码有误!") + @ApiModelProperty("手机号") + private String phone; + + @NotBlank(message ="身份证号码不能为空" ) + @Length(min = 18, max = 18, message = "身份证只能为18位") + @ApiModelProperty("身份证号码") + private String idCard; + + @NotNull(message ="业务处室不能为空" ) + @ApiModelProperty("业务处室") + private Long deptId; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysProjectExpertReq.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysProjectExpertReq.java index 4c1797f..3518f21 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysProjectExpertReq.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/request/SysProjectExpertReq.java @@ -1,25 +1,35 @@ package com.gkhy.system.domain.vo.request; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotNull; import java.io.Serializable; -import java.util.List; +import java.util.Date; -@ApiModel(value = "项目专家选取随机", description = "项目专家选取随机") +@ApiModel(value = "专家考评记录查询条件", description = "专家考评记录查询条件") @Data -public class SysExpertInfoRoundReq implements Serializable { +public class SysProjectExpertReq implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("专家领域") - private List<String> domain; + private String domain; - @ApiModelProperty("专家数量") - @NotNull - private Integer num; + @ApiModelProperty("专家姓名") + private String name; - @ApiModelProperty("评定等级1、一级,2、二级,3、三级") - private List<String> ratingLevel; + @ApiModelProperty("身份证号") + private String idCard; + + @ApiModelProperty("项目名称") + private String projectName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty( "评审开始日期") + private Date startTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty( "评审结束日期") + private Date endTime; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertCheckResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertCheckResp.java index 98ecae1..a55f381 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertCheckResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertCheckResp.java @@ -1,4 +1,40 @@ package com.gkhy.system.domain.vo.response; -public class ProjectExpertCheckResp { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +@ApiModel(value = "项目专家审批详情", description = "项目专家审批详情") +@Data +public class ProjectExpertCheckResp implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(name = "项目专家id") + private Long id; + + @ApiModelProperty(name = "专家id") + private Long expertId; + + @ApiModelProperty("专家名称") + private String name; + + @ApiModelProperty("性别(0男,1女,2未知,默认2)") + private Integer sex; + + @ApiModelProperty("身份证号码") + private String idCard; + + @ApiModelProperty(name = "选取方式1固定2随机") + private Long selectionMode; + + @ApiModelProperty(name = "是否组长0否1是") + private Long teamLeader; + + @ApiModelProperty("评定等级1、一级,2、二级,3、三级") + private String ratingLevel; + + @ApiModelProperty("专家领域") + private String domain; + } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java index ff846a0..c0c7039 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertEvaluationResp.java @@ -1,4 +1,25 @@ package com.gkhy.system.domain.vo.response; -public class ProjectExpertEvaluationResp { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@ApiModel(value = "项目专家考评列表", description = "项目专家考评列表") +@Data +public class ProjectExpertEvaluationResp extends ProjectExpertCheckResp implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 总分 + */ + @ApiModelProperty(name = "总分") + private Long score; + + /** + * 评估状态0未评估1已评估 + */ + @ApiModelProperty(name = "评估状态0未评估1已评估") + private Long evaluationState; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java index 6c60811..84c81da 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertManagementInfoRes.java @@ -1,19 +1,13 @@ -package com.gkhy.system.domain; +package com.gkhy.system.domain.vo.response; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import com.gkhy.common.annotation.Excel; -import com.gkhy.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; +import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -22,36 +16,28 @@ * @author expert * @date 2024-11-14 */ -@TableName(resultMap = "com.gkhy.system.mapper.ProjectManagementMapper.ProjectManagementResult") -@ApiModel(value = "项目管理对象", description = "项目管理对象表") -public class ProjectManagement extends BaseEntity { +@ApiModel(value = "项目管理专家详情" , description = "项目管理专家详情") +@Data +public class ProjectExpertManagementInfoRes implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ - @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty(value = "项目id") private Long id; /** * 项目名称 */ - @ApiModelProperty(name = "项目名称",required = true) - @NotBlank(message = "项目名称不能为空") + @ApiModelProperty(name = "项目名称") private String projectName; - /** - * 处室 - */ - @ApiModelProperty(name = "处室",required = true) - @NotNull(message = "处室不能为空") - private Long deptId; /** * 部门名称 */ - @ApiModelProperty(name = "处室名称",required = true) - @NotBlank(message = "处室不能为空") + @ApiModelProperty(name = "处室名称") private String deptName; /** @@ -63,211 +49,42 @@ /** * 项目地址 */ - @ApiModelProperty(name = "项目地址",required = true) - @NotBlank(message = "项目地址不能为空") + @ApiModelProperty(name = "项目地址") private String projectAddress; - /** - * 部门带队人员 - */ - @ApiModelProperty(name = "部门带队人员",required = true) - @NotBlank(message = "处室带队人员不能为空") - private String deptUserName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(name = "项目审批时间") + private Date projectCheckTime; - /** - * 乐观锁 - */ - @ApiModelProperty(name = "乐观锁") - private Long version; + @ApiModelProperty(name = "审批状态(0暂存,1选取专家,2生成审批单,3审批通过,4完结)") + private String state; - /** - * 审批状态(0暂存,1生成审批单,2审批通过,3审批驳回,4完结) - */ - @Excel(name = "审批状态(0暂存,1生成审批单,2审批通过,3审批驳回,4完结)") - private Long state; + @ApiModelProperty(value = "步骤1暂存2专家选取3审批4完结") + private Long step; +// /** +// * 部门带队人员 +// */ +// @ApiModelProperty(name = "部门带队人员") +// private String deptUserName; /** * 项目预计开始日期 */ @JsonFormat(pattern = "yyyy-MM-dd") - @ApiModelProperty(name = "项目预计开始日期",required = true) - @NotNull(message = "项目预计开始日期不能为空") + @ApiModelProperty(name = "项目预计开始日期") private Date projectDateStart; /** * 项目预计结束日期 */ @JsonFormat(pattern = "yyyy-MM-dd") - @ApiModelProperty(name = "项目预计结束日期", required = true) - @NotNull(message = "项目预计结束日期不能为空") + @ApiModelProperty(name = "项目预计结束日期") private Date projectDateEnd; - /** - * 专家证书 - */ - @ApiModelProperty(name = "专家证书") - private String expertCertificate; + @ApiModelProperty(name = "项目概况") + private String remark; - /** - * 评估状态0未评估1已评估 - */ - @ApiModelProperty(name = "评估状态0未评估1已评估") - private Long envaluationState; + @ApiModelProperty(name = "专家数据") + private List<ProjectExpertCheckResp> projectExpertCheckResp; - /** - * 专家人数 - */ - @ApiModelProperty(name = "专家人数") - private Long expertNum; - - /** - * 删除标志(0代表存在,1代表删除,默认0) - */ - private Long delFlag; - - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public String getProjectName() { - return projectName; - } - - public void setDeptId(Long deptId) { - this.deptId = deptId; - } - - public Long getDeptId() { - return deptId; - } - - public void setDeptName(String deptName) { - this.deptName = deptName; - } - - public String getDeptName() { - return deptName; - } - - public void setCompanyName(String companyName) { - this.companyName = companyName; - } - - public String getCompanyName() { - return companyName; - } - - public void setProjectAddress(String projectAddress) { - this.projectAddress = projectAddress; - } - - public String getProjectAddress() { - return projectAddress; - } - - public void setDeptUserName(String deptUserName) { - this.deptUserName = deptUserName; - } - - public String getDeptUserName() { - return deptUserName; - } - - public void setVersion(Long version) { - this.version = version; - } - - public Long getVersion() { - return version; - } - - public void setState(Long state) { - this.state = state; - } - - public Long getState() { - return state; - } - - public void setProjectDateStart(Date projectDateStart) { - this.projectDateStart = projectDateStart; - } - - public Date getProjectDateStart() { - return projectDateStart; - } - - public void setProjectDateEnd(Date projectDateEnd) { - this.projectDateEnd = projectDateEnd; - } - - public Date getProjectDateEnd() { - return projectDateEnd; - } - - public void setExpertCertificate(String expertCertificate) { - this.expertCertificate = expertCertificate; - } - - public String getExpertCertificate() { - return expertCertificate; - } - - public void setEnvaluationState(Long envaluationState) { - this.envaluationState = envaluationState; - } - - public Long getEnvaluationState() { - return envaluationState; - } - - public void setExpertNum(Long expertNum) { - this.expertNum = expertNum; - } - - public Long getExpertNum() { - return expertNum; - } - - public void setDelFlag(Long delFlag) { - this.delFlag = delFlag; - } - - public Long getDelFlag() { - return delFlag; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("projectName", getProjectName()) - .append("deptId", getDeptId()) - .append("deptName", getDeptName()) - .append("companyName", getCompanyName()) - .append("projectAddress", getProjectAddress()) - .append("deptUserName", getDeptUserName()) - .append("version", getVersion()) - .append("state", getState()) - .append("remark", getRemark()) - .append("projectDateStart", getProjectDateStart()) - .append("projectDateEnd", getProjectDateEnd()) - .append("expertCertificate", getExpertCertificate()) - .append("envaluationState", getEnvaluationState()) - .append("expertNum", getExpertNum()) - .append("delFlag", getDelFlag()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertResp.java index a55f381..a4ed33c 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertResp.java @@ -1,17 +1,35 @@ package com.gkhy.system.domain.vo.response; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; -@ApiModel(value = "项目专家审批详情", description = "项目专家审批详情") +import java.util.Date; + +@ApiModel(value = "专家考评记录列表", description = "专家考评记录列表") @Data -public class ProjectExpertCheckResp implements Serializable { +public class ProjectExpertResp implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(name = "项目专家id") - private Long id; + /** + * 主键 + */ + @ApiModelProperty(value = "项目专家id") + private Long projectExpertId; + + /** + * 项目名称 + */ + @ApiModelProperty(name = "项目名称") + private String projectName; + + @ApiModelProperty(name = "项目id") + private Long projectId; + + @ApiModelProperty(name = "总分") + private Long score; @ApiModelProperty(name = "专家id") private Long expertId; @@ -19,8 +37,6 @@ @ApiModelProperty("专家名称") private String name; - @ApiModelProperty("性别(0男,1女,2未知,默认2)") - private Integer sex; @ApiModelProperty("身份证号码") private String idCard; @@ -31,10 +47,11 @@ @ApiModelProperty(name = "是否组长0否1是") private Long teamLeader; - @ApiModelProperty("评定等级1、一级,2、二级,3、三级") - private String ratingLevel; - @ApiModelProperty("专家领域") private String domain; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(name = "评审时间") + private Date updateTime; + } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertSectionResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertSectionResp.java index a55f381..8219dab 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertSectionResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertSectionResp.java @@ -5,16 +5,14 @@ import lombok.Data; import java.io.Serializable; -@ApiModel(value = "项目专家审批详情", description = "项目专家审批详情") + +@ApiModel(value = "项目专家随机获取", description = "项目专家随机获取") @Data -public class ProjectExpertCheckResp implements Serializable { +public class ProjectExpertSectionResp implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(name = "项目专家id") - private Long id; - @ApiModelProperty(name = "专家id") - private Long expertId; + private Long id; @ApiModelProperty("专家名称") private String name; @@ -24,12 +22,6 @@ @ApiModelProperty("身份证号码") private String idCard; - - @ApiModelProperty(name = "选取方式1固定2随机") - private Long selectionMode; - - @ApiModelProperty(name = "是否组长0否1是") - private Long teamLeader; @ApiModelProperty("评定等级1、一级,2、二级,3、三级") private String ratingLevel; diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertStateResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertStateResp.java index 6e9883a..b66e51e 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertStateResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectExpertStateResp.java @@ -1,4 +1,37 @@ package com.gkhy.system.domain.vo.response; -public class ProjectExpertStateResp { +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@ApiModel(value = "项目考评列表" , description = "项目考评列表") +public class ProjectExpertStateResp implements Serializable { + private static final long serialVersionUID = 1L; + + private Long id; + + @ApiModelProperty(name = "项目名称") + private String projectName; + + @ApiModelProperty(name = "评估状态0未评估1已评估") + private Long evaluationState; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(name = "项目审批时间") + private Date projectCheckTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(name = "项目结束日期") + private Date projectEndTime; + + @ApiModelProperty(name = "处室名称") + private String deptName; + + @ApiModelProperty(name = "专家人数") + private Long expertNum; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectNumResp.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectNumResp.java index 8ed9a5d..a5b9b56 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectNumResp.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/ProjectNumResp.java @@ -1,4 +1,27 @@ package com.gkhy.system.domain.vo.response; -public class ProjectNumREsp { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel(value = "项目数量统计" , description = "项目数量统计") +public class ProjectNumResp implements Serializable { + + @ApiModelProperty(value = "总数量") + private Integer total = 0; + + @ApiModelProperty(value = "基本选用") + private Integer staging = 0; + + @ApiModelProperty(value = "专家选用") + private Integer expert = 0 ; + + @ApiModelProperty(value = "审批") + private Integer approval = 0; + + @ApiModelProperty(value = "结束") + private Integer end = 0; } diff --git a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java index 447a2cc..d9d48d2 100644 --- a/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java +++ b/expert-system/src/main/java/com/gkhy/system/domain/vo/response/SysExpertSearchRep.java @@ -1,4 +1,22 @@ package com.gkhy.system.domain.vo.response; -public class SysExpertSearchRep { +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author admin + */ +@Data +@ApiModel(value = "专家查询信息审核返回", description = "专家查询信息审核返回") +public class SysExpertSearchRep implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("专家证书") + private String expertCertificate; + + @ApiModelProperty("审批状态(0申请提交,1待审核,2审批通过,3审批不通过,4专家库)") + private Integer state; } diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ApplyRecordMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ApplyRecordMapper.java index f239f14..d31b756 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/ApplyRecordMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/ApplyRecordMapper.java @@ -1,7 +1,9 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.ApplyRecord; + +import java.util.List; /** * 开启申请记录Mapper接口 @@ -9,7 +11,7 @@ * @author expert * @date 2024-11-13 */ -public interface ApplyRecordMapper +public interface ApplyRecordMapper extends BaseMapper<ApplyRecord> { /** * 查询开启申请记录 @@ -22,10 +24,9 @@ /** * 查询开启申请记录列表 * - * @param applyRecord 开启申请记录 * @return 开启申请记录集合 */ - public List<ApplyRecord> selectApplyRecordList(ApplyRecord applyRecord); + public List<ApplyRecord> selectApplyRecordList(); /** * 新增开启申请记录 diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/EvaluationMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/EvaluationMapper.java index 55f0f6a..14935ec 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/EvaluationMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/EvaluationMapper.java @@ -1,7 +1,9 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.Evaluation; + +import java.util.List; /** * 考评管理Mapper接口 @@ -9,7 +11,7 @@ * @author expert * @date 2024-11-13 */ -public interface EvaluationMapper +public interface EvaluationMapper extends BaseMapper<Evaluation> { /** * 查询考评管理 diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertDetailMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertDetailMapper.java index 6ce900f..e1f2f5c 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertDetailMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertDetailMapper.java @@ -1,7 +1,9 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.ProjectExpertDetail; + +import java.util.List; /** * 项目专家得分明细Mapper接口 @@ -9,7 +11,7 @@ * @author expert * @date 2024-11-14 */ -public interface ProjectExpertDetailMapper +public interface ProjectExpertDetailMapper extends BaseMapper<ProjectExpertDetail> { /** * 查询项目专家得分明细 @@ -35,6 +37,8 @@ */ public int insertProjectExpertDetail(ProjectExpertDetail projectExpertDetail); + int batchInsertProjectExpertDetail(List<ProjectExpertDetail> list); + /** * 修改项目专家得分明细 * @@ -43,6 +47,8 @@ */ public int updateProjectExpertDetail(ProjectExpertDetail projectExpertDetail); + int batchUpdateProjectExpertDetail(List<ProjectExpertDetail> list); + /** * 删除项目专家得分明细 * diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java index c3ae4d7..f767c69 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectExpertMapper.java @@ -1,7 +1,12 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.ProjectExpert; +import com.gkhy.system.domain.vo.request.SysProjectExpertReq; +import com.gkhy.system.domain.vo.response.ProjectExpertEvaluationResp; +import com.gkhy.system.domain.vo.response.ProjectExpertResp; + +import java.util.List; /** * 项目专家关联Mapper接口 @@ -9,7 +14,7 @@ * @author expert * @date 2024-11-14 */ -public interface ProjectExpertMapper +public interface ProjectExpertMapper extends BaseMapper<ProjectExpert> { /** * 查询项目专家关联 @@ -35,6 +40,8 @@ */ public int insertProjectExpert(ProjectExpert projectExpert); + int batchInsertProjectExpert(List<ProjectExpert> list); + /** * 修改项目专家关联 * @@ -43,6 +50,7 @@ */ public int updateProjectExpert(ProjectExpert projectExpert); + int batchUpdateProjectExpert(List<ProjectExpert> list); /** * 删除项目专家关联 * @@ -58,4 +66,25 @@ * @return 结果 */ public int deleteProjectExpertByIds(Long[] ids); + + /** + *获取未评价数量 + * @param projectId + * @return + */ + int getUnEva(Long projectId); + + /** + * + * @param projectId + * @return + */ + List<ProjectExpertEvaluationResp> projectExpertEvaluationList(Long projectId); + + /** + * 专家考评记录列表 + * @param req + * @return + */ + List<ProjectExpertResp> projectExpertEvaList(SysProjectExpertReq req); } diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectFileMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectFileMapper.java index adac7b0..e0ec520 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectFileMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectFileMapper.java @@ -1,7 +1,10 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.ProjectFile; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 项目附件Mapper接口 @@ -9,7 +12,7 @@ * @author expert * @date 2024-11-14 */ -public interface ProjectFileMapper +public interface ProjectFileMapper extends BaseMapper<ProjectFile> { /** * 查询项目附件 @@ -35,6 +38,8 @@ */ public int insertProjectFile(ProjectFile projectFile); + int insertProjectFiles(List<ProjectFile> files); + /** * 修改项目附件 * @@ -51,6 +56,8 @@ */ public int deleteProjectFileById(Long id); + int deleteProjectFileByIdAndType(@Param("projectId") Long projectId,@Param("module") String module); + /** * 批量删除项目附件 * diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectManagementMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectManagementMapper.java index c7e7afb..538b118 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/ProjectManagementMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/ProjectManagementMapper.java @@ -1,7 +1,12 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.ProjectManagement; +import com.gkhy.system.domain.vo.request.ProjectExpertStateReq; +import com.gkhy.system.domain.vo.response.ProjectExpertManagementInfoRes; +import com.gkhy.system.domain.vo.response.ProjectExpertStateResp; + +import java.util.List; /** * 项目管理Mapper接口 @@ -9,7 +14,7 @@ * @author expert * @date 2024-11-14 */ -public interface ProjectManagementMapper +public interface ProjectManagementMapper extends BaseMapper<ProjectManagement> { /** * 查询项目管理 @@ -58,4 +63,25 @@ * @return 结果 */ public int deleteProjectManagementByIds(Long[] ids); + + /** + * 详情 + * @param id + * @return + */ + ProjectExpertManagementInfoRes projectExpertCheckInfo(Long id); + + /** + * 项目考评累表 + * @param req + * @return + */ + List<ProjectExpertStateResp> getProjectExpertSate(ProjectExpertStateReq req); + + /** + * + * @param deptId + * @return + */ + List<Integer> getDataNum (Long deptId); } diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysDeptMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysDeptMapper.java index adea451..647f6a1 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/SysDeptMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysDeptMapper.java @@ -1,8 +1,9 @@ package com.gkhy.system.mapper; -import java.util.List; -import org.apache.ibatis.annotations.Param; import com.gkhy.common.core.domain.entity.SysDept; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 部门管理 数据层 @@ -20,6 +21,13 @@ public List<SysDept> selectDeptList(SysDept dept); /** + * + * @param dept + * @return + */ + public List<SysDept> getOutDeptList(SysDept dept); + + /** * 根据角色ID查询部门树信息 * * @param roleId 角色ID diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java index 5990ff6..ea1326a 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java @@ -1,7 +1,7 @@ -package com.gkhy.assess.system.mapper; +package com.gkhy.system.mapper; -import com.gkhy.assess.system.domain.SysExpertClassify; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.system.domain.SysExpertClassify; import org.apache.ibatis.annotations.Mapper; /** diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java index d945c6f..285628f 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertInfoMapper.java @@ -1,8 +1,13 @@ -package com.gkhy.assess.system.mapper; +package com.gkhy.system.mapper; -import com.gkhy.assess.system.domain.SysExpertInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gkhy.system.domain.SysExpertInfo; +import com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq; +import com.gkhy.system.domain.vo.request.SysExpertSearchReqDto; +import com.gkhy.system.domain.vo.response.ProjectExpertSectionResp; +import com.gkhy.system.domain.vo.response.SysExpertSearchRep; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -28,7 +33,7 @@ * @param idCard * @return */ - SysExpertInfo checkIdcardUnique(String idCard); + SysExpertInfo checkIdcardUnique(@Param("idCard") String idCard,@Param("deptId") Long deptId); /** * 批量删除专家信息 @@ -43,4 +48,18 @@ * @return */ SysExpertInfo getExpertInfoById(Long expertId); + + /** + * 查询审批结果 + * @param req + * @return + */ + SysExpertSearchRep queryApprove(SysExpertSearchReqDto req); + + /** + * 随机获取专家 + * @param req + * @return + */ + List<ProjectExpertSectionResp> getExpertRound(SysExpertInfoRoundReq req); } diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysSettingsMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysSettingsMapper.java index f930315..7f6d3bc 100644 --- a/expert-system/src/main/java/com/gkhy/system/mapper/SysSettingsMapper.java +++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysSettingsMapper.java @@ -1,7 +1,9 @@ package com.gkhy.system.mapper; -import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.gkhy.system.domain.SysSettings; + +import java.util.List; /** * 系统配置Mapper接口 @@ -9,15 +11,14 @@ * @author expert * @date 2024-11-13 */ -public interface SysSettingsMapper +public interface SysSettingsMapper extends BaseMapper<SysSettings> { /** * 查询系统配置 * - * @param state 系统配置主键 * @return 系统配置 */ - public SysSettings selectSysSettingsByState(String state); + public SysSettings selectSysSettingsByState(); /** * 查询系统配置列表 @@ -38,10 +39,10 @@ /** * 修改系统配置 * - * @param sysSettings 系统配置 + * @param state 系统配置 * @return 结果 */ - public int updateSysSettings(SysSettings sysSettings); + public int updateSysSettingsState(String state); /** * 删除系统配置 diff --git a/expert-system/src/main/java/com/gkhy/system/service/IEvaluationService.java b/expert-system/src/main/java/com/gkhy/system/service/IEvaluationService.java index 923e2c4..38657bf 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/IEvaluationService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/IEvaluationService.java @@ -1,8 +1,9 @@ package com.gkhy.system.service; -import java.util.List; -import com.gkhy.system.domain.Evaluation; import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.system.domain.Evaluation; + +import java.util.List; /** * 考评管理Service接口 diff --git a/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java b/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java index dfd8fb6..f79b35f 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java @@ -1,8 +1,13 @@ package com.gkhy.system.service; -import java.util.List; -import com.gkhy.system.domain.ProjectManagement; import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.system.domain.ProjectExpertDetail; +import com.gkhy.system.domain.ProjectFile; +import com.gkhy.system.domain.ProjectManagement; +import com.gkhy.system.domain.vo.request.*; +import com.gkhy.system.domain.vo.response.*; + +import java.util.List; /** * 项目管理Service接口 @@ -33,7 +38,7 @@ * @param projectManagement 项目管理 * @return 结果 */ - public int insertProjectManagement(ProjectManagement projectManagement); + public Long insertProjectManagement(ProjectManageSaveReq projectManagement); /** * 修改项目管理 @@ -41,7 +46,7 @@ * @param projectManagement 项目管理 * @return 结果 */ - public int updateProjectManagement(ProjectManagement projectManagement); + public void updateProjectManagement(ProjectExpertSaveBatchReqDto projectManagement); /** * 批量删除项目管理 @@ -58,4 +63,66 @@ * @return 结果 */ public int deleteProjectManagementById(Long id); + + /** + * 获取项目专家信息 + * @param id + * @return + */ + public ProjectExpertManagementInfoRes projectExpertCheckInfo(Long id); + + /** + * 项目审批 + * @param req + */ + void projectCheck(ProjectCheckReq req); + + /** + * 项目归档 + * @param req + */ + void projectArchive(ProjectArchiveReq req); + + /** + * 项目考评 + * @param req + * @return + */ + List<ProjectExpertStateResp> getProjectExpertSate(ProjectExpertStateReq req); + + /** + * 项目专家考评列表 + * @param projectId + * @return + */ + List<ProjectExpertEvaluationResp> projectExpertEvaluationList(Long projectId); + + /** + * 专家考评保存 + * @param req + */ + void projectExpertDetailSave(ProjectExpertScoreSaveReq req); + + /** + * 专家考评记录列表 + * @param req + * @return + */ + List<ProjectExpertResp> projectExpertEvaList(SysProjectExpertReq req); + + /** + * 专家考评明细 + * @param projectExpertId + * @return + */ + List<ProjectExpertDetail> selectProjectExpertDetailList(Long projectExpertId); + + /** + * 附件列表 + * @return + */ + List<ProjectFile> selectProjectFileList(Long projectId,String module ); + + + ProjectNumResp getProjectNum(); } \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/service/ISysDeptService.java b/expert-system/src/main/java/com/gkhy/system/service/ISysDeptService.java index 98ade96..c6d8f9d 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/ISysDeptService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/ISysDeptService.java @@ -1,8 +1,9 @@ package com.gkhy.system.service; -import java.util.List; import com.gkhy.common.core.domain.TreeSelect; import com.gkhy.common.core.domain.entity.SysDept; + +import java.util.List; /** * 部门管理 服务层 @@ -19,6 +20,8 @@ */ public List<SysDept> selectDeptList(SysDept dept); + List<SysDept> getOutDeptList(SysDept dept); + /** * 查询部门树结构信息 * diff --git a/expert-system/src/main/java/com/gkhy/system/service/ISysSettingsService.java b/expert-system/src/main/java/com/gkhy/system/service/ISysSettingsService.java index f3d0afe..01aee43 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/ISysSettingsService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/ISysSettingsService.java @@ -1,8 +1,10 @@ package com.gkhy.system.service; -import java.util.List; -import com.gkhy.system.domain.SysSettings; import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.system.domain.ApplyRecord; +import com.gkhy.system.domain.SysSettings; + +import java.util.List; /** * 系统配置Service接口 @@ -14,26 +16,10 @@ /** * 查询系统配置 * - * @param state 系统配置主键 * @return 系统配置 */ - public SysSettings selectSysSettingsByState(String state); + public String selectSysSettings(); - /** - * 查询系统配置列表 - * - * @param sysSettings 系统配置 - * @return 系统配置集合 - */ - public List<SysSettings> selectSysSettingsList(SysSettings sysSettings); - - /** - * 新增系统配置 - * - * @param sysSettings 系统配置 - * @return 结果 - */ - public int insertSysSettings(SysSettings sysSettings); /** * 修改系统配置 @@ -41,21 +27,14 @@ * @param sysSettings 系统配置 * @return 结果 */ - public int updateSysSettings(SysSettings sysSettings); + public int updateSysSettings(String sysSettings); /** - * 批量删除系统配置 + * 查询开启申请记录列表 * - * @param states 需要删除的系统配置主键集合 - * @return 结果 + * @return 开启申请记录集合 */ - public int deleteSysSettingsByStates(String[] states); + public List<ApplyRecord> selectApplyRecordList(); - /** - * 删除系统配置信息 - * - * @param state 系统配置主键 - * @return 结果 - */ - public int deleteSysSettingsByState(String state); + } \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java b/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java index b7be109..391871a 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java @@ -1,7 +1,7 @@ -package com.gkhy.assess.system.service; +package com.gkhy.system.service; -import com.gkhy.assess.system.domain.SysExpertClassify; import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.system.domain.SysExpertClassify; import java.util.List; diff --git a/expert-system/src/main/java/com/gkhy/system/service/SysExpertInfoService.java b/expert-system/src/main/java/com/gkhy/system/service/SysExpertInfoService.java index 9f6efe0..745abb6 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/SysExpertInfoService.java +++ b/expert-system/src/main/java/com/gkhy/system/service/SysExpertInfoService.java @@ -1,8 +1,14 @@ -package com.gkhy.assess.system.service; +package com.gkhy.system.service; -import com.gkhy.assess.common.api.CommonPage; -import com.gkhy.assess.system.domain.SysExpertInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.gkhy.system.domain.SysExpertInfo; +import com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq; +import com.gkhy.system.domain.vo.request.SysExpertSearchReqDto; +import com.gkhy.system.domain.vo.response.ProjectExpertSectionResp; +import com.gkhy.system.domain.vo.response.SysExpertSearchRep; + +import java.util.List; + /** * <p> @@ -18,7 +24,7 @@ * @param expertInfo * @return */ - CommonPage exportInfoList(SysExpertInfo expertInfo); + List<SysExpertInfo> exportInfoList(SysExpertInfo expertInfo); /** * 新增专家信息 @@ -61,4 +67,18 @@ * @return */ boolean changeApprove(SysExpertInfo expertInfo); + + /** + *查询审批结果 + * @param expertInfo + * @return + */ + SysExpertSearchRep queryApprove(SysExpertSearchReqDto expertInfo); + + /** + * 随机获取专家信息 + * @param req + * @return + */ + List<ProjectExpertSectionResp> getExpertRound(SysExpertInfoRoundReq req); } diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/EvaluationServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/EvaluationServiceImpl.java index 35c0ca0..0dbc23f 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/EvaluationServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/EvaluationServiceImpl.java @@ -1,13 +1,15 @@ package com.gkhy.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.util.List; - import com.rchuing.common.utils.DateUtils; +import com.gkhy.common.utils.DateUtils; +import com.gkhy.common.utils.SecurityUtils; +import com.gkhy.system.domain.Evaluation; +import com.gkhy.system.mapper.EvaluationMapper; +import com.gkhy.system.service.IEvaluationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.gkhy.system.mapper.EvaluationMapper; -import com.gkhy.system.domain.Evaluation; -import com.gkhy.system.service.IEvaluationService; + +import java.util.List; /** * 考评管理Service业务层处理 @@ -50,6 +52,7 @@ */ @Override public int insertEvaluation(Evaluation evaluation) { + evaluation.setCreateBy(SecurityUtils.getUsername()); evaluation.setCreateTime(DateUtils.getNowDate()); return evaluationMapper.insertEvaluation(evaluation); } @@ -62,6 +65,7 @@ */ @Override public int updateEvaluation(Evaluation evaluation) { + evaluation.setUpdateBy(SecurityUtils.getUsername()); evaluation.setUpdateTime(DateUtils.getNowDate()); return evaluationMapper.updateEvaluation(evaluation); } @@ -74,6 +78,7 @@ */ @Override public int deleteEvaluationByIds(Long[] ids) { + //todo 校验被引用不可删除 return evaluationMapper.deleteEvaluationByIds(ids); } diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java index ddee76c..9d55d55 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java @@ -1,13 +1,29 @@ package com.gkhy.system.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.util.List; - import com.rchuing.common.utils.DateUtils; +import com.gkhy.common.exception.ServiceException; +import com.gkhy.common.utils.DateUtils; +import com.gkhy.common.utils.SecurityUtils; +import com.gkhy.common.utils.StringUtils; +import com.gkhy.system.domain.ProjectExpert; +import com.gkhy.system.domain.ProjectExpertDetail; +import com.gkhy.system.domain.ProjectFile; +import com.gkhy.system.domain.ProjectManagement; +import com.gkhy.system.domain.vo.request.*; +import com.gkhy.system.domain.vo.response.*; +import com.gkhy.system.mapper.ProjectExpertDetailMapper; +import com.gkhy.system.mapper.ProjectExpertMapper; +import com.gkhy.system.mapper.ProjectFileMapper; +import com.gkhy.system.mapper.ProjectManagementMapper; +import com.gkhy.system.service.IProjectManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.gkhy.system.mapper.ProjectManagementMapper; -import com.gkhy.system.domain.ProjectManagement; -import com.gkhy.system.service.IProjectManagementService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; /** * 项目管理Service业务层处理 @@ -19,6 +35,15 @@ public class ProjectManagementServiceImpl extends ServiceImpl<ProjectManagementMapper, ProjectManagement> implements IProjectManagementService { @Autowired private ProjectManagementMapper projectManagementMapper; + + @Autowired + private ProjectExpertMapper projectExpertMapper; + + @Autowired + private ProjectFileMapper projectFileMapper; + + @Autowired + private ProjectExpertDetailMapper projectExpertDetailMapper; /** * 查询项目管理 @@ -49,9 +74,26 @@ * @return 结果 */ @Override - public int insertProjectManagement(ProjectManagement projectManagement) { - projectManagement.setCreateTime(DateUtils.getNowDate()); - return projectManagementMapper.insertProjectManagement(projectManagement); + public Long insertProjectManagement(ProjectManageSaveReq projectManagement) { + ProjectManagement projectManagementSave = new ProjectManagement(); + + projectManagementSave.setDelFlag(0L); + BeanUtil.copyProperties(projectManagement, projectManagementSave); + if (projectManagement.getId() != null){ + checkDataPer(projectManagement.getId()); + + projectManagementSave.setUpdateBy(SecurityUtils.getUsername()); + projectManagementSave.setUpdateTime(DateUtils.getNowDate()); + projectManagementMapper.updateProjectManagement(projectManagementSave); + }else { + projectManagementSave.setStep(1L); + projectManagementSave.setCreateBy(SecurityUtils.getUsername()); + projectManagementSave.setCreateTime(DateUtils.getNowDate()); + projectManagementMapper.insertProjectManagement(projectManagementSave); + } + + + return projectManagementSave.getId(); } /** @@ -61,9 +103,129 @@ * @return 结果 */ @Override - public int updateProjectManagement(ProjectManagement projectManagement) { - projectManagement.setUpdateTime(DateUtils.getNowDate()); - return projectManagementMapper.updateProjectManagement(projectManagement); + @Transactional + public void updateProjectManagement(ProjectExpertSaveBatchReqDto projectManagement) { + ProjectManagement projectManagement1 = checkDataPer(projectManagement.getId()); + //专家选取 + + ProjectManagement projectManagementSave = new ProjectManagement(); + projectManagementSave.setUpdateBy(SecurityUtils.getUsername()); + projectManagementSave.setUpdateTime(DateUtils.getNowDate()); + projectManagementSave.setId(projectManagement.getId()); + if (projectManagement1.getState() != 1 && projectManagement1.getState() != 0){ + throw new ServiceException("该步骤不可操作专家数据!"); + } + + List<ProjectExpertSaveReqDto> saveData = projectManagement.getSaveData(); + if (!StringUtils.isNotEmpty(saveData)){ + throw new ServiceException("专家不可为空!"); + } + if (hasDuplicateExpertId(saveData)){ + throw new ServiceException("专家重复!"); + } + long count = saveData.stream() + .filter(dto -> dto.getSelectionMode() == 1) + .count(); + if (count < 1){ + throw new ServiceException("固定专家不能为空!"); + } + + if (projectManagement1.getStep() == 1 || projectManagement1.getStep() == 2){ + projectManagementSave.setStep(2L); + projectManagementSave.setState(1L); + }else if (projectManagement1.getStep() == 3){ + projectManagementSave.setStep(3L); + projectManagementSave.setState(2L); + projectManagementSave.setProjectCheckTime(new Date()); + List<ProjectExpertSaveReqDto> collect = saveData.stream() + .filter(dto -> "1".equals(dto.getTeamLeader().toString())) + .collect(Collectors.toList()); + + if (StringUtils.isEmpty(collect)){ + throw new ServiceException("缺少组长!"); + } + if (collect.size() > 1){ + throw new ServiceException("组长只能选一人!"); + } + projectManagementSave.setExpertName(collect.get(0).getExpertName()); + projectManagementSave.setExpertId(collect.get(0).getExpertId()); + } + + List<ProjectExpertSaveReqDto> saveList = saveData.stream() + .filter(dto -> dto.getId() == null) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(saveList)){ + List<ProjectExpert> projectExperts = convertToProjectExpertList(saveList, projectManagement.getId()); + int i = projectExpertMapper.batchInsertProjectExpert(projectExperts); + if (i < 1){ + throw new ServiceException("保存专家失败!"); + } + } + List<ProjectExpertSaveReqDto> editList = saveData.stream() + .filter(dto -> dto.getId() != null) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(editList)){ + List<ProjectExpert> projectExperts = convertToProjectExpertList(editList, projectManagement.getId()); + int i = projectExpertMapper.batchUpdateProjectExpert(projectExperts); + if (i < 1){ + throw new ServiceException("保存专家失败!"); + } + } + projectManagementSave.setExpertNum((long) saveData.size()); + List<Long> delData = projectManagement.getDelData(); + if (delData != null && delData.size() > 0) { + int i = projectExpertMapper.deleteProjectExpertByIds(delData.toArray(new Long[delData.size()])); + if (i < 1){ + throw new ServiceException("保存专家失败!"); + } + } + + int i = projectManagementMapper.updateProjectManagement(projectManagementSave); + if (i < 1){ + throw new ServiceException("保存专家失败!"); + } + } + + + public List<ProjectExpert> convertToProjectExpertList(List<ProjectExpertSaveReqDto> reqDtos,Long projectId) { + List<ProjectExpert> projectExpertList = new ArrayList<>(); + reqDtos.forEach(reqDto -> { + ProjectExpert projectExpert = convertToProjectExpert(reqDto,projectId); + projectExpertList.add(projectExpert); + }); + return projectExpertList; + } + + private ProjectExpert convertToProjectExpert(ProjectExpertSaveReqDto reqDto,Long projectId) { + ProjectExpert projectExpert = new ProjectExpert(); + projectExpert.setProjectId(projectId); + projectExpert.setExpertId(reqDto.getExpertId()); + projectExpert.setSelectionMode(reqDto.getSelectionMode()); + projectExpert.setTeamLeader(reqDto.getTeamLeader()); + if (reqDto.getId() == null){ + projectExpert.setCreateBy(SecurityUtils.getUsername()); + }else { + projectExpert.setUpdateBy(SecurityUtils.getUsername()); + projectExpert.setId(reqDto.getId()); + } + return projectExpert; + } + + + + public boolean hasDuplicateExpertId(List<ProjectExpertSaveReqDto> saveData) { + // 使用 Stream API 收集 expertId 的频率 + Map<Long, Long> frequencyMap = saveData.stream() + .collect(Collectors.groupingBy(ProjectExpertSaveReqDto::getExpertId, Collectors.counting())); + + // 检查是否有任何 expertId 的频率大于 1 + boolean hasDuplicates = frequencyMap.values().stream().anyMatch(count -> count > 1); + + if (hasDuplicates) { + return true; + } + + return false; } /** @@ -74,6 +236,10 @@ */ @Override public int deleteProjectManagementByIds(Long[] ids) { + //todo 校验 + for (Long id : ids) { + checkDataPer(id); + } return projectManagementMapper.deleteProjectManagementByIds(ids); } @@ -87,4 +253,250 @@ public int deleteProjectManagementById(Long id) { return projectManagementMapper.deleteProjectManagementById(id); } + + @Override + public ProjectExpertManagementInfoRes projectExpertCheckInfo(Long id) { + return projectManagementMapper.projectExpertCheckInfo(id); + } + + @Override + @Transactional + public void projectCheck(ProjectCheckReq req) { + ProjectManagement projectManagement = checkDataPer(req.getId()); + + if (req.getState() != 3L && req.getState() != 1 ){ + throw new ServiceException("参数异常!"); + } + if (projectManagement.getStep() != 3){ + throw new ServiceException("非审批步骤!"); + } + Long state = projectManagement.getState(); + if (req.getState() == 3 && state != 2){ + throw new ServiceException("未生成审批单不可审批通过操作!"); + }else if (req.getState() == 1 && state != 2){ + throw new ServiceException("不可操作!"); + } + + List<ProjectFile> projectFile = req.getProjectFile(); + ProjectManagement projectManagementUp = new ProjectManagement(); + projectManagementUp.setId(req.getId()); + projectManagementUp.setState(req.getState()); + projectManagementUp.setUpdateBy(SecurityUtils.getUsername()); + if (req.getState() == 3){ + projectManagementUp.setStep(4L); + }else if (req.getState() == 1){ + projectManagementUp.setStep(2L); + } + int i = projectManagementMapper.updateProjectManagement(projectManagementUp); + //驳回删 + if (req.getState() == 1){ + projectFileMapper.deleteProjectFileByIdAndType(req.getId(), "1"); + } + if (i > 0 && StringUtils.isNotEmpty(projectFile) && req.getState() == 3){ + //删除之前的该类型 + projectFileMapper.deleteProjectFileByIdAndType(req.getId(), "1"); + String username = SecurityUtils.getUsername(); + projectFile.forEach(file -> { + file.setCreateBy(username); + file.setProjectId(req.getId()); + }); + int i1 = projectFileMapper.insertProjectFiles(projectFile); + if (i1 < 1){ + throw new ServiceException("保存附件失败!"); + } + } + } + + @Override + public void projectArchive(ProjectArchiveReq req) { + ProjectManagement projectManagement = checkDataPer(req.getId()); + + Long state = projectManagement.getState(); + if (state != 3L){ + throw new ServiceException("此状态不可归档!"); + } + List<ProjectFile> projectFile = req.getProjectFile(); + ProjectManagement projectManagementUp = new ProjectManagement(); + projectManagementUp.setId(req.getId()); + projectManagementUp.setState(4L); + projectManagementUp.setDesc(req.getDesc()); + projectManagementUp.setProjectEndTime(req.getProjectEndTime()); + projectManagementUp.setUpdateBy(SecurityUtils.getUsername()); + int i = projectManagementMapper.updateProjectManagement(projectManagementUp); + if (i > 0 && StringUtils.isNotEmpty(projectFile)){ + String username = SecurityUtils.getUsername(); + projectFile.forEach(file -> { + file.setCreateBy(username); + file.setProjectId(req.getId()); + }); + int i1 = projectFileMapper.insertProjectFiles(projectFile); + if (i1 < 1){ + throw new ServiceException("保存附件失败!"); + } + } + + } + + @Override + public List<ProjectExpertStateResp> getProjectExpertSate(ProjectExpertStateReq req) { + return projectManagementMapper.getProjectExpertSate(req); + } + + @Override + public List<ProjectExpertEvaluationResp> projectExpertEvaluationList(Long projectId) { + return projectExpertMapper.projectExpertEvaluationList(projectId); + } + + @Override + @Transactional + public void projectExpertDetailSave(ProjectExpertScoreSaveReq req) { + + List<Long> delData = req.getDelData(); + if (StringUtils.isNotEmpty(delData)){ + projectExpertDetailMapper.deleteProjectExpertDetailByIds(delData.toArray(new Long[delData.size()])); + } + + + ProjectExpert projectExpert1 = projectExpertMapper.selectProjectExpertById(req.getProjectExpertId()); + if (projectExpert1 == null){ + throw new ServiceException("项目专家不存在!"); + } + ProjectManagement projectManagement1 = checkData(projectExpert1.getProjectId()); + if (projectManagement1.getState() != 4){ + throw new ServiceException("项目未完成!"); + } + + //更新项目专家表 + ProjectExpert projectExpert = new ProjectExpert(); + projectExpert.setId(req.getProjectExpertId()); + projectExpert.setScore(req.getScore()); + projectExpert.setevaluationState(1L); + int i = projectExpertMapper.updateProjectExpert(projectExpert); + if (i < 1){ + throw new ServiceException("保存失败!"); + } + + List<ProjectExpertScoreSaveReq.Score> saveData = req.getSaveData(); + + if (StringUtils.isNotEmpty(saveData)){ + List<ProjectExpertDetail> projectExpertDetails = dealData(saveData, req.getProjectExpertId()); + List<ProjectExpertDetail> saveList = projectExpertDetails.stream() + .filter(dto -> dto.getId() == null) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(saveList)){ + int i12 = projectExpertDetailMapper.batchInsertProjectExpertDetail(saveList); + if (i12 < 1){ + throw new ServiceException("保存失败!"); + } + } + List<ProjectExpertDetail> updateList = projectExpertDetails.stream() + .filter(dto -> dto.getId() != null) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(updateList)){ + int i1 = projectExpertDetailMapper.batchUpdateProjectExpertDetail(updateList); + if (i1 < 1){ + throw new ServiceException("保存失败!"); + } + } + } + + //验证是否都已考评 + int unEva = projectExpertMapper.getUnEva(projectExpert1.getProjectId()); + if (unEva == 0){ + ProjectManagement projectManagement = new ProjectManagement(); + projectManagement.setId(projectExpert1.getProjectId()); + projectManagement.setEvaluationState(1L); + projectManagement.setUpdateBy(SecurityUtils.getUsername()); + int i1 = projectManagementMapper.updateProjectManagement(projectManagement); + if (i1 < 1){ + throw new ServiceException("保存失败!"); + } + } + + } + + @Override + public List<ProjectExpertResp> projectExpertEvaList(SysProjectExpertReq req) { + return projectExpertMapper.projectExpertEvaList(req); + } + + @Override + public List<ProjectExpertDetail> selectProjectExpertDetailList(Long projectExpertId) { + ProjectExpertDetail projectExpertDetail = new ProjectExpertDetail(); + projectExpertDetail.setProjectExpertId(projectExpertId); + return projectExpertDetailMapper.selectProjectExpertDetailList(projectExpertDetail); + } + + @Override + public List<ProjectFile> selectProjectFileList(Long projectId,String module ) { + ProjectFile projectFile = new ProjectFile(); + projectFile.setProjectId(projectId); + projectFile.setModule(module); + List<ProjectFile> projectFiles = projectFileMapper.selectProjectFileList(projectFile); + if (StringUtils.isNotEmpty(projectFiles)){ + return projectFiles; + } + return Collections.emptyList(); + } + + @Override + public ProjectNumResp getProjectNum() { + ProjectNumResp projectNumResp = new ProjectNumResp(); + List<Integer> dataNum = projectManagementMapper.getDataNum(SecurityUtils.isAdmin(SecurityUtils.getUserId()) ? null : SecurityUtils.getDeptId()); + if (!StringUtils.isEmpty(dataNum)){ + Map<Integer, Long> statusCounts = dataNum.stream() + .collect(Collectors.groupingBy( + status -> status, // 分组键 + Collectors.counting() // 计数 + )); + projectNumResp.setTotal(dataNum.size()); + projectNumResp.setApproval(statusCounts.get(3) == null ? 0 : statusCounts.get(3).intValue()); + projectNumResp.setExpert(statusCounts.get(1) == null ? 0 : statusCounts.get(1).intValue()); + projectNumResp.setStaging(statusCounts.get(0) == null ? 0:statusCounts.get(0).intValue()); + projectNumResp.setEnd(statusCounts.get(4) == null ? 0:statusCounts.get(4).intValue()); + } + return projectNumResp; + } + + private List<ProjectExpertDetail> dealData(List<ProjectExpertScoreSaveReq.Score> data,Long projectExpertId){ + List<ProjectExpertDetail> dealData = new ArrayList<>(); + data.forEach(dto -> { + ProjectExpertDetail projectExpertDetail = new ProjectExpertDetail(); + projectExpertDetail.setProjectExpertId(projectExpertId); + projectExpertDetail.setContent(dto.getContent()); + projectExpertDetail.setScore(dto.getScore()); + projectExpertDetail.setScoreType(dto.getScoreType()); + if (dto.getId() == null){ + projectExpertDetail.setCreateBy(SecurityUtils.getUsername()); + }else { + projectExpertDetail.setId(dto.getId()); + projectExpertDetail.setUpdateBy(SecurityUtils.getUsername()); + } + + dealData.add(projectExpertDetail); + }); + return dealData; + } + + + public ProjectManagement checkData(Long id){ + ProjectManagement projectManagement = projectManagementMapper.selectProjectManagementById(id); + if (ObjectUtil.isNull(projectManagement)){ + throw new ServiceException("数据不存在!"); + } + return projectManagement; + } + + public ProjectManagement checkDataPer(Long id){ + ProjectManagement projectManagement = checkData(id); + Long deptId = projectManagement.getDeptId(); + // 本部门审批? + if (!SecurityUtils.isAdmin(SecurityUtils.getUserId()) && deptId.intValue() != SecurityUtils.getDeptId().intValue()){ + throw new ServiceException("非本部门数据,无权操作!"); + } + if (projectManagement.getState() == 4){ + throw new ServiceException("已结项,无权操作!"); + } + return projectManagement; + } } \ No newline at end of file diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysDeptServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysDeptServiceImpl.java index ce34ff6..e24b8e7 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysDeptServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysDeptServiceImpl.java @@ -1,11 +1,5 @@ package com.gkhy.system.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.gkhy.common.annotation.DataScope; import com.gkhy.common.constant.UserConstants; import com.gkhy.common.core.domain.TreeSelect; @@ -20,6 +14,13 @@ import com.gkhy.system.mapper.SysDeptMapper; import com.gkhy.system.mapper.SysRoleMapper; import com.gkhy.system.service.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; /** * 部门管理 服务实现 @@ -48,6 +49,11 @@ return deptMapper.selectDeptList(dept); } + @Override + public List<SysDept> getOutDeptList(SysDept dept) { + return deptMapper.getOutDeptList(dept); + } + /** * 查询部门树结构信息 * diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java index d452bcc..94881e1 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java @@ -1,15 +1,15 @@ -package com.gkhy.assess.system.service.impl; +package com.gkhy.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gkhy.assess.common.enums.DeleteFlagEnum; -import com.gkhy.assess.common.exception.ApiException; -import com.gkhy.assess.common.utils.StringUtils; -import com.gkhy.assess.system.domain.SysExpertClassify; -import com.gkhy.assess.system.mapper.SysExpertClassifyMapper; -import com.gkhy.assess.system.service.SysExpertClassifyService; -import com.gkhy.assess.system.utils.ShiroUtils; +import com.gkhy.common.enums.DeleteFlagEnum; +import com.gkhy.common.exception.ServiceException; +import com.gkhy.common.utils.SecurityUtils; +import com.gkhy.common.utils.StringUtils; +import com.gkhy.system.domain.SysExpertClassify; +import com.gkhy.system.mapper.SysExpertClassifyMapper; +import com.gkhy.system.service.SysExpertClassifyService; import org.springframework.stereotype.Service; import java.util.List; @@ -33,7 +33,7 @@ if(StringUtils.isNotBlank(expertClassify.getClassifyName())){ lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName()); } - lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag,DeleteFlagEnum.UN_DELETE.getCode()); + lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode()); List<SysExpertClassify> classifies= list(lambdaQueryWrapper); //筛选出所有一级标签 return classifies.stream() @@ -53,10 +53,10 @@ @Override public int modClassify(SysExpertClassify expertClassify) { - expertClassify.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + expertClassify.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(expertClassify); if(!b){ - throw new ApiException("修改专家分类失败"); + throw new ServiceException("修改专家分类失败"); } return 1; } @@ -66,20 +66,20 @@ SysExpertClassify classify = new SysExpertClassify(); classify.setId(classifyId); classify.setDelFlag(DeleteFlagEnum.DELETED.getCode()); - classify.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + classify.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(classify); if(!b){ - throw new ApiException("删除专家分类失败"); + throw new ServiceException("删除专家分类失败"); } return 1; } @Override public int addClassify(SysExpertClassify expertClassify) { - expertClassify.setCreateBy(ShiroUtils.getSysUser().getUsername()); + expertClassify.setCreateBy(SecurityUtils.getUsername()); boolean b=save(expertClassify); if(!b){ - throw new ApiException("新增专家分类失败"); + throw new ServiceException("新增专家分类失败"); } return 1; } diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java index fe922cb..521e5b8 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertInfoServiceImpl.java @@ -1,17 +1,18 @@ -package com.gkhy.assess.system.service.impl; +package com.gkhy.system.service.impl; + import cn.hutool.core.util.ObjectUtil; -import com.gkhy.assess.common.api.CommonPage; -import com.gkhy.assess.common.enums.DeleteFlagEnum; -import com.gkhy.assess.common.exception.ApiException; -import com.gkhy.assess.common.utils.PageUtil; -import com.gkhy.assess.system.domain.SysAgency; -import com.gkhy.assess.system.domain.SysExpertInfo; -import com.gkhy.assess.system.domain.SysUser; -import com.gkhy.assess.system.mapper.SysExpertInfoMapper; -import com.gkhy.assess.system.service.SysExpertInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gkhy.assess.system.utils.ShiroUtils; +import com.gkhy.common.enums.DeleteFlagEnum; +import com.gkhy.common.exception.ServiceException; +import com.gkhy.common.utils.SecurityUtils; +import com.gkhy.system.domain.SysExpertInfo; +import com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq; +import com.gkhy.system.domain.vo.request.SysExpertSearchReqDto; +import com.gkhy.system.domain.vo.response.ProjectExpertSectionResp; +import com.gkhy.system.domain.vo.response.SysExpertSearchRep; +import com.gkhy.system.mapper.SysExpertInfoMapper; +import com.gkhy.system.service.SysExpertInfoService; import org.springframework.stereotype.Service; import java.util.List; @@ -28,21 +29,23 @@ public class SysExpertInfoServiceImpl extends ServiceImpl<SysExpertInfoMapper, SysExpertInfo> implements SysExpertInfoService { @Override - public CommonPage exportInfoList(SysExpertInfo expertInfo) { - PageUtil.startPage(); - List<SysExpertInfo> agencyList=baseMapper.expertInfoList(expertInfo); - return CommonPage.restPage(agencyList); + public List<SysExpertInfo> exportInfoList(SysExpertInfo expertInfo) { + //todo 验证是否是管理不是管理只能看本部门 + if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + expertInfo.setDeptId(SecurityUtils.getDeptId()); + } + return baseMapper.expertInfoList(expertInfo); } @Override public int addExpertInfo(SysExpertInfo expertInfo) { if(!checkIdCardUnique(new SysExpertInfo().setIdCard(expertInfo.getIdCard()))){ - throw new ApiException(expertInfo.getIdCard()+"身份证号码已经存在"); + throw new ServiceException("该业务处室申请数据已存在"); } - expertInfo.setCreateBy(ShiroUtils.getSysUser().getUsername()); + expertInfo.setCreateBy(expertInfo.getName()); boolean b=save(expertInfo); if(!b){ - throw new ApiException("新增专家信息失败"); + throw new ServiceException("新增专家信息失败"); } return 1; } @@ -50,12 +53,12 @@ @Override public int modExpertInfo(SysExpertInfo expertInfo) { if(!checkIdCardUnique(expertInfo)){ - throw new ApiException(expertInfo.getIdCard()+"身份证号码已经存在"); + throw new ServiceException("该业务处室申请数据已存在"); } - expertInfo.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + expertInfo.setUpdateBy(SecurityUtils.getUsername()); boolean b=updateById(expertInfo); if(!b){ - throw new ApiException("修改专家信息失败"); + throw new ServiceException("修改专家信息失败"); } return 1; } @@ -65,10 +68,10 @@ SysExpertInfo expertInfo = new SysExpertInfo(); expertInfo.setId(expertId); expertInfo.setDelFlag(DeleteFlagEnum.DELETED.getCode()); - expertInfo.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + expertInfo.setUpdateBy(SecurityUtils.getUsername()); boolean b= updateById(expertInfo); if(!b){ - throw new ApiException("删除专家信息失败"); + throw new ServiceException("删除专家信息失败"); } return 1; } @@ -87,12 +90,12 @@ public SysExpertInfo checkExpertInfoDataScope(Long expertId) { if(expertId==null){ - throw new ApiException("专家id为空!"); + throw new ServiceException("专家id为空!"); } SysExpertInfo expertInfo = baseMapper.getExpertInfoById(expertId); if (ObjectUtil.isNull(expertInfo)) { - throw new ApiException("专家数据不存在!"); + throw new ServiceException("专家数据不存在!"); } return expertInfo; } @@ -101,13 +104,27 @@ public boolean changeApprove(SysExpertInfo expertInfo) { checkExpertInfoDataScope(expertInfo.getId()); SysExpertInfo se=new SysExpertInfo().setId(expertInfo.getId()).setState(expertInfo.getState()); - se.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + se.setUpdateBy(SecurityUtils.getUsername()); return updateById(se); + } + + @Override + public SysExpertSearchRep queryApprove(SysExpertSearchReqDto expertInfo) { + SysExpertSearchRep sysExpertSearchRep = baseMapper.queryApprove(expertInfo); + if (null == sysExpertSearchRep){ + throw new ServiceException("申请记录不存!"); + } + return sysExpertSearchRep; + } + + @Override + public List<ProjectExpertSectionResp> getExpertRound(SysExpertInfoRoundReq req) { + return baseMapper.getExpertRound(req); } public boolean checkIdCardUnique(SysExpertInfo expertInfo){ Long expertId = expertInfo.getId()==null? -1L : expertInfo.getId(); - SysExpertInfo info = baseMapper.checkIdcardUnique(expertInfo.getIdCard()); + SysExpertInfo info = baseMapper.checkIdcardUnique(expertInfo.getIdCard(),expertInfo.getDeptId()); if (info!=null && info.getId().longValue() != expertId.longValue()) { return false; diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysSettingsServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysSettingsServiceImpl.java index 6568a77..9fdb3c3 100644 --- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysSettingsServiceImpl.java +++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysSettingsServiceImpl.java @@ -1,12 +1,24 @@ package com.gkhy.system.service.impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.util.List; +import com.gkhy.common.core.redis.RedisCache; +import com.gkhy.common.core.text.Convert; +import com.gkhy.common.enums.OpenFlagEnum; +import com.gkhy.common.exception.ServiceException; +import com.gkhy.common.utils.SecurityUtils; +import com.gkhy.common.utils.StringUtils; +import com.gkhy.system.domain.ApplyRecord; +import com.gkhy.system.domain.SysSettings; +import com.gkhy.system.mapper.ApplyRecordMapper; +import com.gkhy.system.mapper.SysSettingsMapper; +import com.gkhy.system.service.ISysSettingsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.gkhy.system.mapper.SysSettingsMapper; -import com.gkhy.system.domain.SysSettings; -import com.gkhy.system.service.ISysSettingsService; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; +import java.util.List; /** * 系统配置Service业务层处理 @@ -19,38 +31,53 @@ @Autowired private SysSettingsMapper sysSettingsMapper; + @Autowired + private RedisCache redisCache; + + @Autowired + private ApplyRecordMapper applyRecordMapper; + +public static final String APPLY_SETTINGS = "APPLY_SETTINGS_KEY"; + + @PostConstruct + public void init() + { + loadingSettingsCache(); + } + /** * 查询系统配置 * - * @param state 系统配置主键 + * @return 系统配置 */ @Override - public SysSettings selectSysSettingsByState(String state) { - return sysSettingsMapper.selectSysSettingsByState(state); + public String selectSysSettings() { + + String state = Convert.toStr(redisCache.getCacheObject(APPLY_SETTINGS)); + if (StringUtils.isNotEmpty(state)) + { + return state; + } + + SysSettings sysSettings = sysSettingsMapper.selectSysSettingsByState(); + if (StringUtils.isNotNull(sysSettings)) { + redisCache.setCacheObject(APPLY_SETTINGS, sysSettings.getState()); + return sysSettings.getState(); + } + + return OpenFlagEnum.CLOSE.getCode(); } - /** - * 查询系统配置列表 - * - * @param sysSettings 系统配置 - * @return 系统配置 - */ - @Override - public List<SysSettings> selectSysSettingsList(SysSettings sysSettings) { - return sysSettingsMapper.selectSysSettingsList(sysSettings); + public void loadingSettingsCache(){ + SysSettings sysSettings = sysSettingsMapper.selectSysSettingsByState(); + if (sysSettings != null) { + redisCache.setCacheObject(APPLY_SETTINGS, sysSettings.getState()); + }else { + redisCache.setCacheObject(APPLY_SETTINGS, OpenFlagEnum.CLOSE.getCode()); + } } - /** - * 新增系统配置 - * - * @param sysSettings 系统配置 - * @return 结果 - */ - @Override - public int insertSysSettings(SysSettings sysSettings) { - return sysSettingsMapper.insertSysSettings(sysSettings); - } /** * 修改系统配置 @@ -59,29 +86,51 @@ * @return 结果 */ @Override - public int updateSysSettings(SysSettings sysSettings) { - return sysSettingsMapper.updateSysSettings(sysSettings); + @Transactional + public int updateSysSettings(String sysSettings) { + + int i = sysSettingsMapper.updateSysSettingsState(sysSettings); + if (i > 0){ + String state = Convert.toStr(redisCache.getCacheObject(APPLY_SETTINGS)); + + if (OpenFlagEnum.OPEN.getCode().equals(sysSettings)){ + if (StringUtils.isNotEmpty(state) && OpenFlagEnum.OPEN.getCode().equals(state)){ + throw new ServiceException("当前状态已开启!"); + } + ApplyRecord applyRecord = new ApplyRecord(); + applyRecord.setStartTime(DateUtil.date()); + applyRecord.setCreateBy(SecurityUtils.getUsername()); + int i1 = applyRecordMapper.insertApplyRecord(applyRecord); + if (i1 < 1){ + throw new ServiceException("开启失败,稍后再试!"); + } + }else { + if (StringUtils.isNotEmpty(state) && OpenFlagEnum.CLOSE.getCode().equals(state)){ + throw new ServiceException("当前状态已关闭!"); + } + List<ApplyRecord> list = applyRecordMapper.selectApplyRecordList(); + if (StringUtils.isNotEmpty(list)){ + ApplyRecord applyRecord = list.get(0); + applyRecord.setEndTime(DateUtil.date()); + applyRecord.setUpdateBy(SecurityUtils.getUsername()); + int i1 = applyRecordMapper.updateApplyRecord(applyRecord); + if (i1 < 1){ + throw new ServiceException("关闭失败,稍后再试!"); + } + } + } + redisCache.setCacheObject(APPLY_SETTINGS, sysSettings); + } + return i; } /** - * 批量删除系统配置 + * 查询开启申请记录列表 * - * @param states 需要删除的系统配置主键 - * @return 结果 + * @return 开启申请记录 */ @Override - public int deleteSysSettingsByStates(String[] states) { - return sysSettingsMapper.deleteSysSettingsByStates(states); - } - - /** - * 删除系统配置信息 - * - * @param state 系统配置主键 - * @return 结果 - */ - @Override - public int deleteSysSettingsByState(String state) { - return sysSettingsMapper.deleteSysSettingsByState(state); + public List<ApplyRecord> selectApplyRecordList() { + return applyRecordMapper.selectApplyRecordList(); } } \ No newline at end of file diff --git a/expert-system/src/main/resources/mapper/system/ApplyRecordMapper.xml b/expert-system/src/main/resources/mapper/system/ApplyRecordMapper.xml index 4ddf3f0..e8be75c 100644 --- a/expert-system/src/main/resources/mapper/system/ApplyRecordMapper.xml +++ b/expert-system/src/main/resources/mapper/system/ApplyRecordMapper.xml @@ -19,11 +19,8 @@ </sql> <select id="selectApplyRecordList" parameterType="ApplyRecord" resultMap="ApplyRecordResult"> - <include refid="selectApplyRecordVo"/> - <where> - <if test="startTime != null "> and start_time = #{startTime}</if> - <if test="endTime != null "> and end_time = #{endTime}</if> - </where> + select id, start_time, end_time, create_by, create_time, update_by, update_time from apply_record + order by create_time desc </select> <select id="selectApplyRecordById" parameterType="Long" resultMap="ApplyRecordResult"> diff --git a/expert-system/src/main/resources/mapper/system/EvaluationMapper.xml b/expert-system/src/main/resources/mapper/system/EvaluationMapper.xml index fff4cda..1e00355 100644 --- a/expert-system/src/main/resources/mapper/system/EvaluationMapper.xml +++ b/expert-system/src/main/resources/mapper/system/EvaluationMapper.xml @@ -23,12 +23,14 @@ <select id="selectEvaluationList" parameterType="Evaluation" resultMap="EvaluationResult"> <include refid="selectEvaluationVo"/> - <where> + <where> + and del_flag = 0 <if test="score != null "> and score = #{score}</if> <if test="content != null and content != ''"> and content = #{content}</if> <if test="scoreType != null and scoreType != ''"> and score_type = #{scoreType}</if> <if test="version != null "> and version = #{version}</if> </where> + order by create_time desc </select> <select id="selectEvaluationById" parameterType="Long" resultMap="EvaluationResult"> diff --git a/expert-system/src/main/resources/mapper/system/ProjectExpertDetailMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectExpertDetailMapper.xml index 69bdbd6..c306e4b 100644 --- a/expert-system/src/main/resources/mapper/system/ProjectExpertDetailMapper.xml +++ b/expert-system/src/main/resources/mapper/system/ProjectExpertDetailMapper.xml @@ -6,9 +6,10 @@ <resultMap type="ProjectExpertDetail" id="ProjectExpertDetailResult"> <result property="id" column="id" /> - <result property="projectExpert" column="project_expert" /> + <result property="projectExpertId" column="project_expert_id" /> <result property="content" column="content" /> <result property="score" column="score" /> + <result property="scoreType" column="score_type" /> <result property="delFlag" column="del_flag" /> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> @@ -17,16 +18,18 @@ </resultMap> <sql id="selectProjectExpertDetailVo"> - select id, project_expert, content, score, del_flag, create_by, create_time, update_by, update_time from project_expert_detail + select id, project_expert_id, content, score, del_flag,score_type, create_by, create_time, update_by, update_time from project_expert_detail </sql> <select id="selectProjectExpertDetailList" parameterType="ProjectExpertDetail" resultMap="ProjectExpertDetailResult"> <include refid="selectProjectExpertDetailVo"/> - <where> - <if test="projectExpert != null "> and project_expert = #{projectExpert}</if> + <where> + and del_flag = 0 + <if test="projectExpertId != null "> and project_expert_id = #{projectExpertId}</if> <if test="content != null and content != ''"> and content = #{content}</if> <if test="score != null "> and score = #{score}</if> </where> + order by create_time desc </select> <select id="selectProjectExpertDetailById" parameterType="Long" resultMap="ProjectExpertDetailResult"> @@ -37,9 +40,10 @@ <insert id="insertProjectExpertDetail" parameterType="ProjectExpertDetail" useGeneratedKeys="true" keyProperty="id"> insert into project_expert_detail <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="projectExpert != null">project_expert,</if> + <if test="projectExpertId != null">project_expert_id,</if> <if test="content != null and content != ''">content,</if> <if test="score != null">score,</if> + <if test="scoreType != null and scoreType != ''">score_type,</if> <if test="delFlag != null">del_flag,</if> <if test="createBy != null">create_by,</if> <if test="createTime != null">create_time,</if> @@ -47,9 +51,10 @@ <if test="updateTime != null">update_time,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="projectExpert != null">#{projectExpert},</if> + <if test="projectExpertId != null">#{projectExpertId},</if> <if test="content != null and content != ''">#{content},</if> <if test="score != null">#{score},</if> + <if test="scoreType != null and scoreType != ''">#{scoreType},</if> <if test="delFlag != null">#{delFlag},</if> <if test="createBy != null">#{createBy},</if> <if test="createTime != null">#{createTime},</if> @@ -58,12 +63,30 @@ </trim> </insert> + <insert id="batchInsertProjectExpertDetail" parameterType="java.util.List" > + insert into project_expert_detail + ( project_expert_id, content, score, score_type, create_by) + values + <foreach collection="list" item="item" separator=","> + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="item.projectExpertId != null">#{item.projectExpertId},</if> + <if test="item.content != null and item.content != ''">#{item.content},</if> + <if test="item.score != null">#{item.score},</if> + <if test="item.scoreType != null and item.scoreType != ''">#{item.scoreType},</if> + <if test="item.createBy != null">#{item.createBy},</if> + </trim> + </foreach> + </insert> + + + <update id="updateProjectExpertDetail" parameterType="ProjectExpertDetail"> update project_expert_detail <trim prefix="SET" suffixOverrides=","> - <if test="projectExpert != null">project_expert = #{projectExpert},</if> + <if test="projectExpertId != null">project_expert_id = #{projectExpertId},</if> <if test="content != null and content != ''">content = #{content},</if> <if test="score != null">score = #{score},</if> + <if test="scoreType != null and scoreType != ''">score_type = #{scoreType},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="createTime != null">create_time = #{createTime},</if> @@ -73,14 +96,32 @@ where id = #{id} </update> - <delete id="deleteProjectExpertDetailById" parameterType="Long"> - delete from project_expert_detail where id = #{id} - </delete> + <update id="batchUpdateProjectExpertDetail" parameterType="java.util.List"> + <foreach collection="list" item="item" separator=";"> + update project_expert_detail + <trim prefix="SET" suffixOverrides=","> + <if test="item.projectExpertId != null">project_expert_id = #{item.projectExpertId},</if> + <if test="item.content != null and item.content != ''">content = #{item.content},</if> + <if test="item.score != null">score = #{item.score},</if> + <if test="item.scoreType != null and item.scoreType != ''">score_type = #{item.scoreType},</if> + <if test="item.delFlag != null">del_flag = #{item.delFlag},</if> + <if test="item.createBy != null">create_by = #{item.createBy},</if> + <if test="item.createTime != null">create_time = #{item.createTime},</if> + <if test="item.updateBy != null">update_by = #{item.updateBy},</if> + <if test="item.updateTime != null">update_time = #{item.updateTime},</if> + </trim> + where id = #{item.id} + </foreach> + </update> - <delete id="deleteProjectExpertDetailByIds" parameterType="String"> - delete from project_expert_detail where id in + <update id="deleteProjectExpertDetailById" parameterType="Long"> + update project_expert_detail set del_flag = 1 where id = #{id} + </update> + + <update id="deleteProjectExpertDetailByIds" parameterType="String"> + update project_expert_detail set del_flag = 1 where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> - </delete> + </update> </mapper> \ No newline at end of file diff --git a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml index 3d07764..e4476e1 100644 --- a/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml +++ b/expert-system/src/main/resources/mapper/system/ProjectExpertMapper.xml @@ -9,7 +9,7 @@ <result property="projectId" column="project_id" /> <result property="expertId" column="expert_id" /> <result property="score" column="score" /> - <result property="envaluationState" column="envaluation_state" /> + <result property="evaluationState" column="evaluation_state" /> <result property="selectionMode" column="selection_mode" /> <result property="teamLeader" column="team_leader" /> <result property="delFlag" column="del_flag" /> @@ -20,16 +20,17 @@ </resultMap> <sql id="selectProjectExpertVo"> - select id, project_id, expert_id, score, envaluation_state, selection_mode, team_leader, del_flag, create_by, create_time, update_by, update_time from project_expert + select id, project_id, expert_id, score, evaluation_state, selection_mode, team_leader, del_flag, create_by, create_time, update_by, update_time from project_expert </sql> <select id="selectProjectExpertList" parameterType="ProjectExpert" resultMap="ProjectExpertResult"> <include refid="selectProjectExpertVo"/> - <where> + <where> + and del_flag = 0 <if test="projectId != null "> and project_id = #{projectId}</if> <if test="expertId != null "> and expert_id = #{expertId}</if> <if test="score != null "> and score = #{score}</if> - <if test="envaluationState != null "> and envaluation_state = #{envaluationState}</if> + <if test="evaluationState != null "> and evaluation_state = #{evaluationState}</if> <if test="selectionMode != null "> and selection_mode = #{selectionMode}</if> <if test="teamLeader != null "> and team_leader = #{teamLeader}</if> </where> @@ -46,7 +47,7 @@ <if test="projectId != null">project_id,</if> <if test="expertId != null">expert_id,</if> <if test="score != null">score,</if> - <if test="envaluationState != null">envaluation_state,</if> + <if test="evaluationState != null">evaluation_state,</if> <if test="selectionMode != null">selection_mode,</if> <if test="teamLeader != null">team_leader,</if> <if test="delFlag != null">del_flag,</if> @@ -59,7 +60,7 @@ <if test="projectId != null">#{projectId},</if> <if test="expertId != null">#{expertId},</if> <if test="score != null">#{score},</if> - <if test="envaluationState != null">#{envaluationState},</if> + <if test="evaluationState != null">#{evaluationState},</if> <if test="selectionMode != null">#{selectionMode},</if> <if test="teamLeader != null">#{teamLeader},</if> <if test="delFlag != null">#{delFlag},</if> @@ -70,13 +71,22 @@ </trim> </insert> + <insert id="batchInsertProjectExpert" parameterType="java.util.List" > + insert into project_expert (project_id,expert_id,selection_mode,team_leader,create_by) + values + <foreach collection="list" item="item" separator=","> + (#{item.projectId},#{item.expertId},#{item.selectionMode},#{item.teamLeader},#{item.createBy}) + </foreach> + </insert> + + <update id="updateProjectExpert" parameterType="ProjectExpert"> update project_expert <trim prefix="SET" suffixOverrides=","> <if test="projectId != null">project_id = #{projectId},</if> <if test="expertId != null">expert_id = #{expertId},</if> <if test="score != null">score = #{score},</if> - <if test="envaluationState != null">envaluation_state = #{envaluationState},</if> + <if test="evaluationState != null">evaluation_state = #{evaluationState},</if> <if test="selectionMode != null">selection_mode = #{selectionMode},</if> <if test="teamLeader != null">team_leader = #{teamLeader},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> @@ -88,14 +98,72 @@ where id = #{id} </update> - <delete id="deleteProjectExpertById" parameterType="Long"> - delete from project_expert where id = #{id} - </delete> + <update id="batchUpdateProjectExpert" parameterType="java.util.List"> + <foreach collection="list" item="item" separator=";"> + update project_expert + <set> + <if test="item.projectId != null">project_id = #{item.projectId},</if> + <if test="item.expertId != null">expert_id = #{item.expertId},</if> + <if test="item.score != null">score = #{item.score},</if> + <if test="item.evaluationState != null">evaluation_state = #{item.evaluationState},</if> + <if test="item.selectionMode != null">selection_mode = #{item.selectionMode},</if> + <if test="item.teamLeader != null">team_leader = #{item.teamLeader},</if> + <if test="item.updateBy != null">update_by = #{item.updateBy}</if> + </set> + where id = #{item.id} + </foreach> + </update> - <delete id="deleteProjectExpertByIds" parameterType="String"> - delete from project_expert where id in + <update id="deleteProjectExpertById" parameterType="Long"> + update project_expert set del_flag= 1 where id = #{id} + </update> + + <update id="deleteProjectExpertByIds" parameterType="String"> + update project_expert set del_flag= 1 where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> - </delete> + </update> + + <select id="getUnEva" resultType="int" parameterType="Long"> + select count(id) from project_expert where project_id = #{id} and del_flag = 0 and evaluation_state = 0 + </select> + + <select id="projectExpertEvaluationList" parameterType="Long" resultType="com.gkhy.system.domain.vo.response.ProjectExpertEvaluationResp"> + select b.id ,b.expert_id expertId ,c.name,c.sex,c.id_card idCard,c.domain,c.rating_level ratingLevel, + b.selection_mode selectionMode,b.team_leader teamLeader,b.score,b.evaluation_state evaluationState + from project_expert b + left join sys_expert_info c on b.expert_id = c.id + where b.project_id = #{projectId} + order by b.team_leader asc , b.selection_mode asc, b.create_time desc + </select> + + + <select id="projectExpertEvaList" parameterType="com.gkhy.system.domain.vo.request.SysProjectExpertReq" resultType="com.gkhy.system.domain.vo.response.ProjectExpertResp"> + select a.id projectId, a.project_name projectName, + b.id projectExpertId,b.expert_id expertId,c.name,c.id_card idCard,c.domain,b.selection_mode selectionMode, + b.team_leader teamLeader,b.update_time updateTime,b.score + from project_management a + left join project_expert b on a.id = b.project_id and b.del_flag = 0 + left join sys_expert_info c on b.expert_id = c.id + where 1=1 + <if test="projectName != null and projectName != ''"> and a.project_name like concat('%', #{projectName}, '%')</if> + <if test="name != null and name != ''"> + and c.name like concat('%', #{name}, '%') + </if> + <if test="idCard != null and idCard != ''"> + and c.id_card like concat('%', #{idCard}, '%') + </if> + <if test="domain != null and domain != ''"> + and c.domain like concat('%', #{domain}, '%') + </if> + <if test="startTime != null "><!-- 开始时间检索 --> + and date_format(b.update_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') + </if> + <if test="endTime != null "><!-- 结束时间检索 --> + and date_format(b.update_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') + </if> + order by b.team_leader asc , b.create_time desc + </select> + </mapper> \ No newline at end of file diff --git a/expert-system/src/main/resources/mapper/system/ProjectFileMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectFileMapper.xml index 7dfd6e8..aebc10a 100644 --- a/expert-system/src/main/resources/mapper/system/ProjectFileMapper.xml +++ b/expert-system/src/main/resources/mapper/system/ProjectFileMapper.xml @@ -28,7 +28,8 @@ <select id="selectProjectFileList" parameterType="ProjectFile" resultMap="ProjectFileResult"> <include refid="selectProjectFileVo"/> - <where> + <where> + and del_flag = 0 <if test="projectId != null "> and project_id = #{projectId}</if> <if test="module != null and module != ''"> and module = #{module}</if> <if test="filePath != null and filePath != ''"> and file_path = #{filePath}</if> @@ -82,6 +83,32 @@ </trim> </insert> + + + <insert id="insertProjectFiles" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"> + insert into project_file + (project_id,module,file_path,file_url,file_name,file_suffix,file_desc,file_size,file_type,create_by) + values + <foreach collection="list" item="item" separator=","> + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="item.projectId != null">#{item.projectId},</if> + <if test="item.module != null and item.module != ''">#{item.module},</if> + <if test="item.filePath != null">#{item.filePath},</if> + <if test="item.fileUrl != null">#{item.fileUrl},</if> + <if test="item.fileName != null">#{item.fileName},</if> + <if test="item.fileSuffix != null">#{item.fileSuffix},</if> + <if test="item.fileDesc != null">#{item.fileDesc},</if> + <if test="item.fileSize != null">#{item.fileSize},</if> + <if test="item.fileType != null">#{item.fileType},</if> + <if test="item.createBy != null">#{item.createBy},</if> + </trim> + </foreach> + </insert> + + + + + <update id="updateProjectFile" parameterType="ProjectFile"> update project_file <trim prefix="SET" suffixOverrides=","> @@ -95,22 +122,24 @@ <if test="fileSize != null">file_size = #{fileSize},</if> <if test="fileType != null">file_type = #{fileType},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> - <if test="createBy != null">create_by = #{createBy},</if> - <if test="createTime != null">create_time = #{createTime},</if> <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> </trim> where id = #{id} </update> - <delete id="deleteProjectFileById" parameterType="Long"> - delete from project_file where id = #{id} - </delete> + <update id="deleteProjectFileById" parameterType="Long"> + update project_file set del_flag = 1 where id = #{id} + </update> - <delete id="deleteProjectFileByIds" parameterType="String"> - delete from project_file where id in + <update id="deleteProjectFileByIdAndType" > + update project_file set del_flag = 1 where project_id = #{projectId} and module = #{module} + </update> + + <update id="deleteProjectFileByIds" parameterType="String"> + update project_file set del_flag = 1 where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> - </delete> + </update> </mapper> \ No newline at end of file diff --git a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml index 484be7f..e636c7d 100644 --- a/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml +++ b/expert-system/src/main/resources/mapper/system/ProjectManagementMapper.xml @@ -17,9 +17,15 @@ <result property="remark" column="remark" /> <result property="projectDateStart" column="project_date_start" /> <result property="projectDateEnd" column="project_date_end" /> + <result property="projectCheckTime" column="project_check_time" /> <result property="expertCertificate" column="expert_certificate" /> - <result property="envaluationState" column="envaluation_state" /> + <result property="evaluationState" column="evaluation_state" /> <result property="expertNum" column="expert_num" /> + <result property="expertId" column="expert_id" /> + <result property="expertName" column="expert_name" /> + <result property="projectEndTime" column="project_end_time" /> + <result property="desc" column="desc" /> + <result property="step" column="step" /> <result property="delFlag" column="del_flag" /> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> @@ -27,13 +33,45 @@ <result property="updateTime" column="update_time" /> </resultMap> + <resultMap type="com.gkhy.system.domain.vo.response.ProjectExpertManagementInfoRes" id="ProjectManagementInfoResult"> + <result property="id" column="id" /> + <result property="projectName" column="project_name" /> + <result property="deptName" column="dept_name" /> + <result property="remark" column="remark" /> + <result property="state" column="state" /> + <result property="step" column="step" /> + <result property="companyName" column="company_name" /> + <result property="projectAddress" column="project_address" /> +<!-- <result property="deptUserName" column="dept_user_name" />--> + <result property="projectDateStart" column="project_date_start" /> + <result property="projectDateEnd" column="project_date_end" /> + <result property="projectCheckTime" column="project_check_time" /> + <collection property="projectExpertCheckResp" javaType="java.util.List" resultMap="ExpertCheck" /> + </resultMap> + <resultMap id="ExpertCheck" type="com.gkhy.system.domain.vo.response.ProjectExpertCheckResp"> + <result property="id" column="project_expert_id" /> + <result property="expertId" column="expert_id_info" /> + <result property="name" column="name" /> + <result property="sex" column="sex" /> + <result property="idCard" column="id_card" /> + <result property="domain" column="domain" /> + <result property="ratingLevel" column="rating_level" /> + <result property="selectionMode" column="selection_mode" /> + <result property="teamLeader" column="team_leader" /> + </resultMap> + <sql id="selectProjectManagementVo"> - select id, project_name, dept_id, dept_name, company_name, project_address, dept_user_name, version, state, remark, project_date_start, project_date_end, expert_certificate, envaluation_state, expert_num, del_flag, create_by, create_time, update_by, update_time from project_management + select id, project_name, dept_id, dept_name, company_name, project_address, dept_user_name, + version, state, remark, project_date_start, project_date_end, expert_certificate, + evaluation_state, expert_num, del_flag, create_by, create_time, update_by, update_time,project_check_time,expert_id, + expert_name,project_end_time,'desc',step + from project_management </sql> <select id="selectProjectManagementList" parameterType="ProjectManagement" resultMap="ProjectManagementResult"> <include refid="selectProjectManagementVo"/> - <where> + <where> + and del_flag = 0 <if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if> <if test="deptId != null "> and dept_id = #{deptId}</if> <if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if> @@ -42,17 +80,18 @@ <if test="deptUserName != null and deptUserName != ''"> and dept_user_name like concat('%', #{deptUserName}, '%')</if> <if test="version != null "> and version = #{version}</if> <if test="state != null "> and state = #{state}</if> + <if test="step!= null "> and step = #{step}</if> <if test="projectDateStart != null "> and project_date_start = #{projectDateStart}</if> <if test="projectDateEnd != null "> and project_date_end = #{projectDateEnd}</if> <if test="expertCertificate != null and expertCertificate != ''"> and expert_certificate = #{expertCertificate}</if> - <if test="envaluationState != null "> and envaluation_state = #{envaluationState}</if> + <if test="evaluationState != null "> and evaluation_state = #{evaluationState}</if> <if test="expertNum != null "> and expert_num = #{expertNum}</if> </where> </select> <select id="selectProjectManagementById" parameterType="Long" resultMap="ProjectManagementResult"> <include refid="selectProjectManagementVo"/> - where id = #{id} + where id = #{id} and del_flag = 0 </select> <insert id="insertProjectManagement" parameterType="ProjectManagement" useGeneratedKeys="true" keyProperty="id"> @@ -66,11 +105,12 @@ <if test="deptUserName != null and deptUserName != ''">dept_user_name,</if> <if test="version != null">version,</if> <if test="state != null">state,</if> + <if test="step != null">step,</if> <if test="remark != null">remark,</if> <if test="projectDateStart != null">project_date_start,</if> <if test="projectDateEnd != null">project_date_end,</if> <if test="expertCertificate != null">expert_certificate,</if> - <if test="envaluationState != null">envaluation_state,</if> + <if test="evaluationState != null">evaluation_state,</if> <if test="expertNum != null">expert_num,</if> <if test="delFlag != null">del_flag,</if> <if test="createBy != null">create_by,</if> @@ -87,11 +127,12 @@ <if test="deptUserName != null and deptUserName != ''">#{deptUserName},</if> <if test="version != null">#{version},</if> <if test="state != null">#{state},</if> + <if test="step != null">#{step},</if> <if test="remark != null">#{remark},</if> <if test="projectDateStart != null">#{projectDateStart},</if> <if test="projectDateEnd != null">#{projectDateEnd},</if> <if test="expertCertificate != null">#{expertCertificate},</if> - <if test="envaluationState != null">#{envaluationState},</if> + <if test="evaluationState != null">#{evaluationState},</if> <if test="expertNum != null">#{expertNum},</if> <if test="delFlag != null">#{delFlag},</if> <if test="createBy != null">#{createBy},</if> @@ -112,12 +153,18 @@ <if test="deptUserName != null and deptUserName != ''">dept_user_name = #{deptUserName},</if> <if test="version != null">version = #{version},</if> <if test="state != null">state = #{state},</if> + <if test="step != null">step = #{step},</if> <if test="remark != null">remark = #{remark},</if> <if test="projectDateStart != null">project_date_start = #{projectDateStart},</if> <if test="projectDateEnd != null">project_date_end = #{projectDateEnd},</if> + <if test="projectCheckTime != null">project_check_time = #{projectCheckTime},</if> <if test="expertCertificate != null">expert_certificate = #{expertCertificate},</if> - <if test="envaluationState != null">envaluation_state = #{envaluationState},</if> + <if test="evaluationState != null">evaluation_state = #{evaluationState},</if> <if test="expertNum != null">expert_num = #{expertNum},</if> + <if test="expertId != null">expert_id = #{expertId},</if> + <if test="expertName != null and expertName != ''">expert_name = #{expertName},</if> + <if test="projectEndTime != null">project_end_time = #{projectEndTime},</if> + <if test="desc != null and desc != ''">`desc` = #{desc},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="createTime != null">create_time = #{createTime},</if> @@ -127,14 +174,37 @@ where id = #{id} </update> - <delete id="deleteProjectManagementById" parameterType="Long"> - delete from project_management where id = #{id} - </delete> + <update id="deleteProjectManagementById" parameterType="Long"> + update project_management set del_flag = 1 where id = #{id} + </update> - <delete id="deleteProjectManagementByIds" parameterType="String"> - delete from project_management where id in + <update id="deleteProjectManagementByIds" parameterType="String"> + update project_management set del_flag = 1 where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> - </delete> + </update> + + <select id="projectExpertCheckInfo" parameterType="Long" resultMap="ProjectManagementInfoResult"> + select a.id,a.step, a.project_name, a.dept_name, a.company_name, a.project_address, a.project_date_start, a.project_date_end, a.remark,a.project_check_time,a.state, + b.id project_expert_id,b.expert_id expert_id_info,c.name,c.sex,c.id_card,c.domain,c.rating_level,b.selection_mode,b.team_leader + from project_management a + left join project_expert b on a.id = b.project_id and b.del_flag = 0 + left join sys_expert_info c on b.expert_id = c.id + where a.id = #{id} + order by b.team_leader asc , b.create_time desc + </select> + <select id="getProjectExpertSate" parameterType="com.gkhy.system.domain.vo.request.ProjectExpertStateReq" resultType="com.gkhy.system.domain.vo.response.ProjectExpertStateResp"> + select a.id, a.project_name, a.evaluation_state, a.project_check_time, a.project_end_time, a.dept_name, a.expert_num + from project_management a + where a.del_flag = 0 and a.state = 4 + <if test="projectCheckTime != null "> and a.project_check_time = #{projectCheckTime}</if> + <if test="projectName != null and projectName != ''"> and a.project_name like concat('%', #{projectName}, '%')</if> + <if test="evaluationState != null "> and a.evaluation_state = #{evaluationState}</if> + </select> + + <select id="getDataNum" parameterType="Long" resultType="Integer"> + select state from project_management where del_flag = 0 + <if test="deptId != null "> and dept_id = #{deptId}</if> + </select> </mapper> \ No newline at end of file diff --git a/expert-system/src/main/resources/mapper/system/SysDeptMapper.xml b/expert-system/src/main/resources/mapper/system/SysDeptMapper.xml index 2f0479b..9e45e86 100644 --- a/expert-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/expert-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -46,6 +46,26 @@ ${params.dataScope} order by d.parent_id, d.order_num </select> + + + <select id="getOutDeptList" parameterType="SysDept" resultMap="SysDeptResult"> + <include refid="selectDeptVo"/> + where d.del_flag = '0' + <if test="deptId != null and deptId != 0"> + AND dept_id = #{deptId} + </if> + <if test="parentId != null and parentId != 0"> + AND parent_id = #{parentId} + </if> + <if test="deptName != null and deptName != ''"> + AND dept_name like concat('%', #{deptName}, '%') + </if> + <if test="status != null and status != ''"> + AND status = #{status} + </if> + order by d.parent_id, d.order_num + </select> + <select id="selectDeptListByRoleId" resultType="Long"> select d.dept_id diff --git a/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml b/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml index b97128d..268f3b8 100644 --- a/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml +++ b/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.gkhy.assess.system.mapper.SysExpertClassifyMapper"> +<mapper namespace="com.gkhy.system.mapper.SysExpertClassifyMapper"> </mapper> diff --git a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml index 29e81b0..204996e 100644 --- a/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml +++ b/expert-system/src/main/resources/mapper/system/SysExpertInfoMapper.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.gkhy.assess.system.mapper.SysExpertInfoMapper"> +<mapper namespace="com.gkhy.system.mapper.SysExpertInfoMapper"> <sql id="selectExpertInfoVo"> select id,name,sex,birthday,phone,title,state,electronic_photo,id_card,duty_status, @@ -8,7 +8,7 @@ graduation_school,degree,speciality,current_profession,support_direction_safety, support_direction_prevention,support_direction_emergency,resume_key,paper_situation_key, reward_key,achievement_key,personal_opinion_key,recommend_unit_opinion_key,remark,create_by, - create_time,big_classify,small_classify,del_flag,source + create_time,big_classify,small_classify,del_flag,source,rating_level,employment_date_start,employment_date_end,expert_certificate,dept_id from sys_expert_info </sql> @@ -19,8 +19,9 @@ </foreach> </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,id_card,company_name,domain,level,current_profession,duty_status,support_direction_safety,create_time from sys_expert_info + <select id="expertInfoList" resultType="com.gkhy.system.domain.SysExpertInfo"> + 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,rating_level,employment_date_start,employment_date_end,expert_certificate from sys_expert_info <where> and del_flag = 0 <if test="name != null and name != ''"> @@ -28,6 +29,9 @@ </if> <if test="bigClassify != null"> and big_classify = #{bigClassify} + </if> + <if test="ratingLevel != null and ratingLevel != ''"> + and rating_level = #{ratingLevel} </if> <if test="smallClassify != null"> and small_classify = #{smallClassify} @@ -38,21 +42,51 @@ <if test="state != null"> and state = #{state} </if> + <if test="deptId != null"> + and dept_id = #{deptId} + </if> <if test="params.startTime != null "><!-- 开始时间检索 --> and date_format(create_time,'%y%m%d') >= date_format(#{params.startTime},'%y%m%d') </if> <if test="params.endTime != null "><!-- 结束时间检索 --> and date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') </if> + </where> order by create_time desc </select> - <select id="checkIdcardUnique" resultType="com.gkhy.assess.system.domain.SysExpertInfo"> - select id,name from sys_expert_info where id_card=#{idCard} and del_flag=0 limit 1 + <select id="checkIdcardUnique" resultType="com.gkhy.system.domain.SysExpertInfo"> + select id,name from sys_expert_info where id_card=#{idCard} and dept_id = #{deptId} and del_flag=0 limit 1 </select> - <select id="getExpertInfoById" resultType="com.gkhy.assess.system.domain.SysExpertInfo"> + <select id="getExpertInfoById" resultType="com.gkhy.system.domain.SysExpertInfo"> <include refid="selectExpertInfoVo"/> where id=#{expertId} </select> + + + <select id="queryApprove" parameterType="com.gkhy.system.domain.vo.request.SysExpertSearchReqDto" resultType="com.gkhy.system.domain.vo.response.SysExpertSearchRep"> + select expert_certificate,state from sys_expert_info where id_card=#{idCard} and dept_id = #{deptId} and phone = #{phone} and del_flag=0 limit 1 + </select> + + <select id="getExpertRound" parameterType="com.gkhy.system.domain.vo.request.SysExpertInfoRoundReq" + resultType="com.gkhy.system.domain.vo.response.ProjectExpertSectionResp"> + select id,name,sex,id_card idCard, + domain,rating_level ratingLevel from sys_expert_info + where del_flag = 0 + <if test="domain != null and domain.size() > 0"> + and domain in + <foreach collection="domain" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + <if test="ratingLevel != null and ratingLevel.size() > 0"> + and rating_level in + <foreach collection="ratingLevel" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + ORDER BY RAND() + LIMIT #{num} + </select> </mapper> diff --git a/expert-system/src/main/resources/mapper/system/SysSettingsMapper.xml b/expert-system/src/main/resources/mapper/system/SysSettingsMapper.xml index e9d8f66..bec945a 100644 --- a/expert-system/src/main/resources/mapper/system/SysSettingsMapper.xml +++ b/expert-system/src/main/resources/mapper/system/SysSettingsMapper.xml @@ -19,9 +19,8 @@ </where> </select> - <select id="selectSysSettingsByState" parameterType="String" resultMap="SysSettingsResult"> - <include refid="selectSysSettingsVo"/> - where state = #{state} + <select id="selectSysSettingsByState" resultMap="SysSettingsResult"> + select state from sys_settings where id = 1 </select> <insert id="insertSysSettings" parameterType="SysSettings"> @@ -34,11 +33,8 @@ </trim> </insert> - <update id="updateSysSettings" parameterType="SysSettings"> - update sys_settings - <trim prefix="SET" suffixOverrides=","> - </trim> - where state = #{state} + <update id="updateSysSettingsState" parameterType="String"> + update sys_settings set state = #{state} where id=1 </update> <delete id="deleteSysSettingsByState" parameterType="String"> diff --git a/pom.xml b/pom.xml index 2465e44..e83a57c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,16 +4,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi</artifactId> + <groupId>com.gkhy</groupId> + <artifactId>expert</artifactId> <version>3.8.8</version> - <name>ruoyi</name> - <url>http://www.ruoyi.vip</url> - <description>若依管理系统</description> + <name>expert</name> + <url>http://www.expert.vip</url> + <description>专家管理系统</description> <properties> - <ruoyi.version>3.8.8</ruoyi.version> + <expert.version>3.8.8</expert.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> @@ -30,11 +30,13 @@ <poi.version>4.1.2</poi.version> <velocity.version>2.3</velocity.version> <jwt.version>0.9.1</jwt.version> + <mybatis-plus.version>3.5.1</mybatis-plus.version> <!-- override dependency version --> <tomcat.version>9.0.96</tomcat.version> <logback.version>1.2.13</logback.version> <spring-security.version>5.7.12</spring-security.version> <spring-framework.version>5.3.39</spring-framework.version> + <hutool.version>5.8.9</hutool.version> </properties> <!-- 依赖声明 --> @@ -66,6 +68,17 @@ <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> + </dependency> + + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + <version>${mybatis-plus.version}</version> + </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-generator</artifactId> + <version>${mybatis-plus.version}</version> </dependency> <!-- 覆盖logback的依赖配置--> @@ -129,17 +142,17 @@ </dependency> <!-- Swagger3依赖 --> - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-boot-starter</artifactId> - <version>${swagger.version}</version> - <exclusions> - <exclusion> - <groupId>io.swagger</groupId> - <artifactId>swagger-models</artifactId> - </exclusion> - </exclusions> - </dependency> +<!-- <dependency>--> +<!-- <groupId>io.springfox</groupId>--> +<!-- <artifactId>springfox-boot-starter</artifactId>--> +<!-- <version>${swagger.version}</version>--> +<!-- <exclusions>--> +<!-- <exclusion>--> +<!-- <groupId>io.swagger</groupId>--> +<!-- <artifactId>swagger-models</artifactId>--> +<!-- </exclusion>--> +<!-- </exclusions>--> +<!-- </dependency>--> <!-- io常用工具类 --> <dependency> @@ -183,51 +196,55 @@ <version>${kaptcha.version}</version> </dependency> - <!-- 定时任务--> - <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-quartz</artifactId> - <version>${ruoyi.version}</version> - </dependency> <!-- 代码生成--> <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-generator</artifactId> - <version>${ruoyi.version}</version> + <groupId>com.gkhy</groupId> + <artifactId>expert-generator</artifactId> + <version>${expert.version}</version> </dependency> <!-- 核心模块--> <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-framework</artifactId> - <version>${ruoyi.version}</version> + <groupId>com.gkhy</groupId> + <artifactId>expert-framework</artifactId> + <version>${expert.version}</version> </dependency> <!-- 系统模块--> <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-system</artifactId> - <version>${ruoyi.version}</version> + <groupId>com.gkhy</groupId> + <artifactId>expert-system</artifactId> + <version>${expert.version}</version> </dependency> <!-- 通用工具--> <dependency> - <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-common</artifactId> - <version>${ruoyi.version}</version> + <groupId>com.gkhy</groupId> + <artifactId>expert-common</artifactId> + <version>${expert.version}</version> + </dependency> + <!--Hutool Java工具包--> + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>${hutool.version}</version> </dependency> + <dependency> + <groupId>com.github.xiaoymin</groupId> + <artifactId>knife4j-spring-boot-starter</artifactId> + <version>3.0.3</version> + </dependency> </dependencies> </dependencyManagement> <modules> - <module>ruoyi-admin</module> - <module>ruoyi-framework</module> - <module>ruoyi-system</module> - <module>ruoyi-quartz</module> - <module>ruoyi-generator</module> - <module>ruoyi-common</module> + <module>expert-admin</module> + <module>expert-framework</module> + <module>expert-system</module> + <module>expert-generator</module> + <module>expert-common</module> </modules> <packaging>pom</packaging> diff --git a/ry.bat b/ry.bat index 69abee7..acd4ee0 100644 --- a/ry.bat +++ b/ry.bat @@ -1,21 +1,21 @@ @echo off -rem jarƽ��Ŀ¼ -set AppName=ruoyi-admin.jar +rem jarƽ��Ŀ¼ +set AppName=expert-admin.jar -rem JVM���� +rem JVM���� set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" ECHO. - ECHO. [1] ����%AppName% - ECHO. [2] �ر�%AppName% - ECHO. [3] ����%AppName% - ECHO. [4] ����״̬ %AppName% - ECHO. [5] �� �� + ECHO. [1] ����%AppName% + ECHO. [2] �ر�%AppName% + ECHO. [3] ����%AppName% + ECHO. [4] ����״̬ %AppName% + ECHO. [5] �� �� ECHO. -ECHO.������ѡ����Ŀ�����: +ECHO.������ѡ����Ŀ�����: set /p ID= IF "%id%"=="1" GOTO start IF "%id%"=="2" GOTO stop @@ -35,11 +35,11 @@ start javaw %JVM_OPTS% -jar %AppName% -echo starting���� +echo starting���� echo Start %AppName% success... goto:eof -rem ����stopͨ��jps�������pid���������� +rem ����stopͨ��jps�������pid���������� :stop for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do ( set pid=%%a @@ -48,7 +48,7 @@ if not defined pid (echo process %AppName% does not exists) else ( echo prepare to kill %image_name% echo start kill %pid% ... - rem ���ݽ���ID��kill���� + rem ���ݽ���ID��kill���� taskkill /f /pid %pid% ) goto:eof diff --git a/ry.sh b/ry.sh index d6a9cf3..5e80935 100644 --- a/ry.sh +++ b/ry.sh @@ -1,6 +1,6 @@ #!/bin/sh # ./ry.sh start 启动 stop 停止 restart 重启 status 状态 -AppName=ruoyi-admin.jar +AppName=expert-admin.jar # JVM参数 JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" diff --git a/sql/ry_20240629.sql b/sql/ry_20240629.sql index a8647d2..27b2560 100644 --- a/sql/ry_20240629.sql +++ b/sql/ry_20240629.sql @@ -161,7 +161,7 @@ insert into sys_menu values('1', '系统管理', '0', '1', 'system', null, '', '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate(), '', null, '系统管理目录'); insert into sys_menu values('2', '系统监控', '0', '2', 'monitor', null, '', '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate(), '', null, '系统监控目录'); insert into sys_menu values('3', '系统工具', '0', '3', 'tool', null, '', '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate(), '', null, '系统工具目录'); -insert into sys_menu values('4', '若依官网', '0', '4', 'http://ruoyi.vip', null, '', '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址'); +insert into sys_menu values('4', '若依官网', '0', '4', 'http://expert.vip', null, '', '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate(), '', null, '若依官网地址'); -- 二级菜单 insert into sys_menu values('100', '用户管理', '1', '1', 'user', 'system/user/index', '', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate(), '', null, '用户管理菜单'); insert into sys_menu values('101', '角色管理', '1', '2', 'role', 'system/role/index', '', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate(), '', null, '角色管理菜单'); -- Gitblit v1.9.2