package com.qianwen.smartman.modules.cps.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 com.qianwen.smartman.common.cache.RegionCache;
|
import com.qianwen.core.boot.ctrl.BladeController;
|
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.DeleteResource;
|
import com.qianwen.core.scanner.modular.annotation.GetResource;
|
import com.qianwen.core.scanner.modular.annotation.PostResource;
|
import com.qianwen.core.scanner.modular.annotation.PutResource;
|
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.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.cps.excel.MalfunctionTypeExcel;
|
import com.qianwen.smartman.modules.cps.excel.MalfunctionTypeImport;
|
import com.qianwen.smartman.modules.cps.service.IMalfunctionTypeService;
|
import com.qianwen.smartman.modules.cps.vo.MalfunctionTypeRecordVO;
|
import com.qianwen.smartman.modules.cps.vo.MalfunctionTypeVO;
|
import com.qianwen.smartman.modules.cps.wrapper.MalfunctionTypeExcelWrapper;
|
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
|
import com.qianwen.smartman.modules.resource.enums.TemplateEnum;
|
import com.qianwen.smartman.modules.resource.service.ISystemResourceService;
|
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;
|
|
@ApiResource({"smis/malfunction"})
|
@Api(value = "故障类型", tags = {"故障类型"})
|
@RestController
|
public class MalfunctionTypeController extends BladeController {
|
private final IMalfunctionTypeService malfunctionTypeService;
|
private final OssBuilder ossBuilder;
|
private final ISystemResourceService systemResourceService;
|
|
public MalfunctionTypeController(final IMalfunctionTypeService malfunctionTypeService, final OssBuilder ossBuilder, final ISystemResourceService systemResourceService) {
|
this.malfunctionTypeService = malfunctionTypeService;
|
this.ossBuilder = ossBuilder;
|
this.systemResourceService = systemResourceService;
|
}
|
|
@ApiOperationSupport(order = 1)
|
@PostResource({"/save"})
|
@ApiOperation("新增或更改故障类型")
|
@PreAuth
|
public R<MalfunctionTypeVO> save(@RequestBody MalfunctionTypeVO malfunctionTypeVO) {
|
return R.data(this.malfunctionTypeService.insert(malfunctionTypeVO));
|
}
|
|
@ApiOperationSupport(order = 2)
|
@GetResource({"/page"})
|
@ApiOperation("分页/查询故障类型列表")
|
@PreAuth
|
public R<IPage<MalfunctionTypeVO>> page(@ApiParam("分页条件") Query query, @RequestParam("malfunctionTypeCodeOrName") @ApiParam("故障类型编号或姓名") String keyword, @RequestParam(value = "status", required = false) @ApiParam("1 启用 0 停用") Integer status) {
|
return R.data(this.malfunctionTypeService.listPage(query, keyword, status));
|
}
|
|
@ApiOperationSupport(order = 3)
|
@ApiOperation("批量删除故障类型")
|
@PreAuth
|
@DeleteResource({"/delete"})
|
public R<Boolean> delete(@RequestParam("malfunctionTypeIds") String ids, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) {
|
return R.data(this.malfunctionTypeService.deleteMalfunctionTypeByIdList(Func.toLongList(ids), type));
|
}
|
|
@ApiOperationSupport(order = 4)
|
@GetResource({"/detail"})
|
@ApiOperation(value = "故障类型详情", notes = "传入id")
|
public R<MalfunctionTypeVO> detail(@RequestParam("malfunctionTypeId") String malfunctionTypeId) {
|
return R.data(this.malfunctionTypeService.detail(Long.valueOf(Func.toLong(malfunctionTypeId))));
|
}
|
|
@ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
|
@PostResource({"/export-malfunctionType"})
|
@ApiOperation("导出故障类型")
|
@PreAuth
|
public R<BladeFile> exportMalfunctionType(@RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "status", required = false) @ApiParam("1 启用 0 停用") Integer status) {
|
IPage<MalfunctionTypeVO> pages = this.malfunctionTypeService.listPage(new Query().setCurrent(1).setSize(-1), keyword, status);
|
List<MalfunctionTypeExcel> list = MalfunctionTypeExcelWrapper.build().pageVO(pages).getRecords();
|
String fileName = String.format("%s-%s.xlsx", "故障类型数据", DateUtil.time());
|
MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "故障类型表", list, MalfunctionTypeExcel.class);
|
BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
|
return R.data(bladeFile);
|
}
|
|
@ApiOperationSupport(order = 6)
|
@PostResource({"/import-malfunctionType"})
|
@ApiOperation("导入故障类型")
|
@PreAuth
|
public R<BladeFile> importMalfunctionType(MultipartFile file) {
|
List<MalfunctionTypeImport> data = ExcelUtil.read(file, 0, 2, MalfunctionTypeImport.class);
|
return R.data(this.malfunctionTypeService.importMalfunctionType(data));
|
}
|
|
@ApiOperationSupport(order = 7)
|
@PutResource({"/update-malfunctionType"})
|
@ApiOperation("编辑故障类型")
|
@PreAuth
|
public R<Boolean> updateMalfunctionType(@RequestBody MalfunctionTypeVO malfunctionTypeVO) {
|
return R.data(this.malfunctionTypeService.updateMalfunctionType(malfunctionTypeVO));
|
}
|
|
@ApiOperationSupport(order = 8)
|
@GetResource({"/export-template"})
|
@ApiOperation("导出模板")
|
@PreAuth
|
public R<BladeFile> exportTemplate() {
|
return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.MALFUNCTION_TYPE));
|
}
|
|
@ApiOperationSupport(order = 9)
|
@GetResource({"/malfunction-code-list"})
|
@ApiOperation(value = "获取故障编码list", notes = "给维修记录故障码提供")
|
public R<List<MalfunctionTypeRecordVO>> getCodeAndRecord() {
|
return R.data(this.malfunctionTypeService.getCodeAndRecord());
|
}
|
}
|