Showing
34 changed files
with
1152 additions
and
37 deletions
@@ -6,8 +6,7 @@ CREATE TABLE "public"."qg_malfunction_reason" ( | @@ -6,8 +6,7 @@ CREATE TABLE "public"."qg_malfunction_reason" ( | ||
6 | "create_time" timestamp(6), | 6 | "create_time" timestamp(6), |
7 | "creator" varchar(36), | 7 | "creator" varchar(36), |
8 | "updater" varchar(36), | 8 | "updater" varchar(36), |
9 | - "update_time" timestamp(6), | ||
10 | - "remark" varchar(255), | 9 | + "update_time" timestamp(6) |
11 | CONSTRAINT "qg_malfunction_reason_pkey" PRIMARY KEY ("id") | 10 | CONSTRAINT "qg_malfunction_reason_pkey" PRIMARY KEY ("id") |
12 | ); | 11 | ); |
13 | 12 | ||
@@ -43,8 +42,7 @@ CREATE TABLE "public"."qg_repair_order" ( | @@ -43,8 +42,7 @@ CREATE TABLE "public"."qg_repair_order" ( | ||
43 | "create_time" timestamp(6), | 42 | "create_time" timestamp(6), |
44 | "creator" varchar(36), | 43 | "creator" varchar(36), |
45 | "updater" varchar(36), | 44 | "updater" varchar(36), |
46 | - "update_time" timestamp(6), | ||
47 | - "remark" varchar(255), | 45 | + "update_time" timestamp(6) |
48 | CONSTRAINT "qg_repair_order_pkey" PRIMARY KEY ("id") | 46 | CONSTRAINT "qg_repair_order_pkey" PRIMARY KEY ("id") |
49 | ); | 47 | ); |
50 | 48 | ||
@@ -75,8 +73,7 @@ CREATE TABLE "public"."qg_repair_record" ( | @@ -75,8 +73,7 @@ CREATE TABLE "public"."qg_repair_record" ( | ||
75 | "create_time" timestamp(6), | 73 | "create_time" timestamp(6), |
76 | "creator" varchar(36), | 74 | "creator" varchar(36), |
77 | "updater" varchar(36), | 75 | "updater" varchar(36), |
78 | - "update_time" timestamp(6), | ||
79 | - "remark" varchar(255), | 76 | + "update_time" timestamp(6) |
80 | CONSTRAINT "qg_repair_record_pkey" PRIMARY KEY ("id") | 77 | CONSTRAINT "qg_repair_record_pkey" PRIMARY KEY ("id") |
81 | ); | 78 | ); |
82 | 79 | ||
@@ -199,4 +196,72 @@ COMMENT ON TABLE "public"."qg_inspection_details" IS '巡检记录明细'; | @@ -199,4 +196,72 @@ COMMENT ON TABLE "public"."qg_inspection_details" IS '巡检记录明细'; | ||
199 | COMMENT ON COLUMN "public"."qg_inspection_details"."id" IS '主键ID'; | 196 | COMMENT ON COLUMN "public"."qg_inspection_details"."id" IS '主键ID'; |
200 | COMMENT ON COLUMN "public"."qg_inspection_details"."check_device_id" IS '巡检设备'; | 197 | COMMENT ON COLUMN "public"."qg_inspection_details"."check_device_id" IS '巡检设备'; |
201 | COMMENT ON COLUMN "public"."qg_inspection_details"."plan_details" IS '巡检内容'; | 198 | COMMENT ON COLUMN "public"."qg_inspection_details"."plan_details" IS '巡检内容'; |
202 | -COMMENT ON COLUMN "public"."qg_inspection_details"."record_result" IS '巡检结果'; | ||
199 | +COMMENT ON COLUMN "public"."qg_inspection_details"."record_result" IS '巡检结果'; | ||
200 | + | ||
201 | +CREATE TABLE "public"."qg_preserve_detail" ( | ||
202 | + "id" varchar(36) NOT NULL, | ||
203 | + "detail_code" varchar(50), | ||
204 | + "preserve_detail" varchar(200), | ||
205 | + "preserve_plan_id" varchar(36), | ||
206 | + "device_id" varchar(36), | ||
207 | + "check_plan_id" varchar(36), | ||
208 | + "detail_status" varchar(50), | ||
209 | + "tenant_id" varchar(36), | ||
210 | + "create_time" timestamp(6), | ||
211 | + "creator" varchar(36), | ||
212 | + "updater" varchar(36), | ||
213 | + "update_time" timestamp(6), | ||
214 | + CONSTRAINT "qg_preserve_detail_pkey" PRIMARY KEY ("id") | ||
215 | +); | ||
216 | + | ||
217 | +COMMENT ON TABLE "public"."qg_preserve_detail" IS '保养明细'; | ||
218 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."detail_code" IS '保养明细编码'; | ||
219 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."preserve_detail" IS '方案明细'; | ||
220 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."preserve_plan_id" IS '保养计划id'; | ||
221 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."device_id" IS '设备id'; | ||
222 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."check_plan_id" IS '方案id'; | ||
223 | +COMMENT ON COLUMN "public"."qg_preserve_detail"."detail_status" IS '状态'; | ||
224 | + | ||
225 | +CREATE TABLE "public"."qg_preserve_plan" ( | ||
226 | + "id" varchar(36) NOT NULL, | ||
227 | + "preserve_code" varchar(50), | ||
228 | + "preserve_name" varchar(200), | ||
229 | + "status" varchar(50), | ||
230 | + "times" int4, | ||
231 | + "frequency" varchar(50), | ||
232 | + "tenant_id" varchar(36), | ||
233 | + "create_time" timestamp(6), | ||
234 | + "creator" varchar(36), | ||
235 | + "updater" varchar(36), | ||
236 | + "update_time" timestamp(6), | ||
237 | + CONSTRAINT "qg_preserve_plan_pkey" PRIMARY KEY ("id") | ||
238 | +); | ||
239 | + | ||
240 | +COMMENT ON TABLE "public"."qg_preserve_plan" IS '保养计划'; | ||
241 | +COMMENT ON COLUMN "public"."qg_preserve_plan"."preserve_code" IS '保养计划编码'; | ||
242 | +COMMENT ON COLUMN "public"."qg_preserve_plan"."preserve_name" IS '保养计划名称'; | ||
243 | +COMMENT ON COLUMN "public"."qg_preserve_plan"."status" IS '状态'; | ||
244 | +COMMENT ON COLUMN "public"."qg_preserve_plan"."times" IS '次数'; | ||
245 | +COMMENT ON COLUMN "public"."qg_preserve_plan"."frequency" IS '频率'; | ||
246 | + | ||
247 | +CREATE TABLE "public"."qg_preserve_record" ( | ||
248 | + "id" varchar(36) NOT NULL, | ||
249 | + "record_code" varchar(50), | ||
250 | + "preserve_plan_id" varchar(36), | ||
251 | + "preserve_date" timestamp(6), | ||
252 | + "preserve_by" varchar(36), | ||
253 | + "preserve_status" varchar(50), | ||
254 | + "tenant_id" varchar(36), | ||
255 | + "create_time" timestamp(6), | ||
256 | + "creator" varchar(36), | ||
257 | + "updater" varchar(36), | ||
258 | + "update_time" timestamp(6), | ||
259 | + CONSTRAINT "qg_preserve_record_pkey" PRIMARY KEY ("id") | ||
260 | +); | ||
261 | + | ||
262 | +COMMENT ON TABLE "public"."qg_preserve_record" IS '保养记录'; | ||
263 | +COMMENT ON COLUMN "public"."qg_preserve_record"."record_code" IS '保养记录编码'; | ||
264 | +COMMENT ON COLUMN "public"."qg_preserve_record"."preserve_plan_id" IS '保养计划id'; | ||
265 | +COMMENT ON COLUMN "public"."qg_preserve_record"."preserve_date" IS '保养日期'; | ||
266 | +COMMENT ON COLUMN "public"."qg_preserve_record"."preserve_by" IS '保养日期'; | ||
267 | +COMMENT ON COLUMN "public"."qg_preserve_record"."preserve_status" IS '状态'; |
application/src/main/java/org/thingsboard/server/controller/yunteng/TkPreservePlanController.java
0 → 100644
1 | +package org.thingsboard.server.controller.yunteng; | ||
2 | + | ||
3 | +import io.swagger.annotations.Api; | ||
4 | +import io.swagger.annotations.ApiOperation; | ||
5 | +import lombok.RequiredArgsConstructor; | ||
6 | +import lombok.extern.slf4j.Slf4j; | ||
7 | +import org.springframework.http.ResponseEntity; | ||
8 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
9 | +import org.springframework.web.bind.annotation.*; | ||
10 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
11 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | ||
12 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO; | ||
13 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreservePlanDTO; | ||
14 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
15 | +import org.thingsboard.server.controller.BaseController; | ||
16 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveDetailService; | ||
17 | +import org.thingsboard.server.dao.yunteng.service.TkPreservePlanService; | ||
18 | +import org.thingsboard.server.queue.util.TbCoreComponent; | ||
19 | + | ||
20 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE; | ||
21 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE; | ||
22 | + | ||
23 | +@RestController | ||
24 | +@TbCoreComponent | ||
25 | +@RequiredArgsConstructor | ||
26 | +@RequestMapping("api/yt/preservePlan") | ||
27 | +@Api(tags = {"保养计划"}) | ||
28 | +@Slf4j | ||
29 | +public class TkPreservePlanController extends BaseController { | ||
30 | + | ||
31 | + private final TkPreservePlanService tkPreservePlanService; | ||
32 | + | ||
33 | + private final TkPreserveDetailService tkPreserveDetailService; | ||
34 | + | ||
35 | + @PostMapping("/save") | ||
36 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
37 | + @ApiOperation("保养计划保存") | ||
38 | + public ResponseEntity<TkPreservePlanDTO> save(@RequestBody TkPreservePlanDTO dto) throws ThingsboardException { | ||
39 | + TkPreservePlanDTO preservePlanDTO = tkPreservePlanService.save(dto); | ||
40 | + return ResponseEntity.ok(preservePlanDTO); | ||
41 | + } | ||
42 | + | ||
43 | + @GetMapping("/delete") | ||
44 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
45 | + @ApiOperation("保养计划删除") | ||
46 | + public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException { | ||
47 | + return ResponseEntity.ok(tkPreservePlanService.delete(id)); | ||
48 | + } | ||
49 | + | ||
50 | + @GetMapping("/detail") | ||
51 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
52 | + @ApiOperation("保养计划详情") | ||
53 | + public ResponseEntity<TkPreservePlanDTO> detail(@RequestParam("id") String id) throws ThingsboardException { | ||
54 | + TkPreservePlanDTO deviceDTO = tkPreservePlanService.detail(id); | ||
55 | + return ResponseEntity.ok(deviceDTO); | ||
56 | + } | ||
57 | + | ||
58 | + @PostMapping("/pageData") | ||
59 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
60 | + @ApiOperation("保养计划分页列表") | ||
61 | + public TkPageData<TkPreservePlanDTO> pageData( | ||
62 | + @RequestParam(PAGE_SIZE) int pageSize, | ||
63 | + @RequestParam(PAGE) int page, | ||
64 | + @RequestBody TkPreservePlanDTO dto) | ||
65 | + throws ThingsboardException { | ||
66 | + dto.setPage(page); | ||
67 | + dto.setPageSize(pageSize); | ||
68 | + return tkPreservePlanService.page(dto); | ||
69 | + } | ||
70 | + | ||
71 | + @PostMapping("/updateStatus") | ||
72 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
73 | + @ApiOperation("更新保养计划状态") | ||
74 | + public ResponseEntity<TkPreservePlanDTO> updateStatus(@RequestBody TkPreservePlanDTO dto) throws ThingsboardException { | ||
75 | + TkPreservePlanDTO orderInfo = tkPreservePlanService.load(dto.getId()); | ||
76 | + if (orderInfo == null) { | ||
77 | + throw new TkDataValidationException("保养计划不存在!"); | ||
78 | + } | ||
79 | + | ||
80 | + tkPreservePlanService.updateStatus(dto.getId(), dto.getStatus()); | ||
81 | + return ResponseEntity.ok(orderInfo); | ||
82 | + } | ||
83 | + | ||
84 | + @PostMapping("/pageDetail") | ||
85 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
86 | + @ApiOperation("保养计划详情分页列表") | ||
87 | + public TkPageData<TkPreserveDetailDTO> pageDetail( | ||
88 | + @RequestParam(PAGE_SIZE) int pageSize, | ||
89 | + @RequestParam(PAGE) int page, | ||
90 | + @RequestBody TkPreserveDetailDTO dto) | ||
91 | + throws ThingsboardException { | ||
92 | + dto.setPage(page); | ||
93 | + dto.setPageSize(pageSize); | ||
94 | + return tkPreserveDetailService.page(dto); | ||
95 | + } | ||
96 | +} |
application/src/main/java/org/thingsboard/server/controller/yunteng/TkPreserveRecordController.java
0 → 100644
1 | +package org.thingsboard.server.controller.yunteng; | ||
2 | + | ||
3 | +import io.swagger.annotations.Api; | ||
4 | +import io.swagger.annotations.ApiOperation; | ||
5 | +import lombok.RequiredArgsConstructor; | ||
6 | +import lombok.extern.slf4j.Slf4j; | ||
7 | +import org.springframework.http.ResponseEntity; | ||
8 | +import org.springframework.security.access.prepost.PreAuthorize; | ||
9 | +import org.springframework.web.bind.annotation.*; | ||
10 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
11 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | ||
12 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
13 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
14 | +import org.thingsboard.server.controller.BaseController; | ||
15 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveRecordServcie; | ||
16 | +import org.thingsboard.server.queue.util.TbCoreComponent; | ||
17 | + | ||
18 | +import java.util.Map; | ||
19 | + | ||
20 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE; | ||
21 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE; | ||
22 | + | ||
23 | +@RestController | ||
24 | +@TbCoreComponent | ||
25 | +@RequiredArgsConstructor | ||
26 | +@RequestMapping("api/yt/preserveRecord") | ||
27 | +@Api(tags = {"保养记录"}) | ||
28 | +@Slf4j | ||
29 | +public class TkPreserveRecordController extends BaseController { | ||
30 | + | ||
31 | + private final TkPreserveRecordServcie tkPreserveRecordServcie; | ||
32 | + | ||
33 | + @PostMapping("/save") | ||
34 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
35 | + @ApiOperation("保养记录保存") | ||
36 | + public ResponseEntity<TkPreserveRecordDTO> save(@RequestBody TkPreserveRecordDTO dto) throws ThingsboardException { | ||
37 | + TkPreserveRecordDTO preservePlanDTO = tkPreserveRecordServcie.save(dto); | ||
38 | + return ResponseEntity.ok(preservePlanDTO); | ||
39 | + } | ||
40 | + | ||
41 | + @GetMapping("/delete") | ||
42 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
43 | + @ApiOperation("保养记录删除") | ||
44 | + public ResponseEntity<Boolean> delete(@RequestParam("id") String id) throws ThingsboardException { | ||
45 | + return ResponseEntity.ok(tkPreserveRecordServcie.delete(id)); | ||
46 | + } | ||
47 | + | ||
48 | + @GetMapping("/detail") | ||
49 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
50 | + @ApiOperation("保养记录详情") | ||
51 | + public ResponseEntity<TkPreserveRecordDTO> detail(@RequestParam("id") String id) throws ThingsboardException { | ||
52 | + TkPreserveRecordDTO deviceDTO = tkPreserveRecordServcie.detail(id); | ||
53 | + return ResponseEntity.ok(deviceDTO); | ||
54 | + } | ||
55 | + | ||
56 | + @PostMapping("/updateStatus") | ||
57 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
58 | + @ApiOperation("更新保养记录状态") | ||
59 | + public ResponseEntity<TkPreserveRecordDTO> updateStatus(@RequestBody TkPreserveRecordDTO dto) throws ThingsboardException { | ||
60 | + TkPreserveRecordDTO orderInfo = tkPreserveRecordServcie.load(dto.getId()); | ||
61 | + if (orderInfo == null) { | ||
62 | + throw new TkDataValidationException("保养记录不存在!"); | ||
63 | + } | ||
64 | + | ||
65 | + tkPreserveRecordServcie.updateStatus(dto.getId(), dto.getPreserveStatus()); | ||
66 | + return ResponseEntity.ok(orderInfo); | ||
67 | + } | ||
68 | + | ||
69 | + @PostMapping("/pageData") | ||
70 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
71 | + @ApiOperation("保养记录分页列表") | ||
72 | + public TkPageData<TkPreserveRecordDTO> pageData( | ||
73 | + @RequestParam(PAGE_SIZE) int pageSize, | ||
74 | + @RequestParam(PAGE) int page, | ||
75 | + @RequestBody Map<String, Object> params) | ||
76 | + throws ThingsboardException { | ||
77 | + params.put(PAGE, page); | ||
78 | + params.put(PAGE_SIZE, pageSize); | ||
79 | + return tkPreserveRecordServcie.page(params); | ||
80 | + } | ||
81 | +} |
@@ -59,7 +59,7 @@ public class TkRepairOrderController extends BaseController { | @@ -59,7 +59,7 @@ public class TkRepairOrderController extends BaseController { | ||
59 | } | 59 | } |
60 | 60 | ||
61 | if (StringUtils.isBlank(dto.getStatus())) { | 61 | if (StringUtils.isBlank(dto.getStatus())) { |
62 | - dto.setStatus(RepairOrderStatusEnum.SCHEDULING.name()); | 62 | + dto.setStatus(RepairOrderStatusEnum.DRAFT.name()); |
63 | } | 63 | } |
64 | 64 | ||
65 | TkRepairOrderDTO deviceDTO = tkRepairOrderService.save(dto); | 65 | TkRepairOrderDTO deviceDTO = tkRepairOrderService.save(dto); |
@@ -93,4 +93,17 @@ public class TkRepairOrderController extends BaseController { | @@ -93,4 +93,17 @@ public class TkRepairOrderController extends BaseController { | ||
93 | params.put(PAGE_SIZE, pageSize); | 93 | params.put(PAGE_SIZE, pageSize); |
94 | return tkRepairOrderService.page(getCurrentUser().getCurrentTenantId(), params); | 94 | return tkRepairOrderService.page(getCurrentUser().getCurrentTenantId(), params); |
95 | } | 95 | } |
96 | + | ||
97 | + @PostMapping("/updateStatus") | ||
98 | + @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')") | ||
99 | + @ApiOperation("更新工单状态") | ||
100 | + public ResponseEntity<TkRepairOrderDTO> updateStatus(@RequestBody TkRepairOrderDTO dto) throws ThingsboardException { | ||
101 | + TkRepairOrderDTO orderInfo = tkRepairOrderService.load(dto.getId()); | ||
102 | + if (orderInfo == null) { | ||
103 | + throw new TkDataValidationException("工单不存在!"); | ||
104 | + } | ||
105 | + | ||
106 | + tkRepairOrderService.updateStatus(dto.getId(), dto.getStatus()); | ||
107 | + return ResponseEntity.ok(orderInfo); | ||
108 | + } | ||
96 | } | 109 | } |
@@ -143,4 +143,10 @@ public class DeviceDTO extends TenantDTO { | @@ -143,4 +143,10 @@ public class DeviceDTO extends TenantDTO { | ||
143 | private Integer isEdge; | 143 | private Integer isEdge; |
144 | @ApiModelProperty(value = "设备负责人id") | 144 | @ApiModelProperty(value = "设备负责人id") |
145 | private String directorId; | 145 | private String directorId; |
146 | + @ApiModelProperty(value = "设备负责人名称") | ||
147 | + private String directorName; | ||
148 | + @ApiModelProperty(value = "类别id") | ||
149 | + private String categoryId; | ||
150 | + @ApiModelProperty(value = "类别名称") | ||
151 | + private String categoryName; | ||
146 | } | 152 | } |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/TkPreserveDetailDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | + | ||
7 | +@EqualsAndHashCode(callSuper = true) | ||
8 | +@Data | ||
9 | +public class TkPreserveDetailDTO extends TenantDTO { | ||
10 | + @ApiModelProperty(value = "保养明细编码") | ||
11 | + private String detailCode; | ||
12 | + | ||
13 | + @ApiModelProperty(value = "方案明细") | ||
14 | + private String preserveDetail; | ||
15 | + | ||
16 | + @ApiModelProperty(value = "保养计划id") | ||
17 | + private String preservePlanId; | ||
18 | + | ||
19 | + @ApiModelProperty(value = "设备id") | ||
20 | + private String deviceId; | ||
21 | + | ||
22 | + @ApiModelProperty(value = "设备信息") | ||
23 | + private DeviceDTO deviceInfo; | ||
24 | + | ||
25 | + @ApiModelProperty(value = "方案id") | ||
26 | + private String checkPlanId; | ||
27 | + | ||
28 | + @ApiModelProperty(value = "执行状态(UNEXECUTED未执行,EXECUTED已执行)") | ||
29 | + private String detailStatus; | ||
30 | + | ||
31 | + @ApiModelProperty(value = "页号") | ||
32 | + private Integer page; | ||
33 | + | ||
34 | + @ApiModelProperty(value = "页码") | ||
35 | + private Integer pageSize; | ||
36 | + | ||
37 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/TkPreservePlanDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import io.swagger.annotations.ApiModelProperty; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | + | ||
7 | +import java.util.List; | ||
8 | + | ||
9 | +@EqualsAndHashCode(callSuper = true) | ||
10 | +@Data | ||
11 | +public class TkPreservePlanDTO extends TenantDTO { | ||
12 | + | ||
13 | + @ApiModelProperty(value = "保养计划编码") | ||
14 | + private String preserveCode; | ||
15 | + | ||
16 | + @ApiModelProperty(value = "保养计划名称") | ||
17 | + private String preserveName; | ||
18 | + | ||
19 | + @ApiModelProperty(value = "状态(NOTSTART 未开始,UNDERWAY进行中,COMPLETED已完成,STOP停用)") | ||
20 | + private String status; | ||
21 | + | ||
22 | + @ApiModelProperty(value = "次数") | ||
23 | + private Integer times; | ||
24 | + | ||
25 | + @ApiModelProperty(value = "频率") | ||
26 | + private String frequency; | ||
27 | + | ||
28 | + @ApiModelProperty(value = "保养明细") | ||
29 | + List<TkPreserveDetailDTO> preserveDetailList; | ||
30 | + | ||
31 | + @ApiModelProperty(value = "页号") | ||
32 | + private Integer page; | ||
33 | + | ||
34 | + @ApiModelProperty(value = "页码") | ||
35 | + private Integer pageSize; | ||
36 | + | ||
37 | +} |
common/data/src/main/java/org/thingsboard/server/common/data/yunteng/dto/TkPreserveRecordDTO.java
0 → 100644
1 | +package org.thingsboard.server.common.data.yunteng.dto; | ||
2 | + | ||
3 | +import com.fasterxml.jackson.annotation.JsonFormat; | ||
4 | +import com.fasterxml.jackson.databind.annotation.JsonSerialize; | ||
5 | +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; | ||
6 | +import io.swagger.annotations.ApiModelProperty; | ||
7 | +import lombok.Data; | ||
8 | +import lombok.EqualsAndHashCode; | ||
9 | + | ||
10 | +import java.time.LocalDateTime; | ||
11 | + | ||
12 | +@EqualsAndHashCode(callSuper = true) | ||
13 | +@Data | ||
14 | +public class TkPreserveRecordDTO extends TenantDTO { | ||
15 | + @ApiModelProperty(value = "记录编号") | ||
16 | + private String recordCode; | ||
17 | + | ||
18 | + @ApiModelProperty(value = "保养计划id") | ||
19 | + private String preservePlanId; | ||
20 | + | ||
21 | + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | ||
22 | + @ApiModelProperty(value = "保养日期") | ||
23 | + @JsonSerialize(using = LocalDateTimeSerializer.class) | ||
24 | + private LocalDateTime preserveDate; | ||
25 | + | ||
26 | + @ApiModelProperty(value = "保养人员id") | ||
27 | + private String preserveBy; | ||
28 | + | ||
29 | + @ApiModelProperty(value = "状态(INCOMPLETE未完成,COMPLETE已完成)") | ||
30 | + private String preserveStatus; | ||
31 | + | ||
32 | + @ApiModelProperty(value = "保养人员姓名") | ||
33 | + private String preserveByName; | ||
34 | + | ||
35 | + @ApiModelProperty(value = "保养计划名称") | ||
36 | + private String preservePlanName; | ||
37 | + | ||
38 | + @ApiModelProperty(value = "查询开始时间") | ||
39 | + private LocalDateTime startDate; | ||
40 | + | ||
41 | + @ApiModelProperty(value = "查询开始结束") | ||
42 | + private LocalDateTime endDate; | ||
43 | + | ||
44 | + @ApiModelProperty(value = "页号") | ||
45 | + private Integer page; | ||
46 | + | ||
47 | + @ApiModelProperty(value = "页码") | ||
48 | + private Integer pageSize; | ||
49 | + | ||
50 | +} |
@@ -680,6 +680,9 @@ public class ModelConstants { | @@ -680,6 +680,9 @@ public class ModelConstants { | ||
680 | * 维修记录 | 680 | * 维修记录 |
681 | */ | 681 | */ |
682 | public static final String TKREPAIRRECORD_TABLE_NAME = "qg_repair_record"; | 682 | public static final String TKREPAIRRECORD_TABLE_NAME = "qg_repair_record"; |
683 | + public static final String TKPRESERVEPLAN_TABLE_NAME = "qg_preserve_plan"; | ||
684 | + public static final String TKPRESERVEDETAIL_TABLE_NAME = "qg_preserve_detail"; | ||
685 | + public static final String TKPRESERVERECORD_TABLE_NAME = "qg_preserve_record"; | ||
683 | 686 | ||
684 | public static final String TKINSPECTIONPLAN_TABLE_NAME= "qg_inspection_plan"; // 巡检计划 | 687 | public static final String TKINSPECTIONPLAN_TABLE_NAME= "qg_inspection_plan"; // 巡检计划 |
685 | public static final String TKCHECKPLAN_TABLE_NAME= "qg_check_plan"; // 巡检/保养方案 | 688 | public static final String TKCHECKPLAN_TABLE_NAME= "qg_check_plan"; // 巡检/保养方案 |
dao/src/main/java/org/thingsboard/server/dao/yunteng/entities/TkPreserveDetailEntity.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.entities; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
7 | + | ||
8 | +/** | ||
9 | + * 保养明细 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +@EqualsAndHashCode(callSuper = true) | ||
13 | +@TableName(value = ModelConstants.TKPRESERVEDETAIL_TABLE_NAME, autoResultMap = true) | ||
14 | +public class TkPreserveDetailEntity extends TenantBaseEntity { | ||
15 | + private String detailCode; | ||
16 | + private String preserveDetail; | ||
17 | + private String preservePlanId; | ||
18 | + private String deviceId; | ||
19 | + private String checkPlanId; | ||
20 | + private String detailStatus; | ||
21 | +} |
1 | +package org.thingsboard.server.dao.yunteng.entities; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
7 | + | ||
8 | +/** | ||
9 | + * 保养计划 | ||
10 | + */ | ||
11 | +@Data | ||
12 | +@EqualsAndHashCode(callSuper = true) | ||
13 | +@TableName(value = ModelConstants.TKPRESERVEPLAN_TABLE_NAME, autoResultMap = true) | ||
14 | +public class TkPreservePlanEntity extends TenantBaseEntity { | ||
15 | + private String preserveCode; | ||
16 | + private String preserveName; | ||
17 | + private String status; | ||
18 | + private Integer times; | ||
19 | + private String frequency; | ||
20 | +} |
dao/src/main/java/org/thingsboard/server/dao/yunteng/entities/TkPreserveRecordEntity.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.entities; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.annotation.TableName; | ||
4 | +import lombok.Data; | ||
5 | +import lombok.EqualsAndHashCode; | ||
6 | +import org.thingsboard.server.dao.model.ModelConstants; | ||
7 | + | ||
8 | +import java.time.LocalDateTime; | ||
9 | + | ||
10 | +/** | ||
11 | + * 保养记录 | ||
12 | + */ | ||
13 | +@Data | ||
14 | +@EqualsAndHashCode(callSuper = true) | ||
15 | +@TableName(value = ModelConstants.TKPRESERVERECORD_TABLE_NAME, autoResultMap = true) | ||
16 | +public class TkPreserveRecordEntity extends TenantBaseEntity { | ||
17 | + private String recordCode; | ||
18 | + private String preservePlanId; | ||
19 | + private LocalDateTime preserveDate; | ||
20 | + private String preserveBy; | ||
21 | + private String preserveStatus; | ||
22 | +} |
@@ -7,9 +7,11 @@ import lombok.RequiredArgsConstructor; | @@ -7,9 +7,11 @@ import lombok.RequiredArgsConstructor; | ||
7 | import lombok.extern.slf4j.Slf4j; | 7 | import lombok.extern.slf4j.Slf4j; |
8 | import org.apache.commons.lang3.StringUtils; | 8 | import org.apache.commons.lang3.StringUtils; |
9 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
10 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
10 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | 11 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; |
11 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; |
12 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
14 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
13 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
14 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; | 16 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; |
15 | import org.thingsboard.server.dao.yunteng.mapper.TkMalfunctionReasonMapper; | 17 | import org.thingsboard.server.dao.yunteng.mapper.TkMalfunctionReasonMapper; |
@@ -33,10 +35,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -33,10 +35,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
33 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); | 35 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); |
34 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); | 36 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); |
35 | if (queryMap != null && queryMap.get("code") != null) { | 37 | if (queryMap != null && queryMap.get("code") != null) { |
36 | - lambda.eq(TkMalfunctionReasonEntity::getCode, queryMap.get("code").toString()); | 38 | + lambda.like(TkMalfunctionReasonEntity::getCode, queryMap.get("code").toString()); |
37 | } | 39 | } |
38 | if (queryMap != null && queryMap.get("reason") != null) { | 40 | if (queryMap != null && queryMap.get("reason") != null) { |
39 | - lambda.eq(TkMalfunctionReasonEntity::getReason, queryMap.get("reason").toString()); | 41 | + lambda.like(TkMalfunctionReasonEntity::getReason, queryMap.get("reason").toString()); |
40 | } | 42 | } |
41 | 43 | ||
42 | IPage<TkMalfunctionReasonEntity> page = baseMapper.selectPage( | 44 | IPage<TkMalfunctionReasonEntity> page = baseMapper.selectPage( |
@@ -51,10 +53,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -51,10 +53,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
51 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); | 53 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); |
52 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); | 54 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); |
53 | if (queryMap != null && queryMap.get("code") != null) { | 55 | if (queryMap != null && queryMap.get("code") != null) { |
54 | - lambda.eq(TkMalfunctionReasonEntity::getCode, queryMap.get("code").toString()); | 56 | + lambda.like(TkMalfunctionReasonEntity::getCode, queryMap.get("code").toString()); |
55 | } | 57 | } |
56 | if (queryMap != null && queryMap.get("reason") != null) { | 58 | if (queryMap != null && queryMap.get("reason") != null) { |
57 | - lambda.eq(TkMalfunctionReasonEntity::getReason, queryMap.get("reason").toString()); | 59 | + lambda.like(TkMalfunctionReasonEntity::getReason, queryMap.get("reason").toString()); |
58 | } | 60 | } |
59 | List<TkMalfunctionReasonEntity> entitys = baseMapper.selectList(wrapper); | 61 | List<TkMalfunctionReasonEntity> entitys = baseMapper.selectList(wrapper); |
60 | return Optional.ofNullable(entitys).map(all -> all.stream().map(item -> item.getDTO(TkMalfunctionReasonDTO.class)) | 62 | return Optional.ofNullable(entitys).map(all -> all.stream().map(item -> item.getDTO(TkMalfunctionReasonDTO.class)) |
@@ -63,7 +65,7 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -63,7 +65,7 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
63 | } | 65 | } |
64 | 66 | ||
65 | @Override | 67 | @Override |
66 | - public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) { | 68 | + public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) throws ThingsboardException { |
67 | checkDto(tkMalfunctionReasonDTO); | 69 | checkDto(tkMalfunctionReasonDTO); |
68 | TkMalfunctionReasonEntity entity = new TkMalfunctionReasonEntity(); | 70 | TkMalfunctionReasonEntity entity = new TkMalfunctionReasonEntity(); |
69 | if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { | 71 | if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { |
@@ -81,9 +83,9 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | @@ -81,9 +83,9 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun | ||
81 | return tkMalfunctionReasonDTO; | 83 | return tkMalfunctionReasonDTO; |
82 | } | 84 | } |
83 | 85 | ||
84 | - private void checkDto(TkMalfunctionReasonDTO dto) { | 86 | + private void checkDto(TkMalfunctionReasonDTO dto) throws ThingsboardException { |
85 | if (StringUtils.isBlank(dto.getTenantId())) { | 87 | if (StringUtils.isBlank(dto.getTenantId())) { |
86 | - throw new TkDataValidationException("租户id为空!"); | 88 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
87 | } | 89 | } |
88 | } | 90 | } |
89 | 91 |
dao/src/main/java/org/thingsboard/server/dao/yunteng/impl/TkPreserveDetailServiceImpl.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.impl; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
6 | +import lombok.RequiredArgsConstructor; | ||
7 | +import lombok.extern.slf4j.Slf4j; | ||
8 | +import org.apache.commons.collections4.CollectionUtils; | ||
9 | +import org.apache.commons.lang3.StringUtils; | ||
10 | +import org.springframework.stereotype.Service; | ||
11 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
12 | +import org.thingsboard.server.common.data.id.TenantId; | ||
13 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | ||
14 | +import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | ||
15 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO; | ||
16 | +import org.thingsboard.server.common.data.yunteng.enums.PreserveDetailStatusEnum; | ||
17 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
18 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
19 | +import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | ||
20 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailEntity; | ||
21 | +import org.thingsboard.server.dao.yunteng.mapper.TkPreserveDetailMapper; | ||
22 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
23 | +import org.thingsboard.server.dao.yunteng.service.TkDeviceService; | ||
24 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveDetailService; | ||
25 | + | ||
26 | +import java.util.HashMap; | ||
27 | +import java.util.List; | ||
28 | +import java.util.Map; | ||
29 | +import java.util.UUID; | ||
30 | +import java.util.stream.Collectors; | ||
31 | + | ||
32 | +@Service | ||
33 | +@RequiredArgsConstructor | ||
34 | +@Slf4j | ||
35 | +public class TkPreserveDetailServiceImpl extends AbstractBaseService<TkPreserveDetailMapper, TkPreserveDetailEntity> | ||
36 | + implements TkPreserveDetailService { | ||
37 | + | ||
38 | + private final TkDeviceService tkdeviceService; | ||
39 | + | ||
40 | + @Override | ||
41 | + public TkPageData<TkPreserveDetailDTO> page(TkPreserveDetailDTO condition) throws ThingsboardException { | ||
42 | + TkPageData<TkPreserveDetailDTO> result = new TkPageData<>(); | ||
43 | + QueryWrapper<TkPreserveDetailEntity> wrapper = new QueryWrapper<>(); | ||
44 | + LambdaQueryWrapper<TkPreserveDetailEntity> lambda = wrapper.lambda(); | ||
45 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
46 | + lambda.eq(TkPreserveDetailEntity::getTenantId, tenantId.getId().toString()); | ||
47 | + | ||
48 | + if (StringUtils.isNotBlank(condition.getPreservePlanId())) { | ||
49 | + lambda.eq(TkPreserveDetailEntity::getPreservePlanId, condition.getPreservePlanId()); | ||
50 | + } | ||
51 | + | ||
52 | + lambda.orderByDesc(TenantBaseEntity::getCreateTime); | ||
53 | + | ||
54 | + Page<TkPreserveDetailEntity> page = new Page<>(); | ||
55 | + page.setCurrent(condition.getPage()); | ||
56 | + page.setSize(condition.getPageSize()); | ||
57 | + page = baseMapper.selectPage(page, wrapper); | ||
58 | + | ||
59 | + if (page != null && CollectionUtils.isNotEmpty(page.getRecords())) { | ||
60 | + Map<String, DeviceDTO> deviceMap = new HashMap<>(); | ||
61 | + List<TkPreserveDetailDTO> dataList = page.getRecords().stream().map(item -> { | ||
62 | + TkPreserveDetailDTO dto = item.getDTO(TkPreserveDetailDTO.class); | ||
63 | + String deviceId = dto.getDeviceId(); | ||
64 | + DeviceDTO deviceDTO = deviceMap.get(deviceId); | ||
65 | + if (deviceDTO == null) { | ||
66 | + deviceDTO = tkdeviceService.checkDeviceByTenantIdAndDeviceId(tenantId.getId(), UUID.fromString(dto.getDeviceId())); | ||
67 | + deviceMap.put(deviceId, deviceDTO); | ||
68 | + } | ||
69 | + dto.setDeviceInfo(deviceDTO); | ||
70 | + return dto; | ||
71 | + }).collect(Collectors.toList()); | ||
72 | + result.setItems(dataList); | ||
73 | + } | ||
74 | + result.setTotal(Long.valueOf(page.getTotal()).intValue()); | ||
75 | + return result; | ||
76 | + } | ||
77 | + | ||
78 | + @Override | ||
79 | + public TkPreserveDetailDTO save(TkPreserveDetailDTO dto) throws ThingsboardException { | ||
80 | + checkDto(dto); | ||
81 | + | ||
82 | + TkPreserveDetailEntity entity = new TkPreserveDetailEntity(); | ||
83 | + if (StringUtils.isBlank(dto.getId())) { | ||
84 | + dto.copyToEntity(entity); | ||
85 | + baseMapper.insert(entity); | ||
86 | + } else { | ||
87 | + LambdaQueryWrapper<TkPreserveDetailEntity> filter = new QueryWrapper<TkPreserveDetailEntity>().lambda() | ||
88 | + .eq(TkPreserveDetailEntity::getId, dto.getId()); | ||
89 | + entity = dto.getEntity(TkPreserveDetailEntity.class); | ||
90 | + baseMapper.update(entity, filter); | ||
91 | + } | ||
92 | + entity.copyToDTO(dto); | ||
93 | + return dto; | ||
94 | + } | ||
95 | + | ||
96 | + private void checkDto(TkPreserveDetailDTO dto) throws ThingsboardException { | ||
97 | + if (StringUtils.isBlank(dto.getDeviceId())) { | ||
98 | + throw new TkDataValidationException("设备不能为空!"); | ||
99 | + } | ||
100 | + | ||
101 | + if (StringUtils.isBlank(dto.getPreservePlanId())) { | ||
102 | + throw new TkDataValidationException("保养计划id不能为空!"); | ||
103 | + } | ||
104 | + | ||
105 | + if (StringUtils.isBlank(dto.getCheckPlanId())) { | ||
106 | + throw new TkDataValidationException("方案不能为空!"); | ||
107 | + } | ||
108 | + | ||
109 | + if (StringUtils.isBlank(dto.getTenantId())) { | ||
110 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | ||
111 | + } | ||
112 | + | ||
113 | + if (StringUtils.isBlank(dto.getDetailStatus())) { | ||
114 | + dto.setDetailStatus(PreserveDetailStatusEnum.UNEXECUTED.name()); | ||
115 | + } | ||
116 | + } | ||
117 | + | ||
118 | + | ||
119 | + @Override | ||
120 | + public boolean delete(String id) { | ||
121 | + int count = baseMapper.deleteById(id); | ||
122 | + return count > 0; | ||
123 | + } | ||
124 | + | ||
125 | + @Override | ||
126 | + public boolean deleteByPlanId(String planId) { | ||
127 | + Map<String, Object> params = new HashMap<>(); | ||
128 | + params.put("preserve_plan_id", planId); | ||
129 | + int count = baseMapper.deleteByMap(params); | ||
130 | + return count > 0; | ||
131 | + } | ||
132 | + | ||
133 | + @Override | ||
134 | + public void deleteNotInIdEqPlanId(String planId, List<String> notinIds) { | ||
135 | + baseMapper.delete(new QueryWrapper<TkPreserveDetailEntity>() | ||
136 | + .lambda().eq(TkPreserveDetailEntity::getPreservePlanId, planId) | ||
137 | + .notIn(TkPreserveDetailEntity::getId, notinIds) | ||
138 | + ); | ||
139 | + } | ||
140 | + | ||
141 | + @Override | ||
142 | + public List<TkPreserveDetailDTO> listByPlanId(String planId) throws ThingsboardException { | ||
143 | + if (StringUtils.isBlank(planId)) { | ||
144 | + throw new TkDataValidationException("方案id不能为空!"); | ||
145 | + } | ||
146 | + QueryWrapper<TkPreserveDetailEntity> wrapper = new QueryWrapper<>(); | ||
147 | + LambdaQueryWrapper<TkPreserveDetailEntity> lambda = wrapper.lambda(); | ||
148 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
149 | + lambda.eq(TkPreserveDetailEntity::getTenantId, tenantId.getId().toString()); | ||
150 | + lambda.eq(TkPreserveDetailEntity::getPreservePlanId, planId); | ||
151 | + List<TkPreserveDetailEntity> entities = baseMapper.selectList(wrapper); | ||
152 | + if (CollectionUtils.isNotEmpty(entities)) { | ||
153 | + List<TkPreserveDetailDTO> dataList = entities.stream().map(item -> { | ||
154 | + TkPreserveDetailDTO dto = item.getDTO(TkPreserveDetailDTO.class); | ||
155 | + return dto; | ||
156 | + }).collect(Collectors.toList()); | ||
157 | + return dataList; | ||
158 | + } else { | ||
159 | + return null; | ||
160 | + } | ||
161 | + | ||
162 | + } | ||
163 | +} |
1 | +package org.thingsboard.server.dao.yunteng.impl; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
6 | +import lombok.RequiredArgsConstructor; | ||
7 | +import lombok.extern.slf4j.Slf4j; | ||
8 | +import org.apache.commons.collections.CollectionUtils; | ||
9 | +import org.apache.commons.lang3.StringUtils; | ||
10 | +import org.springframework.stereotype.Service; | ||
11 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
12 | +import org.thingsboard.server.common.data.id.TenantId; | ||
13 | +import org.thingsboard.server.common.data.yunteng.core.exception.ThingsKitException; | ||
14 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | ||
15 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO; | ||
16 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreservePlanDTO; | ||
17 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
18 | +import org.thingsboard.server.common.data.yunteng.enums.PreservePlanStatusEnum; | ||
19 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
20 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
21 | +import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | ||
22 | +import org.thingsboard.server.dao.yunteng.entities.TkPreservePlanEntity; | ||
23 | +import org.thingsboard.server.dao.yunteng.mapper.TkPreservePlanMapper; | ||
24 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
25 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveDetailService; | ||
26 | +import org.thingsboard.server.dao.yunteng.service.TkPreservePlanService; | ||
27 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveRecordServcie; | ||
28 | + | ||
29 | +import javax.transaction.Transactional; | ||
30 | +import java.util.List; | ||
31 | +import java.util.stream.Collectors; | ||
32 | + | ||
33 | +@Service | ||
34 | +@RequiredArgsConstructor | ||
35 | +@Slf4j | ||
36 | +public class TkPreservePlanServiceImpl extends AbstractBaseService<TkPreservePlanMapper, TkPreservePlanEntity> | ||
37 | + implements TkPreservePlanService { | ||
38 | + | ||
39 | + private final TkPreserveDetailService tkPreserveDetailService; | ||
40 | + | ||
41 | + private final TkPreserveRecordServcie tkPreserveRecordServcie; | ||
42 | + | ||
43 | + @Override | ||
44 | + public TkPageData<TkPreservePlanDTO> page(TkPreservePlanDTO condition) throws ThingsboardException { | ||
45 | + QueryWrapper<TkPreservePlanEntity> wrapper = new QueryWrapper<>(); | ||
46 | + LambdaQueryWrapper<TkPreservePlanEntity> lambda = wrapper.lambda(); | ||
47 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
48 | + lambda.eq(TkPreservePlanEntity::getTenantId, tenantId.getId().toString()); | ||
49 | + if (StringUtils.isNotBlank(condition.getPreserveName())) { | ||
50 | + lambda.like(TkPreservePlanEntity::getPreserveName, condition.getPreserveName()); | ||
51 | + } | ||
52 | + | ||
53 | + lambda.orderByDesc(TenantBaseEntity::getCreateTime); | ||
54 | + | ||
55 | + Page<TkPreservePlanEntity> page = new Page<>(); | ||
56 | + page.setCurrent(condition.getPage()); | ||
57 | + page.setSize(condition.getPageSize()); | ||
58 | + page = baseMapper.selectPage(page, wrapper); | ||
59 | + | ||
60 | + return getPageData(page, TkPreservePlanDTO.class); | ||
61 | + } | ||
62 | + | ||
63 | + @Override | ||
64 | + @Transactional | ||
65 | + public TkPreservePlanDTO save(TkPreservePlanDTO dto) throws ThingsboardException { | ||
66 | + checkDto(dto); | ||
67 | + Boolean isAdd = false; | ||
68 | + TkPreservePlanEntity entity = new TkPreservePlanEntity(); | ||
69 | + if (StringUtils.isBlank(dto.getId())) { | ||
70 | + dto.copyToEntity(entity); | ||
71 | + baseMapper.insert(entity); | ||
72 | + isAdd = true; | ||
73 | + } else { | ||
74 | + LambdaQueryWrapper<TkPreservePlanEntity> filter = new QueryWrapper<TkPreservePlanEntity>().lambda() | ||
75 | + .eq(TkPreservePlanEntity::getId, dto.getId()); | ||
76 | + entity = dto.getEntity(TkPreservePlanEntity.class); | ||
77 | + baseMapper.update(entity, filter); | ||
78 | + } | ||
79 | + entity.copyToDTO(dto); | ||
80 | + String id = dto.getId(); | ||
81 | + List<TkPreserveDetailDTO> preserveDetailList = dto.getPreserveDetailList(); | ||
82 | + if (CollectionUtils.isNotEmpty(preserveDetailList)) { | ||
83 | + List<String> detailIds = preserveDetailList.stream().filter(e -> StringUtils.isNotBlank(e.getId())) | ||
84 | + .map(TkPreserveDetailDTO::getId).collect(Collectors.toList()); | ||
85 | + if (CollectionUtils.isNotEmpty(detailIds) && isAdd == false) { | ||
86 | + tkPreserveDetailService.deleteNotInIdEqPlanId(id, detailIds); | ||
87 | + } | ||
88 | + for (TkPreserveDetailDTO detailDto : preserveDetailList) { | ||
89 | + detailDto.setPreservePlanId(id); | ||
90 | + tkPreserveDetailService.save(detailDto); | ||
91 | + } | ||
92 | + } | ||
93 | + | ||
94 | + entity.copyToDTO(dto); | ||
95 | + return dto; | ||
96 | + } | ||
97 | + | ||
98 | + @Override | ||
99 | + public TkPreservePlanDTO load(String id) { | ||
100 | + TkPreservePlanDTO result = null; | ||
101 | + TkPreservePlanEntity entity = baseMapper.selectById(id); | ||
102 | + if (entity != null) { | ||
103 | + result = new TkPreservePlanDTO(); | ||
104 | + entity.copyToDTO(result); | ||
105 | + } | ||
106 | + return result; | ||
107 | + } | ||
108 | + | ||
109 | + private void checkDto(TkPreservePlanDTO dto) throws ThingsboardException { | ||
110 | + if (StringUtils.isBlank(dto.getPreserveName())) { | ||
111 | + throw new TkDataValidationException("计划名称不能为空!"); | ||
112 | + } | ||
113 | + | ||
114 | + if (StringUtils.isBlank(dto.getFrequency())) { | ||
115 | + throw new TkDataValidationException("频率不能为空!"); | ||
116 | + } | ||
117 | + | ||
118 | + if (dto.getTimes() == null) { | ||
119 | + throw new TkDataValidationException("次数不能为空!"); | ||
120 | + } | ||
121 | + | ||
122 | + if (StringUtils.isBlank(dto.getTenantId())) { | ||
123 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | ||
124 | + } | ||
125 | + | ||
126 | + if (StringUtils.isBlank(dto.getStatus())) { | ||
127 | + dto.setStatus(PreservePlanStatusEnum.NOTSTART.name()); | ||
128 | + } | ||
129 | + } | ||
130 | + | ||
131 | + @Override | ||
132 | + public TkPreservePlanDTO detail(String id) throws ThingsboardException { | ||
133 | + TkPreservePlanDTO dto = load(id); | ||
134 | + List<TkPreserveDetailDTO> detailList = tkPreserveDetailService.listByPlanId(id); | ||
135 | + dto.setPreserveDetailList(detailList); | ||
136 | + return dto; | ||
137 | + } | ||
138 | + | ||
139 | + @Override | ||
140 | + public void updateStatus(String id, String status) throws ThingsboardException { | ||
141 | + TkPreservePlanEntity entity = baseMapper.selectById(id); | ||
142 | + if (entity == null) { | ||
143 | + throw new TkDataValidationException("保养计划不存在!"); | ||
144 | + } | ||
145 | + PreservePlanStatusEnum statusEnum = PreservePlanStatusEnum.valueOf(status); | ||
146 | + if (statusEnum == null) { | ||
147 | + throw new TkDataValidationException("保养计划状态不存在!"); | ||
148 | + } | ||
149 | + entity.setStatus(statusEnum.name()); | ||
150 | + LambdaQueryWrapper<TkPreservePlanEntity> filter = new QueryWrapper<TkPreservePlanEntity>().lambda() | ||
151 | + .eq(TkPreservePlanEntity::getId, entity.getId()); | ||
152 | + baseMapper.update(entity, filter); | ||
153 | + } | ||
154 | + | ||
155 | + @Override | ||
156 | + @Transactional | ||
157 | + public boolean delete(String id) throws ThingsboardException { | ||
158 | + List<TkPreserveRecordDTO> recordList = tkPreserveRecordServcie.listByPlanId(id); | ||
159 | + if (CollectionUtils.isNotEmpty(recordList)) { | ||
160 | + throw new TkDataValidationException("该计划存在关联的保养记录,不能删除!"); | ||
161 | + } | ||
162 | + tkPreserveDetailService.deleteByPlanId(id); | ||
163 | + int count = baseMapper.deleteById(id); | ||
164 | + return count > 0; | ||
165 | + } | ||
166 | +} |
dao/src/main/java/org/thingsboard/server/dao/yunteng/impl/TkPreserveRecordServcieImpl.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.impl; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||
4 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
5 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
6 | +import lombok.RequiredArgsConstructor; | ||
7 | +import lombok.extern.slf4j.Slf4j; | ||
8 | +import org.apache.commons.collections4.CollectionUtils; | ||
9 | +import org.apache.commons.lang3.StringUtils; | ||
10 | +import org.springframework.stereotype.Service; | ||
11 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
12 | +import org.thingsboard.server.common.data.id.TenantId; | ||
13 | +import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; | ||
14 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreservePlanDTO; | ||
15 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
16 | +import org.thingsboard.server.common.data.yunteng.dto.UserDTO; | ||
17 | +import org.thingsboard.server.common.data.yunteng.enums.PreservePlanStatusEnum; | ||
18 | +import org.thingsboard.server.common.data.yunteng.enums.PreserveRecordStatusEnum; | ||
19 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
20 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
21 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveRecordEntity; | ||
22 | +import org.thingsboard.server.dao.yunteng.mapper.TkPreserveRecordMapper; | ||
23 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | ||
24 | +import org.thingsboard.server.dao.yunteng.service.TkPreservePlanService; | ||
25 | +import org.thingsboard.server.dao.yunteng.service.TkPreserveRecordServcie; | ||
26 | +import org.thingsboard.server.dao.yunteng.service.TkUserService; | ||
27 | + | ||
28 | +import java.util.HashMap; | ||
29 | +import java.util.List; | ||
30 | +import java.util.Map; | ||
31 | +import java.util.Optional; | ||
32 | +import java.util.stream.Collectors; | ||
33 | + | ||
34 | +@Service | ||
35 | +@RequiredArgsConstructor | ||
36 | +@Slf4j | ||
37 | +public class TkPreserveRecordServcieImpl extends AbstractBaseService<TkPreserveRecordMapper, TkPreserveRecordEntity> | ||
38 | + implements TkPreserveRecordServcie { | ||
39 | + | ||
40 | + private final TkUserService tkUserService; | ||
41 | + | ||
42 | + @Override | ||
43 | + public TkPageData<TkPreserveRecordDTO> page(Map<String, Object> params) throws ThingsboardException { | ||
44 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
45 | + params.put("tenantId", tenantId.getId().toString()); | ||
46 | + TkPageData<TkPreserveRecordDTO> result = new TkPageData<>(); | ||
47 | + IPage<TkPreserveRecordEntity> page = | ||
48 | + getPage(params, "create_time", false); | ||
49 | + | ||
50 | + IPage<TkPreserveRecordDTO> pageData = baseMapper.getPreserveRecordPage(page, params); | ||
51 | + if (pageData != null) { | ||
52 | + result.setItems(pageData.getRecords()); | ||
53 | + } | ||
54 | + result.setTotal(Long.valueOf(pageData.getTotal()).intValue()); | ||
55 | + return result; | ||
56 | + } | ||
57 | + | ||
58 | + @Override | ||
59 | + public TkPreserveRecordDTO save(TkPreserveRecordDTO dto) throws ThingsboardException { | ||
60 | + checkDto(dto); | ||
61 | + | ||
62 | + TkPreserveRecordEntity entity = new TkPreserveRecordEntity(); | ||
63 | + if (StringUtils.isBlank(dto.getId())) { | ||
64 | + dto.copyToEntity(entity); | ||
65 | + baseMapper.insert(entity); | ||
66 | + } else { | ||
67 | + LambdaQueryWrapper<TkPreserveRecordEntity> filter = new QueryWrapper<TkPreserveRecordEntity>().lambda() | ||
68 | + .eq(TkPreserveRecordEntity::getId, dto.getId()); | ||
69 | + entity = dto.getEntity(TkPreserveRecordEntity.class); | ||
70 | + baseMapper.update(entity, filter); | ||
71 | + } | ||
72 | + entity.copyToDTO(dto); | ||
73 | + return dto; | ||
74 | + } | ||
75 | + | ||
76 | + private void checkDto(TkPreserveRecordDTO dto) throws ThingsboardException { | ||
77 | + | ||
78 | + if (StringUtils.isBlank(dto.getPreservePlanId())) { | ||
79 | + throw new TkDataValidationException("保养计划id不能为空!"); | ||
80 | + } | ||
81 | + | ||
82 | + if (StringUtils.isBlank(dto.getPreserveBy())) { | ||
83 | + throw new TkDataValidationException("保养计划id不能为空!"); | ||
84 | + } | ||
85 | + | ||
86 | + if (dto.getPreserveDate() == null) { | ||
87 | + throw new TkDataValidationException("保养日期不能为空!"); | ||
88 | + } | ||
89 | + | ||
90 | + if (StringUtils.isBlank(dto.getTenantId())) { | ||
91 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); | ||
92 | + } | ||
93 | + | ||
94 | + if (StringUtils.isBlank(dto.getPreserveStatus())) { | ||
95 | + dto.setPreserveStatus(PreserveRecordStatusEnum.INCOMPLETE.name()); | ||
96 | + } | ||
97 | + } | ||
98 | + | ||
99 | + @Override | ||
100 | + public TkPreserveRecordDTO load(String id) { | ||
101 | + TkPreserveRecordDTO result = null; | ||
102 | + TkPreserveRecordEntity entity = baseMapper.selectById(id); | ||
103 | + if (entity != null) { | ||
104 | + result = new TkPreserveRecordDTO(); | ||
105 | + entity.copyToDTO(result); | ||
106 | + } | ||
107 | + return result; | ||
108 | + } | ||
109 | + | ||
110 | + @Override | ||
111 | + public TkPreserveRecordDTO detail(String id) throws ThingsboardException { | ||
112 | + Map<String, Object> params = new HashMap<>(); | ||
113 | + params.put("id", id); | ||
114 | + TkPageData<TkPreserveRecordDTO> page = page(params); | ||
115 | + if (page != null && CollectionUtils.isNotEmpty(page.getItems())) { | ||
116 | + Optional<TkPreserveRecordDTO> first = page.getItems().stream().findFirst(); | ||
117 | + return first.get(); | ||
118 | + } else { | ||
119 | + return null; | ||
120 | + } | ||
121 | + } | ||
122 | + | ||
123 | + @Override | ||
124 | + public void updateStatus(String id, String status) throws ThingsboardException { | ||
125 | + TkPreserveRecordEntity entity = baseMapper.selectById(id); | ||
126 | + if (entity == null) { | ||
127 | + throw new TkDataValidationException("保养记录不存在!"); | ||
128 | + } | ||
129 | + PreservePlanStatusEnum statusEnum = PreservePlanStatusEnum.valueOf(status); | ||
130 | + if (statusEnum == null) { | ||
131 | + throw new TkDataValidationException("保养记录状态不存在!"); | ||
132 | + } | ||
133 | + entity.setPreserveStatus(statusEnum.name()); | ||
134 | + LambdaQueryWrapper<TkPreserveRecordEntity> filter = new QueryWrapper<TkPreserveRecordEntity>().lambda() | ||
135 | + .eq(TkPreserveRecordEntity::getId, entity.getId()); | ||
136 | + baseMapper.update(entity, filter); | ||
137 | + } | ||
138 | + | ||
139 | + @Override | ||
140 | + public boolean delete(String id) { | ||
141 | + int count = baseMapper.deleteById(id); | ||
142 | + return count > 0; | ||
143 | + } | ||
144 | + | ||
145 | + @Override | ||
146 | + public List<TkPreserveRecordDTO> listByPlanId(String planId) throws ThingsboardException { | ||
147 | + if (StringUtils.isBlank(planId)) { | ||
148 | + throw new TkDataValidationException("方案id不能为空!"); | ||
149 | + } | ||
150 | + QueryWrapper<TkPreserveRecordEntity> wrapper = new QueryWrapper<>(); | ||
151 | + LambdaQueryWrapper<TkPreserveRecordEntity> lambda = wrapper.lambda(); | ||
152 | + TenantId tenantId = SpringBeanUtils.getTenantId(); | ||
153 | + lambda.eq(TkPreserveRecordEntity::getTenantId, tenantId.getId().toString()); | ||
154 | + lambda.eq(TkPreserveRecordEntity::getPreservePlanId, planId); | ||
155 | + List<TkPreserveRecordEntity> entities = baseMapper.selectList(wrapper); | ||
156 | + if (CollectionUtils.isNotEmpty(entities)) { | ||
157 | + List<TkPreserveRecordDTO> dataList = entities.stream().map(item -> { | ||
158 | + TkPreserveRecordDTO dto = item.getDTO(TkPreserveRecordDTO.class); | ||
159 | + return dto; | ||
160 | + }).collect(Collectors.toList()); | ||
161 | + return dataList; | ||
162 | + } else { | ||
163 | + return null; | ||
164 | + } | ||
165 | + } | ||
166 | +} |
@@ -14,11 +14,9 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | @@ -14,11 +14,9 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | ||
14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
15 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; | 15 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
16 | import org.thingsboard.server.common.data.yunteng.enums.RepairOrderStatusEnum; | 16 | import org.thingsboard.server.common.data.yunteng.enums.RepairOrderStatusEnum; |
17 | -import org.thingsboard.server.common.data.yunteng.utils.CopyUtils; | ||
18 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | 17 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
19 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 18 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
20 | import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; | 19 | import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; |
21 | -import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity; | ||
22 | import org.thingsboard.server.dao.yunteng.entities.TkRepairOrderEntity; | 20 | import org.thingsboard.server.dao.yunteng.entities.TkRepairOrderEntity; |
23 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper; | 21 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper; |
24 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | 22 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
@@ -30,9 +28,6 @@ import java.util.HashMap; | @@ -30,9 +28,6 @@ import java.util.HashMap; | ||
30 | import java.util.Map; | 28 | import java.util.Map; |
31 | import java.util.UUID; | 29 | import java.util.UUID; |
32 | 30 | ||
33 | -import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE; | ||
34 | -import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE; | ||
35 | - | ||
36 | @Service | 31 | @Service |
37 | @RequiredArgsConstructor | 32 | @RequiredArgsConstructor |
38 | @Slf4j | 33 | @Slf4j |
@@ -100,7 +95,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | @@ -100,7 +95,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | ||
100 | 95 | ||
101 | 96 | ||
102 | @Override | 97 | @Override |
103 | - public TkRepairOrderDTO save(TkRepairOrderDTO dto) { | 98 | + public TkRepairOrderDTO save(TkRepairOrderDTO dto) throws ThingsboardException { |
104 | checkDto(dto); | 99 | checkDto(dto); |
105 | if (dto.getReportDate() == null) { | 100 | if (dto.getReportDate() == null) { |
106 | dto.setReportDate(LocalDateTime.now()); | 101 | dto.setReportDate(LocalDateTime.now()); |
@@ -143,6 +138,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | @@ -143,6 +138,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | ||
143 | TkRepairOrderDTO result = null; | 138 | TkRepairOrderDTO result = null; |
144 | TkRepairOrderEntity entity = baseMapper.selectById(id); | 139 | TkRepairOrderEntity entity = baseMapper.selectById(id); |
145 | if (entity != null) { | 140 | if (entity != null) { |
141 | + result=new TkRepairOrderDTO(); | ||
146 | entity.copyToDTO(result); | 142 | entity.copyToDTO(result); |
147 | } | 143 | } |
148 | return result; | 144 | return result; |
@@ -157,6 +153,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | @@ -157,6 +153,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | ||
157 | lambda.eq(TkRepairOrderEntity::getDeviceId, deviceId); | 153 | lambda.eq(TkRepairOrderEntity::getDeviceId, deviceId); |
158 | TkRepairOrderEntity entity = baseMapper.selectOne(queryWrapper); | 154 | TkRepairOrderEntity entity = baseMapper.selectOne(queryWrapper); |
159 | if (entity != null) { | 155 | if (entity != null) { |
156 | + result=new TkRepairOrderDTO(); | ||
160 | entity.copyToDTO(result); | 157 | entity.copyToDTO(result); |
161 | } | 158 | } |
162 | return result; | 159 | return result; |
@@ -180,7 +177,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | @@ -180,7 +177,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | ||
180 | baseMapper.update(entity, filter); | 177 | baseMapper.update(entity, filter); |
181 | } | 178 | } |
182 | 179 | ||
183 | - private void checkDto(TkRepairOrderDTO dto) { | 180 | + private void checkDto(TkRepairOrderDTO dto) throws ThingsboardException { |
184 | if (StringUtils.isBlank(dto.getDeviceId())) { | 181 | if (StringUtils.isBlank(dto.getDeviceId())) { |
185 | throw new TkDataValidationException("设备不能为空!"); | 182 | throw new TkDataValidationException("设备不能为空!"); |
186 | } | 183 | } |
@@ -190,7 +187,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | @@ -190,7 +187,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM | ||
190 | } | 187 | } |
191 | 188 | ||
192 | if (StringUtils.isBlank(dto.getTenantId())) { | 189 | if (StringUtils.isBlank(dto.getTenantId())) { |
193 | - throw new TkDataValidationException("租户id为空!"); | 190 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
194 | } | 191 | } |
195 | } | 192 | } |
196 | 193 |
@@ -12,6 +12,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | @@ -12,6 +12,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidatio | ||
12 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO; | 13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO; |
14 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; | 14 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; |
15 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | ||
15 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 16 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
16 | import org.thingsboard.server.dao.yunteng.entities.TkRepairRecordEntity; | 17 | import org.thingsboard.server.dao.yunteng.entities.TkRepairRecordEntity; |
17 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairRecordMapper; | 18 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairRecordMapper; |
@@ -56,7 +57,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | @@ -56,7 +57,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | ||
56 | } | 57 | } |
57 | 58 | ||
58 | @Override | 59 | @Override |
59 | - public TkRepairRecordDTO save(TkRepairRecordDTO dto) { | 60 | + public TkRepairRecordDTO save(TkRepairRecordDTO dto) throws ThingsboardException { |
60 | checkDto(dto); | 61 | checkDto(dto); |
61 | if (dto.getRepairDate() == null) { | 62 | if (dto.getRepairDate() == null) { |
62 | dto.setRepairDate(LocalDateTime.now()); | 63 | dto.setRepairDate(LocalDateTime.now()); |
@@ -76,7 +77,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | @@ -76,7 +77,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | ||
76 | return dto; | 77 | return dto; |
77 | } | 78 | } |
78 | 79 | ||
79 | - private void checkDto(TkRepairRecordDTO dto) { | 80 | + private void checkDto(TkRepairRecordDTO dto) throws ThingsboardException { |
80 | if (StringUtils.isBlank(dto.getOrderId())) { | 81 | if (StringUtils.isBlank(dto.getOrderId())) { |
81 | throw new TkDataValidationException("维修工单不能为空!"); | 82 | throw new TkDataValidationException("维修工单不能为空!"); |
82 | } | 83 | } |
@@ -86,7 +87,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | @@ -86,7 +87,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor | ||
86 | } | 87 | } |
87 | 88 | ||
88 | if (StringUtils.isBlank(dto.getTenantId())) { | 89 | if (StringUtils.isBlank(dto.getTenantId())) { |
89 | - throw new TkDataValidationException("租户id为空!"); | 90 | + dto.setTenantId(SpringBeanUtils.getTenantId().getId().toString()); |
90 | } | 91 | } |
91 | } | 92 | } |
92 | 93 |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import org.apache.ibatis.annotations.Mapper; | ||
5 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailEntity; | ||
6 | + | ||
7 | +@Mapper | ||
8 | +public interface TkPreserveDetailMapper extends BaseMapper<TkPreserveDetailEntity> { | ||
9 | +} |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import org.apache.ibatis.annotations.Mapper; | ||
5 | +import org.thingsboard.server.dao.yunteng.entities.TkPreservePlanEntity; | ||
6 | + | ||
7 | +@Mapper | ||
8 | +public interface TkPreservePlanMapper extends BaseMapper<TkPreservePlanEntity> { | ||
9 | +} |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | ||
2 | + | ||
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||
4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
5 | +import org.apache.ibatis.annotations.Mapper; | ||
6 | +import org.apache.ibatis.annotations.Param; | ||
7 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
8 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveRecordEntity; | ||
9 | + | ||
10 | +import java.util.Map; | ||
11 | + | ||
12 | +@Mapper | ||
13 | +public interface TkPreserveRecordMapper extends BaseMapper<TkPreserveRecordEntity> { | ||
14 | + IPage<TkPreserveRecordDTO> getPreserveRecordPage(IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); | ||
15 | + | ||
16 | +} |
1 | package org.thingsboard.server.dao.yunteng.service; | 1 | package org.thingsboard.server.dao.yunteng.service; |
2 | 2 | ||
3 | 3 | ||
4 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
4 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; | 5 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; |
5 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 6 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
6 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; | 7 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; |
@@ -14,7 +15,7 @@ public interface TkMalfunctionReasonService extends BaseService<TkMalfunctionRea | @@ -14,7 +15,7 @@ public interface TkMalfunctionReasonService extends BaseService<TkMalfunctionRea | ||
14 | 15 | ||
15 | List<TkMalfunctionReasonDTO> list(String tenantId, Map<String, Object> queryMap); | 16 | List<TkMalfunctionReasonDTO> list(String tenantId, Map<String, Object> queryMap); |
16 | 17 | ||
17 | - TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO); | 18 | + TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) throws ThingsboardException; |
18 | 19 | ||
19 | boolean delete(String id); | 20 | boolean delete(String id); |
20 | 21 |
dao/src/main/java/org/thingsboard/server/dao/yunteng/service/TkPreserveDetailService.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.service; | ||
2 | + | ||
3 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
4 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveDetailDTO; | ||
5 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
6 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveDetailEntity; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | + | ||
10 | +public interface TkPreserveDetailService extends BaseService<TkPreserveDetailEntity>{ | ||
11 | + | ||
12 | + TkPageData<TkPreserveDetailDTO> page(TkPreserveDetailDTO condition) throws ThingsboardException; | ||
13 | + | ||
14 | + TkPreserveDetailDTO save(TkPreserveDetailDTO dto) throws ThingsboardException; | ||
15 | + | ||
16 | + boolean delete(String id); | ||
17 | + | ||
18 | + boolean deleteByPlanId(String planId); | ||
19 | + | ||
20 | + void deleteNotInIdEqPlanId(String planId,List<String> notinIds); | ||
21 | + | ||
22 | + List<TkPreserveDetailDTO> listByPlanId(String planId) throws ThingsboardException; | ||
23 | +} |
1 | +package org.thingsboard.server.dao.yunteng.service; | ||
2 | + | ||
3 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
4 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreservePlanDTO; | ||
5 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
6 | +import org.thingsboard.server.dao.yunteng.entities.TkPreservePlanEntity; | ||
7 | + | ||
8 | +public interface TkPreservePlanService extends BaseService<TkPreservePlanEntity> { | ||
9 | + | ||
10 | + TkPageData<TkPreservePlanDTO> page(TkPreservePlanDTO condition) throws ThingsboardException; | ||
11 | + | ||
12 | + TkPreservePlanDTO save(TkPreservePlanDTO dto) throws ThingsboardException; | ||
13 | + | ||
14 | + TkPreservePlanDTO load(String id); | ||
15 | + | ||
16 | + TkPreservePlanDTO detail(String id) throws ThingsboardException; | ||
17 | + | ||
18 | + void updateStatus(String id, String status) throws ThingsboardException; | ||
19 | + | ||
20 | + boolean delete(String id) throws ThingsboardException; | ||
21 | +} |
dao/src/main/java/org/thingsboard/server/dao/yunteng/service/TkPreserveRecordServcie.java
0 → 100644
1 | +package org.thingsboard.server.dao.yunteng.service; | ||
2 | + | ||
3 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | ||
4 | +import org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO; | ||
5 | +import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | ||
6 | +import org.thingsboard.server.dao.yunteng.entities.TkPreserveRecordEntity; | ||
7 | + | ||
8 | +import java.util.List; | ||
9 | +import java.util.Map; | ||
10 | + | ||
11 | +public interface TkPreserveRecordServcie extends BaseService<TkPreserveRecordEntity>{ | ||
12 | + | ||
13 | + TkPageData<TkPreserveRecordDTO> page(Map<String, Object> params) throws ThingsboardException; | ||
14 | + | ||
15 | + TkPreserveRecordDTO save(TkPreserveRecordDTO dto) throws ThingsboardException; | ||
16 | + | ||
17 | + TkPreserveRecordDTO load(String id); | ||
18 | + | ||
19 | + TkPreserveRecordDTO detail(String id) throws ThingsboardException; | ||
20 | + | ||
21 | + void updateStatus(String id, String status) throws ThingsboardException; | ||
22 | + | ||
23 | + boolean delete(String id); | ||
24 | + | ||
25 | + List<TkPreserveRecordDTO> listByPlanId(String planId) throws ThingsboardException; | ||
26 | +} |
1 | package org.thingsboard.server.dao.yunteng.service; | 1 | package org.thingsboard.server.dao.yunteng.service; |
2 | 2 | ||
3 | - | ||
4 | -import com.baomidou.mybatisplus.core.metadata.IPage; | ||
5 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 3 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
6 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; | 4 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
7 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; | 5 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
@@ -14,7 +12,7 @@ public interface TkRepairOrderService extends BaseService<TkRepairOrderEntity> { | @@ -14,7 +12,7 @@ public interface TkRepairOrderService extends BaseService<TkRepairOrderEntity> { | ||
14 | 12 | ||
15 | TkPageData<TkRepairOrderDTO> page(String tenantId,Map<String, Object> params); | 13 | TkPageData<TkRepairOrderDTO> page(String tenantId,Map<String, Object> params); |
16 | 14 | ||
17 | - TkRepairOrderDTO save(TkRepairOrderDTO dto); | 15 | + TkRepairOrderDTO save(TkRepairOrderDTO dto) throws ThingsboardException; |
18 | 16 | ||
19 | TkRepairOrderDTO detail(String id) throws ThingsboardException; | 17 | TkRepairOrderDTO detail(String id) throws ThingsboardException; |
20 | 18 |
@@ -9,7 +9,7 @@ public interface TkRepairRecordService extends BaseService<TkRepairRecordEntity> | @@ -9,7 +9,7 @@ public interface TkRepairRecordService extends BaseService<TkRepairRecordEntity> | ||
9 | 9 | ||
10 | TkPageData<TkRepairRecordDTO> page(String tenantId, TkRepairRecordDTO params); | 10 | TkPageData<TkRepairRecordDTO> page(String tenantId, TkRepairRecordDTO params); |
11 | 11 | ||
12 | - TkRepairRecordDTO save(TkRepairRecordDTO dto); | 12 | + TkRepairRecordDTO save(TkRepairRecordDTO dto) throws ThingsboardException; |
13 | 13 | ||
14 | TkRepairRecordDTO detail(String id) throws ThingsboardException; | 14 | TkRepairRecordDTO detail(String id) throws ThingsboardException; |
15 | 15 |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkPreserveRecordMapper"> | ||
4 | + <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkPreserveRecordDTO" id="preserveRecordMap"> | ||
5 | + <result property="preserveByName" column="preserveByName"/> | ||
6 | + <result property="preservePlanName" column="preserveName"/> | ||
7 | + </resultMap> | ||
8 | + <select id="getPreserveRecordPage" resultMap="preserveRecordMap"> | ||
9 | + SELECT | ||
10 | + r.record_code,r.preserve_plan_id,r.preserve_date,r.preserve_by,r.preserve_status | ||
11 | + ,r.tenant_id,r.create_time,r.updater,r.update_time,r.creator | ||
12 | + ,su.real_name as preserveByName,p.preserve_name as preserveName | ||
13 | + from qg_preserve_record r | ||
14 | + inner join sys_user su on su.id=r.preserve_by | ||
15 | + inner join qg_preserve_plan p on p.id=r.preserve_plan_id | ||
16 | + <where> | ||
17 | + <if test="queryMap.id !=null "> | ||
18 | + AND r.id = #{queryMap.id} | ||
19 | + </if> | ||
20 | + <if test="queryMap.tenantId !=null "> | ||
21 | + AND r.tenant_id = #{queryMap.tenantId} | ||
22 | + </if> | ||
23 | + <if test="queryMap.preserve_plan_id !=null "> | ||
24 | + AND r.status = #{queryMap.preservePlanId} | ||
25 | + </if> | ||
26 | + <if test="queryMap.preserve_by !=null "> | ||
27 | + AND r.device_id = #{queryMap.preserveBy} | ||
28 | + </if> | ||
29 | + <if test="queryMap.preserve_status !=null "> | ||
30 | + AND r.emergency = #{queryMap.preserveStatus} | ||
31 | + </if> | ||
32 | + <if test="queryMap.startDate !=null "> | ||
33 | + AND to_char(r.preserve_date, 'YYYY-MM-DD HH24:MI:SS') >= #{queryMap.startDate} | ||
34 | + </if> | ||
35 | + <if test="queryMap.endDate !=null "> | ||
36 | + AND to_char(r.preserve_date, 'YYYY-MM-DD HH24:MI:SS') <= #{queryMap.endDate} | ||
37 | + </if> | ||
38 | + </where> | ||
39 | + </select> | ||
40 | +</mapper> |
@@ -3,12 +3,6 @@ | @@ -3,12 +3,6 @@ | ||
3 | 3 | ||
4 | <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper"> | 4 | <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper"> |
5 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO" id="repairOrderMap"> | 5 | <resultMap type="org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO" id="repairOrderMap"> |
6 | - <!-- <result property="id" column="id"/>--> | ||
7 | - <!-- <result property="reportDate" column="report_date"/>--> | ||
8 | - <!-- <result property="deviceId" column="device_id"/>--> | ||
9 | - <!-- <result property="reportBy" column="report_by"/>--> | ||
10 | - <!-- <result property="emergency" column="emergency"/>--> | ||
11 | - <!-- <result property="description" column="description"/>--> | ||
12 | <result property="reportByName" column="reportByName"/> | 6 | <result property="reportByName" column="reportByName"/> |
13 | </resultMap> | 7 | </resultMap> |
14 | <select id="getRepairOrderPage" resultMap="repairOrderMap"> | 8 | <select id="getRepairOrderPage" resultMap="repairOrderMap"> |