Browse Source

初始化项目配置

aqm-ops-supervision-platform
gjh 3 weeks ago
parent
commit
4f3e2ca59d
  1. 5
      pom.xml
  2. 6
      ruoyi-admin/pom.xml
  3. 26
      ruoyi-admin/src/main/resources/application-dev.yml
  4. 4
      ruoyi-admin/src/main/resources/application.yml
  5. 113
      ruoyi-modules/guoyan-platform/pom.xml
  6. 70
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/TestController.java
  7. 105
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java
  8. 45
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectManager.java
  9. 124
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java
  10. 137
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderInfoBo.java
  11. 147
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java
  12. 63
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/listener/ProjectManagerListener.java
  13. 36
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/ProjectManagerMapper.java
  14. 15
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java
  15. 68
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java
  16. 28
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/ProjectManagerService.java
  17. 38
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectManagerServiceImpl.java
  18. 145
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java
  19. 11
      ruoyi-modules/guoyan-platform/src/main/resources/mapper/platform/ProjectManagerMapper.xml
  20. 1
      ruoyi-modules/pom.xml

5
pom.xml

@ -346,11 +346,6 @@
<version>${revision}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>guoyan-platform</artifactId>
<version>${revision}</version>
</dependency>
<!-- 工作流模块 -->
<dependency>

6
ruoyi-admin/pom.xml

@ -86,11 +86,7 @@
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
<!-- guoyan-platform-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>guoyan-platform</artifactId>
</dependency>
<!-- 工作流模块 -->
<dependency>

26
ruoyi-admin/src/main/resources/application-dev.yml

@ -1,7 +1,7 @@
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@ -13,7 +13,7 @@ spring.boot.admin.client:
--- # snail-job 配置
snail-job:
enabled: true
enabled: false
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
group: "ruoyi_group"
# SnailJob 接入验证令牌 详见 script/sql/snail_job.sql `sj_group_config` 表
@ -47,17 +47,17 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://localhost:3306/air_quality?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: root
password: 1234
# 从库数据源
slave:
lazy: true
type: ${spring.datasource.type}
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username:
password:
# slave:
# lazy: true
# type: ${spring.datasource.type}
# driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# username:
# password:
# oracle:
# type: ${spring.datasource.type}
# driverClassName: oracle.jdbc.OracleDriver
@ -100,9 +100,9 @@ spring.data:
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
database: 11
# redis 密码必须配置
password: ruoyi123
# password: ruoyi123
# 连接超时时间
timeout: 10s
# 是否开启ssl

4
ruoyi-admin/src/main/resources/application.yml

@ -21,7 +21,7 @@ captcha:
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
# 服务器的HTTP端口,默认为8080 远程dev:8084
port: 8080
servlet:
# 应用的访问路径
@ -70,7 +70,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: @profiles.active@
active: dev
# 文件上传
servlet:
multipart:

113
ruoyi-modules/guoyan-platform/pom.xml

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi-modules</artifactId>
<groupId>org.dromara</groupId>
<version>5.2.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>guoyan-platform</artifactId>
<dependencies>
<!-- 通用工具-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-doc</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sms</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-mail</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-redis</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-idempotent</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-log</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-excel</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-security</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-web</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-ratelimiter</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-translation</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sensitive</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-encrypt</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-tenant</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
</dependencies>
</project>

70
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/TestController.java

