yangys
2025-06-11 dc0fea5a5f163e6bfcf7cb887b741b13d86728c4
增加dnc导入
已修改3个文件
已添加3个文件
233 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/DncSendBackController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DncSendBackService.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/DncSendBackData.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -33,7 +33,7 @@
     * æ–°å¢ž
     */
    @PostMapping("/start")
    @Operation(summary = "启动派工流程", description = "启动派工流程")
    @Operation(summary = "任务计划(派工流程)", description = "启动派工流程")
    public R<Boolean> save(@RequestBody TaskAssignVO startVO) {
        dispatcher.start(startVO);
        return R.<Boolean>status(true);
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -1,5 +1,6 @@
package org.springblade.mdm.flow.excution;
import io.swagger.v3.oas.annotations.media.Schema;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.IdentityService;
import org.flowable.engine.runtime.ProcessInstance;
@@ -40,6 +41,9 @@
        vars.put("craftEdition",startVO.getCraftEdition());
        vars.put("planStartTime",startVO.getPlanStartTime());
        vars.put("drawingNo",startVO.getDrawingNo());
        vars.put("drawingNoEdition",startVO.getDrawingNoEdition());
        vars.put("planLockDays",startVO.getPlanLockDays());
        //vars.put("producePlanId",startVO.getCraftEdition());
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
@@ -6,8 +6,12 @@
import java.time.LocalDateTime;
@Data
@Schema(description = "任务派工")
@Schema(description = "任务计划")
public class TaskAssignVO {
    @Schema(description = "图号")
    private String drawingNo;
    @Schema(description = "图号版次")
    private String drawingNoEdition;
    @Schema(description = "工序号")
    private String processNo;
    @Schema(description = "工序名称")
@@ -25,6 +29,9 @@
    @Schema(description = "设备型号")
    private String machineMode;
    @Schema(description = "计划锁定时间(天)")
    private Integer planLockDays;
    @Schema(description = "计划开工时间")
    private LocalDateTime planStartTime;
    @Schema(description = "主制计划表ID")
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/DncSendBackController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
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.DncSendBackService;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
 * æµç¨‹ç®¡ç†æŽ¥å£
 *
 * @author Chill
 */
@NonDS
@RestController
@RequestMapping("/program")
@AllArgsConstructor
@Tag(name = "DNC回传程序接口", description = "DNC回传程序接口")
@Slf4j
public class DncSendBackController {
    private final DncSendBackService dncSendBackService;
    /**
     * dnc回传文件导入
     *
     * @param file æµç¨‹æ–‡ä»¶
     */
    /*
    @PostMapping("dnc-sendback-upload")
    @ApiOperationSupport(order = 4)
    @Operation(summary = "dnc回传文件导入", description = "dnc回传文件导入")
    public R dncSendBackUpload(@RequestParam MultipartFile file) {
        boolean temp = Objects.requireNonNull(file.getOriginalFilename()).endsWith("pkg");
        temp = true;//临时放行
        return R.data(Kv.create().set("name", file.getOriginalFilename()).set("success", temp));
    }
    */
    /**
     * ä¸Šä¼ DNC回传文件
     *
     * @param files    æµç¨‹æ–‡ä»¶
     * @param category ç±»åž‹
     */
    @PostMapping("dnc-sendback-upload")
    @ApiOperationSupport(order = 1)
    @Operation(summary = "上传DNC回传文件", description = "传入文件")
    public R<List<DncSendBackData>> dncSendBackUpload(@RequestParam MultipartFile file,
                                                      @RequestParam String category,
                                                      @RequestParam(required = false, defaultValue = "") String tenantIds) {
        return R.data(dncSendBackService.dncSendBackUpload(file));
    }
    @PostMapping("dnc-sendback-accept")
    @ApiOperationSupport(order = 2)
    @Operation(summary = "DNC回传数据入库")
    public R<Void> dncSendBackAccept(@RequestParam String ids) {
        try {
            dncSendBackService.dncFileAccept(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/service/DncSendBackService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
 * not liable for any claims arising from secondary or illegal development.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.mdm.program.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.*;
import org.springblade.core.tool.utils.FileUtil;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
 * å·¥ä½œæµæœåŠ¡å®žçŽ°ç±»
 *
 * @author Chill
 */
@Slf4j
@Service
@AllArgsConstructor
public class DncSendBackService  {
    private static final String XML_NAME = "xml";
    private static final Integer INT_1024 = 1024;
    private final ObjectMapper objectMapper;
    private final RepositoryService repositoryService;
    private final RuntimeService runtimeService;
    private final HistoryService historyService;
    private final TaskService taskService;
    private final ProcessEngine processEngine;
    public List<DncSendBackData> dncSendBackUpload(MultipartFile file) {
        List<DncSendBackData> list = new ArrayList<>();
            try {
                String fileName = file.getOriginalFilename();
                InputStream fileInputStream = file.getInputStream();
                byte[] bytes = FileUtil.copyToByteArray(fileInputStream);
                //TODO è§£æžä¸ºåˆ—表文件
                DncSendBackData dt = new DncSendBackData();
                dt.setId(1L);
                dt.setProgramName("test.nc");
                dt.setProgramNo("001");
                list.add(dt);
            } catch (IOException e) {
                log.error("上传dnc文件失败",e);
            }
        return list;
    }
    /**
     * å…¥åº“回传文件
     * @param ids
     * @return
     */
    public void dncFileAccept(String ids) {
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/DncSendBackData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package org.springblade.mdm.program.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
@Setter
@Getter
@Schema(description = "DNC回传数据")
public class DncSendBackData {
    @Schema(description = "文件数据库编号")
    private Long id;
    @Schema(description = "程序编号")
    private String programNo;
    @Schema(description = "程序名称")
    private String programName;
    @Schema(description = "到达时间")
    private LocalDateTime fileBackTime;
    @Schema(description = "MD5值")
    private String md5;
}