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