@ -1,70 +0,0 @@
package org.dromara.platform.controller;
import com.alibaba.excel.EasyExcel;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.listener.ProjectManagerListener;
import org.dromara.platform.service.ProjectManagerService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDate;
/**
* @Author gejunhao
* @Date 2025/1/10 14:11
* @Description: 测试接口
*/
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/test")
public class TestController {
@GetMapping("/hello")
public void test(HttpServletResponse response) throws IOException {
log.warn("hello word!");
response.setContentType("text/html;charset=utf8");
response.getWriter().println("调用接口成功!");
}
@Resource
private ProjectManagerService projectManagerService;
@PostMapping("/uploadProjectManager")
public void upload(MultipartFile file, HttpServletResponse response) throws IOException {
long t1 = System.currentTimeMillis();
EasyExcel.read(file.getInputStream(), ProjectManager.class, new ProjectManagerListener(projectManagerService)).sheet().doRead();
response.setContentType("text/html;charset=utf8");
long t2 = System.currentTimeMillis();
response.getWriter().println("导入数据成功!,共用时:"+(t2-t1));
log.info("导入项目负责人数据成功! 共用时:{}ms",(t2-t1));
}
@GetMapping("/downloadProjectManager")
public void download(HttpServletResponse response) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String flag = "项目负责人信息";
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
LocalDate currentDate = LocalDate.now();
System.out.println("当前日期: " + currentDate);
String fileName = URLEncoder.encode( flag+currentDate, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), ProjectManager.class)
.sheet("项目联系人信息"+currentDate)
.doWrite(projectManagerService.getData());
}
}

105
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/WorkOrderInfoController.java

