From 31ecdb8c700529a59dd762f0c47f0ed9c66d5092 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 25 九月 2025 20:40:07 +0800
Subject: [PATCH] 工控网任务
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java | 5
blade-service/blade-mdm/src/test/java/org/springblade/mdm/program/service/MdmProgramImportServiceTest.java | 31 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineCollectFileController.java | 7
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java | 73 +++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java | 12
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/vo/MachineBackTaskQueryVO.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java | 61 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/service/MachineBackTaskService.java | 17 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineAcceptedFile.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineFileController.java | 14 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java | 32 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java | 16 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java | 25 -
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java | 37 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/events/ExportedToInnerEvent.java | 23 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java | 30 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java | 32 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java | 16 +
/dev/null | 97 -------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml | 6
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/listeners/ExportToInnerListener.java | 85 ++++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/mapper/MachineBackTaskMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.java | 4
blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java | 24 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java | 59 ++++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java | 9
blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/entity/MachineBackTask.java | 20 +
30 files changed, 564 insertions(+), 185 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
index 7598af1..9f5845b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/controller/OssFileController.java
@@ -33,8 +33,6 @@
public class OssFileController {
@Autowired
- private NcProgramApprovedService ncProgramApprovedService;
- @Autowired
private OssFileCommonService ossFileCommonService;
@Autowired
private ParamService paramService;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
index db03bef..a5c0091 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
@@ -128,15 +128,23 @@
ProgramNodeVO recNode = new ProgramNodeVO();
recNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_REC);
- recNode.setName("REC");
+ recNode.setName(MachineFile.DIR_TYPE_REC);
recNode.setMachineCode(nodeMachine.getMachineCode());
recNode.setDirType(MachineFile.DIR_TYPE_REC);
recNode.setNodeType("dir");
dirNodes.add(recNode);
+ ProgramNodeVO progNode = new ProgramNodeVO();
+ progNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_PROGRAM);
+ progNode.setName(MachineFile.DIR_TYPE_PROGRAM);
+ progNode.setMachineCode(nodeMachine.getMachineCode());
+ progNode.setDirType(MachineFile.DIR_TYPE_PROGRAM);
+ progNode.setNodeType("dir");
+ dirNodes.add(progNode);
+
ProgramNodeVO tempNode = new ProgramNodeVO();
tempNode.setId(nodeMachine.getId()+"_"+MachineFile.DIR_TYPE_TEMP);
- tempNode.setName("TEMP");
+ tempNode.setName(MachineFile.DIR_TYPE_TEMP);
tempNode.setMachineCode(nodeMachine.getMachineCode());
tempNode.setDirType(MachineFile.DIR_TYPE_TEMP);
tempNode.setNodeType("dir");
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/entity/MachineBackTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/entity/MachineBackTask.java
index 3372414..a798939 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/entity/MachineBackTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/entity/MachineBackTask.java
@@ -1,5 +1,6 @@
package org.springblade.mdm.gkw.task.entity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
@@ -16,13 +17,21 @@
@TableName("mdm_machine_back_task")
public class MachineBackTask extends BizEntity {
/**
+ * 鐘舵�侊細鏈畬鎴�
+ */
+ public static int STATUS_PENDING = 1;
+ /**
+ * 鐘舵�侊細宸插畬鎴�
+ */
+ public static int STATUS_FINISHED = 2;
+ /**
* 浠诲姟绫诲瀷锛氬伐鑹虹紪鍒朵换鍔�
*/
- private static final long TASK_TYPE_PROGRAM = 1;
+ public static final int TASK_TYPE_PROGRAM = 1;
/**
* 浠诲姟绫诲瀷锛氱幇鍦虹紪鍒朵换鍔�
*/
- private static final long TASK_TYPE_ON_MACHINE = 2;
+ public static final int TASK_TYPE_ON_MACHINE = 2;
/**
* 鏂囦欢鍚�
*/
@@ -37,9 +46,14 @@
*/
private String deviation;
/**
+ * 绋嬪簭鎬绘鏁�/鐜板満缂栧埗鐨�=0
+ */
+ private int segCount;
+ /**
* 浠诲姟绫诲瀷
*/
- private String taskType;
+ @TableField("task_type")
+ private int taskType;
private Date finishTime;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/mapper/MachineBackTaskMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/mapper/MachineBackTaskMapper.xml
index be0fd66..5868e59 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/mapper/MachineBackTaskMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/mapper/MachineBackTaskMapper.xml
@@ -6,7 +6,7 @@
<!--鏂囦欢璁板綍鏌ヨ-->
<select id="pageQuery" resultType="org.springblade.mdm.gkw.task.vo.MachineBackTaskVO">
- select t.id,t.program_name,t.machine_code,t.task_type,t.finish_time,t.create_time,t.status,t.update_time,u.name create_user_name
+ select t.id,t.program_name,t.machine_code,t.task_type,t.deviation,t.seg_count,t.finish_time,t.create_time,t.status,t.update_time,u.name create_user_name
from mdm_machine_back_task t left join blade_user u on t.create_user=u.id
<where>
t.is_deleted=0
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/service/MachineBackTaskService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/service/MachineBackTaskService.java
index 2108f2a..1192b33 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/service/MachineBackTaskService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/service/MachineBackTaskService.java
@@ -6,6 +6,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.mp.support.Condition;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
import org.springblade.mdm.gkw.task.entity.MachineBackTask;
import org.springblade.mdm.gkw.task.mapper.MachineBackTaskMapper;
import org.springblade.mdm.gkw.task.vo.MachineBackTaskQueryVO;
@@ -13,8 +14,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Optional;
+
/**
- * 鏈哄簥鏂囦欢
+ * 鏈哄簥鍥炰紶浠诲姟
*
* @author yangys
*/
@@ -29,4 +32,16 @@
}
+ /**
+ * 鏍规嵁绋嬪簭鍚嶇粨鏋勮幏鍙栦换鍔℃暟鎹�
+ * @param vo 绋嬪簭鍚峍O
+ * @param deviation 涓存椂鏇存敼鍗曞彿
+ * @return 鍥炰紶浠诲姟鑲綋/or null
+ */
+ public MachineBackTask queryMatchTaskByProgramName(ProgramNameVO vo,String deviation) {
+ Optional<MachineBackTask> optTask = lambdaQuery().eq(MachineBackTask::getProgramName,vo.logicProgramName()).eq(vo.getLgPart()!=null,MachineBackTask::getDeviation,deviation)
+ .eq(MachineBackTask::getStatus,MachineBackTask.STATUS_PENDING).last("limit 1").oneOpt();
+
+ return optTask.orElse(null);
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/vo/MachineBackTaskQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/vo/MachineBackTaskQueryVO.java
index f368d2c..1b72209 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/vo/MachineBackTaskQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/task/vo/MachineBackTaskQueryVO.java
@@ -16,6 +16,8 @@
private String programName;
@Schema(description = "鏈哄簥缂栫爜")
private String machineCode;
+ @Schema(description = "浠诲姟鐘舵��")
+ private Integer status;
@Schema(description = "鍒涘缓鏃堕棿寮�濮�")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate createTimeBegin;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
index a8c74b5..b6a0dcf 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineAcceptedFileHandleController.java
@@ -25,6 +25,7 @@
import org.springblade.mdm.machinefile.vo.MachineBackFileHandleExcelVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -99,25 +100,20 @@
ExcelUtil.export(response, "鏈哄簥鍥炰紶绋嬪簭" + DateUtil.time(), "鏈哄簥鍥炰紶绋嬪簭琛�", list, MachineBackFileHandleExcelVO.class);
}
- String parseProgramStatusName(Integer programStatus){
+ /**
+ * 杞崲鐘舵�佷负鏄剧ず鏂囨湰
+ * @param programStatus 绋嬪簭鐘舵�佺紪鐮�
+ * @return 鐘舵�佸悕绉�
+ */
+ String parseProgramStatusName(String 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;
+ return switch (programStatus) {
+ case AnnotationUtil.SQ -> "璇曞垏";
+ case AnnotationUtil.GH -> "鍥哄寲";
+ case AnnotationUtil.LG -> "涓存椂鏇存敼鍗�";
+ default -> "鏈煡";
+ };
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineCollectFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineCollectFileController.java
index b9935e3..038a3cf 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineCollectFileController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineCollectFileController.java
@@ -43,7 +43,7 @@
service.accept(ids);
return R.success();
}catch(Exception e) {
- log.error("鎺ュ彈鏂囦欢寮傚父",e);
+ log.error("鎺ュ彈閫変腑鏂囦欢寮傚父",e);
return R.fail(e.getMessage());
}
}
@@ -55,7 +55,7 @@
service.acceptAll();
return R.success();
}catch(Exception e) {
- log.error("鎺ュ彈鏂囦欢寮傚父",e);
+ log.error("鎺ュ彈鍏ㄩ儴鏂囦欢寮傚父",e);
return R.fail(e.getMessage());
}
}
@@ -81,14 +81,13 @@
@Operation(summary = "鏈哄簥鏂囦欢TEMP鐩綍鍒嗛〉鏌ヨ", description = "鍑荤┛鏂囦欢鍒嗛〉鏌ヨ锛屾煡璇㈢洰褰曚腑鐨勬枃浠讹紝杩樹笉绠楁椂鏈哄簥鍥炰紶鏂囦欢")
@GetMapping("/file-page-for-acceept")
public R<IPage<MachineFile>> filePageForAccept(MachineBackFileQueryVO query) {
- List<Long> deptIds = new ArrayList<>();
if("workshop".equals(query.getNodeType()) || "seg".equals(query.getNodeType())) {
//鑺傜偣涓鸿溅闂淬�佸伐娈�
MdmDept dept = mdmDeptService.getById(query.getNodeId());
String idStr = dept.getAncestors()+","+dept.getId();
List<MdmDept> depts = mdmDeptService.lambdaQuery().likeRight(MdmDept::getParentId, query.getNodeId()).list();
- deptIds.addAll(depts.stream().map(MdmDept::getId).toList());
+ List<Long> deptIds = new ArrayList<>(depts.stream().map(MdmDept::getId).toList());
deptIds.add(dept.getId());
//+鏈溅闂�
//Func.toStrList(",",idStr)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineFileController.java
index 4265b29..8884570 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineFileController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/controller/MachineFileController.java
@@ -92,6 +92,18 @@
return R.success();
}
+ @PostMapping("/change-file-name")
+ @Operation(summary = "淇濆瓨鏈哄簥鏂囦欢", description = "淇濆瓨鏈哄簥鏂囦欢鍒扮鐩�")
+ public R<Void> changeFileName(Long id,String name) {
+ try {
+ machineFileService.changeName(id,name);
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ return R.fail(e.getMessage());
+ }
+ return R.success();
+ }
+
@GetMapping("/file-his-page")
@Operation(summary = "淇敼鐣欏巻鍙插垪琛�", description = "淇敼鐣欏巻鍙插垪琛�")
public R<IPage<MachineFileChangeHisVO>> changeHisPage(MachineFileChangeHisQueryVO query) {
@@ -100,7 +112,7 @@
@GetMapping("/his-compare")
@Operation(summary = "瀵规瘮鍘嗗彶鏂囦欢鍐呭", description = "瀵规瘮鍘嗗彶鏂囦欢鍐呭")
- public R<CompareDataVO> machineFileSave(Long id) {
+ public R<CompareDataVO> historyCompare(Long id) {
try {
CompareDataVO vo =machineFileService.queryHisContentForCompare(id);
return R.data(vo);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
index dd5d532..631af18 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/FileSendRecord.java
@@ -40,6 +40,11 @@
* 绋嬪簭鐘舵��
*/
private String programStatus;
+
+ /**
+ * 涓存椂鏇存敼鍗曞彿
+ */
+ //private String deviation;
/**
* 鐢熸垚鏂囦欢澶у皬鐨勬樉绀烘枃鏈�
* @return 鏄剧ず鏂囨湰
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineAcceptedFile.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineAcceptedFile.java
index 9cc4a2e..edc8a6e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineAcceptedFile.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineAcceptedFile.java
@@ -34,4 +34,8 @@
*/
private String ossName;
+ /**
+ * 鍥炰紶浠诲姟id
+ */
+ private Long backTaskId;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
index bb88141..3f6f28f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/entity/MachineFile.java
@@ -62,6 +62,10 @@
*/
public static final String DIR_TYPE_TEMP = "TEMP";
/**
+ * PROGRAM鐩綍(铏氭嫙锛屾棤瀹為檯鏂囦欢澶�)
+ */
+ public static final String DIR_TYPE_PROGRAM = "PROGRAM";
+ /**
* 鏂囦欢寮傚父绫诲瀷锛氭甯�
*/
public static final int EXCEPTION_OK = 0;
@@ -92,16 +96,12 @@
* 涓嶅尮閰嶄笅鍙戣褰曚复鏃舵洿鏀瑰崟閮ㄥ垎
*/
public static final int EXCEPTION_NOT_MATCH_SEND_LG = 6;
+
/**
* 鏂囦欢鍚�
*/
private String name;
-
- /**
- * 鑺傜偣绫诲瀷锛氬瓧鍏�
- */
- //private String nodeType;
/**
* 鎵�灞炴満搴�
@@ -129,20 +129,32 @@
private Long fileSize;
/**
+ * 绋嬪簭鐘舵��
+ */
+ private String programStatus;
+
+ /**
+ * 涓存椂鏇存敼鍗曞彿,SQ/GH/LG 鍏朵粬鍊奸兘鏄湭鐭�
+ */
+ private String deviation;
+ /**
+ * 涓存椂鏇存敼鍗曞彿搴忓彿,P鍚庨潰鐨勯儴鍒�
+ */
+ private String deviationSerial;
+ /**
* 纭鏃堕棿锛屾帴鍙楁垨鑰呮嫆缁濈殑鏃堕棿
*/
private Date determineTime;
- /**
- * 绋嬪簭鐘舵�侊紙1璇曞垏锛�2鍥哄寲锛�3鍋忕锛�4鏈煡锛�
- */
- private Integer programStatus;
/**
* REC鐩綍鏂囦欢寮傚父绫诲瀷锛�0/null:姝e父; 1闈炴枃鏈牸寮忥紱2:鏂囦欢鍚嶆牸寮忎笉鍚堟硶锛�3:鏂囦欢纭け(娈垫暟涓嶅)锛�4:鏂囦欢娈垫暟涓庝笅鍙戣褰曚笉鍖归厤锛堣溅搴�/鐜板満缂栧埗闄ゅ)
*/
private Integer exceptionType;
-
+ /**
+ * oss鏂囦欢鍚嶏紝鐢ㄤ簬program鏂囦欢澶�
+ */
+ private String ossName;
/**
* 鐢熸垚鏂囦欢澶у皬鐨勬樉绀烘枃鏈�
* @return 鏄剧ず鏂囨湰
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/events/ExportedToInnerEvent.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/events/ExportedToInnerEvent.java
new file mode 100644
index 0000000..c49db60
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/events/ExportedToInnerEvent.java
@@ -0,0 +1,23 @@
+package org.springblade.mdm.machinefile.events;
+
+import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
+import org.springframework.context.ApplicationEvent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ExportedToInnerEvent extends ApplicationEvent {
+ /**
+ * 瀵煎嚭鐨勬帴鍙楁枃浠秈d
+ */
+ private List<MachineAcceptedFile> acceptedFiles;
+ public ExportedToInnerEvent(Object source,List<MachineAcceptedFile> acceptedFileList) {
+ super(source);
+ this.acceptedFiles = acceptedFileList;
+ }
+
+ public List<MachineAcceptedFile> getAcceptedFiles() {
+ return acceptedFiles;
+ }
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/listeners/ExportToInnerListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/listeners/ExportToInnerListener.java
new file mode 100644
index 0000000..66e333b
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/listeners/ExportToInnerListener.java
@@ -0,0 +1,85 @@
+package org.springblade.mdm.machinefile.listeners;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.flow.entity.MesSync;
+import org.springblade.mdm.flow.entity.TaskDispatch;
+import org.springblade.mdm.flow.excution.events.CureFinishedEvent;
+import org.springblade.mdm.flow.service.MesSyncService;
+import org.springblade.mdm.flow.service.TaskDispatchService;
+import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
+import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.events.ExportedToInnerEvent;
+import org.springblade.mdm.machinefile.service.MachineAcceptedFileService;
+import org.springblade.mdm.machinefile.service.MachineFileService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * 鍥哄寲娴佺▼鎵ц瀹屾垚鍚庯紝闇�瑕佸鐞嗙殑浜嬩欢锛氬叆搴搈es鍚屾琛�
+ */
+@Slf4j
+@Component
+public class ExportToInnerListener {
+ @Autowired
+ private MachineFileService machineFileService;
+ @Autowired
+ private MachineAcceptedFileService machineAcceptedService;
+
+ @EventListener(value = ExportedToInnerEvent.class)
+ public void hello(ExportedToInnerEvent event) {
+ //宸茬粡瀵煎嚭鍒版秹瀵嗙綉浜嬩欢锛屾鏌ユ槸鍚︽湁瀵煎嚭鐨勭幇鍦虹紪绋嬫暟鎹�傚鏋滄湁鍒欏姞鍏rogram鏂囦欢澶�
+ if(Func.isEmpty(event.getAcceptedFiles())){
+ return;
+ }
+ List<MachineFile> onMachineFiles = machineAcceptedService.exportedProgramOnMachineFiles(event.getAcceptedFiles());
+
+ //淇濆瓨鍏rogram
+ saveOrUpdateToProgramFolder(onMachineFiles,event.getAcceptedFiles());
+ }
+
+ /**
+ * 鏇存柊鎴栫垎绮楁枃浠跺埌program鏂囦欢澶�
+ * @param onMachineFiles 鐜板満缂栫▼鏂囦欢鍒楄〃
+ * @param acceptedFiles 瀵煎嚭娑夊瘑缃戠殑鏂囦欢鍒楄〃
+ */
+ void saveOrUpdateToProgramFolder(List<MachineFile> onMachineFiles,List<MachineAcceptedFile> acceptedFiles){
+
+ for(MachineFile machineFile : onMachineFiles){
+ Optional<MachineAcceptedFile> accFileOpt = acceptedFiles.stream().filter(a -> a.getMachineFileId().equals(machineFile.getId())).findFirst();
+ if(accFileOpt.isEmpty()){
+ continue;
+ }
+
+ MachineFile existsFile = machineFileService.getByNameAndMachineInDir(machineFile.getName(),machineFile.getMachineCode(),MachineFile.DIR_TYPE_PROGRAM);
+ if(existsFile != null){
+ BeanUtils.copyProperties(machineFile,existsFile);
+
+ existsFile.setDirType(MachineFile.DIR_TYPE_PROGRAM);
+ existsFile.setOssName(accFileOpt.get().getOssName());
+ existsFile.setStatus(MachineFile.STATUS_NORMAL);
+ existsFile.setOssName(existsFile.getOssName());
+ machineFileService.updateById(existsFile);
+ }else{
+ MachineFile newProgFile = new MachineFile();
+ BeanUtils.copyProperties(machineFile,newProgFile);
+ newProgFile.setDirType(MachineFile.DIR_TYPE_PROGRAM);
+ newProgFile.setStatus(MachineFile.STATUS_NORMAL);
+ newProgFile.setOssName(accFileOpt.get().getOssName());
+ newProgFile.setId(null);
+ machineFileService.save(newProgFile);
+ }
+ }
+
+
+ }
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.java
index dd2c9bf..9727dad 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.java
@@ -3,8 +3,11 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.mapper.BladeMapper;
import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
+import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+
+import java.util.List;
public interface MachineAcceptedFileMapper extends BladeMapper<MachineAcceptedFile> {
@@ -15,4 +18,5 @@
* @return 鍒嗛〉鏁版嵁
*/
IPage<MachineAcceptedFileVO> handlePageQuery(IPage<MachineAcceptedFileVO> page, MachineAcceptedFileHandleQueryVO query);
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
index 04771c6..a0b3a95 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineAcceptedFileMapper.xml
@@ -22,14 +22,14 @@
-->
<!--鏈哄簥鍥炰紶绋嬪簭澶勭悊鍒嗛〉-->
<select id="handlePageQuery" resultType="org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO">
- select f.id,f.name,f.oss_name,f.create_time,m.code machine_code, m.name machine_name,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time
+ select f.id,f.name,f.oss_name,f.create_time,m.code machine_code, m.name machine_name,f.status,f.create_time,mf.program_status,mf.file_create_time,f.export_time,f.create_time
from mdm_machine_accepted_file f
left join mdm_machine_file mf on f.machine_file_id=mf.id
left join mdm_machine m on mf.machine_code=m.code
<where>
- f.status=#{query.status} and f.is_deleted=0
+ f.is_deleted=0
<if test="query.status!=null and query.status!=''">
- and f.status like #{query.status}
+ and f.status=#{query.status}
</if>
<if test="query.name!=null and query.name!=''">
<bind name="fname" value="'%'+query.name+'%'"/>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
index c680a65..9d7b48a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/mapper/MachineFileMapper.xml
@@ -65,7 +65,7 @@
-->
<!--宸ユ帶缃戦椤垫枃浠舵煡璇�-->
<select id="pageQuery" resultType="org.springblade.mdm.machinefile.entity.MachineFile">
- select f.id,f.name,f.machine_code,f.file_create_time, f.file_modify_time,f.md5,f.file_size,f.create_time,f.update_time
+ select f.id,f.name,f.machine_code,f.dir_type,f.file_create_time, f.file_modify_time,f.md5,f.oss_name,f.file_size,f.create_time,f.update_time
from mdm_machine_file f join mdm_machine m on f.machine_code=m.code and m.is_deleted=0
<where>
f.is_deleted=0 and f.status <> 4
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
index bd0865a..08ad5a8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineAcceptedFileService.java
@@ -7,12 +7,22 @@
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
import org.springblade.mdm.machinefile.mapper.MachineAcceptedFileMapper;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileHandleQueryVO;
import org.springblade.mdm.machinefile.vo.MachineBackFileQueryVO;
import org.springblade.mdm.machinefile.vo.MachineAcceptedFileVO;
+import org.springblade.mdm.program.service.programannotation.AnnotationData;
+import org.springblade.mdm.program.service.programannotation.AnnotationProcessor;
+import org.springblade.mdm.program.service.programannotation.AnnotationProcessorHelper;
+import org.springblade.mdm.utils.ProgramFileNameParser;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -20,16 +30,24 @@
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
-@AllArgsConstructor
+
@Service
public class MachineAcceptedFileService extends BizServiceImpl<MachineAcceptedFileMapper, MachineAcceptedFile> {
- private final MachineFileService machineFileService;
- private final OssTemplate ossTemplate;
+ @Autowired
+ private MachineFileService machineFileService;
+ @Autowired
+ private OssTemplate ossTemplate;
+ @Autowired
+ private MachineBackTaskService machineBackTaskService;
+ @Autowired
+ private AnnotationProcessorHelper annotationProcessorHelper;
/**
* 鎺ュ彈
- * @param ids
+ * @param ids 閫夊畾鎺ュ彈鐨刬d锛岄�楀彿鍒嗛殧
*/
@Transactional
public void accept(String ids) throws IOException {
@@ -43,7 +61,7 @@
/**
* 鎷掔粷
- * @param ids
+ * @param ids 閫夊畾鎷掔粷鐨刬d锛岄�楀彿鍒嗛殧
*/
public void reject(String ids) {
List<Long> idList = Func.toLongList(ids);
@@ -72,7 +90,7 @@
/**
* 鎺ユ敹鏂囦欢
* @param machineFileId 鏈哄簥鏂囦欢id
- * @throws IOException
+ * @throws IOException 鏂囦欢鎿嶄綔寮傚父
*/
void acceptFile(Long machineFileId) throws IOException {
MachineFile machineFile = machineFileService.getById(machineFileId);
@@ -88,7 +106,25 @@
BladeFile bfile = ossTemplate.putFile(machineFile.getName(),inputStream);
machineAcceptedFile.setOssName(bfile.getName());
}
+ try(InputStream inputStream = Files.newInputStream(Paths.get(fullPath));){
+ //閮芥暟鎹�
+ //Machine machine = this.machineService.getByCode(record.getMachineCode());
+ //AnnotationProcessor processor = annotationProcessorHelper.getProcessor(machine.getControlSystem());
+ //AnnotationData annotationData = processor.readAnnotationData(inputStream);
+ machineAcceptedFile.setBackTaskId(getMachineBackTaskId(machineAcceptedFile.getName(),machineFile.getDeviation()));
+ }
+
save(machineAcceptedFile);
+ }
+
+ Long getMachineBackTaskId(String filename,String deviation){
+ ProgramNameVO vo = ProgramFileNameParser.parseProgramName(filename);
+ MachineBackTask task = machineBackTaskService.queryMatchTaskByProgramName(vo,deviation);
+ if(task != null){
+ return task.getId();
+ }else{
+ return null;
+ }
}
/**
@@ -101,5 +137,30 @@
return this.getBaseMapper().handlePageQuery(Condition.getPage(query),query);
}
+ /**
+ * 鏍规嵁瀵煎嚭鐨勬帴鍙楁枃浠秈d锛岃幏鍙栧叾涓幇鍦虹紪绋嬬殑MachineFIle
+ * @param acceptedFiles 瀵煎嚭鐨勬帴鍙楁枃浠跺垪琛�
+ * @return machineFile
+ */
+ public List<MachineFile> exportedProgramOnMachineFiles(List<MachineAcceptedFile> acceptedFiles) {
+ List<Long> backTaskIds = acceptedFiles.stream().map(MachineAcceptedFile::getBackTaskId).filter(Objects::nonNull).toList();
+
+ //鐜板満缂栫▼鐨勪换鍔¢泦鍚�
+ //List<MachineBackTask> onMachineTasks1 = machineBackTaskService.lambdaQuery().in(MachineBackTask::getId, backTaskIds).list();
+ List<MachineBackTask> onMachineTasks = machineBackTaskService.lambdaQuery()
+ .eq(MachineBackTask::getTaskType,MachineBackTask.TASK_TYPE_ON_MACHINE)
+ .in(MachineBackTask::getId, backTaskIds).list();
+
+ List<Long> onMachineFileIds = new ArrayList<>();
+ for(MachineAcceptedFile accFile : acceptedFiles){
+ for(MachineBackTask backTask : onMachineTasks){
+ if(backTask.getId().equals(accFile.getBackTaskId())){
+ onMachineFileIds.add(accFile.getMachineFileId());
+ }
+ }
+ }
+
+ return machineFileService.lambdaQuery().in(MachineFile::getId,onMachineFileIds).list();
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
index cd052da..d4877d2 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileScanService.java
@@ -1,18 +1,18 @@
package org.springblade.mdm.machinefile.service;
+import com.alibaba.excel.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.commons.service.ParamService;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
import org.springblade.mdm.machinefile.entity.MachineFile;
import org.springblade.mdm.program.service.ProgramAnnotationService;
-import org.springblade.mdm.program.service.programannotation.AnnotationProcessor;
-import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
-import org.springblade.mdm.program.service.programannotation.MachineAnnotationConfig;
-import org.springblade.mdm.program.service.programannotation.ProcessorHelper;
+import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.mdm.utils.ProgramFileNameParser;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@@ -37,12 +37,11 @@
@Autowired
private MachineService machineService;
@Autowired
- private ParamService paramService;
- @Autowired
private ProgramAnnotationService programAnnotationService;
@Autowired
private MachineAnnotationConfig annoConfig;
-
+ @Autowired
+ private AnnotationProcessorHelper annotationProcessorHelper;
/**
* 鎵弿鎵�鏈夋満搴婄殑閰嶇疆鐩綍
*/
@@ -142,7 +141,7 @@
mf.setName(filePath.toFile().getName());
mf.setDirType(dirType);
mf.setMachineCode(machine.getCode());
- mf.setProgramStatus(readProgramStatus(filePath,machine.getMachineGroupCode(),annotatiionList));
+
BasicFileAttributes attrs = Files.readAttributes(
filePath,
@@ -166,7 +165,16 @@
log.error("璇诲彇鏂囦欢md5澶辫触",e);
throw new ServiceException("璇诲彇鏂囦欢md5澶辫触"+e.getMessage());
}
+ try (InputStream inputStream = Files.newInputStream(filePath)) {
+ AnnotationProcessor annoProcessor = annotationProcessorHelper.getProcessor(machine.getMachineGroupCode());
+ AnnotationData annoData = annoProcessor.readAnnotationData(inputStream);
+ mf.setProgramStatus(annoData.getProgramStatus());
+ ProgramNameVO progVO = ProgramFileNameParser.parseProgramName(mf.getName());
+ if(StringUtils.isNotBlank(progVO.getLgPart())) {
+ mf.setDeviation(annoData.getDeviation());
+ }
+ }
return mf;
}
/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
index f0414b3..b7a0762 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/MachineFileService.java
@@ -30,6 +30,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Optional;
/**
* 鏈哄簥鏂囦欢
@@ -246,4 +247,19 @@
public IPage<MachineFile> exceptionFilePageQuery(MachineFileExceptionQueryVO query) {
return baseMapper.exceptionFilePageQuery(Condition.getPage(query),query);
}
+
+ /**
+ * 淇敼鏂囦欢鍚嶆垚
+ * @param id 鏂囦欢id
+ * @param name 鏂板悕绉�
+ */
+ public void changeName(Long id, String name) {
+
+ }
+
+ public MachineFile getByNameAndMachineInDir(String name, String machineCode, String dirType) {
+ Optional<MachineFile> optFIle = this.lambdaQuery().eq(MachineFile::getName, name).eq(MachineFile::getMachineCode, machineCode)
+ .eq(MachineFile::getDirType, dirType).eq(MachineFile::getStatus, MachineFile.STATUS_NORMAL).oneOpt();
+ return optFIle.orElse(null);
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
index 2d6b432..26e4aac 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/NcProgramExportInnerService.java
@@ -9,10 +9,15 @@
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.oss.OssTemplate;
import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.flow.excution.events.CureFinishedEvent;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
import org.springblade.mdm.machinefile.entity.MachineAcceptedFile;
import org.springblade.mdm.machinefile.entity.MachineFile;
+import org.springblade.mdm.machinefile.events.ExportedToInnerEvent;
import org.springblade.mdm.program.entity.NcProgramExchange;
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
import org.springblade.mdm.program.service.ProgramAnnotationService;
@@ -45,6 +50,8 @@
private final MachineService machineService;
private final AnnotationProcessorHelper annotationProcessorHelper;
private final ProgramAnnotationService programAnnotationService;
+
+ private final MachineBackTaskService machineBackTaskService;
/**
* 瀵煎嚭鍒版秹瀵嗙綉
* @param acceptedFileIds
@@ -54,9 +61,8 @@
@Transactional
public void exportToInner(List<Long> acceptedFileIds, ServletOutputStream os) throws IOException {
+ List<MachineAcceptedFile> acceptedFiles = machineAcceptedService.lambdaQuery().in(MachineAcceptedFile::getId,acceptedFileIds).list();
try (ZipOutputStream zipOut = new ZipOutputStream(os);) {//os
-
- List<MachineAcceptedFile> acceptedFiles = machineAcceptedService.lambdaQuery().in(MachineAcceptedFile::getId,acceptedFileIds).list();
Map<String,List<MachineAcceptedFile>> map = acceptedFiles.stream()
.collect(Collectors.groupingBy(s -> ProgramFileNameParser.parseProgramName(s.getName()).logicProgramName()));
@@ -75,9 +81,31 @@
}
machineAcceptedService.updateBatchById(acceptedFiles);
+
+ //鏇存柊浠诲姟鐘舵��
+ List<Long> backTaskIdList = acceptedFiles.stream().map(MachineAcceptedFile::getBackTaskId).filter(Objects::nonNull).toList();
+ this.finishTask(backTaskIdList);
+
+ SpringUtil.publishEvent(new ExportedToInnerEvent("exportToInner",acceptedFiles));
}
os.close();
+
+
+ }
+
+ void finishTask(List<Long> backTaskIdList){
+ if(backTaskIdList.isEmpty()){
+ return;
+ }
+ List<MachineBackTask> tasks = machineBackTaskService.lambdaQuery().in(MachineBackTask::getId,backTaskIdList).list();
+ for(MachineBackTask backTask : tasks){
+ backTask.setStatus(MachineBackTask.STATUS_FINISHED);
+ backTask.setFinishTime(new Date());
+
+ machineBackTaskService.updateById(backTask);
+ }
+
}
/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
index c955ac7..e5fe6bc 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/service/ReceiveFileCheckService.java
@@ -73,7 +73,6 @@
//闈炴枃鏈�
excepType = MachineFile.EXCEPTION_NOT_TEXT;
}else{
- //Matcher matcher = RegExpConstants.PROGRAM_FILE_PATTERN.matcher(machineFile.getName());
ProgramNameVO progNameVO = ProgramFileNameParser.parseProgramName(machineFile.getName());
boolean filenameValid = progNameVO.isValidFilename();
if(!filenameValid){
@@ -85,19 +84,18 @@
if(matchCount != progNameVO.getSegmentCount()){//鏂囦欢娈垫暟缂哄け
excepType = MachineFile.EXCEPTION_LOST_FILES;
}else{
+ //妫�鏌ユ槸鍚﹀尮閰嶆満搴婂洖浼犱换鍔★紵
+
//妫�鏌ユ槸鍚﹀尮閰嶄笅鍙戣褰曠殑娈垫暟
- //姝h礋3绉掍綔涓烘煡璇㈡椂闂�
- //Date beginTime = new Date(machineFile.getFileCreateTime().getTime()-3000);
- //Date endTime = new Date(machineFile.getFileCreateTime().getTime()+3000);
- String likeStr;
+ String nameLikeStr;
if(StringUtils.isNotBlank(progNameVO.getLgPart())){
- likeStr = prefix +"%P%";
+ nameLikeStr = prefix +"%P%";
}else{
- likeStr = prefix;
+ nameLikeStr = prefix;
}
Optional<FileSendRecord> optFile = fileSendRecordService.lambdaQuery()
.eq(FileSendRecord::getMachineCode,machineFile.getMachineCode())
- .likeRight(FileSendRecord::getName,likeStr).last("limit 1")
+ .likeRight(FileSendRecord::getName,nameLikeStr).last("limit 1")
.orderByDesc(FileSendRecord::getCreateTime).oneOpt();
boolean matchSendRecord;//鏂囦欢鏄惁鏈変笅鍙戣褰�
@@ -118,17 +116,6 @@
if(!matchSendRecord){//濡傛灉鏂囦欢鏈笅鍙戣繃锛屾煡鐪嬫槸鍚︽湁鐜板満缂栫▼璁板綍
byteStream.reset();
-
- /*
- String planStatusLine = AnnotationUtil.removeAnnotation(machine.getControlSystem(),FileContentUtil.readLineAt(byteStream,annoProps.getStatusLineIndex()),programAnnotationService.getAnnotionDictList());
-
- String lgNo;//鏇存敼鍗曞彿
- if(AnnotationUtil.LG.equals(planStatusLine)) {//鏄洿鏀瑰崟
- String lgLine = FileContentUtil.readLineAt(byteStream, annoProps.getDeviationLineIndex());
- lgNo = AnnotationUtil.removeAnnotation(machine.getControlSystem(), lgLine, programAnnotationService.getAnnotionDictList());
- }else{
- lgNo = null;
- }*/
String devSerial = null;
if(StringUtils.isNotBlank(progNameVO.getLgPart())){
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
index 294ee7e..2c698ff 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machinefile/vo/MachineAcceptedFileVO.java
@@ -18,7 +18,7 @@
@Schema(description = "绋嬪簭缂栧彿")
private String code;
@Schema(description = "绋嬪簭鐘舵��")
- private Integer programStatus;
+ private String programStatus;
@Schema(description = "鏂囦欢鍒拌揪鏃堕棿")
private Date fileCreateTime;
@Schema(description = "瀵煎嚭鏃堕棿")
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
index 903ee60..75c8c24 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/MdmProgramImportService.java
@@ -1,6 +1,7 @@
package org.springblade.mdm.program.service;
+import jodd.util.annotation.AnnotationParser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
@@ -18,14 +19,17 @@
import org.springblade.mdm.commons.contants.RegExpConstants;
import org.springblade.mdm.commons.contants.ZipConstants;
import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
import org.springblade.mdm.machinefile.entity.FileSendRecord;
import org.springblade.mdm.machinefile.service.FileSendRecordService;
import org.springblade.mdm.program.entity.NcProgramExchange;
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
-import org.springblade.mdm.program.service.programannotation.AnnotationProperties;
+import org.springblade.mdm.program.service.programannotation.*;
import org.springblade.mdm.program.vo.MdmProgramImportVO;
import org.springblade.mdm.utils.FileContentUtil;
import org.springblade.mdm.utils.ProgramFileNameParser;
+import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@@ -61,6 +65,11 @@
private FileSendRecordService fileSendRecordService;
@Autowired
private OssTemplate ossTemplate;
+ @Autowired
+ private AnnotationProcessorHelper annotationProcessorHelper;
+ @Autowired
+ private MachineBackTaskService machineBackTaskService;
+
private String getFileKey(){
return "mdmgkwimpfile-"+ AuthUtil.getUserId();
}
@@ -369,6 +378,7 @@
Path extractDir = Paths.get(dictStr);
List<MdmProgramImportVO> list = readTempDir(extractDir);
+ List<DictBiz> annoDictList = programAnnotationService.getAnnotionDictList();
String destFileFull;
for(String str : idList){
Optional<MdmProgramImportVO> optVO = list.stream().filter(vo -> vo.getId().equals(str)).findFirst();
@@ -394,10 +404,57 @@
BladeFile bFile = ossTemplate.putFile(record.getName(), inputStream);
record.setOssName(bFile.getName());
}
+
+ try(InputStream inputStream = ossTemplate.statFileStream(record.getOssName())){
+ //璇诲彇绋嬪簭鐘舵��
+ Machine machine = this.machineService.getByCode(record.getMachineCode());
+ AnnotationProcessor processor = annotationProcessorHelper.getProcessor(machine.getControlSystem());
+ AnnotationData annotationData = processor.readAnnotationData(inputStream);
+ /*
+ ProgramNameVO nameVO = ProgramFileNameParser.parseProgramName(record.getName());
+ if(StringUtils.isNotBlank(nameVO.getLgPart())) {
+ record.setDeviation(annotationData.getDeviation());
+ }*/
+ record.setProgramStatus(annotationData.getProgramStatus());
+ }
fileSendRecordService.save(record);
importedRecords.add(record);
}
+ machineBackTaskService.saveBatch(parseMachineBackTask(importedRecords));
+ }
+
+ /**
+ * 鍒涘缓鏈哄簥鍥炰紶浠诲姟
+ * @param importedRecords
+ */
+ List<MachineBackTask> parseMachineBackTask(List<FileSendRecord> importedRecords){
+ List<FileSendRecord> recList = importedRecords.stream().filter(r ->{
+ return AnnotationUtil.SQ.equals(r.getProgramStatus())
+ || AnnotationUtil.LG.equals(r.getProgramStatus());}).toList();
+
+ Map<String,FileSendRecord> map = new HashMap<>();
+ for(FileSendRecord record : recList){
+ ProgramNameVO nameVO = ProgramFileNameParser.parseProgramName(record.getName());
+ String key = record.getMachineCode()+","+nameVO.logicProgramName();
+ map.put(key,record);
+ }
+
+ List<MachineBackTask> backTasks = new ArrayList<>();
+ for(String key : map.keySet()){
+ MachineBackTask task = new MachineBackTask();
+ task.setTaskType(MachineBackTask.TASK_TYPE_PROGRAM);
+
+ FileSendRecord record = map.get(key);
+ task.setMachineCode(record.getMachineCode());
+
+ ProgramNameVO nameVO = ProgramFileNameParser.parseProgramName(record.getName());
+ task.setProgramName(nameVO.logicProgramName());
+ task.setSegCount(nameVO.getSegmentCount());
+ backTasks.add(task);
+ }
+ //鎻愬彇绋嬪簭鍖呭悕锛屾満搴婄紪鐮侀泦鍚�
+ return backTasks;
}
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java
index ffd7826..003f07f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramOnMachineService.java
@@ -10,10 +10,13 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.mdm.flow.vo.ProgramOnMachineExcel;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.gkw.task.service.MachineBackTaskService;
import org.springblade.mdm.program.entity.ProgramOnMachine;
import org.springblade.mdm.program.mapper.ProgramOnMachineMapper;
import org.springblade.mdm.program.vo.ProgramOnMachineRecordQueryVO;
import org.springblade.mdm.program.vo.ProgramOnMachineVO;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -21,14 +24,15 @@
import java.util.*;
/**
- * 鐜板満缂栫▼璁板綍澶勭悊蹇�
+ * 鐜板満缂栫▼璁板綍澶勭悊鏈嶅姟
*
* @author yangys
*/
@Slf4j
@Service
-@AllArgsConstructor
public class ProgramOnMachineService extends BizServiceImpl<ProgramOnMachineMapper, ProgramOnMachine> {
+ @Autowired
+ private MachineBackTaskService machineBackTaskService;
@Transactional(rollbackFor = Exception.class)
public int importData(MultipartFile file) {
@@ -40,21 +44,44 @@
return progMachine;
}).toList();
- batchSaveData(list);
-
+ List<ProgramOnMachine> savedList = batchSaveData(list);
+ machineBackTaskService.saveBatch(parseMachineBackTask(savedList));
return list.size();
}
/**
+ * 灏嗘暟鎹浆鎹负鏈哄簥鍥炰紶浠诲姟
+ * @param list 鐜板満缂栧埗浠诲姟
+ * @return 鍥炰紶浠诲姟鍒楄〃
+ */
+ List<MachineBackTask> parseMachineBackTask(List<ProgramOnMachine> list){
+ List<MachineBackTask> tasks = new ArrayList<>();
+ for(ProgramOnMachine m : list) {
+ MachineBackTask task = new MachineBackTask();
+ task.setProgramName(m.getDrawingNo()+"-"+m.getProcessNo()+"-"+m.getProcessEdition());
+ task.setMachineCode(m.getMachineCode());
+ task.setDeviation(m.getDeviation());
+ task.setTaskType(MachineBackTask.TASK_TYPE_ON_MACHINE);
+ task.setSegCount(0);//鐜板満缂栧埗涓�0
+ tasks.add(task);
+ }
+
+ return tasks;
+ }
+ /**
* 鎵归噺淇濆瓨
* @param list
*/
- void batchSaveData(List<ProgramOnMachine> list) {
+ List<ProgramOnMachine> batchSaveData(List<ProgramOnMachine> list) {
+ List<ProgramOnMachine> savedList = new ArrayList<>();
for (ProgramOnMachine progOnMachine : list) {
if(!existsByProcessInstanceId(progOnMachine.getProcessInstanceId())){
save(progOnMachine);
+ savedList.add(progOnMachine);
}
}
+
+ return savedList;
}
/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
index 7933d98..cab30c0 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AbstractProcessor.java
@@ -186,4 +186,65 @@
}
public abstract String getControlSystem();
+ @Override
+ public AnnotationData readAnnotationData(InputStream inputStream) {
+ AnnotationData data = new AnnotationData();
+
+ int maxLineIndex = maxAnnotationLineIndex();
+ try {
+ int lineCount = maxLineIndex+1;
+ List<String> lines = FileContentUtil.readFirstNLines(inputStream,lineCount);
+ fixLine(lines,lineCount);
+
+ String programNameLine = lines.get(this.getAnnotationProperties().getProgramNameLineIndex());
+ String sendPathLine = lines.get(this.getAnnotationProperties().getSendPathLineIndex());
+ String statusLine = lines.get(this.getAnnotationProperties().getStatusLineIndex());
+ String devLine = lines.get(this.getAnnotationProperties().getDeviationLineIndex());
+
+ List<DictBiz> annoDictList= this.programAnnotationService.getAnnotionDictList();
+ data.setFilename(AnnotationUtil.removeAnnotation(this.getControlSystem(),programNameLine,annoDictList));
+ data.setSendPath(AnnotationUtil.removeAnnotation(this.getControlSystem(),sendPathLine,annoDictList));
+
+ String statusText = AnnotationUtil.removeAnnotation(this.getControlSystem(),statusLine,annoDictList);
+ if(AnnotationUtil.isStatusContent(statusText)){
+ data.setProgramStatus(statusText);
+ }
+
+ data.setDeviation(AnnotationUtil.removeAnnotation(this.getControlSystem(),devLine,annoDictList));
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ return data;
+ }
+
+ /**
+ * 娌℃湁鐨勮濉厖鏈┖涓�
+ * @param lines
+ * @return
+ */
+ void fixLine(List<String> lines,int fixLineCount){
+ int needFix = fixLineCount - lines.size();
+ if(needFix > 0){
+ for(int i = 0 ; i < needFix ; i++){
+ lines.add(StringUtils.EMPTY);
+ }
+ }
+ }
+
+ private int maxAnnotationLineIndex(){
+ int max = this.getAnnotationProperties().getDeviationLineIndex();
+ if(max < this.getAnnotationProperties().getStatusLineIndex()){
+ max = this.getAnnotationProperties().getStatusLineIndex();
+ }
+
+ if(max < this.getAnnotationProperties().getSendPathLineIndex()){
+ max = this.getAnnotationProperties().getSendPathLineIndex();
+ }
+ if(max < this.getAnnotationProperties().getProgramNameLineIndex()){
+ max = this.getAnnotationProperties().getProgramNameLineIndex();
+ }
+ return max;
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
index 8443758..dacceda 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/programannotation/AnnotationProcessor.java
@@ -20,5 +20,12 @@
InputStream putFilenameAnnotation(String programName, InputStream inputStream) throws IOException;
AnnotationProperties getAnnotationProperties();
- //InputStream puttSendPathAnnotation(String programName, InputStream inputStream) throws IOException;
+
+ /**
+ * 浠庤緭鍏ユ祦璇诲彇鍏ㄥannotation鏁版嵁
+ * @param inputStream 杈撳叆娴�
+ * @return 璇诲彇鐨勬暟鎹�
+ */
+ AnnotationData readAnnotationData(InputStream inputStream);
+ //InputStream puttSendPathAnnotation(String programName, InputStream inputStream) throws IOException;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java
deleted file mode 100644
index b8ec344..0000000
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ReceiveDirMoveTask.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.springblade.mdm.task;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springblade.mdm.basesetting.machine.service.MachineService;
-import org.springblade.mdm.basesetting.machine.entity.Machine;
-import org.springblade.mdm.commons.service.ParamService;
-import org.springblade.mdm.machinefile.entity.MachineFile;
-import org.springblade.mdm.machinefile.service.MachineFileService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.time.LocalDateTime;
-import java.util.List;
-
-/**
- * 鏈哄簥鍥炰紶鏂囦欢澶箁ec锛岀洰褰曟枃浠惰秴杩囨満搴婅瀹氱殑鏃堕棿绉诲姩鍒皌emp鏂囦欢澶�
- */
-@Slf4j
-@Component
-@EnableScheduling
-public class ReceiveDirMoveTask {
- @Autowired
- private MachineFileService machineFileService;
- @Autowired
- private MachineService machineService;
- @Autowired
- private ParamService paramService;
- /**
- * 鏂囦欢榛樿淇濆瓨灏忔椂鏁帮紝0涓嶉檺鍒�
- */
- private static final int DEFAULT_HOUR = 0;
-
- //@Scheduled(cron = "${task.cron.machine_rec_move:0 3 * * * ?}")
- /*
- public void execute() {
- String networkType = paramService.getParamValue(ParamService.NETWORK_TYPE,ParamService.NETWORK_TYPE_SHEMI);
-
- if(!ParamService.NETWORK_TYPE_SHEMI.equals(networkType)){
- //闈炴秹瀵嗙綉锛屾墠鎵弿鐩綍鏂囦欢
- moveValidateFiles();
- }
-
- }
-
-
- public void moveValidateFiles() {
- List<Machine> machines = machineService.getEnableMachines();
- LocalDateTime now = LocalDateTime.now();
- for (Machine machine : machines) {
- int remainHours = machine.getReceiveDirExpiryHours() != null ?machine.getReceiveDirExpiryHours():DEFAULT_HOUR;
-
- //LocalDateTime earlyTime = now.minusHours(remainHours);
- List<MachineFile> pendingFiles = this.machineFileService.lambdaQuery()
- .eq(MachineFile::getDirType,MachineFile.DIR_TYPE_REC)
- .eq(MachineFile::getExceptionType,MachineFile.EXCEPTION_OK)
- .eq(MachineFile::getMachineCode,machine.getCode()).list();
-//.lt(MachineFile::getFileCreateTime,earlyTime)
-
- for(MachineFile overTimeFile : pendingFiles){
- try {
- moveFileToTemp(overTimeFile, machine);
- }catch(Exception e){
- log.error("绉诲姩rec鏂囦欢澶辫触:{}",overTimeFile.getName(),e);
- }
- }
-
- }
-
- }
-
- private void moveFileToTemp(MachineFile overTimeFile,Machine machine) throws IOException {
- String srcFilepath = MachineFileService.getBasePath(machine,overTimeFile.getDirType())+ File.separator+overTimeFile.getName();
- Path source = Paths.get(srcFilepath);
- if(!source.toFile().exists()){
- return;
- }
- String targetFilepath = MachineFileService.getBasePath(machine,MachineFile.DIR_TYPE_TEMP)+ File.separator+overTimeFile.getName();
- Path target = Paths.get(targetFilepath);
-
- Path targetDir = target.getParent();
- if (targetDir != null && !Files.exists(targetDir)) {
- Files.createDirectories(targetDir);
- }
-
- // 浣跨敤 REPLACE_EXISTING 閫夐」鏉ヨ鐩栧凡瀛樺湪鐨勬枃浠�
- Files.move(source, target, StandardCopyOption.REPLACE_EXISTING);
- }
- */
-}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
index 93b49a6..b3fa140 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/utils/FileContentUtil.java
@@ -190,4 +190,20 @@
}
return new ByteArrayInputStream(Files.newInputStream(tempFile).readAllBytes());
}
+
+ public static List<String> readFirstNLines(InputStream inputStream, int n) throws IOException {
+ List<String> lines = new ArrayList<>();
+
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
+ String line;
+ int count = 0;
+
+ while ((line = reader.readLine()) != null && count < n) {
+ lines.add(line);
+ count++;
+ }
+ }
+
+ return lines;
+ }
}
diff --git a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/program/service/MdmProgramImportServiceTest.java b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/program/service/MdmProgramImportServiceTest.java
index 67bc545..2528b06 100644
--- a/blade-service/blade-mdm/src/test/java/org/springblade/mdm/program/service/MdmProgramImportServiceTest.java
+++ b/blade-service/blade-mdm/src/test/java/org/springblade/mdm/program/service/MdmProgramImportServiceTest.java
@@ -2,11 +2,16 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.springblade.mdm.gkw.task.entity.MachineBackTask;
+import org.springblade.mdm.machinefile.entity.FileSendRecord;
+import org.springblade.mdm.program.service.programannotation.AnnotationUtil;
import org.springblade.mdm.program.vo.MdmProgramImportVO;
+import org.springframework.beans.BeanUtils;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Arrays;
import java.util.List;
public class MdmProgramImportServiceTest {
@@ -26,4 +31,30 @@
System.out.println(list);
}
+ @Test
+ public void testParseMachineBackTask() {
+ FileSendRecord record = new FileSendRecord();
+ record.setMachineCode("123");
+ record.setName("T-A-B-1-1.txt");
+ record.setProgramStatus(AnnotationUtil.SQ);
+
+ MdmProgramImportService service= new MdmProgramImportService();
+
+ List<MachineBackTask> tasks = service.parseMachineBackTask(List.of(record));
+
+ Assertions.assertEquals(1, tasks.size());
+ MachineBackTask task = tasks.get(0);
+ Assertions.assertEquals("123", task.getMachineCode());
+ Assertions.assertEquals("T-A-B",task.getProgramName());
+ Assertions.assertEquals(1,task.getSegCount());
+ FileSendRecord record2 = new FileSendRecord();
+ BeanUtils.copyProperties(task, record2);
+
+ //鐩稿悓鏁版嵁鐨勬枃浠讹紝涔熸槸涓�涓猼ask
+ tasks = service.parseMachineBackTask(List.of(record,record2));
+ Assertions.assertEquals(1, tasks.size());
+ task = tasks.get(0);
+ Assertions.assertEquals("123", task.getMachineCode());
+ Assertions.assertEquals("T-A-B",task.getProgramName());
+ }
}
--
Gitblit v1.9.3