Showing
34 changed files
with
1152 additions
and
37 deletions
... | ... | @@ -6,8 +6,7 @@ CREATE TABLE "public"."qg_malfunction_reason" ( |
6 | 6 | "create_time" timestamp(6), |
7 | 7 | "creator" varchar(36), |
8 | 8 | "updater" varchar(36), |
9 | - "update_time" timestamp(6), | |
10 | - "remark" varchar(255), | |
9 | + "update_time" timestamp(6) | |
11 | 10 | CONSTRAINT "qg_malfunction_reason_pkey" PRIMARY KEY ("id") |
12 | 11 | ); |
13 | 12 | |
... | ... | @@ -43,8 +42,7 @@ CREATE TABLE "public"."qg_repair_order" ( |
43 | 42 | "create_time" timestamp(6), |
44 | 43 | "creator" varchar(36), |
45 | 44 | "updater" varchar(36), |
46 | - "update_time" timestamp(6), | |
47 | - "remark" varchar(255), | |
45 | + "update_time" timestamp(6) | |
48 | 46 | CONSTRAINT "qg_repair_order_pkey" PRIMARY KEY ("id") |
49 | 47 | ); |
50 | 48 | |
... | ... | @@ -75,8 +73,7 @@ CREATE TABLE "public"."qg_repair_record" ( |
75 | 73 | "create_time" timestamp(6), |
76 | 74 | "creator" varchar(36), |
77 | 75 | "updater" varchar(36), |
78 | - "update_time" timestamp(6), | |
79 | - "remark" varchar(255), | |
76 | + "update_time" timestamp(6) | |
80 | 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 | 196 | COMMENT ON COLUMN "public"."qg_inspection_details"."id" IS '主键ID'; |
200 | 197 | COMMENT ON COLUMN "public"."qg_inspection_details"."check_device_id" IS '巡检设备'; |
201 | 198 | COMMENT ON COLUMN "public"."qg_inspection_details"."plan_details" IS '巡检内容'; |
202 | -COMMENT ON COLUMN "public"."qg_inspection_details"."record_result" IS '巡检结果'; | |
\ No newline at end of file | ||
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 | 59 | } |
60 | 60 | |
61 | 61 | if (StringUtils.isBlank(dto.getStatus())) { |
62 | - dto.setStatus(RepairOrderStatusEnum.SCHEDULING.name()); | |
62 | + dto.setStatus(RepairOrderStatusEnum.DRAFT.name()); | |
63 | 63 | } |
64 | 64 | |
65 | 65 | TkRepairOrderDTO deviceDTO = tkRepairOrderService.save(dto); |
... | ... | @@ -93,4 +93,17 @@ public class TkRepairOrderController extends BaseController { |
93 | 93 | params.put(PAGE_SIZE, pageSize); |
94 | 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 | 143 | private Integer isEdge; |
144 | 144 | @ApiModelProperty(value = "设备负责人id") |
145 | 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 | 680 | * 维修记录 |
681 | 681 | */ |
682 | 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 | 687 | public static final String TKINSPECTIONPLAN_TABLE_NAME= "qg_inspection_plan"; // 巡检计划 |
685 | 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 | 7 | import lombok.extern.slf4j.Slf4j; |
8 | 8 | import org.apache.commons.lang3.StringUtils; |
9 | 9 | import org.springframework.stereotype.Service; |
10 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | |
10 | 11 | import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException; |
11 | 12 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; |
12 | 13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
14 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | |
13 | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
14 | 16 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; |
15 | 17 | import org.thingsboard.server.dao.yunteng.mapper.TkMalfunctionReasonMapper; |
... | ... | @@ -33,10 +35,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun |
33 | 35 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); |
34 | 36 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); |
35 | 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 | 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 | 44 | IPage<TkMalfunctionReasonEntity> page = baseMapper.selectPage( |
... | ... | @@ -51,10 +53,10 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun |
51 | 53 | LambdaQueryWrapper<TkMalfunctionReasonEntity> lambda = wrapper.lambda(); |
52 | 54 | lambda.eq(TkMalfunctionReasonEntity::getTenantId, tenantId); |
53 | 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 | 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 | 61 | List<TkMalfunctionReasonEntity> entitys = baseMapper.selectList(wrapper); |
60 | 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 | 65 | } |
64 | 66 | |
65 | 67 | @Override |
66 | - public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) { | |
68 | + public TkMalfunctionReasonDTO save(TkMalfunctionReasonDTO tkMalfunctionReasonDTO) throws ThingsboardException { | |
67 | 69 | checkDto(tkMalfunctionReasonDTO); |
68 | 70 | TkMalfunctionReasonEntity entity = new TkMalfunctionReasonEntity(); |
69 | 71 | if (StringUtils.isBlank(tkMalfunctionReasonDTO.getId())) { |
... | ... | @@ -81,9 +83,9 @@ public class TkMalfunctionReasonServiceImpl extends AbstractBaseService<TkMalfun |
81 | 83 | return tkMalfunctionReasonDTO; |
82 | 84 | } |
83 | 85 | |
84 | - private void checkDto(TkMalfunctionReasonDTO dto) { | |
86 | + private void checkDto(TkMalfunctionReasonDTO dto) throws ThingsboardException { | |
85 | 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 | 14 | import org.thingsboard.server.common.data.yunteng.dto.DeviceDTO; |
15 | 15 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
16 | 16 | import org.thingsboard.server.common.data.yunteng.enums.RepairOrderStatusEnum; |
17 | -import org.thingsboard.server.common.data.yunteng.utils.CopyUtils; | |
18 | 17 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
19 | 18 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
20 | 19 | import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity; |
21 | -import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity; | |
22 | 20 | import org.thingsboard.server.dao.yunteng.entities.TkRepairOrderEntity; |
23 | 21 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper; |
24 | 22 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
... | ... | @@ -30,9 +28,6 @@ import java.util.HashMap; |
30 | 28 | import java.util.Map; |
31 | 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 | 31 | @Service |
37 | 32 | @RequiredArgsConstructor |
38 | 33 | @Slf4j |
... | ... | @@ -100,7 +95,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
100 | 95 | |
101 | 96 | |
102 | 97 | @Override |
103 | - public TkRepairOrderDTO save(TkRepairOrderDTO dto) { | |
98 | + public TkRepairOrderDTO save(TkRepairOrderDTO dto) throws ThingsboardException { | |
104 | 99 | checkDto(dto); |
105 | 100 | if (dto.getReportDate() == null) { |
106 | 101 | dto.setReportDate(LocalDateTime.now()); |
... | ... | @@ -143,6 +138,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
143 | 138 | TkRepairOrderDTO result = null; |
144 | 139 | TkRepairOrderEntity entity = baseMapper.selectById(id); |
145 | 140 | if (entity != null) { |
141 | + result=new TkRepairOrderDTO(); | |
146 | 142 | entity.copyToDTO(result); |
147 | 143 | } |
148 | 144 | return result; |
... | ... | @@ -157,6 +153,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
157 | 153 | lambda.eq(TkRepairOrderEntity::getDeviceId, deviceId); |
158 | 154 | TkRepairOrderEntity entity = baseMapper.selectOne(queryWrapper); |
159 | 155 | if (entity != null) { |
156 | + result=new TkRepairOrderDTO(); | |
160 | 157 | entity.copyToDTO(result); |
161 | 158 | } |
162 | 159 | return result; |
... | ... | @@ -180,7 +177,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
180 | 177 | baseMapper.update(entity, filter); |
181 | 178 | } |
182 | 179 | |
183 | - private void checkDto(TkRepairOrderDTO dto) { | |
180 | + private void checkDto(TkRepairOrderDTO dto) throws ThingsboardException { | |
184 | 181 | if (StringUtils.isBlank(dto.getDeviceId())) { |
185 | 182 | throw new TkDataValidationException("设备不能为空!"); |
186 | 183 | } |
... | ... | @@ -190,7 +187,7 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM |
190 | 187 | } |
191 | 188 | |
192 | 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 | 12 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
13 | 13 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO; |
14 | 14 | import org.thingsboard.server.common.data.yunteng.dto.UserDTO; |
15 | +import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | |
15 | 16 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
16 | 17 | import org.thingsboard.server.dao.yunteng.entities.TkRepairRecordEntity; |
17 | 18 | import org.thingsboard.server.dao.yunteng.mapper.TkRepairRecordMapper; |
... | ... | @@ -56,7 +57,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor |
56 | 57 | } |
57 | 58 | |
58 | 59 | @Override |
59 | - public TkRepairRecordDTO save(TkRepairRecordDTO dto) { | |
60 | + public TkRepairRecordDTO save(TkRepairRecordDTO dto) throws ThingsboardException { | |
60 | 61 | checkDto(dto); |
61 | 62 | if (dto.getRepairDate() == null) { |
62 | 63 | dto.setRepairDate(LocalDateTime.now()); |
... | ... | @@ -76,7 +77,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor |
76 | 77 | return dto; |
77 | 78 | } |
78 | 79 | |
79 | - private void checkDto(TkRepairRecordDTO dto) { | |
80 | + private void checkDto(TkRepairRecordDTO dto) throws ThingsboardException { | |
80 | 81 | if (StringUtils.isBlank(dto.getOrderId())) { |
81 | 82 | throw new TkDataValidationException("维修工单不能为空!"); |
82 | 83 | } |
... | ... | @@ -86,7 +87,7 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor |
86 | 87 | } |
87 | 88 | |
88 | 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 | 1 | package org.thingsboard.server.dao.yunteng.service; |
2 | 2 | |
3 | 3 | |
4 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | |
4 | 5 | import org.thingsboard.server.common.data.yunteng.dto.TkMalfunctionReasonDTO; |
5 | 6 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
6 | 7 | import org.thingsboard.server.dao.yunteng.entities.TkMalfunctionReasonEntity; |
... | ... | @@ -14,7 +15,7 @@ public interface TkMalfunctionReasonService extends BaseService<TkMalfunctionRea |
14 | 15 | |
15 | 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 | 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 | 1 | package org.thingsboard.server.dao.yunteng.service; |
2 | 2 | |
3 | - | |
4 | -import com.baomidou.mybatisplus.core.metadata.IPage; | |
5 | 3 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
6 | 4 | import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO; |
7 | 5 | import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData; |
... | ... | @@ -14,7 +12,7 @@ public interface TkRepairOrderService extends BaseService<TkRepairOrderEntity> { |
14 | 12 | |
15 | 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 | 17 | TkRepairOrderDTO detail(String id) throws ThingsboardException; |
20 | 18 | ... | ... |
... | ... | @@ -9,7 +9,7 @@ public interface TkRepairRecordService extends BaseService<TkRepairRecordEntity> |
9 | 9 | |
10 | 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 | 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> | |
\ No newline at end of file | ... | ... |
... | ... | @@ -3,12 +3,6 @@ |
3 | 3 | |
4 | 4 | <mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper"> |
5 | 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 | 6 | <result property="reportByName" column="reportByName"/> |
13 | 7 | </resultMap> |
14 | 8 | <select id="getRepairOrderPage" resultMap="repairOrderMap"> | ... | ... |