yangys
2024-04-04 ed4a5236bab800094be4a8378f5098eebe3de6ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
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));
    }
}