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 javax.servlet.http.HttpServletResponse; 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.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.BladeUser; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tenant.annotation.NonDS; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.modules.cps.dto.MaintainItemExportDTO; import com.qianwen.smartman.modules.cps.dto.MaintainItemUpdateVO; import com.qianwen.smartman.modules.cps.entity.MaintainItem; import com.qianwen.smartman.modules.cps.excel.MaintainItemImport; import com.qianwen.smartman.modules.cps.service.IMaintainItemService; import com.qianwen.smartman.modules.cps.vo.MaintainItemAddVO; import com.qianwen.smartman.modules.cps.vo.MaintainItemVO; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; import org.springframework.validation.annotation.Validated; 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; @Api(value = "保养项", tags = {"保养项"}) @RestController @ApiResource({"smis/maintain-item"}) @NonDS @Validated public class MaintainItemController extends BladeController { private final IMaintainItemService maintainItemService; private final ISystemResourceService systemResourceService; public MaintainItemController(final IMaintainItemService maintainItemService, final ISystemResourceService systemResourceService) { this.maintainItemService = maintainItemService; this.systemResourceService = systemResourceService; } @ApiOperationSupport(order = 1) @PostResource({"/create-maintain-item"}) @ApiOperation("添加保养项") @PreAuth public R createMaintainItem(@Validated @RequestBody MaintainItemAddVO maintainItemAddVO) { return R.data(this.maintainItemService.createMaintainItem(maintainItemAddVO)); } @ApiOperationSupport(order = 2) @PostResource({"/edit-maintain-item"}) @ApiOperation("编辑保养项") @PreAuth public R editMaintainItem(@Validated @RequestBody MaintainItemUpdateVO maintainItemUpdateVO) { return R.data(this.maintainItemService.editMaintainItem(maintainItemUpdateVO)); } @ApiOperationSupport(order = 3) @GetResource({"/query-maintain-item"}) @ApiOperation("查看保养项") public R queryMaintainItem(@RequestParam("id") @ApiParam("保养项ID") String id) { return R.data(this.maintainItemService.queryMaintainItem(Long.valueOf(id))); } @ApiOperationSupport(order = 4) @GetResource({"/list"}) @ApiOperation("查看保养项列表(不分页)") public R> queryMaintainItemList(@RequestParam(value = "keyWord", required = false) @ApiParam("关键词") String keyWord) { return R.data(this.maintainItemService.queryMaintainItemList(keyWord)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @GetResource({"/page"}) @ApiOperation("查看保养项列表(分页)") @PreAuth public R> queryMaintainItemListPage(@RequestParam(value = "keyWord", required = false) @ApiParam("关键词") String keyWord, @RequestParam(value = "status", required = false) @ApiParam("状态:1 启用 0 停用") Integer status, Query query) { return R.data(this.maintainItemService.queryMaintainItemListPage(keyWord, query, status)); } @ApiOperationSupport(order = 6) @PostResource({"/delete-maintain-item"}) @ApiOperation("删除保养项") @PreAuth public R deleteMaintainItem(@RequestParam(value = "ids", required = true) @ApiParam("保养项ID") List ids, @RequestParam("type") @ApiParam("删除传0 停用传1") Integer type) { return R.data(this.maintainItemService.deleteMaintainItem(ids, type)); } @ApiOperationSupport(order = 7) @GetResource({"/list-can-relate"}) @ApiOperation("查看可以关联的保养项列表(不分页)") public R> queryMaintainItemListCanRelate() { return R.data(this.maintainItemService.queryMaintainItemListCanRelate()); } @ApiOperationSupport(order = 8) @GetResource({"/export/template"}) @ApiOperation("导出保养项模板") @PreAuth public R exportMaintainItemTemplate(HttpServletResponse response, BladeUser bladeUser) { return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.MAINTAIN_ITEM)); } @ApiOperationSupport(order = 9) @PostResource({"/import-maintain-item"}) @ApiOperation(value = "动态导入", notes = "传入excel") @PreAuth public R importMaintainItem(MultipartFile file) { List data = ExcelUtil.read(file, 0, 2, MaintainItemImport.class); return R.data(this.maintainItemService.importMaintainItem(data)); } @ApiOperationSupport(order = 10) @PostResource({"/export"}) @ApiOperation("导出") @PreAuth public R exportMaintainItem(@RequestBody MaintainItemExportDTO maintainItemExportDTO, HttpServletResponse response) { return R.data(this.maintainItemService.exportMaintainItem(maintainItemExportDTO, response)); } }