9064866a2c0c2988cba1d321d7af088d2647a4bc..4301ffcfa7d715d7341cb77ba29dee24366fb2a3
2025-07-07 yangys
dnc导出补充字段
4301ff 对比 | 目录
2025-07-07 yangys
bangding 流程
58879e 对比 | 目录
已修改11个文件
已添加3个文件
477 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileHandleExcelVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/MdmProgramImportController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgram.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java 185 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/MdmProgramImportVO.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileHandleController.java
@@ -62,9 +62,11 @@
        List<MachineBackFileHandleExcelVO> list = new ArrayList<>();
        pages.getRecords().forEach(vo ->{
            MachineBackFileHandleExcelVO excelVO    = new MachineBackFileHandleExcelVO();
            BeanUtil.copy(vo, excelVO);
            MachineBackFileHandleExcelVO excelVO = new MachineBackFileHandleExcelVO();
            BeanUtil.copyProperties(vo, excelVO);
            excelVO.setCuredStatus(vo.getIsCured()==0?"固化":"未固化");
            list.add(excelVO);
        });
        ExcelUtil.export(response, "机床回传程序" + DateUtil.time(), "机床回传程序表", list, MachineBackFileHandleExcelVO.class);
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java
@@ -14,6 +14,12 @@
    IPage<MachineBackFileVO> pageQuery(IPage<MachineBackFile> page, @Param("query")MachineBackFileQueryVO queryVO);
    /**
     * æœºåºŠå›žä¼ æ–‡ä»¶åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param query
     * @return
     */
    IPage<MachineBackFileVO> handlePageQuery(IPage<MachineBackFile> page, MachineBackFileHandleQueryVO query);
    //pageMachine
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml
@@ -5,7 +5,7 @@
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="org.springblade.mdm.machineback.entity.MachineBackFile">
        <id column="id" property="id"/>
        <result column="filename" property="filename"/>
        <result column="name" property="name"/>
        <result column="status" property="status"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
