Compare commits
37 Commits
master
...
aqm-ops-su
| Author | SHA1 | Date |
|---|---|---|
|
|
3eaaa50be4 | 6 days ago |
|
|
831c9ced5c | 6 days ago |
|
|
47d9a55220 | 6 days ago |
|
|
98db15c66a | 1 week ago |
|
|
121c3847e1 | 1 week ago |
|
|
6aa4d08672 | 1 week ago |
|
|
781e847749 | 1 week ago |
|
|
e9e5c4780f | 2 weeks ago |
|
|
27f168f99c | 2 weeks ago |
|
|
cbc0c54b15 | 2 weeks ago |
|
|
a1f3106c1e | 2 weeks ago |
|
|
f29728021e | 2 months ago |
|
|
c8be42cf9d | 2 months ago |
|
|
8978e4dd4d | 2 months ago |
|
|
93bd2a5b06 | 2 months ago |
|
|
0f22a3e903 | 2 months ago |
|
|
11ba1b0b71 | 2 months ago |
|
|
45f75c54b7 | 2 months ago |
|
|
5d9219cd03 | 2 months ago |
|
|
2b1bead206 | 2 months ago |
|
|
31729716c8 | 2 months ago |
|
|
923bdac17a | 2 months ago |
|
|
7f07b271b0 | 2 months ago |
|
|
137f7d2504 | 2 months ago |
|
|
b5c46276fd | 2 months ago |
|
|
46e217ba42 | 2 months ago |
|
|
d1066456e8 | 2 months ago |
|
|
47f74ac8a2 | 2 months ago |
|
|
1899f6192e | 2 months ago |
|
|
7e9c2fcb0d | 2 months ago |
|
|
fe3c307063 | 2 months ago |
|
|
1844430c08 | 2 months ago |
|
|
3ecb8c6fd6 | 2 months ago |
|
|
21da09bec5 | 2 months ago |
|
|
90568ae6d5 | 2 months ago |
|
|
9cbba69972 | 2 months ago |
|
|
4f3e2ca59d | 3 months ago |
143 changed files with 9719 additions and 1086 deletions
@ -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> |
|||
@ -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()); |
|||
} |
|||
} |
|||
@ -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; |
|||
} |
|||
@ -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; |
|||
|
|||
|
|||
} |
|||
@ -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; |
|||
|
|||
|
|||
} |
|||
@ -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; |
|||
|
|||
|
|||
} |
|||
@ -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); |
|||
} |
|||
} |
|||
} |
|||
@ -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(); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
@ -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> { |
|||
|
|||
} |
|||
@ -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(); |
|||
} |
|||
@ -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; |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
@ -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; |
|||
} |
|||
} |
|||
@ -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> |
|||
@ -0,0 +1,33 @@ |
|||
package org.dromara.demo.controller; |
|||
|
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.io.IOException; |
|||
|
|||
/** |
|||
* @Author gejunhao |
|||
* @Date 2025/1/10 14:11 |
|||
* @Description: 测试接口 |
|||
*/ |
|||
@Slf4j |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/test") |
|||
public class DemoController { |
|||
|
|||
@GetMapping("/hello") |
|||
public void test(HttpServletResponse response) throws IOException { |
|||
log.info("hello word!"); |
|||
response.setContentType("text/html;charset=utf8"); |
|||
response.getWriter().println("GJH-调用接口成功!"); |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,117 @@ |
|||
package org.dromara.demo.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.dromara.demo.domain.vo.StationSelectVo; |
|||
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.demo.domain.vo.DeviceInfoVo; |
|||
import org.dromara.demo.domain.bo.DeviceInfoBo; |
|||
import org.dromara.demo.service.IDeviceInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 设备信息 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/deviceInfo") |
|||
public class DeviceInfoController extends BaseController { |
|||
|
|||
private final IDeviceInfoService deviceInfoService; |
|||
|
|||
/** |
|||
* 查询设备信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<DeviceInfoVo> list(DeviceInfoBo bo, PageQuery pageQuery) { |
|||
return deviceInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出设备信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:export")
|
|||
@Log(title = "设备信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(DeviceInfoBo bo, HttpServletResponse response) { |
|||
List<DeviceInfoVo> list = deviceInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "设备信息", DeviceInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取设备信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<DeviceInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(deviceInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增设备信息 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:add")
|
|||
@Log(title = "设备信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceInfoBo bo) { |
|||
return toAjax(deviceInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改设备信息 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:edit")
|
|||
@Log(title = "设备信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceInfoBo bo) { |
|||
return toAjax(deviceInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除设备信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:deviceInfo:remove")
|
|||
@Log(title = "设备信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(deviceInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 获取站点名称下拉框列表 |
|||
* @return |
|||
*/ |
|||
@GetMapping("/getStationList") |
|||
public R< List<StationSelectVo>> getStationList() { |
|||
List<StationSelectVo> stationList = deviceInfoService.getStationList(); |
|||
return R.ok(stationList); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.OrderManagementInfoVo; |
|||
import org.dromara.demo.domain.bo.OrderManagementInfoBo; |
|||
import org.dromara.demo.service.IOrderManagementInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 现场核查单管理信息 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/managementInfo") |
|||
public class OrderManagementInfoController extends BaseController { |
|||
|
|||
private final IOrderManagementInfoService orderManagementInfoService; |
|||
|
|||
/** |
|||
* 查询现场核查单管理信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<OrderManagementInfoVo> list(OrderManagementInfoBo bo, PageQuery pageQuery) { |
|||
return orderManagementInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出现场核查单管理信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:export")
|
|||
@Log(title = "现场核查单管理信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(OrderManagementInfoBo bo, HttpServletResponse response) { |
|||
List<OrderManagementInfoVo> list = orderManagementInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "现场核查单管理信息", OrderManagementInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取现场核查单管理信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<OrderManagementInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(orderManagementInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增现场核查单管理信息 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:add")
|
|||
@Log(title = "现场核查单管理信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderManagementInfoBo bo) { |
|||
return toAjax(orderManagementInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改现场核查单管理信息 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:edit")
|
|||
@Log(title = "现场核查单管理信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderManagementInfoBo bo) { |
|||
return toAjax(orderManagementInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除现场核查单管理信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:managementInfo:remove")
|
|||
@Log(title = "现场核查单管理信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(orderManagementInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.PeopleCheckInfoVo; |
|||
import org.dromara.demo.domain.bo.PeopleCheckInfoBo; |
|||
import org.dromara.demo.service.IPeopleCheckInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 人员签到统计 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/checkInfo") |
|||
public class PeopleCheckInfoController extends BaseController { |
|||
|
|||
private final IPeopleCheckInfoService peopleCheckInfoService; |
|||
|
|||
/** |
|||
* 查询人员签到统计列表 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<PeopleCheckInfoVo> list(PeopleCheckInfoBo bo, PageQuery pageQuery) { |
|||
return peopleCheckInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出人员签到统计列表 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:export")
|
|||
@Log(title = "人员签到统计", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PeopleCheckInfoBo bo, HttpServletResponse response) { |
|||
List<PeopleCheckInfoVo> list = peopleCheckInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "人员签到统计", PeopleCheckInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取人员签到统计详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<PeopleCheckInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(peopleCheckInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增人员签到统计 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:add")
|
|||
@Log(title = "人员签到统计", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PeopleCheckInfoBo bo) { |
|||
return toAjax(peopleCheckInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改人员签到统计 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:edit")
|
|||
@Log(title = "人员签到统计", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PeopleCheckInfoBo bo) { |
|||
return toAjax(peopleCheckInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除人员签到统计 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:checkInfo:remove")
|
|||
@Log(title = "人员签到统计", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(peopleCheckInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,113 @@ |
|||
package org.dromara.demo.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.dromara.demo.domain.vo.PlanSelectVo; |
|||
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.demo.domain.vo.PlanInfoVo; |
|||
import org.dromara.demo.domain.bo.PlanInfoBo; |
|||
import org.dromara.demo.service.IPlanInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 计划管理 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/planInfo") |
|||
public class PlanInfoController extends BaseController { |
|||
|
|||
private final IPlanInfoService planInfoService; |
|||
|
|||
/** |
|||
* 查询计划管理列表 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<PlanInfoVo> list(PlanInfoBo bo, PageQuery pageQuery) { |
|||
return planInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出计划管理列表 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:export")
|
|||
@Log(title = "计划管理", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PlanInfoBo bo, HttpServletResponse response) { |
|||
List<PlanInfoVo> list = planInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "计划管理", PlanInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取计划管理详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<PlanInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(planInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增计划管理 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:add")
|
|||
@Log(title = "计划管理", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PlanInfoBo bo) { |
|||
return toAjax(planInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改计划管理 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:edit")
|
|||
@Log(title = "计划管理", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PlanInfoBo bo) { |
|||
return toAjax(planInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除计划管理 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:planInfo:remove")
|
|||
@Log(title = "计划管理", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(planInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
|
|||
|
|||
@GetMapping("/getPlans") |
|||
public R<List<PlanSelectVo>> getPlans(PlanInfoBo bo) { |
|||
List<PlanSelectVo> rs = planInfoService.getPlans(bo); |
|||
return R.ok(rs); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.PmDataManagementInfoVo; |
|||
import org.dromara.demo.domain.bo.PmDataManagementInfoBo; |
|||
import org.dromara.demo.service.IPmDataManagementInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 颗粒物手工比对数据管理信息 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/dataManagementInfo") |
|||
public class PmDataManagementInfoController extends BaseController { |
|||
|
|||
private final IPmDataManagementInfoService pmDataManagementInfoService; |
|||
|
|||
/** |
|||
* 查询颗粒物手工比对数据管理信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmDataManagementInfoVo> list(PmDataManagementInfoBo bo, PageQuery pageQuery) { |
|||
return pmDataManagementInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出颗粒物手工比对数据管理信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:export")
|
|||
@Log(title = "颗粒物手工比对数据管理信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmDataManagementInfoBo bo, HttpServletResponse response) { |
|||
List<PmDataManagementInfoVo> list = pmDataManagementInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "颗粒物手工比对数据管理信息", PmDataManagementInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取颗粒物手工比对数据管理信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<PmDataManagementInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmDataManagementInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增颗粒物手工比对数据管理信息 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:add")
|
|||
@Log(title = "颗粒物手工比对数据管理信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmDataManagementInfoBo bo) { |
|||
return toAjax(pmDataManagementInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改颗粒物手工比对数据管理信息 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:edit")
|
|||
@Log(title = "颗粒物手工比对数据管理信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmDataManagementInfoBo bo) { |
|||
return toAjax(pmDataManagementInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除颗粒物手工比对数据管理信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:dataManagementInfo:remove")
|
|||
@Log(title = "颗粒物手工比对数据管理信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmDataManagementInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,117 @@ |
|||
package org.dromara.demo.controller; |
|||
|
|||
import java.io.IOException; |
|||
import java.util.List; |
|||
|
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
|||
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.demo.domain.vo.SiteEvaluationInfoVo; |
|||
import org.dromara.demo.domain.bo.SiteEvaluationInfoBo; |
|||
import org.dromara.demo.service.ISiteEvaluationInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 现场考核信息 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-09-05 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/evaluationInfo") |
|||
public class SiteEvaluationInfoController extends BaseController { |
|||
|
|||
private final ISiteEvaluationInfoService siteEvaluationInfoService; |
|||
|
|||
/** |
|||
* 查询现场考核信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<SiteEvaluationInfoVo> list(SiteEvaluationInfoBo bo, PageQuery pageQuery) { |
|||
return siteEvaluationInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出现场考核信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:export")
|
|||
@Log(title = "现场考核信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(SiteEvaluationInfoBo bo, HttpServletResponse response) { |
|||
List<SiteEvaluationInfoVo> list = siteEvaluationInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "现场考核信息", SiteEvaluationInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取现场考核信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<SiteEvaluationInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) throws JsonProcessingException { |
|||
return R.ok(siteEvaluationInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增现场考核信息 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:add")
|
|||
@Log(title = "现场考核信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SiteEvaluationInfoBo bo) { |
|||
return toAjax(siteEvaluationInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改现场考核信息 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:edit")
|
|||
@Log(title = "现场考核信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SiteEvaluationInfoBo bo) { |
|||
return toAjax(siteEvaluationInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除现场考核信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:evaluationInfo:remove")
|
|||
@Log(title = "现场考核信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(siteEvaluationInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
|
|||
@GetMapping("/download/world") |
|||
public void download( HttpServletResponse response) throws Exception { |
|||
siteEvaluationInfoService.download(response); |
|||
} |
|||
|
|||
@GetMapping("/download/world2") |
|||
public void download2( HttpServletResponse response) throws Exception { |
|||
siteEvaluationInfoService.download2(response); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.SparePartsInfoVo; |
|||
import org.dromara.demo.domain.bo.SparePartsInfoBo; |
|||
import org.dromara.demo.service.ISparePartsInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 备品备件列 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/partsInfo") |
|||
public class SparePartsInfoController extends BaseController { |
|||
|
|||
private final ISparePartsInfoService sparePartsInfoService; |
|||
|
|||
/** |
|||
* 查询备品备件列列表 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<SparePartsInfoVo> list(SparePartsInfoBo bo, PageQuery pageQuery) { |
|||
return sparePartsInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出备品备件列列表 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:export")
|
|||
@Log(title = "备品备件列", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(SparePartsInfoBo bo, HttpServletResponse response) { |
|||
List<SparePartsInfoVo> list = sparePartsInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "备品备件列", SparePartsInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取备品备件列详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<SparePartsInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(sparePartsInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增备品备件列 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:add")
|
|||
@Log(title = "备品备件列", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SparePartsInfoBo bo) { |
|||
return toAjax(sparePartsInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改备品备件列 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:edit")
|
|||
@Log(title = "备品备件列", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SparePartsInfoBo bo) { |
|||
return toAjax(sparePartsInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除备品备件列 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:partsInfo:remove")
|
|||
@Log(title = "备品备件列", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(sparePartsInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.StationFaultInfoVo; |
|||
import org.dromara.demo.domain.bo.StationFaultInfoBo; |
|||
import org.dromara.demo.service.IStationFaultInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 站点运维故障信息 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/stationFaultInfo") |
|||
public class StationFaultInfoController extends BaseController { |
|||
|
|||
private final IStationFaultInfoService stationFaultInfoService; |
|||
|
|||
/** |
|||
* 查询站点运维故障信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<StationFaultInfoVo> list(StationFaultInfoBo bo, PageQuery pageQuery) { |
|||
return stationFaultInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出站点运维故障信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:export")
|
|||
@Log(title = "站点运维故障信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(StationFaultInfoBo bo, HttpServletResponse response) { |
|||
List<StationFaultInfoVo> list = stationFaultInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "站点运维故障信息", StationFaultInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取站点运维故障信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<StationFaultInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(stationFaultInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增站点运维故障信息 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:add")
|
|||
@Log(title = "站点运维故障信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody StationFaultInfoBo bo) { |
|||
return toAjax(stationFaultInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改站点运维故障信息 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:edit")
|
|||
@Log(title = "站点运维故障信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody StationFaultInfoBo bo) { |
|||
return toAjax(stationFaultInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除站点运维故障信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:faultInfo:remove")
|
|||
@Log(title = "站点运维故障信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(stationFaultInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,129 @@ |
|||
package org.dromara.demo.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.dromara.demo.domain.vo.RegionVo; |
|||
import org.dromara.demo.domain.vo.StationSelectVo; |
|||
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.demo.domain.vo.StationInfoVo; |
|||
import org.dromara.demo.domain.bo.StationInfoBo; |
|||
import org.dromara.demo.service.IStationInfoService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 子站信息 |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/stationInfo") |
|||
public class StationInfoController extends BaseController { |
|||
|
|||
private final IStationInfoService stationInfoService; |
|||
|
|||
/** |
|||
* 查询子站信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<StationInfoVo> list(StationInfoBo bo, PageQuery pageQuery) { |
|||
return stationInfoService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出子站信息列表 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:export")
|
|||
@Log(title = "子站信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(StationInfoBo bo, HttpServletResponse response) { |
|||
List<StationInfoVo> list = stationInfoService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "子站信息", StationInfoVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取子站信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:query")
|
|||
@GetMapping("/{id}") |
|||
public R<StationInfoVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(stationInfoService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增子站信息 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:add")
|
|||
@Log(title = "子站信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody StationInfoBo bo) { |
|||
return toAjax(stationInfoService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改子站信息 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:edit")
|
|||
@Log(title = "子站信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody StationInfoBo bo) { |
|||
return toAjax(stationInfoService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除子站信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:stationInfo:remove")
|
|||
@Log(title = "子站信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(stationInfoService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 获取杭州区域列表 |
|||
*/ |
|||
@GetMapping("/getHangzhouRegions") |
|||
public R<List<RegionVo>> getHangzhouRegions() { |
|||
return R.ok(stationInfoService.getHangzhouRegions()); |
|||
} |
|||
|
|||
|
|||
@GetMapping("/getStationNameById") |
|||
public R<String> getStationNameById(String stationId) { |
|||
return R.ok("获取子站名称",stationInfoService.getStationNameById(stationId)); |
|||
} |
|||
|
|||
|
|||
@GetMapping("/getStationList") |
|||
public R< List<StationSelectVo>> getStationList() { |
|||
List<StationSelectVo> stationList = stationInfoService.getStationList(); |
|||
return R.ok(stationList); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.StationParamChangeVo; |
|||
import org.dromara.demo.domain.bo.StationParamChangeBo; |
|||
import org.dromara.demo.service.IStationParamChangeService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 站点参数变更 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/paramChange") |
|||
public class StationParamChangeController extends BaseController { |
|||
|
|||
private final IStationParamChangeService stationParamChangeService; |
|||
|
|||
/** |
|||
* 查询站点参数变更列表 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<StationParamChangeVo> list(StationParamChangeBo bo, PageQuery pageQuery) { |
|||
return stationParamChangeService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出站点参数变更列表 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:export")
|
|||
@Log(title = "站点参数变更", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(StationParamChangeBo bo, HttpServletResponse response) { |
|||
List<StationParamChangeVo> list = stationParamChangeService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "站点参数变更", StationParamChangeVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取站点参数变更详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:query")
|
|||
@GetMapping("/{id}") |
|||
public R<StationParamChangeVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(stationParamChangeService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增站点参数变更 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:add")
|
|||
@Log(title = "站点参数变更", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody StationParamChangeBo bo) { |
|||
return toAjax(stationParamChangeService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改站点参数变更 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:edit")
|
|||
@Log(title = "站点参数变更", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody StationParamChangeBo bo) { |
|||
return toAjax(stationParamChangeService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除站点参数变更 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:paramChange:remove")
|
|||
@Log(title = "站点参数变更", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(stationParamChangeService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.WebSiteNetDataAnalysisVo; |
|||
import org.dromara.demo.domain.bo.WebSiteNetDataAnalysisBo; |
|||
import org.dromara.demo.service.IWebSiteNetDataAnalysisService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 站点联网数据分析 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/webSiteNetDataAnalysis") |
|||
public class WebSiteNetDataAnalysisController extends BaseController { |
|||
|
|||
private final IWebSiteNetDataAnalysisService webSiteNetDataAnalysisService; |
|||
|
|||
/** |
|||
* 查询站点联网数据分析列表 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<WebSiteNetDataAnalysisVo> list(WebSiteNetDataAnalysisBo bo, PageQuery pageQuery) { |
|||
return webSiteNetDataAnalysisService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出站点联网数据分析列表 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:export")
|
|||
@Log(title = "站点联网数据分析", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(WebSiteNetDataAnalysisBo bo, HttpServletResponse response) { |
|||
List<WebSiteNetDataAnalysisVo> list = webSiteNetDataAnalysisService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "站点联网数据分析", WebSiteNetDataAnalysisVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取站点联网数据分析详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:query")
|
|||
@GetMapping("/{id}") |
|||
public R<WebSiteNetDataAnalysisVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(webSiteNetDataAnalysisService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增站点联网数据分析 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:add")
|
|||
@Log(title = "站点联网数据分析", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WebSiteNetDataAnalysisBo bo) { |
|||
return toAjax(webSiteNetDataAnalysisService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改站点联网数据分析 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:edit")
|
|||
@Log(title = "站点联网数据分析", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WebSiteNetDataAnalysisBo bo) { |
|||
return toAjax(webSiteNetDataAnalysisService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除站点联网数据分析 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:siteNetDataAnalysis:remove")
|
|||
@Log(title = "站点联网数据分析", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(webSiteNetDataAnalysisService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.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.demo.domain.vo.ZeroAdjustmentAnalysisVo; |
|||
import org.dromara.demo.domain.bo.ZeroAdjustmentAnalysisBo; |
|||
import org.dromara.demo.service.IZeroAdjustmentAnalysisService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 校零校准分析 |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/air/zeroAdjustmentAnalysis") |
|||
public class ZeroAdjustmentAnalysisController extends BaseController { |
|||
|
|||
private final IZeroAdjustmentAnalysisService zeroAdjustmentAnalysisService; |
|||
|
|||
/** |
|||
* 查询校零校准分析列表 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:list")
|
|||
@GetMapping("/list") |
|||
public TableDataInfo<ZeroAdjustmentAnalysisVo> list(ZeroAdjustmentAnalysisBo bo, PageQuery pageQuery) { |
|||
return zeroAdjustmentAnalysisService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出校零校准分析列表 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:export")
|
|||
@Log(title = "校零校准分析", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(ZeroAdjustmentAnalysisBo bo, HttpServletResponse response) { |
|||
List<ZeroAdjustmentAnalysisVo> list = zeroAdjustmentAnalysisService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "校零校准分析", ZeroAdjustmentAnalysisVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取校零校准分析详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:query")
|
|||
@GetMapping("/{id}") |
|||
public R<ZeroAdjustmentAnalysisVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(zeroAdjustmentAnalysisService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增校零校准分析 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:add")
|
|||
@Log(title = "校零校准分析", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ZeroAdjustmentAnalysisBo bo) { |
|||
return toAjax(zeroAdjustmentAnalysisService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改校零校准分析 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:edit")
|
|||
@Log(title = "校零校准分析", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ZeroAdjustmentAnalysisBo bo) { |
|||
return toAjax(zeroAdjustmentAnalysisService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除校零校准分析 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
//@SaCheckPermission("air:adjustmentAnalysis:remove")
|
|||
@Log(title = "校零校准分析", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(zeroAdjustmentAnalysisService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
|||
@ -1 +0,0 @@ |
|||
package org.dromara.demo.controller; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.mail.utils.MailUtils; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.constant.CacheNames; |
|||
import org.dromara.common.core.domain.R; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import com.baomidou.lock.LockInfo; |
|||
import com.baomidou.lock.LockTemplate; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.redis.utils.RedisUtils; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.ratelimiter.annotation.RateLimiter; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.common.core.domain.R; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.springframework.http.MediaType; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import org.dromara.common.core.domain.R; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.common.core.domain.R; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.demo.domain.TestDemoEncrypt; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.utils.MessageUtils; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.web.core.BaseController; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.common.core.domain.R; |
|||
@ -1,4 +1,4 @@ |
|||
package org.dromara.demo.controller; |
|||
package org.dromara.demo.controller.test; |
|||
|
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.websocket.dto.WebSocketMessageDto; |
|||
@ -0,0 +1 @@ |
|||
package org.dromara.demo.controller.test; |
|||
@ -0,0 +1,30 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class Attachment { |
|||
/** |
|||
* 附件地址 |
|||
*/ |
|||
private String url; |
|||
|
|||
/** |
|||
* 附件名称 |
|||
*/ |
|||
private String name; |
|||
|
|||
/** |
|||
* 附件存储ID |
|||
*/ |
|||
private String ossId; |
|||
|
|||
/** |
|||
* 附件描述 |
|||
*/ |
|||
private String description; |
|||
} |
|||
@ -0,0 +1,75 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
|||
import com.fasterxml.jackson.core.type.TypeReference; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
public class AttachmentSerializer { |
|||
|
|||
private final ObjectMapper objectMapper = new ObjectMapper(); |
|||
|
|||
/** |
|||
* 将List<Attachment>序列化为JSON字符串。 |
|||
* 序列化 |
|||
* @param attachment 包含附件信息的列表 |
|||
* @return 序列化后的JSON字符串 |
|||
*/ |
|||
public String serializeAttachments(List<Attachment> attachment) { |
|||
try { |
|||
// 使用ObjectMapper将List<Attachment>转换为JSON字符串
|
|||
return objectMapper.writeValueAsString(attachment); |
|||
} catch (JsonProcessingException e) { |
|||
// 处理可能发生的异常
|
|||
e.printStackTrace(); |
|||
// 根据实际情况决定如何处理错误,这里简单地返回null
|
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 将JSON字符串反序列化为List<Attachment>。 |
|||
* 反序列化 |
|||
* @param attachmentJson JSON格式的字符串 |
|||
* @return 反序列化后的List<Attachment> |
|||
*/ |
|||
public List<Attachment> deserializeAttachments(String attachmentJson) { |
|||
try { |
|||
// 使用ObjectMapper将JSON字符串转换回List<Attachment>
|
|||
return objectMapper.readValue(attachmentJson, new TypeReference<List<Attachment>>() {}); |
|||
} catch (JsonProcessingException e) { |
|||
// 处理可能发生的异常
|
|||
e.printStackTrace(); |
|||
// 根据实际情况决定如何处理错误,这里简单地返回null
|
|||
return null; |
|||
} |
|||
} |
|||
|
|||
// 测试方法
|
|||
public static void main(String[] args) { |
|||
AttachmentSerializer serializer = new AttachmentSerializer(); |
|||
|
|||
// 创建一些模拟数据
|
|||
List<Attachment> attachmentList = List.of( |
|||
new Attachment("http://example.com/file1.pdf", "File One", "ossId1", "Description One"), |
|||
new Attachment("http://example.com/file2.docx", "File Two", "ossId2","Description Two" ) |
|||
); |
|||
|
|||
// 序列化
|
|||
String serialized = serializer.serializeAttachments(attachmentList); |
|||
System.out.println(serialized); // 输出序列化后的JSON字符串
|
|||
|
|||
// 反序列化
|
|||
List<Attachment> deserializedAttachments = serializer.deserializeAttachments(serialized); |
|||
System.out.println("Deserialized:"); |
|||
if (deserializedAttachments != null) { |
|||
for (Attachment attachment : deserializedAttachments) { |
|||
System.out.println("URL: " + attachment.getUrl() + ", Name: " + attachment.getName()); |
|||
} |
|||
} else { |
|||
System.out.println("Failed to deserialize the JSON string."); |
|||
} |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 检查项实体类(平铺结构中的最小单位) |
|||
* 每个字段说明如下: |
|||
*/ |
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class CheckItem { |
|||
|
|||
/** |
|||
* 检查项目(用于合并单元格) |
|||
* 示例值:"01 站房环境保障情况" |
|||
* 多个 CheckItem 可共享相同的 checkProject,表示属于同一类别 |
|||
*/ |
|||
private String checkProject; |
|||
|
|||
|
|||
// TODO 需要设置集合
|
|||
private List<String> checkItemBasis; |
|||
|
|||
/** |
|||
* 该项满分分数 |
|||
* 示例值:2 |
|||
* 表示该检查项的总分为 2 分 |
|||
*/ |
|||
private Integer itemScore; |
|||
|
|||
/** |
|||
* 实际获得分数 |
|||
* 示例值:1 |
|||
* 表示本次检查实际得分为 1 分 |
|||
*/ |
|||
private Integer obtainedScore; |
|||
|
|||
/** |
|||
* 评分细则列表(前端传入的多条依据) |
|||
* 示例值: |
|||
* [ |
|||
* "1)站房环境脏,有明显灰尘和异味;", |
|||
* "2)物品摆放不整齐;" |
|||
* ] |
|||
* 每条为独立字符串,导出时需换行显示 |
|||
*/ |
|||
private List<String> scoringBasis; |
|||
|
|||
/** |
|||
* 扣分规则说明 |
|||
* 示例值:"一项不合格扣0.5分,扣完为止" |
|||
* 用于说明扣分逻辑,通常显示在评分细则下方 |
|||
*/ |
|||
private String deductionRule; |
|||
|
|||
/** |
|||
* 格式化评分说明(用于导出 Word) |
|||
* 将评分细则和扣分规则拼接成带换行符的字符串 |
|||
* |
|||
* @return 格式化后的完整说明文本 |
|||
*/ |
|||
public String formatScoringExplanation() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
if (this.scoringBasis != null) { |
|||
for (String basis : this.scoringBasis) { |
|||
sb.append(basis).append("\n"); |
|||
} |
|||
} |
|||
if (this.deductionRule != null && !this.deductionRule.trim().isEmpty()) { |
|||
sb.append(this.deductionRule); |
|||
} |
|||
return sb.toString().trim(); |
|||
} |
|||
|
|||
/** |
|||
* 格式化检查要点(用于导出 Word) |
|||
* 将检查要点拼接成带换行符的字符串 |
|||
* |
|||
* @return 格式化后的完整说明文本 |
|||
*/ |
|||
public String formatCheckItem() { |
|||
StringBuilder sb = new StringBuilder(); |
|||
if (this.checkItemBasis != null) { |
|||
for (String basis : this.checkItemBasis) { |
|||
sb.append(basis).append("\n"); |
|||
} |
|||
} |
|||
return sb.toString().trim(); |
|||
} |
|||
} |
|||
@ -0,0 +1,104 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableField; |
|||
import com.baomidou.mybatisplus.annotation.TableId; |
|||
import com.baomidou.mybatisplus.annotation.TableLogic; |
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 设备信息对象 device_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("device_info") |
|||
public class DeviceInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(自增) |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 设备名称 |
|||
*/ |
|||
private String device; |
|||
|
|||
/** |
|||
* 设备型号 |
|||
*/ |
|||
private String model; |
|||
|
|||
/** |
|||
* 生产厂家 |
|||
*/ |
|||
private String manufacturer; |
|||
|
|||
/** |
|||
* 生产日期 |
|||
*/ |
|||
private Date manufactureDate; |
|||
|
|||
/** |
|||
* 序列号 |
|||
*/ |
|||
private String number; |
|||
|
|||
/** |
|||
* 检测物 |
|||
*/ |
|||
private String testSubstance; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
@TableField(exist = false) |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束日期 |
|||
*/ |
|||
@TableField(exist = false) |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
} |
|||
@ -0,0 +1,129 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 现场考核业务数据实体类(用于 JSON 序列化) |
|||
* 对应数据库中的 evaluation_data JSON 字段 |
|||
* checkDateTime 格式:yyyy-MM-dd HH:mm:ss |
|||
*/ |
|||
@Data |
|||
public class EvaluationDataJson implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** 站点名称 */ |
|||
private String siteName; |
|||
|
|||
/** |
|||
* 检查时间 |
|||
* 格式:yyyy-MM-dd HH:mm:ss(年月日时分秒) |
|||
* 注意:此处使用 String 类型以保持格式一致性,避免时区问题 |
|||
*/ |
|||
private String checkDateTime; |
|||
|
|||
/** 运维单位 */ |
|||
private String operationUnit; |
|||
|
|||
/** 检查人员 */ |
|||
private String checkPeople; |
|||
|
|||
/** 总分 */ |
|||
private String totalScore; // 使用 String 接收原始 JSON 字符串,或可改为 Integer
|
|||
|
|||
// -------------------- 评分项 score_01 到 score_28 --------------------
|
|||
private String score_01; |
|||
private String score_02; |
|||
private String score_03; |
|||
private String score_04; |
|||
private String score_05; |
|||
private String score_06; |
|||
private String score_07; |
|||
private String score_08; |
|||
private String score_09; |
|||
private String score_10; |
|||
private String score_11; |
|||
private String score_12; |
|||
private String score_13; |
|||
private String score_14; |
|||
private String score_15; |
|||
private String score_16; |
|||
private String score_17; |
|||
private String score_18; |
|||
private String score_19; |
|||
private String score_20; |
|||
private String score_21; |
|||
private String score_22; |
|||
private String score_23; |
|||
private String score_24; |
|||
private String score_25; |
|||
private String score_26; |
|||
private String score_27; |
|||
private String score_28; |
|||
|
|||
// -------------------- 零点校准 --------------------
|
|||
private String zero_flow; |
|||
private String zero_std; |
|||
private String zero_error; |
|||
|
|||
// -------------------- 量程校准 --------------------
|
|||
private String span_flow; |
|||
private String span_std; |
|||
private String span_error; |
|||
|
|||
// -------------------- SO 参数 --------------------
|
|||
private String so_display; |
|||
private String so_std; |
|||
private String so_error; |
|||
private String so_conc_output; |
|||
private String so_conc_response; |
|||
private String so_conc_error; |
|||
private String so_time; |
|||
|
|||
// -------------------- NO 参数 --------------------
|
|||
private String no_display; |
|||
private String no_std; |
|||
private String no_error; |
|||
private String no_conc_output; |
|||
private String no_conc_response; |
|||
private String no_conc_error; |
|||
private String no_time; |
|||
|
|||
// -------------------- CO 参数 --------------------
|
|||
private String co_display; |
|||
private String co_std; |
|||
private String co_error; |
|||
private String co_conc_output; |
|||
private String co_conc_response; |
|||
private String co_conc_error; |
|||
private String co_time; |
|||
|
|||
// -------------------- O2 参数 --------------------
|
|||
private String o_display; |
|||
private String o_std; |
|||
private String o_error; |
|||
private String o_conc_output; |
|||
private String o_conc_response; |
|||
private String o_conc_error; |
|||
private String o_time; |
|||
|
|||
// -------------------- PM10 参数 --------------------
|
|||
private String pm_ten_display; |
|||
private String pm_ten_std; |
|||
private String pm_ten_error; |
|||
private String pm_ten_k; |
|||
|
|||
// -------------------- PM2.5 参数 --------------------
|
|||
private String pm_two_display; |
|||
private String pm_two_std; |
|||
private String pm_two_error; |
|||
private String pm_two_k; |
|||
|
|||
// -------------------- 斜率参数 --------------------
|
|||
private String slope_a; |
|||
private String slope_b; |
|||
} |
|||
@ -0,0 +1,86 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 现场核查单管理信息对象 order_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("order_management_info") |
|||
public class OrderManagementInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
private Date checkTime; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
private String checkPerson; |
|||
|
|||
/** |
|||
* 核查得分 |
|||
*/ |
|||
private Long checkScore; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
@TableField(exist = false) |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束日期 |
|||
*/ |
|||
@TableField(exist = false) |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 人员签到统计对象 people_check_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("people_check_info") |
|||
public class PeopleCheckInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 人员性质 |
|||
*/ |
|||
private String attribute; |
|||
|
|||
/** |
|||
* 人员姓名 |
|||
*/ |
|||
private String person; |
|||
|
|||
/** |
|||
* 所属公司 |
|||
*/ |
|||
private String company; |
|||
|
|||
/** |
|||
* 签到时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date registerTime; |
|||
|
|||
/** |
|||
* 签到类型 |
|||
*/ |
|||
private String registerType; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,85 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 计划管理对象 plan_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("plan_info") |
|||
public class PlanInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 计划号 |
|||
*/ |
|||
private String planNum; |
|||
|
|||
/** |
|||
* 计划日期 |
|||
*/ |
|||
private Date planDate; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 子站状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
private String flag; |
|||
|
|||
} |
|||
@ -0,0 +1,94 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 颗粒物手工比对数据管理信息对象 pm_data_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pm_data_management_info") |
|||
public class PmDataManagementInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 开始时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 自动监测(mg/m³) |
|||
*/ |
|||
private Long autoMonitor; |
|||
|
|||
/** |
|||
* 手动监测(mg/m³) |
|||
*/ |
|||
private Long handleMonitor; |
|||
|
|||
/** |
|||
* 相对误差 |
|||
*/ |
|||
private Long difference; |
|||
|
|||
/** |
|||
* 结论 |
|||
*/ |
|||
private String result; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import lombok.Data; |
|||
import java.time.LocalDate; |
|||
import java.time.LocalDateTime; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 监理服务现场技术核查评分报告数据模型 |
|||
* 注意:checkItems 是平铺列表,每个 CheckItem 都包含 checkProject 字段 |
|||
* 用于后续按 checkProject 值进行合并单元格(Word 或前端表格) |
|||
*/ |
|||
@Data |
|||
public class ReportData { |
|||
|
|||
/** 报告标题,如:监理服务现场技术核查评分报告 */ |
|||
private String reportTitle; |
|||
|
|||
/** 站点名称,如:浦东新区张江空气质量监测站 */ |
|||
private String siteName; |
|||
|
|||
|
|||
/** 运维单位,如:上海环保科技有限公司 */ |
|||
private String operationUnit; |
|||
|
|||
/** 检查时间,格式:yyyy-MM-dd HH:mm:ss */ |
|||
private LocalDateTime checkTime; |
|||
|
|||
/** 检查人员,多人用顿号或逗号分隔,如:张三、李四 */ |
|||
private String checkPersonnel; |
|||
|
|||
/** |
|||
* 检查项列表(平铺结构) |
|||
* 每个 CheckItem 自带 checkProject 字段 |
|||
* 多个 CheckItem 可能具有相同的 checkProject,用于合并单元格 |
|||
*/ |
|||
private List<CheckItem> checkItems; |
|||
|
|||
/** 总分 */ |
|||
private Integer totalScore; |
|||
|
|||
/** 备注 */ |
|||
private String remarks; |
|||
|
|||
public int getTotalPossibleScore() { |
|||
return getCheckItems().stream() |
|||
.mapToInt(CheckItem::getItemScore) |
|||
.sum(); |
|||
} |
|||
|
|||
public int getTotalObtainedScore() { |
|||
return getCheckItems().stream() |
|||
.mapToInt(CheckItem::getObtainedScore) |
|||
.sum(); |
|||
} |
|||
|
|||
// 可选:返回格式化字符串 "85/100"
|
|||
public String getFormattedTotalScore() { |
|||
int obtained = getTotalObtainedScore(); |
|||
int total = getTotalPossibleScore(); |
|||
return obtained + "/" + total; |
|||
} |
|||
} |
|||
@ -0,0 +1,76 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 现场考核信息对象 site_evaluation_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-09-05 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("site_evaluation_info") |
|||
public class SiteEvaluationInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus) |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
private LocalDateTime checkDateTime; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
private String siteName; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
private String checkPeople; |
|||
|
|||
/** |
|||
* 评分相关业务数据 |
|||
*/ |
|||
private String evaluationData; |
|||
|
|||
/** |
|||
* 图片附件数据 |
|||
*/ |
|||
private String imgData; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 备品备件列对象 spare_parts_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("spare_parts_info") |
|||
public class SparePartsInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 品名 |
|||
*/ |
|||
private String name; |
|||
|
|||
/** |
|||
* 类型 |
|||
*/ |
|||
private String type; |
|||
|
|||
/** |
|||
* 型号 |
|||
*/ |
|||
private String model; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
private Long amount; |
|||
|
|||
/** |
|||
* 入库日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date indate; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,94 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* air对象 station_fault_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("station_fault_info") |
|||
public class StationFaultInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 故障开始时间 |
|||
*/ |
|||
private Date faultStartDate; |
|||
|
|||
/** |
|||
* 故障结束时间 |
|||
*/ |
|||
private Date faultEndDate; |
|||
|
|||
/** |
|||
* 运维响应时间 |
|||
*/ |
|||
private Date ioResponseDate; |
|||
|
|||
/** |
|||
* 响应时间跨度 |
|||
*/ |
|||
private String responseDuration; |
|||
|
|||
/** |
|||
* 故障时间跨度 |
|||
*/ |
|||
private String faultDuration; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 子站信息对象 station_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("station_info") |
|||
public class StationInfo extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(数据库自增) |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 地址 |
|||
*/ |
|||
private String address; |
|||
|
|||
/** |
|||
* 经度 |
|||
*/ |
|||
private String longitude; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
private String latitude; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,79 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 站点参数变更对象 station_param_change |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("station_param_change") |
|||
public class StationParamChange extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 参数名称 |
|||
*/ |
|||
private String arguments; |
|||
|
|||
/** |
|||
* 发现时间 |
|||
*/ |
|||
private Date foundDate; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 删除标志(0:未删除;1:已删除) |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 站点联网数据分析对象 web_site_net_data_analysis |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("web_site_net_data_analysis") |
|||
public class WebSiteNetDataAnalysis extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 当前状态(如:运行中、维护中、离线) |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 本月应收数据金额 |
|||
*/ |
|||
private Long planIncome; |
|||
|
|||
/** |
|||
* 本月实收数据金额 |
|||
*/ |
|||
private Long actualIncome; |
|||
|
|||
/** |
|||
* 最新数据更新时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date lastTime; |
|||
|
|||
/** |
|||
* 删除标志(0:未删除;1:已删除) |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,293 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import cn.afterturn.easypoi.word.WordExportUtil; |
|||
import cn.hutool.json.JSONObject; |
|||
import cn.hutool.json.JSONUtil; |
|||
import org.apache.poi.util.Units; |
|||
import org.apache.poi.xwpf.usermodel.ParagraphAlignment; |
|||
import org.apache.poi.xwpf.usermodel.XWPFDocument; |
|||
import org.apache.poi.xwpf.usermodel.XWPFParagraph; |
|||
import org.apache.poi.xwpf.usermodel.XWPFRun; |
|||
import org.jetbrains.annotations.NotNull; |
|||
|
|||
import java.io.File; |
|||
import java.io.FileInputStream; |
|||
import java.io.FileOutputStream; |
|||
import java.io.InputStream; |
|||
import java.time.LocalDateTime; |
|||
import java.time.format.DateTimeFormatter; |
|||
import java.util.Arrays; |
|||
import java.util.LinkedHashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
public class WordExportTest { |
|||
|
|||
// ✅ 假设这是你要插入的图片路径列表(可以来自数据库、文件夹扫描等)
|
|||
private static final List<String> IMAGE_PATHS = List.of( |
|||
"D:\\Users\\14212\\Desktop\\故障图片.png", |
|||
"D:\\Users\\14212\\Desktop\\故障图片.png", |
|||
"D:\\Users\\14212\\Desktop\\故障图片.png" |
|||
// 可以是 0 个、1 个、N 个
|
|||
); |
|||
public static void main(String[] args) throws Exception { |
|||
// 1. 准备数据(用户填写的内容)
|
|||
Map<String, Object> data = getData(); |
|||
|
|||
// 2. 从 classpath 根目录加载模板文件:resources/score_template.docx
|
|||
InputStream templateIs = WordExportTest.class |
|||
.getClassLoader() |
|||
.getResourceAsStream("score_template.docx"); // ✅ 路径已调整
|
|||
|
|||
if (templateIs == null) { |
|||
System.err.println("❌ 模板文件未找到!请检查路径:classpath:score_template.docx"); |
|||
return; |
|||
} |
|||
|
|||
System.out.println("✅ 模板加载成功!"); |
|||
|
|||
// 3. 创建临时文件(因为 EasyPOI exportWord07 不支持 InputStream)
|
|||
File tempFile = File.createTempFile("temp_template", ".docx"); |
|||
tempFile.deleteOnExit(); |
|||
|
|||
try (FileOutputStream fos = new FileOutputStream(tempFile)) { |
|||
byte[] buffer = new byte[1024]; |
|||
int len; |
|||
while ((len = templateIs.read(buffer)) != -1) { |
|||
fos.write(buffer, 0, len); |
|||
} |
|||
} |
|||
|
|||
// 4. ✅ 使用 EasyPOI 填充模板(传 File)
|
|||
XWPFDocument document = WordExportUtil.exportWord07(String.valueOf(tempFile), data); |
|||
List<String> descriptions = Arrays.asList( |
|||
"这是第一张图片的描述", |
|||
"这是第二张图片的描述", |
|||
"这是第三张图片的描述" |
|||
); |
|||
// 5. ✅ 在文档末尾追加图片
|
|||
appendImages(document, IMAGE_PATHS, descriptions); |
|||
|
|||
|
|||
// 5. 导出到本地
|
|||
String outputPath = "D:\\Users\\14212\\Desktop\\"+data.get("siteName") + "现场技术核查评分表.docx"; // 可改为你的路径
|
|||
try (FileOutputStream out = new FileOutputStream(outputPath)) { |
|||
document.write(out); |
|||
} |
|||
|
|||
// 6. 关闭资源
|
|||
document.close(); |
|||
templateIs.close(); |
|||
|
|||
System.out.println("✅ Word 文件已生成:" + outputPath); |
|||
} |
|||
|
|||
private static void appendImages(XWPFDocument document, List<String> imagePaths, List<String> descriptions) throws Exception { |
|||
if (imagePaths == null || imagePaths.isEmpty()) { |
|||
System.out.println("📭 无图片需要插入"); |
|||
return; |
|||
} |
|||
|
|||
// 确保描述的数量不超过图片数量
|
|||
if (descriptions != null && descriptions.size() > imagePaths.size()) { |
|||
descriptions = descriptions.subList(0, imagePaths.size()); |
|||
} |
|||
|
|||
for (int i = 0; i < imagePaths.size(); i++) { |
|||
String imagePath = imagePaths.get(i); |
|||
File imageFile = new File(imagePath); |
|||
if (!imageFile.exists()) { |
|||
System.err.println("⚠️ 图片未找到:" + imagePath); |
|||
continue; |
|||
} |
|||
|
|||
// 创建新段落用于图片(居中)
|
|||
XWPFParagraph imgParagraph = document.createParagraph(); |
|||
imgParagraph.setAlignment(ParagraphAlignment.CENTER); // 居中
|
|||
XWPFRun imgRun = imgParagraph.createRun(); |
|||
|
|||
|
|||
// 读取图片
|
|||
try (FileInputStream is = new FileInputStream(imageFile)) { |
|||
int pictureType = getPictureType(imageFile.getName()); |
|||
// 设置图片大小,这里使用300x150 EMU
|
|||
imgRun.addPicture(is, pictureType, imageFile.getName(), |
|||
Units.toEMU(300), Units.toEMU(150)); |
|||
} |
|||
|
|||
// 如果提供了描述,则在图片下方添加描述段落
|
|||
if (descriptions != null && i < descriptions.size()) { |
|||
String desc = descriptions.get(i); |
|||
|
|||
XWPFParagraph captionParagraph = document.createParagraph(); |
|||
captionParagraph.setAlignment(ParagraphAlignment.CENTER); // 描述也居中
|
|||
|
|||
XWPFRun captionRun = captionParagraph.createRun(); |
|||
captionRun.setText("图" + (i + 1) + ":" + desc); // 使用描述内容
|
|||
captionRun.setColor("666666"); // 灰色文字,更像图注
|
|||
captionRun.setFontSize(10); // 字体小一点
|
|||
captionRun.setItalic(true); // 斜体(可选)
|
|||
captionRun.setFontFamily("宋体"); // 设置字体
|
|||
} |
|||
|
|||
// 每张图和描述后空一行
|
|||
document.createParagraph(); |
|||
} |
|||
} |
|||
|
|||
// ✅ 根据文件扩展名判断图片类型
|
|||
private static int getPictureType(String filename) { |
|||
String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase(); |
|||
return switch (ext) { |
|||
case "png" -> XWPFDocument.PICTURE_TYPE_PNG; |
|||
case "jpg", "jpeg" -> XWPFDocument.PICTURE_TYPE_JPEG; |
|||
case "gif" -> XWPFDocument.PICTURE_TYPE_GIF; |
|||
case "bmp" -> XWPFDocument.PICTURE_TYPE_BMP; |
|||
default -> XWPFDocument.PICTURE_TYPE_JPEG; |
|||
}; |
|||
} |
|||
|
|||
@NotNull |
|||
private static Map<String, Object> getData() { |
|||
// 1. 准备数据(用户填写的内容)
|
|||
Map<String, Object> data = new LinkedHashMap<>(); |
|||
data.put("siteName", "临安区龙岗镇站"); |
|||
// ✅ 自动生成当前时间,并格式化为 "yyyy-MM-dd HH:mm:ss"
|
|||
String currentDateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); |
|||
data.put("checkDateTime", currentDateTime); |
|||
data.put("operationUnit", "安徽蓝盾光电子股份有限公司"); |
|||
data.put("checkPeople", "李工"); |
|||
data.put("totalScore", "140"); // 28项 × 5分 = 140
|
|||
// === 简单粗暴:score_01 到 score_28 全部设为 5 ===
|
|||
for (int i = 1; i <= 28; i++) { |
|||
data.put("score_" + String.format("%02d", i), "5"); |
|||
} |
|||
// -------------------- 零气测试 --------------------
|
|||
double zero_flow = 5.0; // 零气MFC设定流量(L/min)
|
|||
double zero_std = 4.98; // 标准流量计实测值(L/min)
|
|||
// -------------------- 标气测试 --------------------
|
|||
double span_flow = 100.0; // 标气MFC设定流量(ml/min)
|
|||
double span_std = 101.5; // 标准流量计实测值(ml/min)
|
|||
|
|||
data.put("zero_flow", String.valueOf(zero_flow)); |
|||
data.put("zero_std", String.valueOf(zero_std)); |
|||
data.put("zero_error", calcError(zero_flow, zero_std)); // 自动计算
|
|||
|
|||
data.put("span_flow", String.valueOf(span_flow)); |
|||
data.put("span_std", String.valueOf(span_std)); |
|||
data.put("span_error", calcError(span_flow, span_std)); // 自动计算
|
|||
|
|||
// -------------------- SO2 流量测试 --------------------
|
|||
double soDisplay = 0.8; // SO2显示流量(L/min)
|
|||
double soStd = 0.78; // 标准流量计测值(L/min)
|
|||
|
|||
data.put("so_display", String.valueOf(soDisplay)); |
|||
data.put("so_std", String.valueOf(soStd)); |
|||
data.put("so_error", calcError(soDisplay, soStd)); // 自动计算:相对误差
|
|||
|
|||
// -------------------- SO2 浓度测试 --------------------
|
|||
double soConcOutput = 500.0; // 标气稀释输出浓度(ppb)
|
|||
double soConcResponse = 492.0; // 仪器响应浓度(ppb)
|
|||
|
|||
data.put("so_conc_output", String.valueOf(soConcOutput)); |
|||
data.put("so_conc_response", String.valueOf(soConcResponse)); |
|||
data.put("so_conc_error", calcError(soConcResponse, soConcOutput)); // (响应 - 输出)/输出 × 100%
|
|||
|
|||
// -------------------- t90响应时间(用户填写,不参与计算)--------------------
|
|||
data.put("so_time", "4.2"); // 用户手动填写,单位:min,不参与任何计算
|
|||
|
|||
|
|||
// -------------------- NO2 流量测试 --------------------
|
|||
double noDisplay = 0.8; |
|||
double noStd = 0.78; |
|||
|
|||
data.put("no_display", String.valueOf(noDisplay)); |
|||
data.put("no_std", String.valueOf(noStd)); |
|||
data.put("no_error", calcError(noDisplay, noStd)); // 自动计算:相对误差
|
|||
|
|||
// -------------------- NO 浓度测试 --------------------
|
|||
double noConcOutput = 500.0; // 标气稀释输出浓度(ppb)
|
|||
double noConcResponse = 492.0; // 仪器响应浓度(ppb)
|
|||
|
|||
data.put("no_conc_output", String.valueOf(noConcOutput)); |
|||
data.put("no_conc_response", String.valueOf(noConcResponse)); |
|||
data.put("no_conc_error", calcError(noConcResponse, noConcOutput)); // (响应 - 输出)/输出 × 100%
|
|||
|
|||
// -------------------- t90响应时间(用户填写,不参与计算)--------------------
|
|||
data.put("no_time", "4.2"); // 用户手动填写,单位:min,不参与任何计算
|
|||
|
|||
|
|||
// -------------------- CO 流量测试 --------------------
|
|||
double coDisplay = 0.8; // SO2显示流量(L/min)
|
|||
double coStd = 0.78; // 标准流量计测值(L/min)
|
|||
|
|||
data.put("co_display", String.valueOf(coDisplay)); |
|||
data.put("co_std", String.valueOf(coStd)); |
|||
data.put("co_error", calcError(coDisplay, coStd)); // 自动计算:相对误差
|
|||
|
|||
// -------------------- NO2 浓度测试 --------------------
|
|||
double coConcOutput = 500.0; // 标气稀释输出浓度(ppb)
|
|||
double coConcResponse = 492.0; // 仪器响应浓度(ppb)
|
|||
|
|||
data.put("co_conc_output", String.valueOf(coConcOutput)); |
|||
data.put("co_conc_response", String.valueOf(coConcResponse)); |
|||
data.put("co_conc_error", calcError(coConcResponse, coConcOutput)); // (响应 - 输出)/输出 × 100%
|
|||
|
|||
// -------------------- t90响应时间(用户填写,不参与计算)--------------------
|
|||
data.put("co_time", "4.2"); // 用户手动填写,单位:min,不参与任何计算
|
|||
|
|||
|
|||
double oDisplay = 0.8; // SO2显示流量(L/min)
|
|||
double oStd = 0.78; // 标准流量计测值(L/min)
|
|||
|
|||
data.put("o_display", String.valueOf(oDisplay)); |
|||
data.put("o_std", String.valueOf(oStd)); |
|||
data.put("o_error", calcError(oDisplay, oStd)); // 自动计算:相对误差
|
|||
|
|||
double oConcOutput = 500.0; // 标气稀释输出浓度(ppb)
|
|||
double oConcResponse = 492.0; // 仪器响应浓度(ppb)
|
|||
|
|||
data.put("o_conc_output", String.valueOf(oConcOutput)); |
|||
data.put("o_conc_response", String.valueOf(oConcResponse)); |
|||
data.put("o_conc_error", calcError(oConcResponse, oConcOutput)); // (响应 - 输出)/输出 × 100%
|
|||
// -------------------- t90响应时间(用户填写,不参与计算)--------------------
|
|||
data.put("o_time", "4.2"); // 用户手动填写,单位:min,不参与任何计算
|
|||
|
|||
//----------PM10 测试----------
|
|||
double pmTenDisplay = 0.8; |
|||
double pmTenStd = 0.78; |
|||
|
|||
data.put("pm_ten_display", String.valueOf(pmTenDisplay)); |
|||
data.put("pm_ten_std", String.valueOf(pmTenStd)); |
|||
data.put("pm_ten_error", calcError(pmTenDisplay, pmTenStd)); // 自动计算:相对误差
|
|||
|
|||
data.put("pm_ten_k", 0.8); |
|||
data.put("slope_a", 0.8); |
|||
|
|||
|
|||
//----------PM2 测试----------
|
|||
double pmTwoDisplay = 0.8; |
|||
double pmTwoStd = 0.78; |
|||
|
|||
data.put("pm_two_display", String.valueOf(pmTwoDisplay)); |
|||
data.put("pm_two_std", String.valueOf(pmTwoStd)); |
|||
data.put("pm_two_error", calcError(pmTwoDisplay, pmTwoStd)); // 自动计算:相对误差
|
|||
|
|||
data.put("pm_two_k", 0.5); |
|||
data.put("slope_b", 0.5); |
|||
|
|||
System.out.println("✅ 数据准备完成!"); |
|||
System.out.println(JSONUtil.toJsonStr(data)); |
|||
//System.out.println(JSONUtil.toJsonPrettyStr(data)); // 格式化 + 缩进输出
|
|||
JSONObject jsonObject = JSONUtil.parseObj(data); |
|||
System.out.println(jsonObject.toStringPretty()); |
|||
return data; |
|||
} |
|||
|
|||
// 工具方法:计算相对误差,保留1位小数
|
|||
private static String calcError(double mfcFlow, double stdFlow) { |
|||
if (Math.abs(stdFlow) < 0.0001) return "0.0"; // 防止除0
|
|||
double error = (mfcFlow - stdFlow) / stdFlow * 100; |
|||
return String.format("%.1f", error); |
|||
} |
|||
} |
|||
@ -0,0 +1,371 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import cn.hutool.json.JSONUtil; |
|||
import org.apache.poi.xwpf.usermodel.*; |
|||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; |
|||
|
|||
import java.io.File; |
|||
import java.io.FileOutputStream; |
|||
import java.io.IOException; |
|||
import java.math.BigInteger; |
|||
import java.time.LocalDateTime; |
|||
import java.time.format.DateTimeFormatter; |
|||
import java.util.Comparator; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.TreeMap; |
|||
import java.util.stream.Collectors; |
|||
|
|||
public class WordReportExporter { |
|||
|
|||
// 获取桌面路径(跨平台)
|
|||
private static String getDesktopPath() { |
|||
return "D:\\Users\\14212\\Desktop"; |
|||
} |
|||
|
|||
public static void export(ReportData reportData) throws IOException { |
|||
System.out.println(JSONUtil.toJsonStr(reportData)); |
|||
|
|||
String desktopPath = getDesktopPath(); |
|||
String filename = "数据购买监理服务现场技术核查评分表.docx"; |
|||
String fullPath = desktopPath + File.separator + filename; |
|||
|
|||
XWPFDocument document = new XWPFDocument(); |
|||
|
|||
// 1. 添加标题
|
|||
XWPFParagraph titlePara = document.createParagraph(); |
|||
titlePara.setAlignment(ParagraphAlignment.CENTER); |
|||
XWPFRun titleRun = titlePara.createRun(); |
|||
titleRun.setText(reportData.getReportTitle()); |
|||
titleRun.setBold(true); |
|||
titleRun.setFontSize(16); |
|||
titleRun.setFontFamily("宋体"); |
|||
|
|||
// 2. 添加基本信息
|
|||
addBasicInfo(document, reportData); |
|||
|
|||
// 3. 添加评分表格
|
|||
addScoreTable(document, reportData); |
|||
|
|||
// 4. 添加总分和备注
|
|||
addTotalAndRemarks(document, reportData); |
|||
|
|||
// 保存到桌面
|
|||
try (FileOutputStream out = new FileOutputStream(fullPath)) { |
|||
document.write(out); |
|||
} |
|||
document.close(); |
|||
|
|||
System.out.println("✅ 报告已成功导出到桌面:"); |
|||
System.out.println("📄 " + fullPath); |
|||
} |
|||
|
|||
private static void addBasicInfo(XWPFDocument document, ReportData reportData) { |
|||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
|||
|
|||
// 站点名称
|
|||
XWPFParagraph p = document.createParagraph(); |
|||
p.setSpacingAfter(10); |
|||
|
|||
XWPFRun label = p.createRun(); |
|||
label.setFontFamily("宋体"); |
|||
label.setFontSize(12); |
|||
label.setBold(false); |
|||
label.setText("站点名称:"); |
|||
|
|||
XWPFRun value = p.createRun(); |
|||
value.setFontFamily("宋体"); |
|||
value.setFontSize(12); |
|||
value.setBold(false); |
|||
value.setText(reportData.getSiteName()); |
|||
|
|||
// // 区(管委会)
|
|||
// p = document.createParagraph();
|
|||
// p.setSpacingAfter(10);
|
|||
//
|
|||
// label = p.createRun();
|
|||
// label.setFontFamily("宋体");
|
|||
// label.setFontSize(12);
|
|||
// label.setBold(false);
|
|||
// label.setText("区(管委会):");
|
|||
//
|
|||
// value = p.createRun();
|
|||
// value.setFontFamily("宋体");
|
|||
// value.setFontSize(12);
|
|||
// value.setBold(false);
|
|||
// value.setText(reportData.getDistrict());
|
|||
//
|
|||
// // 街道(乡、镇)
|
|||
// p = document.createParagraph();
|
|||
// p.setSpacingAfter(10);
|
|||
//
|
|||
// label = p.createRun();
|
|||
// label.setFontFamily("宋体");
|
|||
// label.setFontSize(12);
|
|||
// label.setBold(false);
|
|||
// label.setText("街道(乡、镇):");
|
|||
//
|
|||
// value = p.createRun();
|
|||
// value.setFontFamily("宋体");
|
|||
// value.setFontSize(12);
|
|||
// value.setBold(false);
|
|||
// value.setText(reportData.getStreet());
|
|||
|
|||
// 运维单位
|
|||
p = document.createParagraph(); |
|||
p.setSpacingAfter(10); |
|||
|
|||
label = p.createRun(); |
|||
label.setFontFamily("宋体"); |
|||
label.setFontSize(12); |
|||
label.setBold(false); |
|||
label.setText("运维单位:"); |
|||
|
|||
value = p.createRun(); |
|||
value.setFontFamily("宋体"); |
|||
value.setFontSize(12); |
|||
value.setBold(false); |
|||
value.setText(reportData.getOperationUnit()); |
|||
|
|||
} |
|||
|
|||
private static void addScoreTable(XWPFDocument document, ReportData reportData) { |
|||
List<CheckItem> items = reportData.getCheckItems(); |
|||
if (items == null || items.isEmpty()) return; |
|||
|
|||
// ✅ 1. 创建表格
|
|||
XWPFTable table = document.createTable(); |
|||
|
|||
// ✅ 2. 设置表格总宽度 (9000 TWIP ≈ 页面宽度)
|
|||
CTTblPr tblPr = table.getCTTbl().getTblPr(); |
|||
CTTblWidth tblWidth = tblPr.addNewTblW(); |
|||
tblWidth.setW(BigInteger.valueOf(9000)); |
|||
tblWidth.setType(STTblWidth.DXA); |
|||
|
|||
// ✅ 3. 强制第一行有 5 列
|
|||
XWPFTableRow header = table.getRow(0); |
|||
for (int i = 1; i < 5; i++) { |
|||
header.addNewTableCell(); |
|||
} |
|||
|
|||
// ✅ 4. 设置表头文本和样式
|
|||
setCellTextAndStyle(header.getCell(0), "检查项目", true); |
|||
setCellTextAndStyle(header.getCell(1), "检查要点", true); |
|||
setCellTextAndStyle(header.getCell(2), "单项分值", true); |
|||
setCellTextAndStyle(header.getCell(3), "得分", true); |
|||
setCellTextAndStyle(header.getCell(4), "评分说明", true); |
|||
|
|||
// ✅ 5. 设置列宽(关键:20% / 35% / 10% / 10% / 25%)
|
|||
setCellWidth(header.getCell(0), 1500); // 检查项目
|
|||
setCellWidth(header.getCell(1), 2800); // 检查要点
|
|||
setCellWidth(header.getCell(2), 950); // 单项分值(窄)
|
|||
setCellWidth(header.getCell(3), 950); // 得分(窄)
|
|||
setCellWidth(header.getCell(4), 2200); // 评分说明
|
|||
|
|||
// ✅ 6. 分组数据
|
|||
Map<String, List<CheckItem>> grouped = items.stream() |
|||
.sorted(Comparator.comparing(CheckItem::getCheckProject)) |
|||
.collect(Collectors.groupingBy( |
|||
CheckItem::getCheckProject, |
|||
TreeMap::new, |
|||
Collectors.toList() |
|||
)); |
|||
|
|||
int totalScore = 0; |
|||
|
|||
for (Map.Entry<String, List<CheckItem>> entry : grouped.entrySet()) { |
|||
List<CheckItem> groupItems = entry.getValue(); |
|||
String project = entry.getKey(); |
|||
|
|||
for (int i = 0; i < groupItems.size(); i++) { |
|||
CheckItem item = groupItems.get(i); |
|||
XWPFTableRow row = table.createRow(); |
|||
|
|||
// 设置内容
|
|||
setCellTextAndStyle(row.getCell(1), item.formatCheckItem(), false); |
|||
setCellTextAndStyle(row.getCell(2), String.valueOf(item.getItemScore()), false); |
|||
setCellTextAndStyle(row.getCell(3), String.valueOf(item.getObtainedScore()), false); |
|||
setCellTextAndStyle(row.getCell(4), item.formatScoringExplanation(), false); |
|||
|
|||
// ✅ 累加总分
|
|||
totalScore += item.getObtainedScore(); |
|||
|
|||
// 设置第0列(检查项目)及垂直合并
|
|||
XWPFTableCell cell = row.getCell(0); |
|||
setCellTextAndStyle(cell, i == 0 ? project : "", i == 0); |
|||
|
|||
CTTcPr tcPr = cell.getCTTc().addNewTcPr(); |
|||
CTVMerge merge = tcPr.addNewVMerge(); |
|||
merge.setVal(i == 0 ? STMerge.RESTART : STMerge.CONTINUE); |
|||
} |
|||
} |
|||
|
|||
// ✅ 7. 总分行
|
|||
XWPFTableRow totalRow = table.createRow(); |
|||
XWPFTableCell labelCell = totalRow.getCell(0); |
|||
setCellTextAndStyle(labelCell, "总分", true); |
|||
|
|||
XWPFTableCell scoreCell = totalRow.getCell(1); |
|||
setCellTextAndStyle(scoreCell, String.valueOf(totalScore), true); |
|||
|
|||
// 合并第1~4列(共4列)
|
|||
CTTcPr tcPr = scoreCell.getCTTc().addNewTcPr(); |
|||
tcPr.addNewGridSpan().setVal(BigInteger.valueOf(4)); |
|||
|
|||
// 清空后面单元格(避免显示多余文本)
|
|||
for (int i = 2; i <= 4; i++) { |
|||
XWPFTableCell cell = totalRow.getCell(i); |
|||
if (cell != null) { |
|||
cell.setText(""); |
|||
} |
|||
} |
|||
} |
|||
|
|||
// ✅ 辅助方法:设置单元格宽度
|
|||
private static void setCellWidth(XWPFTableCell cell, int width) { |
|||
CTTc ctTc = cell.getCTTc(); |
|||
CTTcPr tcPr = ctTc.isSetTcPr() ? ctTc.getTcPr() : ctTc.addNewTcPr(); |
|||
CTTblWidth tcW = tcPr.isSetTcW() ? tcPr.getTcW() : tcPr.addNewTcW(); |
|||
tcW.setW(BigInteger.valueOf(width)); |
|||
tcW.setType(STTblWidth.DXA); |
|||
} |
|||
private static void setCellTextAndStyle(XWPFTableCell cell, String text, boolean isHeader) { |
|||
cell.removeParagraph(0); |
|||
XWPFParagraph p = cell.addParagraph(); |
|||
p.setAlignment(isHeader ? ParagraphAlignment.CENTER : ParagraphAlignment.LEFT); |
|||
p.setSpacingAfter(0); |
|||
p.setSpacingBefore(0); |
|||
|
|||
String[] lines = (text == null ? "" : text).split("\n", -1); // 保留末尾空行
|
|||
|
|||
for (int i = 0; i < lines.length; i++) { |
|||
if (i > 0) { |
|||
p.createRun().addCarriageReturn(); |
|||
} |
|||
XWPFRun run = p.createRun(); |
|||
run.setText(lines[i]); |
|||
run.setBold(isHeader); |
|||
run.setFontSize(10); |
|||
run.setFontFamily("等线"); |
|||
} |
|||
} |
|||
// private static void setCellTextAndStyle(XWPFTableCell cell, String text, boolean isHeader) {
|
|||
// // 1. 先设置文本(✅ 支持 \n 换行)
|
|||
// cell.setText(text);
|
|||
//
|
|||
// // 2. 获取或创建单元格属性,设置宽度
|
|||
// CTTc ctTc = cell.getCTTc();
|
|||
// CTTcPr tcPr = ctTc.isSetTcPr() ? ctTc.getTcPr() : ctTc.addNewTcPr();
|
|||
// CTTblWidth tcW = tcPr.getTcW() != null ? tcPr.getTcW() : tcPr.addNewTcW();
|
|||
// tcW.setW(BigInteger.valueOf(2000));
|
|||
// tcW.setType(STTblWidth.DXA); // 推荐设置单位
|
|||
//
|
|||
// // 3. 遍历所有段落和 Run,设置样式
|
|||
// for (XWPFParagraph p : cell.getParagraphs()) {
|
|||
// p.setSpacingAfter(50); // 段后间距
|
|||
// for (XWPFRun r : p.getRuns()) {
|
|||
// r.setFontFamily("宋体");
|
|||
// r.setFontSize(10);
|
|||
// if (isHeader) {
|
|||
// r.setBold(true);
|
|||
// }
|
|||
// }
|
|||
// }
|
|||
// }
|
|||
private static void addTotalAndRemarks(XWPFDocument document, ReportData reportData) { |
|||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
|||
|
|||
// 1. 总分
|
|||
/* XWPFParagraph totalPara = document.createParagraph(); |
|||
XWPFRun totalRun = totalPara.createRun(); |
|||
totalRun.setBold(false); |
|||
totalRun.setText("总分:" + reportData.getTotalScore()); |
|||
totalRun.setFontFamily("宋体"); |
|||
totalRun.setFontSize(12);*/ |
|||
|
|||
// 2. 备注
|
|||
XWPFParagraph remarksPara = document.createParagraph(); |
|||
XWPFRun remarksRun = remarksPara.createRun(); |
|||
remarksRun.setText("备注:" + reportData.getRemarks()); |
|||
remarksRun.setFontFamily("宋体"); |
|||
remarksRun.setFontSize(12); |
|||
|
|||
// 3. 检查时间(左) + 检查人员(右)
|
|||
XWPFParagraph p = document.createParagraph(); |
|||
p.setAlignment(ParagraphAlignment.BOTH); // 两端对齐
|
|||
|
|||
XWPFRun run = p.createRun(); |
|||
run.setText("检查时间:" + reportData.getCheckTime().format(formatter) + |
|||
" " + // 多个空格
|
|||
"检查人员:" + reportData.getCheckPersonnel()); |
|||
run.setFontFamily("宋体"); |
|||
run.setFontSize(12); |
|||
} |
|||
|
|||
// ==================== 测试入口 ====================
|
|||
public static void main(String[] args) { |
|||
try { |
|||
ReportData report = new ReportData(); |
|||
|
|||
report.setReportTitle("数据购买监理服务现场技术核查评分表"); |
|||
report.setSiteName("临安区龙岗镇站"); |
|||
report.setOperationUnit("国研信息"); |
|||
report.setCheckTime(LocalDateTime.now()); |
|||
report.setCheckPersonnel("张三、李四"); |
|||
report.setRemarks("注1:《环境空气环境空气气态污染物(SO2、NO2、O3、CO)连续自动监测系统技术要求及检测方法HJ654-2013》\n" + |
|||
"*标项一包含的项目,标项二不包含。\n" + |
|||
"04质量控制效果中相关质控因子有缺项的,分值按比例分摊。\n"); |
|||
|
|||
CheckItem item1 = new CheckItem(); |
|||
item1.setCheckProject("01站房环境保障情况(5分)"); |
|||
item1.setItemScore(2); |
|||
item1.setObtainedScore(1); |
|||
item1.setScoringBasis(List.of( |
|||
"1)站房环境脏,有明显灰尘和异味;", |
|||
"2)物品摆放不整齐;" |
|||
)); |
|||
item1.setDeductionRule("一项不合格扣0.5分,扣完为止(评分规则)"); |
|||
item1.setCheckItemBasis(List.of( |
|||
"1)站房环境脏,有明显灰尘和异味;", |
|||
"2)物品摆放不整齐;" |
|||
)); |
|||
|
|||
|
|||
|
|||
CheckItem item2 = new CheckItem(); |
|||
item2.setCheckProject("01站房环境保障情况(5分)"); |
|||
item2.setItemScore(3); |
|||
item2.setObtainedScore(3); |
|||
item2.setScoringBasis(List.of("1)仪器运行正常;")); |
|||
item2.setDeductionRule("发现异常未处理扣1分"); |
|||
item2.setCheckItemBasis(List.of( |
|||
"动态校准仪质量流量控制器(MFC)单点流量测试(要求相对误差≤±2%):", |
|||
"零气MFC流量: L/min,标准流量计测值: L/min,相对误差: %", |
|||
"标气MFC流量: ml/min,标准流量计测值: ml/min,相对误差: %" |
|||
)); |
|||
|
|||
CheckItem item3 = new CheckItem(); |
|||
item3.setCheckProject("02采样系统维护效果(10分)"); |
|||
item3.setItemScore(3); |
|||
item3.setObtainedScore(3); |
|||
item3.setScoringBasis(List.of("1)仪器运行正常;")); |
|||
item3.setDeductionRule("发现异常未处理扣1分"); |
|||
item3.setCheckItemBasis(List.of( |
|||
"动态校准仪质量流量控制器(MFC)单点流量测试(要求相对误差≤±2%):", |
|||
"零气MFC流量: L/min,标准流量计测值: L/min,相对误差: %", |
|||
"标气MFC流量: ml/min,标准流量计测值: ml/min,相对误差: %" |
|||
)); |
|||
|
|||
|
|||
// 添加到集合
|
|||
report.setCheckItems(List.of(item1, item2, item3)); |
|||
|
|||
// ✅ 默认导出到桌面
|
|||
WordReportExporter.export(report); |
|||
|
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
System.err.println("❌ 导出失败:" + e.getMessage()); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 工单管理对象 work_order_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@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 orderNum; |
|||
|
|||
/** |
|||
* 工作日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date workDate; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 子站状态 |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 删除标志 |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,109 @@ |
|||
package org.dromara.demo.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 校零校准分析对象 zero_adjustment_analysis |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("zero_adjustment_analysis") |
|||
public class ZeroAdjustmentAnalysis extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
private String area; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 上次校零校准时间 |
|||
*/ |
|||
private Date toZeroDate; |
|||
|
|||
/** |
|||
* 时间跨度(如:7天、30天) |
|||
*/ |
|||
private String duration; |
|||
|
|||
/** |
|||
* 核查开始日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date checkStartDate; |
|||
|
|||
/** |
|||
* 核查结束日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date checkEndDate; |
|||
|
|||
/** |
|||
* 实际校零校准次数 |
|||
*/ |
|||
private Long actualTimes; |
|||
|
|||
/** |
|||
* 应校零校准次数 |
|||
*/ |
|||
private Long planTimes; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 环保知情人 |
|||
*/ |
|||
private String insider; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
|
|||
/** |
|||
* 删除标志(0:未删除;1:已删除) |
|||
*/ |
|||
@TableLogic |
|||
private Long delFlag; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,100 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.DeviceInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 设备信息业务对象 device_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = DeviceInfo.class, reverseConvertGenerate = false) |
|||
public class DeviceInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID(自增) |
|||
*/ |
|||
//@NotBlank(message = "主键ID(自增)不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
//@NotBlank(message = "站点不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 设备名称 |
|||
*/ |
|||
//@NotBlank(message = "设备名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String device; |
|||
|
|||
/** |
|||
* 设备型号 |
|||
*/ |
|||
//@NotBlank(message = "设备型号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String model; |
|||
|
|||
/** |
|||
* 生产厂家 |
|||
*/ |
|||
//@NotBlank(message = "生产厂家不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String manufacturer; |
|||
|
|||
/** |
|||
* 生产日期 |
|||
*/ |
|||
//@NotNull(message = "生产日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date manufactureDate; |
|||
|
|||
/** |
|||
* 序列号 |
|||
*/ |
|||
//@NotBlank(message = "序列号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String number; |
|||
|
|||
/** |
|||
* 检测物 |
|||
*/ |
|||
//@NotBlank(message = "检测物不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String testSubstance; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
//@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
|
|||
} |
|||
@ -0,0 +1,92 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.OrderManagementInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 现场核查单管理信息业务对象 order_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = OrderManagementInfo.class, reverseConvertGenerate = false) |
|||
public class OrderManagementInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
//@NotBlank(message = "主键ID(MyBatis-Plus自增)不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
//@NotNull(message = "核查时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date checkTime; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
//@NotBlank(message = "子站名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
//@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
//@NotBlank(message = "监理类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
//@NotBlank(message = "核查人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String checkPerson; |
|||
|
|||
/** |
|||
* 核查得分 |
|||
*/ |
|||
//@NotNull(message = "核查得分不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long checkScore; |
|||
|
|||
/** |
|||
* 子站ID |
|||
*/ |
|||
private String stationId; |
|||
|
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束日期 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.PeopleCheckInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 人员签到统计业务对象 people_check_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PeopleCheckInfo.class, reverseConvertGenerate = false) |
|||
public class PeopleCheckInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
//@NotBlank(message = "站点名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 人员性质 |
|||
*/ |
|||
//@NotBlank(message = "人员性质不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String attribute; |
|||
|
|||
/** |
|||
* 人员姓名 |
|||
*/ |
|||
//@NotBlank(message = "人员姓名不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String person; |
|||
|
|||
/** |
|||
* 所属公司 |
|||
*/ |
|||
//@NotBlank(message = "所属公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String company; |
|||
|
|||
/** |
|||
* 签到时间 |
|||
*/ |
|||
//@NotNull(message = "签到时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date registerTime; |
|||
|
|||
/** |
|||
* 签到类型 |
|||
*/ |
|||
//@NotBlank(message = "签到类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String registerType; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,92 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.PlanInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 计划管理业务对象 plan_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PlanInfo.class, reverseConvertGenerate = false) |
|||
public class PlanInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 计划号 |
|||
*/ |
|||
//@NotBlank(message = "计划号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String planNum; |
|||
|
|||
/** |
|||
* 计划日期 |
|||
*/ |
|||
//@NotNull(message = "计划日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date planDate; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
//@NotBlank(message = "子站名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 子站状态 |
|||
*/ |
|||
//@NotBlank(message = "子站状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
//@NotBlank(message = "运维公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
//@NotBlank(message = "运维人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
//@NotBlank(message = "监理类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
//@NotBlank(message = "监理公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 是否被添加工单 |
|||
*/ |
|||
private String flag; |
|||
} |
|||
@ -0,0 +1,97 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.PmDataManagementInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 颗粒物手工比对数据管理信息业务对象 pm_data_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmDataManagementInfo.class, reverseConvertGenerate = false) |
|||
public class PmDataManagementInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
//@NotBlank(message = "主键ID(MyBatis-Plus自增)不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
//@NotBlank(message = "子站名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
//@NotBlank(message = "运维公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 开始时间 |
|||
*/ |
|||
//@NotNull(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束时间 |
|||
*/ |
|||
//@NotNull(message = "结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
//@NotBlank(message = "监测项目不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 自动监测(mg/m³) |
|||
*/ |
|||
//@NotNull(message = "自动监测(mg/m³)不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long autoMonitor; |
|||
|
|||
/** |
|||
* 手动监测(mg/m³) |
|||
*/ |
|||
//@NotNull(message = "手动监测(mg/m³)不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long handleMonitor; |
|||
|
|||
/** |
|||
* 相对误差 |
|||
*/ |
|||
//@NotNull(message = "相对误差不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long difference; |
|||
|
|||
/** |
|||
* 结论 |
|||
*/ |
|||
//@NotBlank(message = "结论不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String result; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,76 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.SiteEvaluationInfo; |
|||
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 java.time.LocalDateTime; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
/** |
|||
* 现场考核信息业务对象 site_evaluation_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-09-05 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = SiteEvaluationInfo.class, reverseConvertGenerate = false) |
|||
public class SiteEvaluationInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus) |
|||
*/ |
|||
//@NotBlank(message = "主键ID(MyBatis-Plus)不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
//@NotNull(message = "核查时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private LocalDateTime checkDateTime; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
//@NotBlank(message = "站点名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String siteName; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
//@NotBlank(message = "核查人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String checkPeople; |
|||
|
|||
/** |
|||
* 评分相关业务数据 |
|||
*/ |
|||
//@NotBlank(message = "评分相关业务数据不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String evaluationData; |
|||
|
|||
/** |
|||
* 图片附件数据 |
|||
*/ |
|||
//@NotBlank(message = "图片附件数据不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String imgData; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
//@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
//@NotBlank(message = "监理类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorType; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.SparePartsInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 备品备件列业务对象 spare_parts_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = SparePartsInfo.class, reverseConvertGenerate = false) |
|||
public class SparePartsInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 品名 |
|||
*/ |
|||
//@NotBlank(message = "品名不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String name; |
|||
|
|||
/** |
|||
* 类型 |
|||
*/ |
|||
//@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String type; |
|||
|
|||
/** |
|||
* 型号 |
|||
*/ |
|||
//@NotBlank(message = "型号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String model; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
//@NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long amount; |
|||
|
|||
/** |
|||
* 入库日期 |
|||
*/ |
|||
//@NotNull(message = "入库日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date indate; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
//@NotBlank(message = "运维公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
//@NotBlank(message = "监理公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,105 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.StationFaultInfo; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* air业务对象 station_fault_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = StationFaultInfo.class, reverseConvertGenerate = false) |
|||
public class StationFaultInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
//@NotBlank(message = "站点不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
//@NotBlank(message = "监测项目不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 故障开始时间 |
|||
*/ |
|||
//@NotNull(message = "故障开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date faultStartDate; |
|||
|
|||
/** |
|||
* 故障结束时间 |
|||
*/ |
|||
//@NotNull(message = "故障结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date faultEndDate; |
|||
|
|||
/** |
|||
* 运维响应时间 |
|||
*/ |
|||
//@NotNull(message = "运维响应时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date ioResponseDate; |
|||
|
|||
/** |
|||
* 响应时间跨度 |
|||
*/ |
|||
//@NotBlank(message = "响应时间跨度不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String responseDuration; |
|||
|
|||
/** |
|||
* 故障时间跨度 |
|||
*/ |
|||
//@NotBlank(message = "故障时间跨度不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String faultDuration; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
//@NotBlank(message = "监理人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
//@NotBlank(message = "监理单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
//@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
//@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,84 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.StationInfo; |
|||
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.*; |
|||
|
|||
/** |
|||
* 子站信息业务对象 station_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = StationInfo.class, reverseConvertGenerate = false) |
|||
public class StationInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID(数据库自增) |
|||
*/ |
|||
//@NotBlank(message = "主键ID(数据库自增)不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
//@NotBlank(message = "子站名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 地址 |
|||
*/ |
|||
//@NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String address; |
|||
|
|||
/** |
|||
* 经度 |
|||
*/ |
|||
//@NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String longitude; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
//@NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String latitude; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
//@NotBlank(message = "运维公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
//@NotBlank(message = "运维人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
//@NotBlank(message = "监理公司不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
//@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.StationParamChange; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 站点参数变更业务对象 station_param_change |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = StationParamChange.class, reverseConvertGenerate = false) |
|||
public class StationParamChangeBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
//@NotBlank(message = "站点名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
//@NotBlank(message = "监测项目不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 参数名称 |
|||
*/ |
|||
//@NotBlank(message = "参数名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String arguments; |
|||
|
|||
/** |
|||
* 发现时间 |
|||
*/ |
|||
//@NotNull(message = "发现时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date foundDate; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
//@NotBlank(message = "监理人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
//@NotBlank(message = "监理单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
//@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
//@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.WebSiteNetDataAnalysis; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 站点联网数据分析业务对象 web_site_net_data_analysis |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = WebSiteNetDataAnalysis.class, reverseConvertGenerate = false) |
|||
public class WebSiteNetDataAnalysisBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
//@NotBlank(message = "站点名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 当前状态(如:运行中、维护中、离线) |
|||
*/ |
|||
//@NotBlank(message = "当前状态(如:运行中、维护中、离线)不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
//@NotBlank(message = "运维单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
//@NotBlank(message = "监理单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 本月应收数据金额 |
|||
*/ |
|||
//@NotNull(message = "本月应收数据金额不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long planIncome; |
|||
|
|||
/** |
|||
* 本月实收数据金额 |
|||
*/ |
|||
//@NotNull(message = "本月实收数据金额不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long actualIncome; |
|||
|
|||
/** |
|||
* 最新数据更新时间 |
|||
*/ |
|||
//@NotNull(message = "最新数据更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date lastTime; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,80 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 工单管理业务对象 work_order_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = WorkOrderInfo.class, reverseConvertGenerate = false) |
|||
public class WorkOrderInfoBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 工单编号 |
|||
*/ |
|||
//@NotBlank(message = "工单编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String orderNum; |
|||
|
|||
/** |
|||
* 工作日期 |
|||
*/ |
|||
//@NotNull(message = "工作日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date workDate; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
//@NotBlank(message = "子站名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 子站状态 |
|||
*/ |
|||
//@NotBlank(message = "子站状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String status; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
//@NotBlank(message = "监理类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
//@NotBlank(message = "监理人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 计划ID |
|||
*/ |
|||
private String planId; |
|||
} |
|||
@ -0,0 +1,115 @@ |
|||
package org.dromara.demo.domain.bo; |
|||
|
|||
import org.dromara.demo.domain.ZeroAdjustmentAnalysis; |
|||
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 java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
/** |
|||
* 校零校准分析业务对象 zero_adjustment_analysis |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = ZeroAdjustmentAnalysis.class, reverseConvertGenerate = false) |
|||
public class ZeroAdjustmentAnalysisBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
//@NotBlank(message = "主键ID不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
//@NotBlank(message = "站点名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
//@NotBlank(message = "所属区域不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String area; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
//@NotBlank(message = "监测项目不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 上次校零校准时间 |
|||
*/ |
|||
//@NotNull(message = "上次校零校准时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Date toZeroDate; |
|||
|
|||
/** |
|||
* 时间跨度(如:7天、30天) |
|||
*/ |
|||
//@NotBlank(message = "时间跨度(如:7天、30天)不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String duration; |
|||
|
|||
/** |
|||
* 核查开始日期 |
|||
*/ |
|||
//@NotNull(message = "核查开始日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date checkStartDate; |
|||
|
|||
/** |
|||
* 核查结束日期 |
|||
*/ |
|||
//@NotNull(message = "核查结束日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date checkEndDate; |
|||
|
|||
/** |
|||
* 实际校零校准次数 |
|||
*/ |
|||
//@NotNull(message = "实际校零校准次数不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long actualTimes; |
|||
|
|||
/** |
|||
* 应校零校准次数 |
|||
*/ |
|||
//@NotNull(message = "应校零校准次数不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private Long planTimes; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
//@NotBlank(message = "监理人员不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
//@NotBlank(message = "监理单位不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 环保知情人 |
|||
*/ |
|||
//@NotBlank(message = "环保知情人不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String insider; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
//@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
import org.dromara.demo.domain.Attachment; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class AttachmentVo { |
|||
private List<Attachment> attachmentList; |
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remark; |
|||
} |
|||
@ -0,0 +1,100 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.DeviceInfo; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 设备信息视图对象 device_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = DeviceInfo.class) |
|||
public class DeviceInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(自增) |
|||
*/ |
|||
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class) |
|||
//@ExcelDictFormat(readConverterExp = "自=增")
|
|||
private String id; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
@ExcelProperty(value = "站点") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 设备名称 |
|||
*/ |
|||
@ExcelProperty(value = "设备名称") |
|||
private String device; |
|||
|
|||
/** |
|||
* 设备型号 |
|||
*/ |
|||
@ExcelProperty(value = "设备型号") |
|||
private String model; |
|||
|
|||
/** |
|||
* 生产厂家 |
|||
*/ |
|||
@ExcelProperty(value = "生产厂家") |
|||
private String manufacturer; |
|||
|
|||
/** |
|||
* 生产日期 |
|||
*/ |
|||
@ExcelProperty(value = "生产日期") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date manufactureDate; |
|||
|
|||
/** |
|||
* 序列号 |
|||
*/ |
|||
@ExcelProperty(value = "序列号") |
|||
private String number; |
|||
|
|||
/** |
|||
* 检测物 |
|||
*/ |
|||
@ExcelProperty(value = "检测物") |
|||
private String testSubstance; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
@ExcelProperty(value = "状态") |
|||
private String status; |
|||
|
|||
@ExcelProperty(value = "监理公司") |
|||
private String monitorCompany; |
|||
|
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.OrderManagementInfo; |
|||
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; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 现场核查单管理信息视图对象 order_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = OrderManagementInfo.class) |
|||
public class OrderManagementInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class) |
|||
//@ExcelDictFormat(readConverterExp = "M=yBatis-Plus自增")
|
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
@ExcelProperty(value = "核查时间") |
|||
private Date checkTime; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
@ExcelProperty(value = "子站名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
@ExcelProperty(value = "状态") |
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
@ExcelProperty(value = "监理类型") |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
@ExcelProperty(value = "核查人员") |
|||
private String checkPerson; |
|||
|
|||
/** |
|||
* 核查得分 |
|||
*/ |
|||
@ExcelProperty(value = "核查得分") |
|||
private Long checkScore; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.PeopleCheckInfo; |
|||
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; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 人员签到统计视图对象 people_check_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PeopleCheckInfo.class) |
|||
public class PeopleCheckInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
@ExcelProperty(value = "站点名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 人员性质 |
|||
*/ |
|||
@ExcelProperty(value = "人员性质") |
|||
private String attribute; |
|||
|
|||
/** |
|||
* 人员姓名 |
|||
*/ |
|||
@ExcelProperty(value = "人员姓名") |
|||
private String person; |
|||
|
|||
/** |
|||
* 所属公司 |
|||
*/ |
|||
@ExcelProperty(value = "所属公司") |
|||
private String company; |
|||
|
|||
/** |
|||
* 签到时间 |
|||
*/ |
|||
@ExcelProperty(value = "签到时间") |
|||
private Date registerTime; |
|||
|
|||
/** |
|||
* 签到类型 |
|||
*/ |
|||
@ExcelProperty(value = "签到类型") |
|||
private String registerType; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,97 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.PlanInfo; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 计划管理视图对象 plan_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-03 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PlanInfo.class) |
|||
public class PlanInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 计划号 |
|||
*/ |
|||
@ExcelProperty(value = "计划号") |
|||
private String planNum; |
|||
|
|||
/** |
|||
* 计划日期 |
|||
*/ |
|||
@ExcelProperty(value = "计划日期") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date planDate; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
@ExcelProperty(value = "子站名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 子站状态 |
|||
*/ |
|||
@ExcelProperty(value = "子站状态") |
|||
private String status; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
@ExcelProperty(value = "运维公司") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
@ExcelProperty(value = "运维人员") |
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
@ExcelProperty(value = "监理类型") |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
@ExcelProperty(value = "监理公司") |
|||
private String monitorCompany; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class PlanSelectVo { |
|||
private String label; |
|||
private String value; |
|||
|
|||
} |
|||
@ -0,0 +1,106 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.PmDataManagementInfo; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 颗粒物手工比对数据管理信息视图对象 pm_data_management_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmDataManagementInfo.class) |
|||
public class PmDataManagementInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus自增) |
|||
*/ |
|||
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class) |
|||
//@ExcelDictFormat(readConverterExp = "M=yBatis-Plus自增")
|
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
@ExcelProperty(value = "子站名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
@ExcelProperty(value = "运维公司") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 开始时间 |
|||
*/ |
|||
@ExcelProperty(value = "开始时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date startDate; |
|||
|
|||
/** |
|||
* 结束时间 |
|||
*/ |
|||
@ExcelProperty(value = "结束时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date endDate; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
@ExcelProperty(value = "监测项目") |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 自动监测(mg/m³) |
|||
*/ |
|||
@ExcelProperty(value = "自动监测(mg/m³)") |
|||
private Long autoMonitor; |
|||
|
|||
/** |
|||
* 手动监测(mg/m³) |
|||
*/ |
|||
@ExcelProperty(value = "手动监测(mg/m³)") |
|||
private Long handleMonitor; |
|||
|
|||
/** |
|||
* 相对误差 |
|||
*/ |
|||
@ExcelProperty(value = "相对误差") |
|||
private Long difference; |
|||
|
|||
/** |
|||
* 结论 |
|||
*/ |
|||
@ExcelProperty(value = "结论") |
|||
private String result; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class RegionVo { |
|||
private String value; |
|||
// 无参构造函数(Lombok已经帮你生成了,除非你手动写了其他构造函数)
|
|||
public RegionVo() {} |
|||
|
|||
// 全参构造函数
|
|||
public RegionVo(String value) { |
|||
this.value = value; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,102 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.Date; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableField; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.NoArgsConstructor; |
|||
import org.dromara.demo.domain.Attachment; |
|||
import org.dromara.demo.domain.EvaluationDataJson; |
|||
import org.dromara.demo.domain.SiteEvaluationInfo; |
|||
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; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 现场考核信息视图对象 site_evaluation_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-09-05 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = SiteEvaluationInfo.class) |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class SiteEvaluationInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(MyBatis-Plus) |
|||
*/ |
|||
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "M=yBatis-Plus") |
|||
private String id; |
|||
|
|||
/** |
|||
* 核查时间 |
|||
*/ |
|||
@ExcelProperty(value = "核查时间") |
|||
private LocalDateTime checkDateTime; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
@ExcelProperty(value = "站点名称") |
|||
private String siteName; |
|||
|
|||
/** |
|||
* 核查人员 |
|||
*/ |
|||
@ExcelProperty(value = "核查人员") |
|||
private String checkPeople; |
|||
|
|||
/** |
|||
* 评分相关业务数据 |
|||
*/ |
|||
@ExcelProperty(value = "评分相关业务数据") |
|||
private String evaluationData; |
|||
|
|||
/** |
|||
* 图片附件数据 |
|||
*/ |
|||
@ExcelProperty(value = "图片附件数据") |
|||
private String imgData; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
@ExcelProperty(value = "状态") |
|||
private String status; |
|||
|
|||
/** |
|||
* 监理类型 |
|||
*/ |
|||
@ExcelProperty(value = "监理类型") |
|||
private String monitorType; |
|||
|
|||
/** |
|||
* 评分业务数据 |
|||
*/ |
|||
@TableField(exist = false) |
|||
private EvaluationDataJson evaluationDataVo; |
|||
|
|||
/** |
|||
* 附件业务数据 |
|||
*/ |
|||
@TableField(exist = false) |
|||
private List<AttachmentVo> attachmentVoList; |
|||
} |
|||
@ -0,0 +1,85 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.SparePartsInfo; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 备品备件列视图对象 spare_parts_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-02 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = SparePartsInfo.class) |
|||
public class SparePartsInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 品名 |
|||
*/ |
|||
@ExcelProperty(value = "品名") |
|||
private String name; |
|||
|
|||
/** |
|||
* 类型 |
|||
*/ |
|||
@ExcelProperty(value = "类型") |
|||
private String type; |
|||
|
|||
/** |
|||
* 型号 |
|||
*/ |
|||
@ExcelProperty(value = "型号") |
|||
private String model; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
@ExcelProperty(value = "数量") |
|||
private Long amount; |
|||
|
|||
/** |
|||
* 入库日期 |
|||
*/ |
|||
@ExcelProperty(value = "入库日期") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date indate; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
@ExcelProperty(value = "运维公司") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
@ExcelProperty(value = "监理公司") |
|||
private String monitorCompany; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,113 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.StationFaultInfo; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* air视图对象 station_fault_info |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = StationFaultInfo.class) |
|||
public class StationFaultInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点 |
|||
*/ |
|||
@ExcelProperty(value = "站点") |
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
@ExcelProperty(value = "监测项目") |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 故障开始时间 |
|||
*/ |
|||
@ExcelProperty(value = "故障开始时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date faultStartDate; |
|||
|
|||
/** |
|||
* 故障结束时间 |
|||
*/ |
|||
@ExcelProperty(value = "故障结束时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date faultEndDate; |
|||
|
|||
/** |
|||
* 运维响应时间 |
|||
*/ |
|||
@ExcelProperty(value = "运维响应时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date ioResponseDate; |
|||
|
|||
/** |
|||
* 响应时间跨度 |
|||
*/ |
|||
@ExcelProperty(value = "响应时间跨度") |
|||
private String responseDuration; |
|||
|
|||
/** |
|||
* 故障时间跨度 |
|||
*/ |
|||
@ExcelProperty(value = "故障时间跨度") |
|||
private String faultDuration; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
@ExcelProperty(value = "监理人员") |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
@ExcelProperty(value = "监理单位") |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
@ExcelProperty(value = "运维单位") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,93 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import org.dromara.demo.domain.StationInfo; |
|||
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; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 子站信息视图对象 station_info |
|||
* |
|||
* @author GJH |
|||
* @date 2025-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = StationInfo.class) |
|||
public class StationInfoVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID(数据库自增) |
|||
*/ |
|||
@ExcelProperty(value = "主键ID", converter = ExcelDictConvert.class) |
|||
//@ExcelDictFormat(readConverterExp = "数=据库自增")
|
|||
private String id; |
|||
|
|||
/** |
|||
* 子站名称 |
|||
*/ |
|||
@ExcelProperty(value = "子站名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 地址 |
|||
*/ |
|||
@ExcelProperty(value = "地址") |
|||
private String address; |
|||
|
|||
/** |
|||
* 经度 |
|||
*/ |
|||
@ExcelProperty(value = "经度") |
|||
private String longitude; |
|||
|
|||
/** |
|||
* 纬度 |
|||
*/ |
|||
@ExcelProperty(value = "纬度") |
|||
private String latitude; |
|||
|
|||
/** |
|||
* 运维公司 |
|||
*/ |
|||
@ExcelProperty(value = "运维公司") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 运维人员 |
|||
*/ |
|||
@ExcelProperty(value = "运维人员") |
|||
private String ioPerson; |
|||
|
|||
/** |
|||
* 监理公司 |
|||
*/ |
|||
@ExcelProperty(value = "监理公司") |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 状态 |
|||
*/ |
|||
@ExcelProperty(value = "状态") |
|||
private String status; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,91 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.StationParamChange; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 站点参数变更视图对象 station_param_change |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = StationParamChange.class) |
|||
public class StationParamChangeVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
@ExcelProperty(value = "站点名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 监测项目 |
|||
*/ |
|||
@ExcelProperty(value = "监测项目") |
|||
private String monitorProject; |
|||
|
|||
/** |
|||
* 参数名称 |
|||
*/ |
|||
@ExcelProperty(value = "参数名称") |
|||
private String arguments; |
|||
|
|||
/** |
|||
* 发现时间 |
|||
*/ |
|||
@ExcelProperty(value = "发现时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date foundDate; |
|||
|
|||
/** |
|||
* 监理人员 |
|||
*/ |
|||
@ExcelProperty(value = "监理人员") |
|||
private String monitorPerson; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
@ExcelProperty(value = "监理单位") |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
@ExcelProperty(value = "运维单位") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remark; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class StationSelectVo { |
|||
private String value; |
|||
|
|||
public StationSelectVo() {} |
|||
|
|||
// 全参构造函数
|
|||
public StationSelectVo(String value) { |
|||
this.value = value; |
|||
} |
|||
} |
|||
@ -0,0 +1,92 @@ |
|||
package org.dromara.demo.domain.vo; |
|||
|
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.demo.domain.WebSiteNetDataAnalysis; |
|||
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 org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 站点联网数据分析视图对象 web_site_net_data_analysis |
|||
* |
|||
* @author gejunhao |
|||
* @date 2025-07-08 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = WebSiteNetDataAnalysis.class) |
|||
public class WebSiteNetDataAnalysisVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键ID |
|||
*/ |
|||
@ExcelProperty(value = "主键ID") |
|||
private String id; |
|||
|
|||
/** |
|||
* 站点名称 |
|||
*/ |
|||
@ExcelProperty(value = "站点名称") |
|||
private String station; |
|||
|
|||
/** |
|||
* 所属区域 |
|||
*/ |
|||
@ExcelProperty(value = "所属区域") |
|||
private String area; |
|||
|
|||
/** |
|||
* 当前状态(如:运行中、维护中、离线) |
|||
*/ |
|||
@ExcelProperty(value = "当前状态", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "如=:运行中、维护中、离线") |
|||
private String status; |
|||
|
|||
/** |
|||
* 运维单位 |
|||
*/ |
|||
@ExcelProperty(value = "运维单位") |
|||
private String ioCompany; |
|||
|
|||
/** |
|||
* 监理单位 |
|||
*/ |
|||
@ExcelProperty(value = "监理单位") |
|||
private String monitorCompany; |
|||
|
|||
/** |
|||
* 本月应收数据金额 |
|||
*/ |
|||
@ExcelProperty(value = "本月应收数据金额") |
|||
private Long planIncome; |
|||
|
|||
/** |
|||
* 本月实收数据金额 |
|||
*/ |
|||
@ExcelProperty(value = "本月实收数据金额") |
|||
private Long actualIncome; |
|||
|
|||
/** |
|||
* 最新数据更新时间 |
|||
*/ |
|||
@ExcelProperty(value = "最新数据更新时间") |
|||
@JsonFormat(pattern = "yyyy-MM-dd") |
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
private Date lastTime; |
|||
|
|||
|
|||
} |
|||
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue