Bläddra i källkod

【MQ执行方法】三坐标代码优化

lxb 2 år sedan
förälder
incheckning
8e24de89ee

+ 8 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/MachineNodeServiceImpl.java

@@ -372,8 +372,14 @@ public class MachineNodeServiceImpl implements NodeOperationService {
                     JSONObject data = new JSONObject();
                     // 判断是工件坐标系还是质量测量
                     if("1".equals(procedure.getThreeDimensionalConf())){
-                        data.put("workId", task.getCompleteBatchNo() + "-" + task.getProcedureNo());
-                        data.put("workType", procedure.getThreeDimensionalPrograme());
+                        /*data.put("workId", task.getCompleteBatchNo() + "-" + task.getProcedureNo());*/
+                        data.put("workId", task.getCompleteBatchNo() + "_" + taskNode.getId());
+                        data.put("procedureNo",task.getProcedureNo());
+                        /*data.put("workType", procedure.getThreeDimensionalPrograme());*/
+                        data.put("workProgramName", procedure.getThreeDimensionalPrograme());
+                        String location = DictionaryKey.ZEISS_LOCATION.get("M");
+                        data.put("stationId","M");
+                        data.put("location",location);
                         // begin modify by yejian on 20220507 for 更新tasknode表中nodetype,方便三坐标测量完成后回调后快速查找测量结果
                         taskNode.setNodeType("3");
                         taskNodeService.updateById(taskNode);

+ 6 - 3
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/util/MsgUtil.java

@@ -26,6 +26,7 @@ import com.github.zuihou.common.constant.BizConstant;
 import com.github.zuihou.common.constant.CacheKey;
 import com.github.zuihou.common.constant.DictionaryKey;
 import com.github.zuihou.common.constant.ParameterKey;
+import com.github.zuihou.common.util.DateUtil;
 import com.github.zuihou.common.util.SmbShareFileUtil;
 import com.github.zuihou.database.mybatis.conditions.Wraps;
 import org.apache.commons.lang3.StringUtils;
@@ -67,7 +68,7 @@ public class MsgUtil implements ApplicationContextAware {
     private String userName;
     @Value("${zuihou.smb.password}")
     private String password;
-    @Value("${zuihou.smb.password}")
+    @Value("${zuihou.smb.fileIp}")
     private String fileIp;
     @Value("${zuihou.smb.filePath}")
     private String filePath;
@@ -266,7 +267,7 @@ public class MsgUtil implements ApplicationContextAware {
                     if(1 == measuringResult){
                         logger.info("三坐标测量失败直接下料");
 
-                        // 清当前节点工序的redis暂存值
+                        // 清当前节点工序的redis暂存值
                         List<TaskNode> operationTaskNodes = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getTaskId, taskNode.getTaskId()));
                         List<Long> operationTaskNodeIds = operationTaskNodes.stream().map(operationTaskNode -> operationTaskNode.getId()).collect(Collectors.toList());
                         for(Long operationTaskNodeId : operationTaskNodeIds){
@@ -333,7 +334,9 @@ public class MsgUtil implements ApplicationContextAware {
                     //获取检测结果
                     int measuringResult = Integer.parseInt(returnData);
                     //_pdfFileGraphic
-                    String measuringResultFile = filePath + bomProcedure.getThreeDimensionalPrograme() + "_" + taskNode.getProcedureNo() + "_" + task.getCompleteBatchNo() + "_" + taskNode.getId() +".pdf";
+                    //String measuringResultFile = filePath + bomProcedure.getThreeDimensionalPrograme() + "_" + taskNode.getProcedureNo() + "_" + task.getCompleteBatchNo() + "_" + taskNode.getId() +".pdf";
+                    String date = DateUtil.dateToString0(new Date(), "yyyy-M-dd");
+                    String measuringResultFile = SmbShareFileUtil.findNewMeasuringFiles(fileIp,userName,password,filePath + date + "/");
                     //List<String> fileContents = new ArrayList<>();
                     OrderQuality orderQuality = new OrderQuality();
                     TTaskTestUnqualifiedBom taskTestUnqualifiedBom =  new TTaskTestUnqualifiedBom();

+ 44 - 8
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/util/SmbShareFileUtil.java

@@ -1,15 +1,11 @@
 package com.github.zuihou.common.util;
 
-import jcifs.smb.NtlmPasswordAuthentication;
-import jcifs.smb.SmbFile;
-import jcifs.smb.SmbFileInputStream;
-import jcifs.smb.SmbFileOutputStream;
+import cn.hutool.core.collection.CollectionUtil;
+import com.beust.jcommander.internal.Lists;
+import jcifs.smb.*;
 
 import java.io.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 提供共享文件夹的操作的通用程序
@@ -321,6 +317,46 @@ public class SmbShareFileUtil {
         }
     }
 
+    /**
+     * 查找遍历三坐标测量最新检测结果
+     * @return
+     */
+    public static String findNewMeasuringFiles(String ip, String userName, String password, String url){
+        NtlmPasswordAuthentication auth =new NtlmPasswordAuthentication(ip, userName, password);
+        String returnFilePath = "";
+        SmbFile file = null;
+        try {
+            file = new SmbFile(url,auth);
+            file.connect();
+            if(file.exists()){
+                List<SmbFile> files = Lists.newArrayList(file.listFiles());
+
+                if(CollectionUtil.isNotEmpty(files)){
+
+                    //筛选pdf文件,根据文件创建时间降序
+                    SmbFile smbFile = files.stream().filter(s->s.getName().contains(".pdf")).sorted(((o1, o2) -> {
+                        try {
+                            if(o1.createTime() < o2.createTime()){
+                                return 1;
+                            }else{
+                                return -1;
+                            }
+                        } catch (SmbException e) {
+                            e.printStackTrace();
+                        }
+                        return 0;
+                    })).findFirst().get();
+
+                    returnFilePath =  smbFile.getPath();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return returnFilePath;
+    }
+
+
     public static void main(String[] args) {
         String ip="192.168.11.245";
         String url="smb://192.168.11.245/measuring/111.xls";