package com.qianwen.smartman.modules.dnc.controller;
|
|
import cn.hutool.core.io.IoUtil;
|
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.io.IOException;
|
import java.io.InputStream;
|
import java.util.List;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.smartman.common.constant.DncConstant;
|
import com.qianwen.core.mp.support.Query;
|
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.smartman.modules.dnc.dto.serial.SerialInfoDTO;
|
import com.qianwen.smartman.modules.dnc.dto.serial.SerialSetting;
|
import com.qianwen.smartman.modules.dnc.service.ITransferDirectoryFileService;
|
import com.qianwen.smartman.modules.dnc.vo.DncReadFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.FileHistoryVO;
|
import com.qianwen.smartman.modules.dnc.vo.FileVersionSwitchVO;
|
import com.qianwen.smartman.modules.dnc.vo.MachineToolBatchWriteFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.ReceiveScheduleVO;
|
import com.qianwen.smartman.modules.dnc.vo.SendScheduleVO;
|
import com.qianwen.smartman.modules.dnc.vo.SerialSendVO;
|
import com.qianwen.smartman.modules.dnc.vo.TransferDirectoryFilePageVO;
|
import com.qianwen.smartman.modules.dnc.vo.TransferDirectoryFileVo;
|
import com.qianwen.smartman.modules.dnc.vo.UploadFileOssVO;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationDetailVO;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationDirectoryFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationFileSearchVO;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationFileVO;
|
import com.qianwen.smartman.modules.dnc.vo.WorkstationFromDocumentsVO;
|
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;
|
|
@ApiResource({"blade-dnc/transfer-directory"})
|
@Api(value = "传输目录文件增删接口", tags = {"传输目录文件增删controller"})
|
@RestController
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/dnc/controller/TransferDirectoryFileController.class */
|
public class TransferDirectoryFileController {
|
private static final Logger log = LoggerFactory.getLogger(TransferDirectoryFileController.class);
|
private final ITransferDirectoryFileService transferDirectoryFileService;
|
|
public TransferDirectoryFileController(final ITransferDirectoryFileService transferDirectoryFileService) {
|
this.transferDirectoryFileService = transferDirectoryFileService;
|
}
|
|
@PostResource({"/file"})
|
@ApiOperation(value = "工位目录文件保存", notes = "工位目录文件保存")
|
public R<List<WorkstationDirectoryFileVO>> save(@RequestBody WorkstationFileVO workstationFileVo) {
|
return R.data(this.transferDirectoryFileService.saveBatchFile(workstationFileVo));
|
}
|
|
@PreAuth
|
@PostResource({"/duplicate-file"})
|
@ApiOperation(value = "验证文件是否重复", notes = "验证文件是否重复 true 是 false 否")
|
public R<Boolean> existDuplicateFile(@RequestBody WorkstationFileVO workstationFileVo) {
|
return R.data(this.transferDirectoryFileService.existDuplicateFileBatch(workstationFileVo));
|
}
|
|
@PostResource({"/fileList"})
|
@ApiOperation(value = "获取工位目录下的文件列表", notes = DncConstant.WORK_STATION_FILE)
|
public R<List<TransferDirectoryFileVo>> getWorkstationFile(@RequestBody WorkstationDetailVO workstationDetailVO) {
|
return R.data(this.transferDirectoryFileService.fileList(workstationDetailVO));
|
}
|
|
@PreAuth
|
@GetResource({"/delete-file/{workstationFileId}"})
|
@ApiOperation(value = "删除工位文件", notes = "工位文件id")
|
public R<Boolean> deleteWorkstationFile(@PathVariable @ApiParam("工位id") String workstationFileId) {
|
return R.data(this.transferDirectoryFileService.deleteWorkstationDirectoryFile(workstationFileId));
|
}
|
|
@PreAuth
|
@PostResource({"/workstation-from-documents"})
|
@ApiOperation(value = "工位文件批量上传到我的文档", notes = "上传文件:fileType 加工程序 1 工艺文件 2")
|
public R<List<UploadFileOssVO>> workstationFromDocuments(@RequestBody WorkstationFromDocumentsVO workstationFromDocumentsVO) {
|
List<UploadFileOssVO> uploadFileOssList = this.transferDirectoryFileService.workstationFromFile(workstationFromDocumentsVO.getFileType(), workstationFromDocumentsVO.getList());
|
return R.data(uploadFileOssList);
|
}
|
|
@PreAuth
|
@GetResource({"/{fileId}/fileHistoryList"})
|
@ApiOperation(value = "工位文件版本历史列表", notes = "文件id")
|
public R<List<FileHistoryVO>> getFileHistory(@PathVariable @ApiParam("工位文件id") String fileId) {
|
return R.data(this.transferDirectoryFileService.getFileCoverHistory(fileId));
|
}
|
|
@PreAuth
|
@PostResource({"/switch-file"})
|
@ApiOperation(value = "切换文件版本", notes = "切换当前文件版本")
|
public R<Boolean> switchFile(@RequestBody FileVersionSwitchVO fileVersionSwitchVO) {
|
return R.data(this.transferDirectoryFileService.fileVersionSwitching(fileVersionSwitchVO));
|
}
|
|
@PreAuth
|
@PostResource({"/page"})
|
@ApiOperation(value = "工位文件(分页)", notes = "根据工位workstationId获取文件列表")
|
public IPage<TransferDirectoryFilePageVO> filePages(@RequestBody WorkstationFileSearchVO searchDTO, Query query) {
|
return this.transferDirectoryFileService.getFilePages(searchDTO, query);
|
}
|
|
@PostResource({"/online-write-file"})
|
@ApiOperation(value = "文件在线写入", notes = "文件写入")
|
public R<MachineToolBatchWriteFileVO> onlineWrite(@Valid @RequestBody MachineToolBatchWriteFileVO writeFileVO) {
|
return R.data(this.transferDirectoryFileService.batchOnlineWriteFile(writeFileVO));
|
}
|
|
@PostResource({"/online-read-file"})
|
@ApiOperation(value = "在线读文件", notes = "读取机床文件")
|
public void onlineRead(@Valid @RequestBody DncReadFileVO dncReadFileVO, HttpServletResponse response) {
|
try {
|
InputStream objectStream = this.transferDirectoryFileService.readDncOnlineFile(dncReadFileVO);
|
response.setContentType("application/octet-stream; charset=UTF-8");
|
response.addHeader("Expires", "0");
|
response.addHeader("Pragma", "no-cache");
|
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
IoUtil.copy(objectStream, response.getOutputStream());
|
if (objectStream != null) {
|
if (0 != 0) {
|
objectStream.close();
|
} else {
|
objectStream.close();
|
}
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@GetResource({"/get-online-read-file"})
|
@ApiOperation(value = "hmi在线读文件", notes = "hmi读取机床文件")
|
public void getOnlineRead(@RequestParam("workstationId") String workstationId, @RequestParam("fileName") String fileName, HttpServletResponse response) {
|
DncReadFileVO dncReadFileVO = new DncReadFileVO();
|
dncReadFileVO.setWorkstationId(workstationId);
|
dncReadFileVO.setFileName(fileName);
|
log.error("------------------------------workstationId: {}", workstationId);
|
log.error("------------------------------fileName: {}", fileName);
|
try {
|
InputStream objectStream = this.transferDirectoryFileService.readDncOnlineFile(dncReadFileVO);
|
response.setContentType("application/octet-stream; charset=UTF-8");
|
response.addHeader("Expires", "0");
|
response.addHeader("Pragma", "no-cache");
|
response.addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
IoUtil.copy(objectStream, response.getOutputStream());
|
if (objectStream != null) {
|
if (0 != 0) {
|
objectStream.close();
|
} else {
|
objectStream.close();
|
}
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@PostResource({"/online-del-file"})
|
@ApiOperation(value = "删除机床文件", notes = "删除文件")
|
public R<String> onlineDel(@Valid @RequestBody DncReadFileVO dncReadFileVO) {
|
return R.data(this.transferDirectoryFileService.delOnlineFile(dncReadFileVO));
|
}
|
|
@PostResource({"/online-file-list"})
|
@ApiOperation(value = "机床文件列表", notes = "文件列表")
|
public R<List<TransferDirectoryFileVo>> getOnlineFileList(@Valid @RequestBody DncReadFileVO dncReadFileVO) {
|
return R.data(this.transferDirectoryFileService.getOnlineFileList(dncReadFileVO));
|
}
|
|
@ApiOperationSupport(order = 14)
|
@GetResource({"/serial-list"})
|
@ApiOperation("获取串口列表")
|
public R<List<SerialInfoDTO>> allSerialList() {
|
return R.data(this.transferDirectoryFileService.allSerialList());
|
}
|
|
@ApiOperationSupport(order = 15)
|
@PostResource({"/download-send"})
|
@ApiOperation("在线下载文件 串口发送")
|
public R<Integer> serialDownloadSend(@RequestBody SerialSendVO vo) {
|
return R.data(this.transferDirectoryFileService.serialDownloadSend(vo));
|
}
|
|
@ApiOperationSupport(order = 16)
|
@GetResource({"/send-schedule"})
|
@ApiOperation("获取串口发送进度")
|
public R<SendScheduleVO> sendSchedule() {
|
return R.data(this.transferDirectoryFileService.sendSchedule());
|
}
|
|
@ApiOperationSupport(order = 17)
|
@PostResource({"/serial-receive"})
|
@ApiOperation("串口接收")
|
public R<Boolean> serialReceive(@RequestBody SerialSetting serialSetting) {
|
return R.data(Boolean.valueOf(this.transferDirectoryFileService.serialReceive(serialSetting)));
|
}
|
|
@ApiOperationSupport(order = 18)
|
@GetResource({"/receive-schedule"})
|
@ApiOperation("接收进度")
|
public R<ReceiveScheduleVO> receiveSchedule(@RequestParam("encodingType") String encodingType) {
|
return R.data(this.transferDirectoryFileService.receiveSchedule(encodingType));
|
}
|
|
@ApiOperationSupport(order = 19)
|
@GetResource({"/transport-cancel"})
|
@ApiOperation("关闭串口传输")
|
public R<Boolean> transportCancel() {
|
return R.data(Boolean.valueOf(this.transferDirectoryFileService.transportCancel()));
|
}
|
|
@ApiOperationSupport(order = 20)
|
@PostResource({"/serial-save-file"})
|
@ApiOperation("获取文件内容保存之后 生成传输文件信息")
|
public R<List<WorkstationDirectoryFileVO>> serialSaveFile(@RequestBody WorkstationDirectoryFileVO vo) {
|
return R.data(this.transferDirectoryFileService.serialSaveFile(vo));
|
}
|
}
|