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 createRepairApply(@Valid @RequestBody RepairRecordAddVO repairRecordAddVO) { return R.data(this.repairRecordService.createRepairRecord(repairRecordAddVO)); } @ApiOperationSupport(order = 2) @PostResource({"/update-repair-record"}) @ApiOperation("编辑维修记录") @PreAuth public R updateRepairApply(@Valid @RequestBody RepairRecordUpdateVO repairRecordUpdateVO) { return R.data(this.repairRecordService.updateRepairRecord(repairRecordUpdateVO)); } @ApiOperationSupport(order = 3) @PostResource({"/page"}) @ApiOperation(value = "维修记录查询分页", notes = "查询分页") public R> 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 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 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> 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 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 deleteApply(@RequestParam("ids") @ApiParam("维修记录ids") List ids) { return R.status(this.repairRecordService.deleteRecord(ids)); } @ApiOperationSupport(order = 9) @PostResource({"/list"}) @ApiOperation(value = "维修记录查询根据关键字查询(不分页)", notes = "关键词,维修单号,申请单号,设备编码,设备名称模糊匹配") @PreAuth public R> queryRepairApply(@RequestBody RepairRecordLookVO repairRecordLookVO) { return R.data(this.repairRecordService.queryRecord(repairRecordLookVO)); } @ApiOperationSupport(order = 10) @PostResource({"/export-record"}) @ApiOperation("导出维修记录") @PreAuth public R exportRecord(@RequestBody RepairRecordExportVO repairRecordExportVO) { List 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 completeRepair(@RequestParam String id) { return R.data(this.repairRecordService.completeRepair(Long.valueOf(Long.parseLong(id)))); } }