yangys
2024-04-04 ed4a5236bab800094be4a8378f5098eebe3de6ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package com.qianwen.smartman.modules.tpm.controller;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import java.util.List;
import javax.validation.Valid;
import com.qianwen.smartman.common.cache.RegionCache;
import com.qianwen.smartman.common.constant.ExcelConstant;
import com.qianwen.core.excel.util.ExcelUtil;
import com.qianwen.core.mp.support.Query;
import com.qianwen.core.oss.model.BladeFile;
import com.qianwen.core.scanner.modular.annotation.GetResource;
import com.qianwen.core.scanner.modular.annotation.PostResource;
import com.qianwen.core.scanner.modular.stereotype.ApiResource;
import com.qianwen.core.secure.annotation.PreAuth;
import com.qianwen.core.tool.api.R;
import com.qianwen.core.tool.utils.DateUtil;
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
import com.qianwen.smartman.modules.tpm.entity.RepairRecord;
import com.qianwen.smartman.modules.tpm.service.IRepairRecordService;
import com.qianwen.smartman.modules.tpm.vo.ApplyRecordMaterialVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordAddVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordDetailVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordExportVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordLookVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordUpdateVO;
import com.qianwen.smartman.modules.tpm.vo.RepairRecordVO;
import com.qianwen.smartman.modules.tpm.vo.excel.RepairRecordExcelVO;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
 
@ApiResource({"blade-tpm/repair-record"})
@Api(value = "维修记录", tags = {"维修记录"})
@RestController
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/tpm/controller/RepairRecordController.class */
public class RepairRecordController {
    private final IRepairRecordService repairRecordService;
    private final OssBuilder ossBuilder;
 
    public RepairRecordController(final IRepairRecordService repairRecordService, final OssBuilder ossBuilder) {
        this.repairRecordService = repairRecordService;
        this.ossBuilder = ossBuilder;
    }
 
    @ApiOperationSupport(order = 1)
    @PostResource({"/create-repair-record"})
    @ApiOperation("新增维修记录")
    public R<RepairRecord> createRepairApply(@Valid @RequestBody RepairRecordAddVO repairRecordAddVO) {
        return R.data(this.repairRecordService.createRepairRecord(repairRecordAddVO));
    }
 
    @ApiOperationSupport(order = 2)
    @PostResource({"/update-repair-record"})
    @ApiOperation("编辑维修记录")
    @PreAuth
    public R<RepairRecord> updateRepairApply(@Valid @RequestBody RepairRecordUpdateVO repairRecordUpdateVO) {
        return R.data(this.repairRecordService.updateRepairRecord(repairRecordUpdateVO));
    }
 
    @ApiOperationSupport(order = 3)
    @PostResource({"/page"})
    @ApiOperation(value = "维修记录查询分页", notes = "查询分页")
    public R<IPage<RepairRecordVO>> getPageRepairApply(@RequestBody RepairRecordLookVO repairRecordLookVO, Query query) {
        return R.data(this.repairRecordService.getPageRepairRecord(repairRecordLookVO, query));
    }
 
    @ApiOperationSupport(order = 4)
    @GetResource({"/get-record-detail"})
    @ApiOperation(value = "获取维修记录详情", notes = "包含对应附件和备品配件")
    public R<RepairRecordDetailVO> getApplyDetail(@RequestParam @ApiParam(value = "id", required = true) String id) {
        return R.data(this.repairRecordService.detailRecord(Long.valueOf(Long.parseLong(id))));
    }
 
    @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
    @GetResource({"/implement-repair-record"})
    @ApiOperation("确认维修申请记录单")
    public R<Boolean> implementRepairRecord(@RequestParam @ApiParam(value = "id", required = true) String id) {
        return R.status(this.repairRecordService.confirmRecord(Long.valueOf(Long.parseLong(id))));
    }
 
    @ApiOperationSupport(order = 6)
    @GetResource({"/get-record-device"})
    @ApiOperation(value = "设备履历关联维修记录接口", notes = "根据设备id查询关联的设备维修记录")
    @PreAuth
    public R<List<RepairRecordVO>> getRecordByDeviceId(@RequestParam @ApiParam(value = "deviceId", required = true) String deviceId) {
        return R.data(this.repairRecordService.getRecordByDeviceId(Long.valueOf(Long.parseLong(deviceId))));
    }
 
    @ApiOperationSupport(order = 7)
    @GetResource({"/get-record-file"})
    @ApiOperation("查看维修记录附件接口")
    @PreAuth
    public R<ApplyRecordMaterialVO> getRecordFile(@RequestParam @ApiParam(value = "id", required = true) String id) {
        return R.data(this.repairRecordService.getFiles(Long.valueOf(Long.parseLong(id))));
    }
 
    @ApiOperationSupport(order = 8)
    @ApiIgnore
    @PostResource({"/delete-record-ids"})
    @ApiOperation("维修记录(批量删除)")
    @PreAuth
    public R<Boolean> deleteApply(@RequestParam("ids") @ApiParam("维修记录ids") List<Long> ids) {
        return R.status(this.repairRecordService.deleteRecord(ids));
    }
 
    @ApiOperationSupport(order = 9)
    @PostResource({"/list"})
    @ApiOperation(value = "维修记录查询根据关键字查询(不分页)", notes = "关键词,维修单号,申请单号,设备编码,设备名称模糊匹配")
    @PreAuth
    public R<List<RepairRecordVO>> queryRepairApply(@RequestBody RepairRecordLookVO repairRecordLookVO) {
        return R.data(this.repairRecordService.queryRecord(repairRecordLookVO));
    }
 
    @ApiOperationSupport(order = 10)
    @PostResource({"/export-record"})
    @ApiOperation("导出维修记录")
    @PreAuth
    public R<BladeFile> exportRecord(@RequestBody RepairRecordExportVO repairRecordExportVO) {
        List<RepairRecordExcelVO> repairApplyList = this.repairRecordService.exportRepairRecord(repairRecordExportVO);
        String fileName = String.format("%s-%s.xlsx", ExcelConstant.REPAIR_RECORD, DateUtil.time());
        MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, ExcelConstant.REPAIR_RECORD, repairApplyList, RepairRecordExcelVO.class);
        BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
        return R.data(bladeFile);
    }
 
    @ApiOperationSupport(order = 11)
    @GetResource({"/complete"})
    @ApiOperation("完成维修")
    @PreAuth
    public R<RepairRecordVO> completeRepair(@RequestParam String id) {
        return R.data(this.repairRecordService.completeRepair(Long.valueOf(Long.parseLong(id))));
    }
}