From ddafa0375398053baaafdee8612f68c1b75ff7cb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 22 八月 2025 13:37:54 +0800
Subject: [PATCH] 机床导入1
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java | 117 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 87 insertions(+), 30 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
index 0bab27e..8a1f63f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/ProgramAnnotationService.java
@@ -4,12 +4,10 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
-import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tool.api.R;
-import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.utils.FileContentUtil;
-import org.springblade.system.feign.IDictClient;
-import org.springblade.system.pojo.entity.Dict;
+import org.springblade.system.feign.IDictBizClient;
+import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,17 +28,32 @@
public class ProgramAnnotationService {
@Autowired
- private IDictClient dictClient;
+ private IDictBizClient bizDictClient;
private static final String DEFAULT_ANNOTATION_SETTING = "(,)";
public static final String ANNOTATION_DICT = "machine_annotation";
+ /**
+ * 鍙戦�佺洰褰曡绱㈠紩锛堢2琛岋級 0 based
+ */
+ public static final int SENDPATH_LINE_INDEX = 1;
+ /**
+ * 鐘舵�佽绱㈠紩锛堢涓夎锛� 0 based
+ */
+ public static final int STATUS_LINE_INDEX = 2;
- public List<Dict> getAnnotionList(){
- List<Dict> annotationList;
- R<List<Dict>> dictsResult = dictClient.getList(ANNOTATION_DICT);
- if(dictsResult.isSuccess()) {
- annotationList = dictsResult.getData();
+ public static final String SQ = "SQ";
+ public static final String GH = "GH";
+ public static final String PL = "PL";
+
+ public List<DictBiz> getAnnotionList(){
+ List<DictBiz> annotationList;
+ //R<List<Dict>> dictsResult = dictClient.getList(ANNOTATION_DICT);
+ R<List<DictBiz>> dictBizResult = bizDictClient.getList(ANNOTATION_DICT);
+ R<List<DictBiz>> gr = bizDictClient.getList("machine_group");
+ R<List<DictBiz>> gcate = bizDictClient.getList("org_category");
+ if(dictBizResult.isSuccess()) {
+ annotationList = dictBizResult.getData();
}else{
annotationList = Collections.emptyList();
}
@@ -55,9 +68,9 @@
* @param annotationList 娉ㄩ噴娉ㄩ噴瀛楀吀椤瑰垪琛�
* @return
*/
- public boolean isAnnotation(String line,String machineGroupCode,List<Dict> annotationList){
+ public boolean isAnnotation(String line,String machineGroupCode,List<DictBiz> annotationList){
boolean isAnno = false;
- Optional<Dict> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
+ Optional<DictBiz> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
String annotationSetting = DEFAULT_ANNOTATION_SETTING;
if(dictOpt.isPresent()) {
annotationSetting = dictOpt.get().getRemark();
@@ -69,19 +82,19 @@
begin = arr[0];
end = arr[1];
}
+ line = StringUtils.trim(line);//鍘婚灏剧┖鏍�
isAnno = StringUtils.startsWith(line,begin) && StringUtils.endsWith(line,end);
return isAnno;
}
- public String generateAnnotation(String oriTest,String machineGroupCode,List<Dict> annotationList) {
-
+ public String generateAnnotation(String oriTest,String machineGroupCode,List<DictBiz> annotationList) {
String annotation = oriTest;
String begin = "(";
String end = ")";
- Optional<Dict> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
+ Optional<DictBiz> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
String annotationSetting = DEFAULT_ANNOTATION_SETTING;
if(dictOpt.isPresent()) {
annotationSetting = dictOpt.get().getRemark();
@@ -99,12 +112,12 @@
return annotation;
}
- public String[] getAnnotationStartAndEnd(String machineGroupCode,List<Dict> annotationList) {
+ public String[] getAnnotationStartAndEnd(String machineGroupCode,List<DictBiz> annotationList) {
String begin = "(";
String end = ")";
- Optional<Dict> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
+ Optional<DictBiz> dictOpt = annotationList.stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
String annotationSetting = DEFAULT_ANNOTATION_SETTING;
if(dictOpt.isPresent()) {
annotationSetting = dictOpt.get().getRemark();
@@ -123,7 +136,7 @@
}
public String removeAnnotation(String machineGroupCode,String text,String begin,String end){
- List<Dict> annoDicts = getAnnotionList();
+ List<DictBiz> annoDicts = getAnnotionList();
String[] arr = getAnnotationStartAndEnd(machineGroupCode,annoDicts);
return removeAnnotationInner(text,begin,end);
}
@@ -133,31 +146,31 @@
return temp;
}
+
+
/**
- * 涓虹▼搴忔枃浠跺鍔犳敞閲�
- * @param oriText 鍘熷鏂囨湰
- * @param lineIndex 琛岀储寮� 0 based
- * @param inputStream 鏂囦欢鐨勮緭鍏ユ祦
- * @param machineGroup 鏈哄簥缁� 鐢熸垚娉ㄩ噴鐢�
- * @return 鍔犳敞閲婂悗鐨勬祦
+ * 璁剧疆鍥哄寲娉ㄩ噴琛�
+ * @param inputStream
+ * @param machineGroup
+ * @param annoDicts
+ * @return
* @throws IOException
*/
- public InputStream setAnnotation(String oriText,int lineIndex,InputStream inputStream, String machineGroup) throws IOException {
- List<Dict> annoDicts = getAnnotionList();
+ public InputStream setGHAnnotation(InputStream inputStream, String machineGroup,List<DictBiz> annoDicts) throws IOException {
//
InputStream finishedStream;
try(inputStream){
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
- String annoTxt = generateAnnotation(oriText,machineGroup,annoDicts);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
+ String annoTxt = generateAnnotation(GH,machineGroup,annoDicts);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
- String lineText = FileContentUtil.readLineAt(byteInputStream,lineIndex);//绗笁琛屽簲璇ユ槸鐘舵�佹敞閲�
+ String lineText = FileContentUtil.readLineAt(byteInputStream,STATUS_LINE_INDEX);//绗笁琛屽簲璇ユ槸鐘舵�佹敞閲�
byteInputStream.reset();
if(isAnnotation(lineText,machineGroup,annoDicts)){
- finishedStream = FileContentUtil.replaceAtLine(byteInputStream,lineIndex,annoTxt);
+ finishedStream = FileContentUtil.replaceAtLine(byteInputStream,STATUS_LINE_INDEX,annoTxt);
}else{
- finishedStream = FileContentUtil.insertLine(byteInputStream,lineIndex,annoTxt);
+ finishedStream = FileContentUtil.insertLine(byteInputStream,STATUS_LINE_INDEX,annoTxt);
}
finishedStream.reset();
@@ -165,5 +178,49 @@
return finishedStream;
}
+
+ /**
+ * 涓鸿緭鍏ユ祦璁剧疆鍙戦�佺洰褰�(绗簩琛�)鍜岀姸鎬侊紙绗笁琛岋級
+ * @param sendPath 鍙戦�佽矾寰�
+ * @param statusText 鐘舵�佹枃鏈�
+ * @param inputStream 杈撳叆娴�
+ * @param machineGroup 鏈哄簥缁勪唬鐮�
+ * @return 鍔犲ソ鍙戦�佽矾寰勫拰鐘舵�佹枃鏈殑杈撳叆娴�
+ * @throws IOException
+ */
+ public InputStream setSendDirAndStatusAnnotation(String sendPath,String statusText,InputStream inputStream, String machineGroup) throws IOException {
+ List<DictBiz> annoDicts = getAnnotionList();
+
+ InputStream finishedStream;
+ try(inputStream){
+ ByteArrayInputStream byteInputStream = new ByteArrayInputStream(IOUtils.toByteArray(inputStream));
+
+ //1鍔犲叆鍙戦�佽矾寰勭殑娉ㄩ噴
+ String sendPathAnnotation = generateAnnotation(sendPath,machineGroup,annoDicts);//鍔犱簡娉ㄩ噴涔嬪悗鐨勬枃鏈�
+
+ InputStream insAfterSetSendDir ;
+ String sendDirLine = FileContentUtil.readLineAt(byteInputStream,SENDPATH_LINE_INDEX);//绗�2琛屾槸鍙戦�佽矾寰�
+ byteInputStream.reset();
+ String statusLine = FileContentUtil.readLineAt(byteInputStream,STATUS_LINE_INDEX);//绗笁琛屾槸鐘舵�佹敞閲�
+ byteInputStream.reset();
+
+ if(isAnnotation(sendDirLine,machineGroup,annoDicts)){
+ insAfterSetSendDir = FileContentUtil.replaceAtLine(byteInputStream,SENDPATH_LINE_INDEX,sendPathAnnotation);
+ }else{
+ insAfterSetSendDir = FileContentUtil.insertLine(byteInputStream,SENDPATH_LINE_INDEX,sendPathAnnotation);
+ }
+
+ insAfterSetSendDir.reset();
+ //鍔犲叆鐘舵�佹敞閲婅
+ String statusAnnotation = generateAnnotation(statusText,machineGroup,annoDicts);//娉ㄩ噴鍚庣殑鐘舵�佹枃鏈�
+ if(isAnnotation(statusLine,machineGroup,annoDicts)){
+ finishedStream = FileContentUtil.replaceAtLine(insAfterSetSendDir,STATUS_LINE_INDEX,statusAnnotation);
+ }else{
+ finishedStream = FileContentUtil.insertLine(insAfterSetSendDir,STATUS_LINE_INDEX,statusAnnotation);
+ }
+ }
+
+ return finishedStream;
+ }
}
--
Gitblit v1.9.3