package com.qianwen.smartman.modules.dnc.controller; import java.util.List; import javax.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Query; 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.Func; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.dnc.convert.DncFactoryFileConvert; import com.qianwen.smartman.modules.dnc.entity.DncFactoryFile; import com.qianwen.smartman.modules.dnc.service.IDncFactoryFileService; import com.qianwen.smartman.modules.dnc.vo.DncFactoryFileVO; import com.qianwen.smartman.modules.dnc.vo.FactoryFileVO; import com.qianwen.smartman.modules.dnc.vo.FileHistoryVO; import com.qianwen.smartman.modules.dnc.vo.FileVersionSwitchVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "工厂文件管理", tags = {"工厂文件管理"}) @ApiResource({"blade-dnc/dnc-factory-file"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/controller/DncFactoryFileController.class */ public class DncFactoryFileController extends BladeController { private IDncFactoryFileService dncFactoryFileService; public DncFactoryFileController(final IDncFactoryFileService dncFactoryFileService) { this.dncFactoryFileService = dncFactoryFileService; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "工厂文件详情", notes = "传入dncFactoryFile") public R detail(@PathVariable String id) { DncFactoryFile dncFactoryFile = (DncFactoryFile) this.dncFactoryFileService.getById(id); return R.data(DncFactoryFileConvert.INSTANCE.convert(dncFactoryFile)); } @ApiOperationSupport(order = 2) @PostResource({"/verifyFile"}) @ApiOperation(value = "验证文件是否重复", notes = "验证文件") @PreAuth public R verifyFileName(@Valid @RequestBody FactoryFileVO factoryFileVO) { return R.data(this.dncFactoryFileService.verifyFileName(factoryFileVO.getFileName(), factoryFileVO.getObjectKey())); } @ApiOperationSupport(order = 3) @GetResource({"/page"}) @ApiOperation(value = "工厂文件分页", notes = "关键词查询:文件名称、文件后缀") @PreAuth public R> page(@RequestParam(required = false) String keywords, Query query) { IPage page = this.dncFactoryFileService.listPages(keywords, query); return R.data(page); } @ApiOperationSupport(order = 4) @PostResource({"/insert"}) @ApiOperation(value = "blade_dnc_factory_file新增", notes = "传入dncFactoryFileVO") @PreAuth public R insert(@Valid @RequestBody DncFactoryFileVO dncFactoryFileVO) { return R.data(this.dncFactoryFileService.addFactoryFile(dncFactoryFileVO)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PutResource({"/update"}) @ApiOperation(value = "工厂文件修改", notes = "传入dncFactoryFileVO") public R update(@Valid @RequestBody DncFactoryFileVO dncFactoryFileVO) { DncFactoryFile dncFactoryFile = DncFactoryFileConvert.INSTANCE.convert(dncFactoryFileVO); this.dncFactoryFileService.updateById(dncFactoryFile); return R.data(DncFactoryFileConvert.INSTANCE.convert(dncFactoryFile)); } @ApiOperationSupport(order = 6) @DeleteResource({"/remove"}) @ApiOperation(value = "工厂文件删除", notes = "传入ids") public R remove(@ApiParam(value = "主键", required = true) @RequestBody List ids) { if (ids.isEmpty()) { return R.status(false); } List delIds = Func.toLongList(ids); List list = this.dncFactoryFileService.list(Wrappers.lambdaQuery().in(DncFactoryFile::getId, delIds)); /* List list = this.dncFactoryFileService.list((Wrapper) Wrappers.lambdaQuery().in((v0) -> { return v0.getId(); }, delIds));*/ if (Func.isNotEmpty(list)) { list.forEach(file -> { this.dncFactoryFileService.writeFileLog(file); }); } return R.status(this.dncFactoryFileService.removeByIds(delIds)); } @ApiOperationSupport(order = 7) @PostResource({"/switch-file"}) @ApiOperation(value = "切换工厂文件版本", notes = "切换工厂当前文件版本") public R switchFile(@RequestBody FileVersionSwitchVO fileVersionSwitchVO) { return R.data(this.dncFactoryFileService.switchVersion(fileVersionSwitchVO)); } @ApiOperationSupport(order = 8) @GetResource({"/{fileId}/fileHistoryList"}) @ApiOperation(value = "工厂文件版本历史列表", notes = "文件id") public R> getFileHistory(@PathVariable @ApiParam("工厂文件id") String fileId) { return R.data(this.dncFactoryFileService.getFactoryFileHistory(fileId)); } }