Showing
8 changed files
with
90 additions
and
38 deletions
... | ... | @@ -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') >= #{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> | |
\ No newline at end of file | ... | ... |