@@ -31,7 +31,7 @@
    <!--机床回传程序处理分页-->
    <select id="handlePageQuery" resultType="org.springblade.mdm.machineback.vo.MachineBackFileVO">
        select f.id,p.name program_name,p.is_cured,f.create_time,m.code machine_code, m.name machine_name,f.create_time arrived_time
        select f.id,p.name name,p.code,p.is_cured,f.create_time,m.code machine_code, m.name machine_name,f.create_time arrived_time
        from mdm_machine_back_file f join mdm_machine m on f.machine_code=m.code
        left join mdm_nc_program p on f.program_id=p.id
        <where>
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileHandleExcelVO.java
@@ -19,7 +19,9 @@
public class MachineBackFileHandleExcelVO {
    @ExcelProperty("程序编号")
    private String programName;
    private String code;
    @ExcelProperty("文件名称")
    private String name;
    @ColumnWidth(20)
    @ExcelProperty("回传机床")
@@ -27,7 +29,7 @@
    @ExcelProperty("固化状态")
    private String curedStatus;
    @DateTimeFormat("yyyy-MM-dd HHmmss")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty("文件到达时间")
    private Date arrivedTime;
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java
@@ -15,10 +15,10 @@
    private String name;
    @Schema(description = "机床编号/回传机床")
    private String machineCode;
    @Schema(description = "程序名称/编号")
    private String programName;
    @Schema(description = "程序编号")
    private String code;
    @Schema(description = "固化状态")
    private Integer isCured;
    private Integer isCured=0;
    @Schema(description = "文件到达时间")
    private Date arrivedTime;
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/MdmProgramImportController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package org.springblade.mdm.program.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.mdm.program.service.MdmProgramImportService;
import org.springblade.mdm.program.service.NcProgramExchangeService;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springblade.mdm.program.vo.MdmProgramImportVO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * mdm导入接口,工控网功能
 *
 * @author yangys
 */
@NonDS
@RestController
@RequestMapping("/program/mdmimport/")
@AllArgsConstructor
@Tag(name = "DNC导入", description = "DNC导入接口")
@Slf4j
public class MdmProgramImportController {
    //private final DncSendBackService dncSendBackService;
    private final MdmProgramImportService mdmProgramImportService;
    /**
     * ä¸Šä¼ DNC回传文件
     *
     * @param file    dnc程序打包文件
     */
    @PostMapping("upload")
    @ApiOperationSupport(order = 1)
    @Operation(summary = "MDM程序导入", description = "工控网mdm程序导入")
    public R<List<MdmProgramImportVO>> upload(@RequestParam MultipartFile file) {
        try {
            return R.data(mdmProgramImportService.mdmImportUpload(file));
        }catch (Exception e){
            log.error("导入错误",e);
            return R.fail(e.getMessage());
        }
    }
    /*
    @PostMapping("accept")
    @ApiOperationSupport(order = 2)
    @Operation(summary = "MDM程序入库", description = "涉密网程序确认入库")
    public R<Void> accept(@RequestParam String ids) {
        try {
            mdmProgramImportService.mdmFileAccept(ids);
        }catch (Exception e){
            log.error("入库错误",e);
            return R.fail(e.getMessage());
        }
        return R.success();
    }*/
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
@@ -51,7 +51,7 @@
    public R<Boolean> upload(NcProgramUploadVO uploadVO) {
        //@Parameter(description="文件") @RequestPart("file") MultipartFile file, @Parameter(description="所属节点ID")@RequestParam Long nodeId,
        //                             @Parameter(description="文件分类,使用字典(node_file_type)") @RequestParam String category
        ncProgramService.uploadProgramFile(uploadVO);
        ncProgramService.uploadProgramFileNew(uploadVO);
        return R.<Boolean>status(true);
    }
@@ -69,9 +69,19 @@
    @GetMapping("/content")
    @Operation(summary = "获取文件内容", description = "仅限文本格式的内容,二进制文件将返回空串")
    public R<String> fileContent(Long id) {
    public R<String> fileContent(@Parameter(description = "程序文件id") Long id) {
        try {
            return R.data(ncProgramService.getFileContent(id));
        }catch(Exception e) {
            log.error("删除文件失败",e);
            return R.fail(e.getMessage());
        }
    }
    @GetMapping("/content-by-nodeid")
    @Operation(summary = "根据节点获取文件内容", description = "仅限文本格式的内容,二进制文件将返回空串")
    public R<String> fileContentByNodeId(@Parameter(description = "节点id") Long nodeId) {
        try {
            return R.data(ncProgramService.getFileContentByNodeId(nodeId));
        }catch(Exception e) {
            log.error("删除文件失败",e);
            return R.fail(e.getMessage());
@@ -111,4 +121,10 @@
        return R.data(approveRecordService.listByNcProgramId(ncProgramId));
    }
    @PostMapping("/send")
    @Operation(summary = "程序下发", description = "工控网数控程序下发(发送到机床配置的下发目录)")
    public R<List<NcProgramVO>> send(@Parameter(description="所属节点ID")@RequestParam Long id) {
        return null;//R.data(ncProcessProgRefService.listByProcess(processInstanceId));
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgram.java
@@ -25,7 +25,10 @@
     * æ‰€å±žèŠ‚ç‚¹id,必须未“程序包名"的节点
     */
    private long ncNodeId;
    /**
     * åŒåç»‘定节点id
     */
    private Long bindNcNodeId;
    /**
     * æ–‡ä»¶åœ°å€
     */
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
@@ -11,7 +11,7 @@
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
    <select id="exportDncPageQuery" resultType="org.springblade.mdm.program.vo.NcProgramExportDncPageVO">
        select a.id,a.nc_program_id,p.name,p.nc_node_id,a.create_time,p.process_name from mdm_nc_program_approved a inner join mdm_nc_program p on a.nc_program_id=p.id
        select a.id,a.nc_program_id,p.name,p.nc_node_id,p.part_no,p.part_no_edition,p.process_name,a.create_time from mdm_nc_program_approved a inner join mdm_nc_program p on a.nc_program_id=p.id
        where a.is_deleted=0
        <where>
            <if test="query.name!=null and query.name!=''">
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,185 @@
package org.springblade.mdm.program.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
import org.apache.commons.compress.utils.SeekableInMemoryByteChannel;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.IoUtil;
import org.springblade.mdm.flow.service.CureFlowService;
import org.springblade.mdm.program.entity.NcProgram;
import org.springblade.mdm.program.entity.NcProgramExchange;
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springblade.mdm.program.vo.MdmProgramImportVO;
import org.springblade.mdm.utils.CustomBinaryReader;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.util.*;
/**
 * MDM程序导入(工控网功能)
 *
 * @author yangys
 */
@Slf4j
@Service
@AllArgsConstructor
public class MdmProgramImportService extends BizServiceImpl<NcProgramExchangeMapper, NcProgramExchange> {
    private final CureFlowService cureFlowService;
    private final NcProgramService ncProgramService;
    /**
     * MDM导入文件上传
     * @param file MDM涉密网导出文件
     * @return
     */
    public List<MdmProgramImportVO> mdmImportUpload(MultipartFile file) {
        List<MdmProgramImportVO> list;
        try {
            //String fileName = file.getOriginalFilename();
            //InputStream zipFileInputStream = FileExchangeUtil.convertFileToZip(file.getInputStream());
            InputStream zipFileInputStream = file.getInputStream();//test
            byte[] bytes = FileUtil.copyToByteArray(zipFileInputStream);
            list = parseMdmZipFromByteArray(bytes);
        } catch (IOException e) {
            log.error("上传dnc回传文件失败",e);
            list = Collections.emptyList();
        }
        return list;
    }
    InputStream convertFileToZip(InputStream inputStream) throws IOException {
        File tempFile = createTempFile();
        FileOutputStream fos = new FileOutputStream(tempFile);
        CustomBinaryReader.read(inputStream,fos);
        FileInputStream dInstream = new FileInputStream(tempFile);
        return dInstream;
    }
    /**
     * åˆ›å»ºä¸€ä¸ªä¸´æ—¶æ–‡ä»¶
     * @return
     * @throws IOException
     */
    File createTempFile() throws IOException {
        Path tempDir = Paths.get(System.getProperty("java.io.tmpdir"));
        // åœ¨ä¸´æ—¶ç›®å½•中创建文件
        String tfilename = "t"+System.currentTimeMillis();
        Path tempFile = Files.createTempFile(tempDir, tfilename, ".tmp");
        System.out.println("创建的临时文件: " + tempFile);
        return tempFile.toFile();
    }
    public static List<MdmProgramImportVO> parseMdmZipFromByteArray(byte[] zipData) throws IOException {
        List<MdmProgramImportVO> list = new ArrayList<>();
        Map<String,String> fileMd5Map = new HashMap<>();
        Map<String,MdmProgramImportVO> fileDataMap = new HashMap<>();
        try (SeekableInMemoryByteChannel channel = new SeekableInMemoryByteChannel(zipData);
             ZipFile zipFile = new ZipFile(channel)) {
            ZipArchiveEntry entry;
            Enumeration<ZipArchiveEntry> entries = zipFile.getEntries();
            while (entries.hasMoreElements()) {
                entry = entries.nextElement();
                String entryName = entry.getName();
                if (!entry.isDirectory()) {
                    //直接解析程序的json文件
                    if(entryName.equals(NcProgramExportDNCService.PROGRAM_JSON_FILE)){
                        try (InputStream inputStream = zipFile.getInputStream(entry)) {
                            String jsonStr = IoUtil.readToString(inputStream);
                            JSONArray jsonArray = JSONArray.parseArray(jsonStr);
                            for(int i=0;i<jsonArray.size();i++){
                                JSONObject jsonObject = jsonArray.getJSONObject(i);
                                MdmProgramImportVO d = new MdmProgramImportVO();
                                d.setName(jsonObject.getString("name"));
                                d.setId(jsonObject.getLong("id"));
                                d.setCode(jsonObject.getString("code"));
                                d.setDescription(jsonObject.getString("description"));
                                d.setCategory(jsonObject.getString("category"));
                                d.setBindNcNodeId(jsonObject.getLong("bindNcNodeId"));
                                d.setIsLastEdition(jsonObject.getInteger("isLastEdition"));
                                d.setIsLocked(jsonObject.getInteger("isLocked"));
                                d.setIsTest(jsonObject.getInteger("isTest"));
                                d.setMachineCode(jsonObject.getString("machineCode"));
                                d.setNcNodeId(jsonObject.getLong("ncNodeId"));
                                d.setPartNo(jsonObject.getString("partNo"));
                                d.setProcessEdition(jsonObject.getString("processEdition"));
                                fileDataMap.put(d.getName(),d);
                                list.add(d);
                            }
                        }
                    }else{
                        try (InputStream inputStream = zipFile.getInputStream(entry)) {
                            fileMd5Map.put(entryName,DigestUtils.md5Hex(inputStream));//获取文件MD5
                        }
                    }
                }
            }
        }
        //设置md5值
        fileDataMap.forEach((k,v)->{
            if(fileMd5Map.containsKey(k)){
                v.setMd5(fileMd5Map.get(k));
            }
        });
        return list;
    }
    /**
     * å…¥åº“mdm涉密网文件
     * @param ids id列表逗号分隔
     * @return
     */
    public void mdmFileAccept(String ids) {
        /*
        List<Long> idList = Func.toLongList(ids);
        List<NcProgram> progList = ncProgramService.listByIds(idList);
        NcProgramExchange exchange;
        //NcProgram program;
        //NcNode programNode;
        for(NcProgram prog:progList){
            exchange = new NcProgramExchange();
            exchange.setName(prog.getName());
            exchange.setExchangeType(2);//回传
            exchange.setNcProgramId(prog.getId());
            this.save(exchange);
        }
    //直接入库,无流程
        */
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -127,6 +127,7 @@
            recObj.put("name",program.getName());
            recObj.put("partNo",program.getPartNo());
            recObj.put("ncNodeId",program.getNcNodeId());
            recObj.put("bindNcNodeId",program.getBindNcNodeId());
            recObj.put("url",program.getUrl());
            recObj.put("isCured",program.getIsCured());
            recObj.put("isLocked",program.getIsLocked());
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
@@ -25,6 +25,7 @@
 */
package org.springblade.mdm.program.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -93,7 +94,6 @@
     */
    public void uploadProgramFile(NcProgramUploadVO uploadVO) {
        MultipartFile file = uploadVO.getFile();
        BladeFile bfile = ossTemplate.putFile(uploadVO.getFile());
        String link = bfile.getLink();
@@ -119,6 +119,49 @@
        this.save(prog);
    }
    /**
     * ä¸Šä¼ ç¨‹åºæ–‡ä»¶åˆ°æŒ‡å®šèŠ‚ç‚¹
     * @param uploadVO ä¸Šä¼ æ–‡ä»¶è¡¨å•数据
     */
    public void uploadProgramFileNew(NcProgramUploadVO uploadVO) {
        MultipartFile file = uploadVO.getFile();
        BladeFile bfile = ossTemplate.putFile(uploadVO.getFile());
        String link = bfile.getLink();
        //保存profame
        NcProgram prog = new NcProgram();
        prog.setCode(generageCode());
        prog.setName(file.getOriginalFilename());
        prog.setNcNodeId(uploadVO.getNodeId());
        prog.setOssName(bfile.getName());
        prog.setPartNo(uploadVO.getPartNo());
        prog.setProcessEdition(uploadVO.getProcessEdition());
        prog.setIsLastEdition(1);
        prog.setMachineCode(uploadVO.getMachineCode());
        boolean isTextFile = false;
        try {
            isTextFile = FileContentUtil.isTextFile(file.getInputStream());
        } catch (IOException e) {
            log.warn("判断是否文本文件异常",e);
        }
        prog.setIsTextFile(isTextFile);
        prog.setUrl(link);
        prog.setCategory(uploadVO.getCategory());
        NcNode node = new NcNode();
        node.setNodeType("70");//文件节点
        node.setName(prog.getName());
        node.setMachineCode(uploadVO.getMachineCode());
        node.setParentId(uploadVO.getNodeId());
        node.setPartNo(uploadVO.getPartNo());
        node.setProcessName(uploadVO.getProcessName());
        nodeService.save(node);
        prog.setBindNcNodeId(node.getId());
        this.save(prog);
    }
    String generageCode(){
        ProgramSeq program = new ProgramSeq();
        seqMapper.insert(program);
@@ -128,17 +171,45 @@
    }
    /**
     * åˆ é™¤ä¸€ä¸ªç¨‹åº
     * @param id
     * @param id ç¨‹åºid
     */
    public String getFileContent(Long id) {
        String result  ="";
        NcProgram prog = this.getById(id);
        String fileName = prog.getOssName();
        try (InputStream inputStream = ossTemplate.statFileStream(fileName)) {
            result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
        } catch (IOException e) {
            throw new RuntimeException(e);
        if(prog.getIsTextFile()!=null && prog.getIsTextFile()){
            String fileName = prog.getOssName();
            try (InputStream inputStream = ossTemplate.statFileStream(fileName)) {
                result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }else{
            result = "非文本格式文件";
        }
        return result;
    }
    /**
     * èŽ·å–æ–‡ä»¶å†…é¥¿å“¦é‚£ä¸ª
     * @param ncNodeId èŠ‚ç‚¹id
     */
    public String getFileContentByNodeId(Long ncNodeId) {
        String result  ="";
        NcNode node = this.nodeService.getById(ncNodeId);
        LambdaQueryWrapper<NcProgram> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(NcProgram::getBindNcNodeId, ncNodeId);
        wrapper.eq(NcProgram::getIsLastEdition,1);
        NcProgram prog = this.getOne(wrapper);
        if(prog.getIsTextFile()!=null && prog.getIsTextFile()){
            String fileName = prog.getOssName();
            try (InputStream inputStream = ossTemplate.statFileStream(fileName)) {
                result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }else{
            result = "非文本格式文件";
        }
        return result;
    }
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/MdmProgramImportVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package org.springblade.mdm.program.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.List;
/**
 * åœ¨å·¥æŽ§ç½‘导入MDM程序
 */
@Setter
@Getter
@Schema(description = "MDM导入数据")
public class MdmProgramImportVO {
    @Schema(description = "文件数据库编号(数控程序的id)")
    private Long id;
    @Schema(description = "程序编号")
    private String code;
    @Schema(description = "程序名称")
    private String name;
    private long ncNodeId;
    @Schema(description = "同名绑定节点id")
    private Long bindNcNodeId;
    @Schema(description = "文件地址")
    private String url;
    @Schema(description = "文件类型")
    private String category;
    @Schema(description = "是否为文本类型")
    private Boolean isTextFile;
    /**
     * å·¥åºï¼Œå¦‚“精铣”
     */
    //private String processName;
    /**
     * å¤‡æ³¨
     */
    //private String remark;
    @Schema(description = "设备(机床)编码")
    private String machineCode;
    @Schema(description = "图号")
    private String partNo;
    /**
     * æè¿°
     */
    @Schema(description = "描述")
    private String description;
    @Schema(description = "是否固化")
    private Integer isCured;
    @Schema(description = "工序版次")
    private String processEdition;
    @Schema(description = "是否最新版次,1:最新版次;0:历史版次")
    private Integer isLastEdition = 1;
    @Schema(description = "是否锁定")
    private Integer isLocked = 0;
    @Schema(description = "是否测试程序")
    private Integer isTest = 0;
    private String md5;
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
@@ -13,5 +13,10 @@
public class NcProgramExportDncPageVO extends BaseVO {
    @Schema(description = "程序名称")
    private String name;
    @Schema(description = "图号")
    private String partNo;
    @Schema(description = "图号版次")
    private String partNoEdition;
    @Schema(description = "工序名称")
    private String processName;
}