Commit a45614658900c80bac76e5160e8f0a2ee12eccd8

Authored by 胡翰林
1 parent 9599cbae

故障原因管理接口

设备报修维修接口
... ... @@ -32,6 +32,7 @@ COMMENT ON COLUMN "public"."device"."director_id" IS '负责人id';
32 32 CREATE TABLE "public"."qg_repair_order" (
33 33 "id" varchar(36) NOT NULL,
34 34 "device_id" varchar(36),
  35 + "order_code" varchar(50),
35 36 "report_date" timestamp(6),
36 37 "report_by" varchar(36),
37 38 "status" varchar(50),
... ...
... ... @@ -35,7 +35,7 @@ public class TkRepairRecordController extends BaseController {
35 35
36 36 @PostMapping("/save")
37 37 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN','CUSTOMER_USER')")
38   - @ApiOperation("维修记录保存")
  38 + @ApiOperation("设备维修")
39 39 public ResponseEntity<TkRepairRecordDTO> save(@RequestBody TkRepairRecordDTO dto) throws ThingsboardException {
40 40 String currentTenantId = getCurrentUser().getCurrentTenantId();
41 41 dto.setTenantId(currentTenantId);
... ... @@ -49,7 +49,7 @@ public class TkRepairRecordController extends BaseController {
49 49
50 50 TkRepairRecordDTO deviceDTO = tkRepairRecordService.save(dto);
51 51
52   - tkRepairOrderService.updateStatus(dto.getOrderId(),RepairOrderStatusEnum.REPAIRFINISH.name());
  52 + tkRepairOrderService.updateStatus(dto.getOrderId(), RepairOrderStatusEnum.REPAIRFINISH.name());
53 53 return ResponseEntity.ok(deviceDTO);
54 54 }
55 55
... ...
... ... @@ -13,6 +13,9 @@ import java.time.LocalDateTime;
13 13 @Data
14 14 public class TkRepairOrderDTO extends TenantDTO {
15 15
  16 + @ApiModelProperty(value = "维修单编码")
  17 + private String orderCode;
  18 +
16 19 @ApiModelProperty(value = "设备id")
17 20 private String deviceId;
18 21
... ... @@ -24,6 +27,9 @@ public class TkRepairOrderDTO extends TenantDTO {
24 27 @ApiModelProperty(value = "报修人")
25 28 private String reportBy;
26 29
  30 + @ApiModelProperty(value = "报修人")
  31 + private String reportByName;
  32 +
27 33 @ApiModelProperty(value = "状态(RepairOrderStatusEnum) SCHEDULING排期中 REPAIRFINISH维修完成 ACCEPTANCEPASSED验收通过")
28 34 private String status;
29 35
... ...
... ... @@ -15,6 +15,8 @@ import java.time.LocalDateTime;
15 15 @TableName(value = ModelConstants.TKREPAIRORDER_TABLE_NAME, autoResultMap = true)
16 16 public class TkRepairOrderEntity extends TenantBaseEntity {
17 17
  18 + private String orderCode;
  19 +
18 20 private String deviceId;
19 21
20 22 private LocalDateTime reportDate;
... ...
... ... @@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j;
8 8 import org.apache.commons.collections4.CollectionUtils;
9 9 import org.apache.commons.lang3.StringUtils;
10 10 import org.springframework.stereotype.Service;
11   -import org.thingsboard.server.common.data.User;
12 11 import org.thingsboard.server.common.data.exception.ThingsboardException;
13 12 import org.thingsboard.server.common.data.id.TenantId;
14 13 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
... ... @@ -19,6 +18,7 @@ import org.thingsboard.server.common.data.yunteng.utils.CopyUtils;
19 18 import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
20 19 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
21 20 import org.thingsboard.server.dao.yunteng.entities.TenantBaseEntity;
  21 +import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity;
22 22 import org.thingsboard.server.dao.yunteng.entities.TkRepairOrderEntity;
23 23 import org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper;
24 24 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
... ... @@ -27,10 +27,8 @@ import org.thingsboard.server.dao.yunteng.service.TkRepairOrderService;
27 27
28 28 import java.time.LocalDateTime;
29 29 import java.util.HashMap;
30   -import java.util.List;
31 30 import java.util.Map;
32 31 import java.util.UUID;
33   -import java.util.stream.Collectors;
34 32
35 33 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE;
36 34 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE;
... ... @@ -44,26 +42,32 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM
44 42 private final TkDeviceService tkdeviceService;
45 43
46 44 @Override
47   - public TkPageData<TkRepairOrderDTO> page(String tenantId, TkRepairOrderDTO params) {
48   - QueryWrapper<TkRepairOrderEntity> queryWrapper = getCondition(tenantId, params);
49   - getCondition(tenantId, params);
50   - Map<String, Object> queryMap = new HashMap<>();
51   - queryMap.put(PAGE, params.getPage());
52   - queryMap.put(PAGE_SIZE, params.getPageSize());
53   - IPage<TkRepairOrderEntity> page = baseMapper.selectPage(
54   - getPage(queryMap, "create_time", false), queryWrapper);
55   -
56   - TkPageData<TkRepairOrderDTO> pageData = getPageData(page, TkRepairOrderDTO.class);
57   - if (pageData != null && CollectionUtils.isNotEmpty(pageData.getItems())) {
58   - pageData.getItems().forEach(item -> {
  45 + public TkPageData<TkRepairOrderDTO> page(String tenantId, Map<String, Object> params) {
  46 + TkPageData<TkRepairOrderDTO> result = new TkPageData<>();
  47 + IPage<TkRepairOrderEntity> page =
  48 + getPage(params, "create_time", false);
  49 +
  50 + IPage<TkRepairOrderDTO> pageData = baseMapper.getRepairOrderPage(page, params);
  51 + if (pageData != null && CollectionUtils.isNotEmpty(pageData.getRecords())) {
  52 + Map<String, DeviceDTO> deviceMap = new HashMap<>();
  53 + pageData.getRecords().forEach(item -> {
59 54 String deviceId = item.getDeviceId();
60 55 if (StringUtils.isNotBlank(deviceId)) {
61   - DeviceDTO deviceDTO = tkdeviceService.checkDeviceByTenantIdAndDeviceId(UUID.fromString(tenantId), UUID.fromString(deviceId));
  56 + DeviceDTO deviceDTO = deviceMap.get(tenantId);
  57 + if (deviceDTO == null) {
  58 + deviceDTO = tkdeviceService.checkDeviceByTenantIdAndDeviceId(UUID.fromString(tenantId), UUID.fromString(deviceId));
  59 + deviceMap.put(tenantId, deviceDTO);
  60 + }
  61 +
62 62 item.setDeviceInfo(deviceDTO);
63 63 }
64 64 });
65 65 }
66   - return pageData;
  66 + if (pageData != null) {
  67 + result.setItems(pageData.getRecords());
  68 + }
  69 + result.setTotal(Long.valueOf(pageData.getTotal()).intValue());
  70 + return result;
67 71 }
68 72
69 73 private QueryWrapper<TkRepairOrderEntity> getCondition(String tenantId, TkRepairOrderDTO params) {
... ... @@ -136,21 +140,25 @@ public class TkRepairOrderServiceImpl extends AbstractBaseService<TkRepairOrderM
136 140
137 141 @Override
138 142 public TkRepairOrderDTO load(String id) throws ThingsboardException {
139   - TkRepairOrderDTO result = new TkRepairOrderDTO();
  143 + TkRepairOrderDTO result = null;
140 144 TkRepairOrderEntity entity = baseMapper.selectById(id);
141   - entity.copyToDTO(result);
  145 + if (entity != null) {
  146 + entity.copyToDTO(result);
  147 + }
142 148 return result;
143 149 }
144 150
145 151 @Override
146 152 public TkRepairOrderDTO loadByDeviceId(String deviceId) throws ThingsboardException {
147   - TkRepairOrderDTO result = new TkRepairOrderDTO();
  153 + TkRepairOrderDTO result = null;
148 154 QueryWrapper<TkRepairOrderEntity> queryWrapper = new QueryWrapper<>();
149 155 LambdaQueryWrapper<TkRepairOrderEntity> lambda = queryWrapper.lambda();
150 156 lambda.eq(TenantBaseEntity::getTenantId, SpringBeanUtils.getTenantId().toString());
151 157 lambda.eq(TkRepairOrderEntity::getDeviceId, deviceId);
152 158 TkRepairOrderEntity entity = baseMapper.selectOne(queryWrapper);
153   - entity.copyToDTO(result);
  159 + if (entity != null) {
  160 + entity.copyToDTO(result);
  161 + }
154 162 return result;
155 163 }
156 164
... ...
... ... @@ -5,19 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 5 import com.baomidou.mybatisplus.core.metadata.IPage;
6 6 import lombok.RequiredArgsConstructor;
7 7 import lombok.extern.slf4j.Slf4j;
8   -import org.apache.commons.collections4.CollectionUtils;
9 8 import org.apache.commons.lang3.StringUtils;
10 9 import org.springframework.stereotype.Service;
11   -import org.thingsboard.server.common.data.User;
12 10 import org.thingsboard.server.common.data.exception.ThingsboardException;
13 11 import org.thingsboard.server.common.data.yunteng.core.exception.TkDataValidationException;
14 12 import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO;
15 13 import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO;
16 14 import org.thingsboard.server.common.data.yunteng.dto.UserDTO;
17   -import org.thingsboard.server.common.data.yunteng.utils.CopyUtils;
18   -import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils;
19 15 import org.thingsboard.server.common.data.yunteng.utils.tools.TkPageData;
20   -import org.thingsboard.server.dao.yunteng.entities.TkDeviceEntity;
21 16 import org.thingsboard.server.dao.yunteng.entities.TkRepairRecordEntity;
22 17 import org.thingsboard.server.dao.yunteng.mapper.TkRepairRecordMapper;
23 18 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
... ... @@ -27,9 +22,7 @@ import org.thingsboard.server.dao.yunteng.service.TkUserService;
27 22
28 23 import java.time.LocalDateTime;
29 24 import java.util.HashMap;
30   -import java.util.List;
31 25 import java.util.Map;
32   -import java.util.stream.Collectors;
33 26
34 27 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE;
35 28 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.PAGE_SIZE;
... ... @@ -54,14 +47,8 @@ public class TkRepairRecordServiceImpl extends AbstractBaseService<TkRepairRecor
54 47 IPage<TkRepairRecordEntity> page =
55 48 getPage(queryMap, "rr.create_time", false);
56 49 IPage<TkRepairRecordDTO> pageData = baseMapper.getRepairRecordPage(page, queryMap);
57   - if (pageData != null && CollectionUtils.isNotEmpty(pageData.getRecords())) {
58   - List<TkRepairRecordDTO> dataList = pageData.getRecords().stream().map(item -> {
59   - TkRepairRecordDTO dto = new TkRepairRecordDTO();
60   - CopyUtils.copyProperties(item, dto);
61   - return dto;
62   -
63   - }).collect(Collectors.toList());
64   - result.setItems(dataList);
  50 + if (pageData != null) {
  51 + result.setItems(pageData.getRecords());
65 52 }
66 53 result.setTotal(Long.valueOf(pageData.getTotal()).intValue());
67 54
... ...
1 1 package org.thingsboard.server.dao.yunteng.mapper;
2 2
3 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.baomidou.mybatisplus.core.metadata.IPage;
4 5 import org.apache.ibatis.annotations.Mapper;
  6 +import org.apache.ibatis.annotations.Param;
  7 +import org.thingsboard.server.common.data.yunteng.dto.TkRepairOrderDTO;
  8 +import org.thingsboard.server.common.data.yunteng.dto.TkRepairRecordDTO;
5 9 import org.thingsboard.server.dao.yunteng.entities.TkRepairOrderEntity;
6 10
  11 +import java.util.Map;
  12 +
7 13 @Mapper
8 14 public interface TkRepairOrderMapper extends BaseMapper<TkRepairOrderEntity> {
  15 + IPage<TkRepairOrderDTO> getRepairOrderPage(IPage<?> page, @Param("queryMap") Map<String, Object> queryMap);
9 16 }
... ...
  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 +
  4 +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.TkRepairOrderMapper">
  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"/>
  13 + </resultMap>
  14 + <select id="getRepairOrderPage" resultMap="repairOrderMap">
  15 + SELECT
  16 + o.id,o.device_id,o.order_code,o.report_date,o.report_by,o.status,o.emergency,o.situation_img,o.description
  17 + ,o.tenant_id,o.create_time,o.updater,o.update_time,o.creator,su.real_name as reportByName
  18 + from qg_repair_order o
  19 + inner join sys_user su on su.id=o.report_by
  20 + <where>
  21 + <if test="queryMap.tenantId !=null ">
  22 + AND o.tenant_id = #{queryMap.tenantId}
  23 + </if>
  24 + <if test="queryMap.status !=null ">
  25 + AND o.status = #{queryMap.status}
  26 + </if>
  27 + <if test="queryMap.deviceId !=null ">
  28 + AND o.device_id = #{queryMap.deviceId}
  29 + </if>
  30 + <if test="queryMap.emergency !=null ">
  31 + AND o.emergency = #{queryMap.emergency}
  32 + </if>
  33 + <if test="queryMap.startDate !=null ">
  34 + AND to_char(o.report_date, 'YYYY-MM-DD HH24:MI:SS') &gt;= #{queryMap.startDate}
  35 + </if>
  36 + <if test="queryMap.endDate !=null ">
  37 + AND to_char(o.report_date, 'YYYY-MM-DD HH24:MI:SS') &lt;= #{queryMap.endDate}
  38 + </if>
  39 + </where>
  40 + </select>
  41 +</mapper>
\ No newline at end of file
... ...