package com.qianwen.smartman.modules.dnc.controller;
|
|
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 java.util.Set;
|
import java.util.stream.Collectors;
|
import javax.validation.Valid;
|
import com.qianwen.smartman.common.cache.RegionCache;
|
import com.qianwen.core.boot.ctrl.BladeController;
|
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.stereotype.ApiResource;
|
import com.qianwen.core.secure.annotation.PreAuth;
|
import com.qianwen.core.tool.api.R;
|
import com.qianwen.core.tool.api.ResultCode;
|
import com.qianwen.smartman.modules.dnc.convert.DncArtFileConvert;
|
import com.qianwen.smartman.modules.dnc.entity.DncArtFile;
|
import com.qianwen.smartman.modules.dnc.service.IDncArtFileService;
|
import com.qianwen.smartman.modules.dnc.vo.BatchArchiveArtBagFilesVO;
|
import com.qianwen.smartman.modules.dnc.vo.DncArtFileAddVO;
|
import com.qianwen.smartman.modules.dnc.vo.DncArtFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.DuplicateValidationFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.sync.SyncArtBagVO;
|
import com.qianwen.smartman.modules.dnc.vo.sync.SyncArtCatalogVO;
|
import org.springframework.validation.annotation.Validated;
|
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;
|
|
@Api(value = "工艺包文件管理", tags = {"工艺包文件管理"})
|
@RestController
|
@ApiResource({"blade-dnc/dnc-art-file"})
|
@Validated
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/controller/DncArtFileController.class */
|
public class DncArtFileController extends BladeController {
|
private final IDncArtFileService dncArtFileService;
|
|
public DncArtFileController(final IDncArtFileService dncArtFileService) {
|
this.dncArtFileService = dncArtFileService;
|
}
|
|
@ApiOperationSupport(order = 1)
|
@GetResource({"/get/{id}"})
|
@ApiOperation(value = "工艺包文件详情", notes = "传入dncArtFile")
|
public R<DncArtFileVO> detail(@PathVariable String id) {
|
DncArtFile dncArtFile = (DncArtFile) this.dncArtFileService.getById(id);
|
return R.data(DncArtFileConvert.INSTANCE.convert(dncArtFile));
|
}
|
|
@ApiOperationSupport(order = 2)
|
@GetResource({"/list"})
|
@ApiOperation(value = "工艺包文件列表", notes = "传入工艺包id")
|
@PreAuth
|
public R<List<DncArtFileVO>> list(@RequestParam("artBagId") String artBagId) {
|
return R.data(this.dncArtFileService.artFileList(artBagId));
|
}
|
|
@ApiOperationSupport(order = 3)
|
@PostResource({"/insert"})
|
@ApiOperation(value = "工艺包文件新增", notes = "传入dncArtFileAddVO")
|
@PreAuth
|
public R<List<DncArtFileAddVO>> insert(@Valid @RequestBody List<DncArtFileAddVO> dncArtFileAdds) {
|
return R.data(this.dncArtFileService.addArtFile(dncArtFileAdds));
|
}
|
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "工艺包文件删除", notes = "传入ids")
|
@PreAuth
|
@DeleteResource({"/remove"})
|
public R remove(@ApiParam(value = "主键", required = true) @RequestBody List<String> ids) {
|
if (ids.isEmpty()) {
|
return R.status(false);
|
}
|
return R.status(this.dncArtFileService.batchRemoveFile(ids));
|
}
|
|
@ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL)
|
@PostResource({"/duplicate-validation-file"})
|
@ApiOperation(value = "验证工艺包文件是否存在", notes = "传入DuplicateValidationFileVO")
|
@PreAuth
|
public R<Boolean> duplicateValidationArtFile(@Valid @RequestBody DuplicateValidationFileVO validationFileVO) {
|
return R.data(Boolean.valueOf(this.dncArtFileService.duplicateValidationFile(validationFileVO)));
|
}
|
|
@ApiOperationSupport(order = 6)
|
@PostResource({"/batch-insert"})
|
@ApiOperation(value = "多个工位文件归档多个工艺包文件", notes = "传入bagFilesVO")
|
public R<BatchArchiveArtBagFilesVO> batchInsert(@Valid @RequestBody BatchArchiveArtBagFilesVO bagFilesVO) {
|
return R.data(this.dncArtFileService.batchArchiveArtBagFile(bagFilesVO));
|
}
|
|
@ApiOperationSupport(order = 7)
|
@PostResource({"/sync"})
|
@ApiOperation(value = "外部系统同步工艺包文件", notes = "传入syncArtCatalogVO")
|
public R<Boolean> syncArtCatalog(@Valid @RequestBody SyncArtCatalogVO syncArtCatalogVO) {
|
if (existDuplicateFileInArtBag(syncArtCatalogVO)) {
|
return R.fail(ResultCode.MSG_NOT_READABLE, "非法数据");
|
}
|
return R.data(this.dncArtFileService.syncFile(syncArtCatalogVO));
|
}
|
|
private boolean existDuplicateFileInArtBag(SyncArtCatalogVO syncArtCatalogVO) {
|
List<SyncArtBagVO> artBags = syncArtCatalogVO.getArtBag();
|
return artBags.stream().anyMatch(item -> {
|
Set<String> fileNames = (Set) item.getFileList().stream().map(x -> {
|
return x.getFileName();
|
}).collect(Collectors.toSet());
|
boolean existDuplicateFile = item.getFileList().size() > fileNames.size();
|
return existDuplicateFile;
|
});
|
}
|
}
|