@ -1,105 +0,0 @@
package org.dromara.platform.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.platform.service.IWorkOrderInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 工单信息
*
* @author gejunhao
* @date 2025-01-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/platform/workOrder")
public class WorkOrderInfoController extends BaseController {
private final IWorkOrderInfoService workOrderInfoService;
/**
* 查询工单信息列表
*/
@SaCheckPermission("platform:workOrder:list")
@GetMapping("/list")
public TableDataInfo<WorkOrderInfoVo> list(WorkOrderInfoBo bo, PageQuery pageQuery) {
return workOrderInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出工单信息列表
*/
@SaCheckPermission("platform:workOrder:export")
@Log(title = "工单信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WorkOrderInfoBo bo, HttpServletResponse response) {
List<WorkOrderInfoVo> list = workOrderInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "工单信息", WorkOrderInfoVo.class, response);
}
/**
* 获取工单信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("platform:workOrder:query")
@GetMapping("/{id}")
public R<WorkOrderInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(workOrderInfoService.queryById(id));
}
/**
* 新增工单信息
*/
@SaCheckPermission("platform:workOrder:add")
@Log(title = "工单信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/add")
public R<Void> add(@Validated(AddGroup.class) @RequestBody WorkOrderInfoBo bo) {
return toAjax(workOrderInfoService.insertByBo(bo));
}
/**
* 修改工单信息
*/
@SaCheckPermission("platform:workOrder:edit")
@Log(title = "工单信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/update")
public R<Void> edit(@RequestBody WorkOrderInfoBo bo) {
return toAjax(workOrderInfoService.updateByBo(bo));
}
/**
* 删除工单信息
*
* @param ids 主键串
*/
@SaCheckPermission("platform:workOrder:remove")
@Log(title = "工单信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(workOrderInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

45
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ProjectManager.java

@ -1,45 +0,0 @@
package org.dromara.platform.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author 14212
* @TableName project_manager
*/
@TableName(value ="project_manager")
@Data
public class ProjectManager implements Serializable {
@ExcelProperty(value = "序号")
//@TableId(type = IdType.AUTO)
@TableField(exist = false)
private Integer id;
@ExcelProperty(value = "项目名称")
private String projectName;
/**
* 可以有多个项目负责人
*/
@ExcelProperty(value = "项目负责人")
private String manager;
@ExcelProperty(value = "联系方式")
private String phone;
@ExcelIgnore
private String tenantId;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

124
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/WorkOrderInfo.java

@ -1,124 +0,0 @@
package org.dromara.platform.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
/**
* 工单信息对象 work_order_info
*
* @author gejunhao
* @date 2025-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("work_order_info")
public class WorkOrderInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单ID
*/
@TableId(value = "id")
private String id;
/**
* 所属项目
*/
private String projectName;
/**
* 报修人员
*/
private String repairer;
/**
* 保修人员ID
*/
private Long repairerId;
/**
* 是否事故 (0: , 1: )
*/
private Long isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
private String responseLevel;
/**
* 响应时限
*/
private Long responseTime;
/**
* 故障大类
*/
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
private String faultSubcategory;
/**
* 所属机构
*/
private String institution;
/**
* 故障地点
*/
private String faultLocation;
/**
* 故障描述
*/
private String faultDescription;
/**
* 故障图片
*/
private String faultImage;
/**
* 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)
*/
private String maintenanceRequirement;
/**
* 派遣意见
*/
private String dispatchOpinion;
/**
* 是否派遣 (0: , 1: )
*/
private Long isDispatched;
/**
* 纬度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

137
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/WorkOrderInfoBo.java

@ -1,137 +0,0 @@
package org.dromara.platform.domain.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
/**
* 工单信息业务对象 work_order_info
*
* @author gejunhao
* @date 2025-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = WorkOrderInfo.class, reverseConvertGenerate = false)
public class WorkOrderInfoBo extends BaseEntity {
/**
* 工单ID
*/
//@NotBlank(message = "工单ID不能为空", groups = { EditGroup.class })
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
* 所属项目
*/
@NotBlank(message = "所属项目不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 报修人员
*/
@NotBlank(message = "报修人员不能为空", groups = { AddGroup.class, EditGroup.class })
private String repairer;
/**
* 保修人员ID
*/
@NotNull(message = "保修人员ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long repairerId;
/**
* 是否事故 (0: , 1: )
*/
@NotNull(message = "是否事故 (0: 否, 1: 是)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
@NotBlank(message = "响应级别 (0: 常规, 1: 紧急, 2: 特急)不能为空", groups = { AddGroup.class, EditGroup.class })
private String responseLevel;
/**
* 响应时限
*/
@NotNull(message = "响应时限不能为空", groups = { AddGroup.class, EditGroup.class })
private Long responseTime;
/**
* 故障大类
*/
@NotBlank(message = "故障大类不能为空", groups = { AddGroup.class, EditGroup.class })
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
@NotBlank(message = "故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)不能为空", groups = { AddGroup.class, EditGroup.class })
private String faultSubcategory;
/**
* 所属机构
*/
@NotBlank(message = "所属机构不能为空", groups = { AddGroup.class, EditGroup.class })
private String institution;
/**
* 故障地点
*/
@NotBlank(message = "故障地点不能为空", groups = { AddGroup.class, EditGroup.class })
private String faultLocation;
/**
* 故障描述
*/
@NotBlank(message = "故障描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String faultDescription;
/**
* 故障图片
*/
@NotBlank(message = "故障图片不能为空", groups = { AddGroup.class, EditGroup.class })
private String faultImage;
/**
* 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)
*/
@NotBlank(message = "维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)不能为空", groups = { AddGroup.class, EditGroup.class })
private String maintenanceRequirement;
/**
* 派遣意见
*/
@NotBlank(message = "派遣意见不能为空", groups = { AddGroup.class, EditGroup.class })
private String dispatchOpinion;
/**
* 是否派遣 (0: , 1: )
*/
@NotNull(message = "是否派遣 (0: 否, 1: 是)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isDispatched;
/**
* 纬度
*/
@NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
private String latitude;
/**
* 经度
*/
@NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
private String longitude;
}

147
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/WorkOrderInfoVo.java

@ -1,147 +0,0 @@
package org.dromara.platform.domain.vo;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.platform.domain.WorkOrderInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 工单信息视图对象 work_order_info
*
* @author gejunhao
* @date 2025-01-13
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = WorkOrderInfo.class)
public class WorkOrderInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单ID
*/
@ExcelProperty(value = "工单ID")
private String id;
/**
* 所属项目
*/
@ExcelProperty(value = "所属项目")
private String projectName;
/**
* 报修人员
*/
@ExcelProperty(value = "报修人员")
private String repairer;
/**
* 保修人员ID
*/
@ExcelProperty(value = "保修人员ID")
private Long repairerId;
/**
* 是否事故 (0: , 1: )
*/
@ExcelProperty(value = "是否事故 (0: 否, 1: 是)")
private Long isAccident;
/**
* 响应级别 (0: 常规, 1: 紧急, 2: 特急)
*/
@ExcelProperty(value = "响应级别 (0: 常规, 1: 紧急, 2: 特急)")
private String responseLevel;
/**
* 响应时限
*/
@ExcelProperty(value = "响应时限")
private Long responseTime;
/**
* 故障大类
*/
@ExcelProperty(value = "故障大类")
private String faultCategory;
/**
* 故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)
*/
@ExcelProperty(value = "故障小类 (0: 电源故障, 1: 光缆故障, 2: 设备故障, 3: 监控故障, 4: 抓拍方向偏移, 5: 树枝遮挡, 6: 无图像, 7: 图像模糊)")
private String faultSubcategory;
/**
* 所属机构
*/
@ExcelProperty(value = "所属机构")
private String institution;
/**
* 故障地点
*/
@ExcelProperty(value = "故障地点")
private String faultLocation;
/**
* 故障描述
*/
@ExcelProperty(value = "故障描述")
private String faultDescription;
/**
* 故障图片
*/
@ExcelProperty(value = "故障图片")
private String faultImage;
/**
* 故障图片Url
*/
@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "faultImage")
private String faultImageUrl;
/**
* 维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)
*/
@ExcelProperty(value = "维护要求 (0: 修复, 1: 新增, 2: 拆除, 3: 清除, 4: 其他)")
private String maintenanceRequirement;
/**
* 派遣意见
*/
@ExcelProperty(value = "派遣意见")
private String dispatchOpinion;
/**
* 是否派遣 (0: , 1: )
*/
@ExcelProperty(value = "是否派遣 (0: 否, 1: 是)")
private Long isDispatched;
/**
* 纬度
*/
@ExcelProperty(value = "纬度")
private String latitude;
/**
* 经度
*/
@ExcelProperty(value = "经度")
private String longitude;
}

63
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/listener/ProjectManagerListener.java

@ -1,63 +0,0 @@
package org.dromara.platform.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import lombok.extern.slf4j.Slf4j;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.service.ProjectManagerService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* 自定义监听器读数据
* @author gjh
*/
@Slf4j
public class ProjectManagerListener implements ReadListener<ProjectManager> {
private List<ProjectManager> list = new ArrayList<>();
/**
* 自己定义一个缓冲量
*/
private static final int BATCH_COUNT = 20;
@Autowired
private ProjectManagerService projectManagerService;
public ProjectManagerListener(ProjectManagerService projectManagerService) {
this.projectManagerService = projectManagerService;
}
/**
* 每读一行数据都会调用这个方法
*
* @param projectManager
* @param analysisContext
*/
@Override
public void invoke(ProjectManager projectManager, AnalysisContext analysisContext) {
// 读取一行数据就添加到集合
list.add(projectManager);
// 判断是否到达缓存量了
if (list.size() >= BATCH_COUNT){
// 操作数据库
projectManagerService.addData(list);
list = new ArrayList<>(BATCH_COUNT);
}
}
/**
* 读完整个excel之后再调用这个方法
*
* @param analysisContext
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
if (list.size()>0){
projectManagerService.addData(list);
}
}
}

36
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/ProjectManagerMapper.java

@ -1,36 +0,0 @@
package org.dromara.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.Select;
import org.dromara.platform.domain.ProjectManager;
import java.util.List;
/**
* @author 14212
* @description 针对表project_manager的数据库操作Mapper
* @createDate 2025-01-08 09:22:14
* @Entity com.gejunhao.pojo.ProjectManager
*/
public interface ProjectManagerMapper extends BaseMapper<ProjectManager> {
/**
*从数据库中获取数据
* @return
*/
@Select("select * from project_manager")
@ResultType(ProjectManager.class)
List<ProjectManager> getDate();
/**
* xml写法
* @return
*/
@ResultType(ProjectManager.class)
List<ProjectManager> selectAll();
}

15
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/mapper/WorkOrderInfoMapper.java

@ -1,15 +0,0 @@
package org.dromara.platform.mapper;
import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 工单信息Mapper接口
*
* @author gejunhao
* @date 2025-01-10
*/
public interface WorkOrderInfoMapper extends BaseMapperPlus<WorkOrderInfo, WorkOrderInfoVo> {
}

68
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IWorkOrderInfoService.java

@ -1,68 +0,0 @@
package org.dromara.platform.service;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 工单信息Service接口
*
* @author gejunhao
* @date 2025-01-13
*/
public interface IWorkOrderInfoService {
/**
* 查询工单信息
*
* @param id 主键
* @return 工单信息
*/
WorkOrderInfoVo queryById(String id);
/**
* 分页查询工单信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 工单信息分页列表
*/
TableDataInfo<WorkOrderInfoVo> queryPageList(WorkOrderInfoBo bo, PageQuery pageQuery);
/**
* 查询符合条件的工单信息列表
*
* @param bo 查询条件
* @return 工单信息列表
*/
List<WorkOrderInfoVo> queryList(WorkOrderInfoBo bo);
/**
* 新增工单信息
*
* @param bo 工单信息
* @return 是否新增成功
*/
Boolean insertByBo(WorkOrderInfoBo bo);
/**
* 修改工单信息
*
* @param bo 工单信息
* @return 是否修改成功
*/
Boolean updateByBo(WorkOrderInfoBo bo);
/**
* 校验并批量删除工单信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
}

28
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/ProjectManagerService.java

@ -1,28 +0,0 @@
package org.dromara.platform.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.platform.domain.ProjectManager;
import java.util.List;
/**
* @author 14212
* @description 针对表project_manager的数据库操作Service
* @createDate 2025-01-08 09:22:14
*/
public interface ProjectManagerService extends IService<ProjectManager> {
/**
* 批量插入数据
* @param list
*/
public void addData(List<ProjectManager> list);
/**
* 从数据库中获取数据
* @return
*/
public List<ProjectManager> getData();
}

38
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ProjectManagerServiceImpl.java

@ -1,38 +0,0 @@
package org.dromara.platform.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.dromara.platform.domain.ProjectManager;
import org.dromara.platform.mapper.ProjectManagerMapper;
import org.dromara.platform.service.ProjectManagerService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 14212
* @description 针对表project_manager的数据库操作Service实现
* @createDate 2025-01-08 09:22:14
*/
@Service
public class ProjectManagerServiceImpl extends ServiceImpl<ProjectManagerMapper, ProjectManager>
implements ProjectManagerService {
@Resource
private ProjectManagerMapper projectManagerMapper;
@Override
public void addData(List<ProjectManager> list) {
this.saveBatch(list);
}
@Override
public List<ProjectManager> getData() {
List<ProjectManager> projectManagers = projectManagerMapper.selectAll();
return projectManagers;
}
}

145
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/WorkOrderInfoServiceImpl.java

@ -1,145 +0,0 @@
package org.dromara.platform.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.platform.domain.bo.WorkOrderInfoBo;
import org.dromara.platform.domain.vo.WorkOrderInfoVo;
import org.dromara.platform.domain.WorkOrderInfo;
import org.dromara.platform.mapper.WorkOrderInfoMapper;
import org.dromara.platform.service.IWorkOrderInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 工单信息Service业务层处理
*
* @author gejunhao
* @date 2025-01-13
*/
@RequiredArgsConstructor
@Service
public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService {
private final WorkOrderInfoMapper baseMapper;
/**
* 查询工单信息
*
* @param id 主键
* @return 工单信息
*/
@Override
public WorkOrderInfoVo queryById(String id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询工单信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 工单信息分页列表
*/
@Override
public TableDataInfo<WorkOrderInfoVo> queryPageList(WorkOrderInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo);
Page<WorkOrderInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的工单信息列表
*
* @param bo 查询条件
* @return 工单信息列表
*/
@Override
public List<WorkOrderInfoVo> queryList(WorkOrderInfoBo bo) {
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WorkOrderInfo> buildQueryWrapper(WorkOrderInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WorkOrderInfo> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), WorkOrderInfo::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getRepairer()), WorkOrderInfo::getRepairer, bo.getRepairer());
lqw.eq(bo.getRepairerId() != null, WorkOrderInfo::getRepairerId, bo.getRepairerId());
lqw.eq(bo.getIsAccident() != null, WorkOrderInfo::getIsAccident, bo.getIsAccident());
lqw.eq(StringUtils.isNotBlank(bo.getResponseLevel()), WorkOrderInfo::getResponseLevel, bo.getResponseLevel());
lqw.eq(bo.getResponseTime() != null, WorkOrderInfo::getResponseTime, bo.getResponseTime());
lqw.eq(StringUtils.isNotBlank(bo.getFaultCategory()), WorkOrderInfo::getFaultCategory, bo.getFaultCategory());
lqw.eq(StringUtils.isNotBlank(bo.getFaultSubcategory()), WorkOrderInfo::getFaultSubcategory, bo.getFaultSubcategory());
lqw.eq(StringUtils.isNotBlank(bo.getInstitution()), WorkOrderInfo::getInstitution, bo.getInstitution());
lqw.eq(StringUtils.isNotBlank(bo.getFaultLocation()), WorkOrderInfo::getFaultLocation, bo.getFaultLocation());
lqw.eq(StringUtils.isNotBlank(bo.getFaultDescription()), WorkOrderInfo::getFaultDescription, bo.getFaultDescription());
lqw.eq(StringUtils.isNotBlank(bo.getFaultImage()), WorkOrderInfo::getFaultImage, bo.getFaultImage());
lqw.eq(StringUtils.isNotBlank(bo.getMaintenanceRequirement()), WorkOrderInfo::getMaintenanceRequirement, bo.getMaintenanceRequirement());
lqw.eq(StringUtils.isNotBlank(bo.getDispatchOpinion()), WorkOrderInfo::getDispatchOpinion, bo.getDispatchOpinion());
lqw.eq(bo.getIsDispatched() != null, WorkOrderInfo::getIsDispatched, bo.getIsDispatched());
lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), WorkOrderInfo::getLatitude, bo.getLatitude());
lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), WorkOrderInfo::getLongitude, bo.getLongitude());
return lqw;
}
/**
* 新增工单信息
*
* @param bo 工单信息
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(WorkOrderInfoBo bo) {
WorkOrderInfo add = MapstructUtils.convert(bo, WorkOrderInfo.class);
//validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改工单信息
*
* @param bo 工单信息
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(WorkOrderInfoBo bo) {
WorkOrderInfo update = MapstructUtils.convert(bo, WorkOrderInfo.class);
//validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WorkOrderInfo entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除工单信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

11
ruoyi-modules/guoyan-platform/src/main/resources/mapper/platform/ProjectManagerMapper.xml

@ -1,11 +0,0 @@
<?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="org.dromara.platform.mapper.ProjectManagerMapper">
<select id="selectAll" resultType="org.dromara.platform.domain.ProjectManager">
select * from project_manager
</select>
</mapper>

1
ruoyi-modules/pom.xml

@ -15,7 +15,6 @@
<module>ruoyi-job</module>
<module>ruoyi-system</module>
<module>ruoyi-workflow</module>
<module>guoyan-platform</module>
</modules>
<artifactId>ruoyi-modules</artifactId>

Loading…
Cancel
Save