package org.springblade.mdm.machinefile.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.AllArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springblade.core.excel.util.ExcelUtil;
|
import org.springblade.core.log.exception.ServiceException;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.BeanUtil;
|
import org.springblade.core.tool.utils.DateUtil;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.core.tool.utils.UrlUtil;
|
import org.springblade.mdm.commons.service.OssFileCommonService;
|
import org.springblade.mdm.machinefile.entity.FileSendRecord;
|
import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
|
import org.springblade.mdm.machinefile.service.MachineFileService;
|
import org.springblade.mdm.machinefile.service.MachineAcceptedFileService;
|
import org.springblade.mdm.machinefile.service.NcProgramExportInnerService;
|
import org.springblade.mdm.machinefile.vo.MachineBackFileHandleExcelVO;
|
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
|
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Slf4j
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/machinefile/filehandle")
|
@Tag(name = "机床回传程序处理", description = "机床回传程序处理")
|
public class MachineAcceptedFileHandleController {
|
private final OssFileCommonService ossFileCommonService;
|
private final MachineAcceptedFileService acceptedFileService;
|
private final NcProgramExportInnerService ncProgramExportInnerService;
|
/**
|
* 分页
|
*/
|
@Operation(summary = "机床回传文件处理分页查询", description = "名称或编码,已接受的文件列表")
|
@GetMapping("/page")
|
public R<IPage<MachineAcceptedFileVO>> page(MachineAcceptedFileHandleQueryVO query) {
|
IPage<MachineAcceptedFileVO> pages = acceptedFileService.handlePageQuery(query);
|
return R.data(pages);
|
}
|
|
@GetMapping("/download-by-id")
|
@Operation(summary = "下发文件记录列表", description = "下发文件记录列表")
|
public void downloadByRecordId(Long id,HttpServletResponse response) throws IOException {
|
MachineAcceptedFile acceptedFile = acceptedFileService.getById(id);
|
ossFileCommonService.download(acceptedFile.getOssName(),acceptedFile.getName(),response);
|
}
|
|
@GetMapping("export-to-inner")
|
@ApiOperationSupport(order = 13)
|
@Operation(summary = "导出到涉密网", description = "导出到涉密网")
|
public void exportToInner(@Parameter(description = "机床接收文件id数组") String ids, HttpServletResponse response) {
|
|
if(Func.isBlank(ids)) {
|
throw new ServiceException("未选择文件导出");
|
}
|
try {
|
String prefix = UrlUtil.encode(AuthUtil.getNickName()+"-工控网导出");
|
String filename = prefix+"-"+ DateUtil.format(DateUtil.now(), "yyyyMMddHHmm")+".zip";
|
|
response.setHeader("Content-Disposition", "attachment; filename="+filename);
|
response.setContentType("application/octet-stream");
|
ncProgramExportInnerService.exportToInner(Func.toLongList(ids),response.getOutputStream());
|
} catch (IOException e) {
|
log.error("工控网导出回传文件异常", e);
|
throw new RuntimeException(e);
|
}
|
|
}
|
|
@Operation(summary = "回传程序处理导出Excel", description = "回传程序处理导出Excel")
|
@GetMapping("/export-excel")
|
public void exportExcel(MachineAcceptedFileHandleQueryVO query, HttpServletResponse response) {
|
query.setCurrent(1);
|
query.setSize(Integer.MAX_VALUE);
|
|
//IPage<MachineAcceptedFileVO> pages = machineFileService.handlePageQuery(query);
|
IPage<MachineAcceptedFileVO> pages = acceptedFileService.handlePageQuery(query);
|
List<MachineBackFileHandleExcelVO> list = new ArrayList<>();
|
pages.getRecords().forEach(vo ->{
|
MachineBackFileHandleExcelVO excelVO = new MachineBackFileHandleExcelVO();
|
BeanUtil.copyProperties(vo, excelVO);
|
excelVO.setProgramStatusName(parseProgramStatusName(vo.getProgramStatus()));
|
|
list.add(excelVO);
|
});
|
ExcelUtil.export(response, "机床回传程序" + DateUtil.time(), "机床回传程序表", list, MachineBackFileHandleExcelVO.class);
|
}
|
|
String parseProgramStatusName(Integer programStatus){
|
if(programStatus == null){
|
return "未知";
|
}
|
String txt;
|
|
switch(programStatus){
|
case 1:
|
txt = "试切";
|
break;
|
case 2:
|
txt = "固化";
|
break;
|
case 3:
|
txt = "临时更改单";
|
break;
|
default:
|
txt = "未知";
|
}
|
return txt;
|
}
|
}
|