diff --git a/deploy_dev.ps1 b/deploy_dev.ps1
index fd59bda..7172cad 100644
--- a/deploy_dev.ps1
+++ b/deploy_dev.ps1
@@ -1,5 +1,5 @@
-$src="./target/gunshi-project-xyt-1.0-SNAPSHOT.jar"
-$dst_dir="~/gunshiApp/tsg"
+$src="./target/gunshi-project-hsz-1.0-SNAPSHOT.jar"
+$dst_dir="~/gunshiApp/hsz"
$dst_host="10.0.41.112"
$dst_port=22
$user="root"
diff --git a/docker-compose.yml b/docker-compose.yml
index 34ee134..ccda26e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,14 +1,14 @@
services:
- xyt:
+ hsz:
image: openjdk:21
- container_name: tsg
+ container_name: hsz
restart: no
network_mode: host
volumes:
- - /root/gunshiApp/xyt:/app
+ - /root/gunshiApp/hsz:/app
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- SPRING_PROFILES_ACTIVE=dev
- TZ=Asia/Shanghai
- command: java -jar /app/gunshi-project-xyt-1.0-SNAPSHOT.jar
\ No newline at end of file
+ command: java -jar /app/gunshi-project-hsz-1.0-SNAPSHOT.jar
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index c86adad..1606168 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
1.4-SNAPSHOT
- gunshi-project-xyt
+ gunshi-project-hsz
1.0-SNAPSHOT
麻城小玉潭水库系统
@@ -231,7 +231,7 @@
- com.gunshi.project.xyt.Main
+ com.gunshi.project.hsz.Main
org.projectlombok
diff --git a/src/main/java/com/gunshi/project/hsz/Main.java b/src/main/java/com/gunshi/project/hsz/Main.java
new file mode 100644
index 0000000..96ae6c0
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/Main.java
@@ -0,0 +1,33 @@
+package com.gunshi.project.hsz;
+
+import com.github.jeffreyning.mybatisplus.conf.EnableMPP;
+import com.gunshi.core.annotation.GunShiApplication;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.servers.Server;
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.cache.annotation.EnableCaching;
+
+@OpenAPIDefinition(
+ servers = {
+ @Server(
+ url = "http://localhost:24105/gunshiApp/hsz",
+ description = "本地测试环境"
+ ),
+ @Server(
+ url = "http://local.gunshiiot.com:18083/gunshiApp/hsz",
+ description = "线上测试环境"
+ )
+ }
+)
+@GunShiApplication
+@MapperScan(basePackages = {"com.gunshi.**.mapper", "com.gunshi.**.model"})
+@Slf4j
+@EnableMPP
+@EnableCaching
+public class Main {
+ public static void main(String[] args) {
+ SpringApplication.run(Main.class, args);
+ }
+}
diff --git a/src/main/java/com/gunshi/project/hsz/config/MyE500UnknownExceptionResolver.java b/src/main/java/com/gunshi/project/hsz/config/MyE500UnknownExceptionResolver.java
new file mode 100644
index 0000000..7bd0e7d
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/config/MyE500UnknownExceptionResolver.java
@@ -0,0 +1,31 @@
+package com.gunshi.project.hsz.config;
+
+import com.gunshi.core.result.R;
+import com.gunshi.core.result.exception.ressolver.E500UnknownExceptionResolver;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.annotation.Order;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+
+
+/**
+ * Description:
+ * Created by XuSan on 2024/7/10.
+ *
+ * @author XuSan
+ * @version 1.0
+ */
+@RestControllerAdvice
+@Order
+@Slf4j
+public class MyE500UnknownExceptionResolver extends E500UnknownExceptionResolver {
+
+ public R resolve(Exception exception) {
+ log.error("系统未知异常,错误信息: " + exception.getMessage(), exception);
+ if (exception instanceof AccessDeniedException || exception.getMessage().contains("获取用户信息异常")) {
+ return R.error(405, "登录状态失效,请重新登录");
+ }
+ return R.error(500, "系统未知异常,错误信息: " + exception.getMessage());
+ }
+}
diff --git a/src/main/java/com/gunshi/project/hsz/config/OpenApiConfig.java b/src/main/java/com/gunshi/project/hsz/config/OpenApiConfig.java
new file mode 100644
index 0000000..d5353d6
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/config/OpenApiConfig.java
@@ -0,0 +1,27 @@
+package com.gunshi.project.hsz.config;
+
+import org.springdoc.core.models.GroupedOpenApi;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Description:
+ * Created by wanyan on 2024/7/8
+ *
+ * @author wanyan
+ * @version 1.0
+ */
+@Configuration
+public class OpenApiConfig {
+
+ @Bean
+ public GroupedOpenApi openApi() {
+ String[] packagesToScan = {
+ "com.gunshi.project.hsz.controller",
+ };
+ return GroupedOpenApi.builder()
+ .group("hsz")
+ .packagesToScan(packagesToScan)
+ .build();
+ }
+}
diff --git a/src/main/java/com/gunshi/project/hsz/controller/AbstractCommonFileController.java b/src/main/java/com/gunshi/project/hsz/controller/AbstractCommonFileController.java
new file mode 100644
index 0000000..d8e6c16
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/controller/AbstractCommonFileController.java
@@ -0,0 +1,100 @@
+package com.gunshi.project.hsz.controller;
+
+import com.gunshi.core.GunShiCoreProperties;
+import com.gunshi.core.result.R;
+import com.gunshi.core.session.entity.SessionUser;
+import com.gunshi.file.model.FileDescriptor;
+import com.gunshi.file.service.IFileService;
+import com.gunshi.file.service.LoginFileService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import jakarta.servlet.http.HttpServletRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-03-12
+ */
+public abstract class AbstractCommonFileController implements ICommonFileController {
+
+ @Override
+ public R uploadSingle(MultipartFile file, String groupId, String businessType, Long userId, HttpServletRequest request) throws Exception {
+ return ICommonFileController.super.uploadSingle(file, getGroupId(), getBusinessType(), userId, request);
+ }
+
+ /**
+ * 单个文件上传
+ *
+ * @param file 文件
+ * @param userId 上传者userId
+ */
+ @Operation(summary = "单个文件上传,不需要groupId和businessType")
+ @PostMapping(path = "/file/upload/singleSimple", consumes = "multipart/form-data")
+ @Override
+ public R uploadSingle(
+ @Parameter(description = "文件") @RequestPart("file") MultipartFile file,
+ @Parameter(description = "上传者用户id", hidden = true) @RequestParam(value = "userId", required = false) Long userId,
+ @Parameter(hidden = true) HttpServletRequest request) throws Exception {
+
+ if (userId == null) {
+ SessionUser sessionUser = checkLogin(request);
+ if (sessionUser == null) {
+ return R.error(400, "未登录", null);
+ }
+ userId = sessionUser.getUserId();
+ }
+
+ FileDescriptor fd = new FileDescriptor();
+ fd.setBusinessType(getBusinessType());
+ fd.setGroupId(getGroupId());
+ fd.setUserId(userId);
+ fd.setAccessGroup(getService().getAccessGroup());
+ fd.setFilePath(generateFilePath(getProperty().getAppCode(), getBusinessType(), userId, getGroupId(), file.getOriginalFilename()));
+ fd.setFileName(file.getOriginalFilename());
+ fd.setFileLength(file.getSize());
+
+ getService().upload(fd, file.getInputStream());
+
+ return R.ok(fd);
+ }
+
+ @Override
+ public String getBusinessType() {
+ return "common";
+ }
+
+ @Autowired
+ private LoginFileService service;
+
+ @Autowired
+ private GunShiCoreProperties properties;
+
+// @Autowired
+// private BaseSessionService sessionService;
+
+ @Override
+ public IFileService getService() {
+ return service;
+ }
+
+ @Override
+ public SessionUser checkLogin(HttpServletRequest request) {
+// String token = sessionService.getToken(request);
+// return sessionService.getSessionUser(token);
+ SessionUser user = new SessionUser();
+ user.setUserId(1L);
+ return user;
+ }
+
+ @Override
+ public GunShiCoreProperties getProperty() {
+ return properties;
+ }
+}
diff --git a/src/main/java/com/gunshi/project/hsz/controller/AppVersionRecordController.java b/src/main/java/com/gunshi/project/hsz/controller/AppVersionRecordController.java
new file mode 100644
index 0000000..214f624
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/controller/AppVersionRecordController.java
@@ -0,0 +1,53 @@
+package com.gunshi.project.hsz.controller;
+
+import com.gunshi.core.result.R;
+import com.gunshi.project.hsz.model.AppVersionRecord;
+import com.gunshi.project.hsz.service.AppVersionRecordService;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.utils.file.FileUploadUtils;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 描述: APP版本记录
+ * author: xusan
+ * date: 2024-11-12 10:14:50
+ */
+@Tag(name = "APP版本记录")
+@RestController
+@RequestMapping(value="/appVersionRecord")
+public class AppVersionRecordController {
+
+ @Autowired
+ private AppVersionRecordService service;
+
+ @PostMapping("/upload")
+ public R upload(@RequestParam("file") MultipartFile file, @RequestParam("version") String version, @RequestParam("versionDesc") String versionDesc) throws Exception
+ {
+ Map map = new HashMap<>();
+ if (!file.isEmpty())
+ {
+ String url = FileUploadUtils.upload(RuoYiConfig.getUploadPath(),file,null);
+ if (service.insertData(version,versionDesc,url))
+ {
+ map.put("url", url);
+ return R.ok(map);
+ }
+ }
+ return R.error(400,"上传失败");
+ }
+
+
+
+ @Operation(summary = "最新记录")
+ @GetMapping("/latest")
+ public R latest() {
+ return R.ok(service.getLatest());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/gunshi/project/hsz/controller/AssessCategoryController.java b/src/main/java/com/gunshi/project/hsz/controller/AssessCategoryController.java
new file mode 100644
index 0000000..9dd9d19
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/controller/AssessCategoryController.java
@@ -0,0 +1,56 @@
+package com.gunshi.project.hsz.controller;
+
+import com.gunshi.core.result.R;
+import com.gunshi.project.hsz.model.AssessCategory;
+import com.gunshi.project.hsz.service.AssessCategoryService;
+import com.gunshi.project.hsz.validate.markers.Insert;
+import com.gunshi.project.hsz.validate.markers.Update;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.Serializable;
+import java.util.List;
+/**
+ * 描述: 考核类目
+ * author: xusan
+ * date: 2024-09-03 17:46:30
+ */
+@Tag(name = "考核类目")
+@RestController
+@RequestMapping(value="/assessCategory")
+public class AssessCategoryController {
+
+ @Autowired
+ private AssessCategoryService service;
+
+
+ @Operation(summary = "新增")
+ @PostMapping("/insert")
+ public R insert(@Validated(Insert.class) @RequestBody AssessCategory dto) {
+ return R.ok(service.saveData(dto));
+ }
+
+ @Operation(summary = "修改")
+ @PostMapping("/update")
+ public R update(@Validated(Update.class) @RequestBody AssessCategory dto) {
+ return R.ok(service.updateData(dto));
+ }
+
+ @Operation(summary = "删除")
+ @GetMapping("/del/{id}")
+ public R del(@Schema(name = "id") @PathVariable("id") Serializable id) {
+ return R.ok(service.delData(id));
+ }
+
+ @Operation(summary = "列表")
+ @PostMapping("/list")
+ public R> list() {
+ return R.ok(service.lambdaQuery().orderByAsc(AssessCategory::getOrderIndex).list());
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/gunshi/project/hsz/controller/AssessIndicatorController.java b/src/main/java/com/gunshi/project/hsz/controller/AssessIndicatorController.java
new file mode 100644
index 0000000..2386f55
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/controller/AssessIndicatorController.java
@@ -0,0 +1,68 @@
+package com.gunshi.project.hsz.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.core.result.R;
+import com.gunshi.project.hsz.entity.dto.InspectItemDto;
+import com.gunshi.project.hsz.entity.so.AttCctvBasePage;
+import com.gunshi.project.hsz.model.AssessIndicator;
+import com.gunshi.project.hsz.service.AssessIndicatorService;
+import com.gunshi.project.hsz.validate.markers.Insert;
+import com.gunshi.project.hsz.validate.markers.Update;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+/**
+ * 描述: 考核指标
+ * author: xusan
+ * date: 2024-09-03 17:46:56
+ */
+@Tag(name = "考核指标")
+@RestController
+@RequestMapping(value="/assessIndicator")
+public class AssessIndicatorController {
+
+ @Autowired
+ private AssessIndicatorService service;
+
+
+ @Operation(summary = "新增")
+ @PostMapping("/insert")
+ public R insert(@Validated(Insert.class) @RequestBody AssessIndicator dto) {
+ return R.ok(service.saveData(dto));
+ }
+
+ @Operation(summary = "修改")
+ @PostMapping("/update")
+ public R update(@Validated(Update.class) @RequestBody AssessIndicator dto) {
+ return R.ok(service.updateData(dto));
+ }
+
+ @Operation(summary = "删除")
+ @GetMapping("/del/{id}")
+ public R del(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.delData(id));
+ }
+
+ @Operation(summary = "启停")
+ @PostMapping("/startStop")
+ public R startStop(@RequestBody InspectItemDto dto) {
+ return R.ok(service.startStop(dto));
+ }
+
+
+ @Operation(summary = "分页")
+ @PostMapping("/page")
+ public R> page(@RequestBody @Validated AttCctvBasePage page) {
+ return R.ok(service.pageQuery(page));
+ }
+
+ @Operation(summary = "选择指标")
+ @PostMapping("/choose")
+ public R> choosePage(@RequestBody @Validated AttCctvBasePage page) {
+ return R.ok(service.choosePage(page));
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/gunshi/project/hsz/controller/AssessTaskController.java b/src/main/java/com/gunshi/project/hsz/controller/AssessTaskController.java
new file mode 100644
index 0000000..5b0fecd
--- /dev/null
+++ b/src/main/java/com/gunshi/project/hsz/controller/AssessTaskController.java
@@ -0,0 +1,132 @@
+package com.gunshi.project.hsz.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.core.result.R;
+import com.gunshi.db.dto.MonthRangeSo;
+import com.gunshi.project.hsz.entity.so.AssessTaskPageSo;
+import com.gunshi.project.hsz.entity.vo.AssessResultVo;
+import com.gunshi.project.hsz.model.AssessTask;
+import com.gunshi.project.hsz.service.AssessTaskService;
+import com.gunshi.project.hsz.validate.markers.Insert;
+import com.gunshi.project.hsz.validate.markers.Update;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 描述: 考核任务
+ * author: xusan
+ * date: 2024-09-05 14:19:04
+ */
+@Tag(name = "考核任务")
+@RestController
+@RequestMapping(value="/assessTask")
+public class AssessTaskController extends AbstractCommonFileController{
+
+ @Autowired
+ private AssessTaskService service;
+
+
+ @Operation(summary = "新增")
+ @PostMapping("/insert")
+ public R insert(@Validated(Insert.class) @RequestBody AssessTask dto) {
+ return R.ok(service.saveData(dto));
+ }
+
+ @Operation(summary = "修改")
+ @PostMapping("/update")
+ public R update(@Validated(Update.class) @RequestBody AssessTask dto) {
+ return R.ok(service.updateData(dto));
+ }
+
+ @Operation(summary = "删除")
+ @GetMapping("/del/{id}")
+ public R del(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.delData(id));
+ }
+
+ @Operation(summary = "详情")
+ @GetMapping("/detail/{id}")
+ public R detail(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.detail(id));
+ }
+
+ @Operation(summary = "考核任务清单")
+ @PostMapping("/list/page")
+ public R> listPage(@Validated @RequestBody AssessTaskPageSo page) {
+ return R.ok(service.listPage(page));
+ }
+
+ @Operation(summary = "启动")
+ @GetMapping("/start/{id}")
+ public R start(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.start(id));
+ }
+
+ @Operation(summary = "我的待办")
+ @PostMapping("/myTodo/page")
+ public R> myTodo(@Validated @RequestBody AssessTaskPageSo page) {
+ return R.ok(service.myTodo(page));
+ }
+
+ @Operation(summary = "我的已办")
+ @PostMapping("/myDone/page")
+ public R> myDone(@Validated @RequestBody AssessTaskPageSo page) {
+ return R.ok(service.myDone(page));
+ }
+
+ @Operation(summary = "审核通过")
+ @GetMapping("/pass/{id}")
+ public R pass(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.pass(id));
+ }
+
+ @Operation(summary = "作废")
+ @GetMapping("/cancel/{id}")
+ public R cancel(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.cancel(id));
+ }
+
+ @Operation(summary = "驳回评分")
+ @GetMapping("/reject/{id}")
+ public R reject(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.reject(id));
+ }
+
+ @Operation(summary = "考核结果")
+ @GetMapping("/result/{id}")
+ public R> result(@Schema(name = "id") @PathVariable("id") Long id) {
+ return R.ok(service.result(id));
+ }
+
+ @Operation(summary = "考核结果导出")
+ @GetMapping("/result/export")
+ public void resultExport(@RequestParam("id") @Parameter(description = "考核任务id") Long id, HttpServletResponse response) {
+ service.resultExport(id,response);
+ }
+
+ @Operation(summary = "人员考核结果")
+ @PostMapping("/result/stat")
+ public R> resultStat(@Validated @RequestBody MonthRangeSo monthRangeSo) {
+ return R.ok(service.resultStat(monthRangeSo));
+ }
+
+ @Operation(summary = "等级统计")
+ @PostMapping("/level/stat")
+ public R