WIN-GH9CEESPLTB\Administrator преди 1 месец
родител
ревизия
ff8270bad4

+ 8 - 4
MainForm/ClassFile/ProjectClass/GlobalContext.cs

@@ -40,7 +40,7 @@ namespace MainForm
         public static string MqttPassResultLogDir = MqttLogDir + @"过站结果\";    // mqtt日志 - 过站结果日志
         public static string MqttPassDetailLogDir = MqttLogDir + @"过站明细\";    // mqtt日志 - 过站明细日志
         public static string MqttFileUpLogDir = MqttLogDir + @"文件上传\";    // mqtt日志 - 文件上传日志
-        public static string MqttFileUpLogDir11 = MqttLogDir + @"1111aaa\";    // mqtt日志 - 文件上传日志
+        public static string MqttFileBackupLogDir = MqttLogDir + @"文件上传\文件备份";    // mqtt日志 - 文件上传日志
 
         public static string MqttServerPath = AppDomain.CurrentDomain.BaseDirectory + @"\ThingsMode\MqttServer.exe";
         public static string MqttServerName = "MqttServer";
@@ -62,6 +62,8 @@ namespace MainForm
         public static string Mtltmrk;        // 产品型号(mtltmrk)
         public static string run_mode;     // 生产阶段  online/offline
         public static string product_mode;  // 运行模式 debug(调试)/tp(试产)/mp(量产)
+        public static string FileAppId;  // 文件上传
+        public static string FileAppKey;  // 文件上传
 
         public static string S1_work_station;   // [S1] ⼯站
         public static string S1_device_code;    // [S1] 装备编码
@@ -395,9 +397,9 @@ namespace MainForm
                 StationInMESUrl = string.Format(StationInMESUrl, ServerHost);
                 StationOutMESUrl = IniFile.INIGetStringValue(FilePath, "MES", "StationOutMESUrl", "");
                 StationOutMESUrl = string.Format(StationOutMESUrl, ServerHost);
-                UpFileUrl = IniFile.INIGetStringValue(FilePath, "MES", "UpFileUrl", "");
-                UpFilePath = IniFile.INIGetStringValue(FilePath, "MES", "UpFilePath", "");
-                MESIsSendUpFile = bool.Parse(IniFile.INIGetStringValue(FilePath, "MES", "MESIsSendUpFile", ConstIsSend));
+                UpFileUrl = IniFile.INIGetStringValue(FilePath, "MQTT", "UpFileUrl", "");
+                UpFilePath = IniFile.INIGetStringValue(FilePath, "MQTT", "UpFilePath", "");
+                MESIsSendUpFile = bool.Parse(IniFile.INIGetStringValue(FilePath, "MQTT", "MESIsSendUpFile", ConstIsSend));
 
                 if (ServerHost.Contains(":"))
                 {
@@ -451,6 +453,8 @@ namespace MainForm
                 address = IniFile.INIGetStringValue(FilePath, "MQTT", "address", ConstIsSend);
                 product_mode = IniFile.INIGetStringValue(FilePath, "MQTT", "product_mode", ConstIsSend);
                 run_mode = IniFile.INIGetStringValue(FilePath, "MQTT", "run_mode", ConstIsSend);
+                FileAppId = IniFile.INIGetStringValue(FilePath, "MQTT", "FileAppId", ConstIsSend);
+                FileAppKey = IniFile.INIGetStringValue(FilePath, "MQTT", "FileAppKey", ConstIsSend);
 
                 // AGV配置
                 IsUseAGV = bool.Parse(IniFile.INIGetStringValue(FilePath, "AGV", "IsUseAGV", "false"));  // 是否 启用AGV

+ 3 - 10
MainForm/ClassFile/XiaomiAPI_MES/XiaomiMESHttp_UpLoadFile.cs

@@ -54,9 +54,9 @@ namespace MainForm.ClassFile.XiaomiAPI_MES
                 string url = "http://cm.pre.mi.com/file/x5/file/upload/mqtt";
                 url = "http://im.pre.mi.com/file/x5/file/upload/mqtt";
                 //这个之后要加到配置文件config中
-                string appid = "Auto-Soft";
+                string appid = GlobalContext.FileAppId;
                 //这个之后要加到配置文件config中
-                string appkey = "5984710e-bb38-4806-b94d-7a9a727e3880";
+                string appkey = GlobalContext.FileAppKey;
                 string method = "UploadMqtt";
 
                 // 检查文件是否存在
@@ -101,13 +101,6 @@ namespace MainForm.ClassFile.XiaomiAPI_MES
                 // 判断上传结果
                 if (!string.IsNullOrEmpty(uploadResult) && !uploadResult.StartsWith("异常:") && !uploadResult.StartsWith("HTTP 错误:"))
                 {
-                    //删除文件
-                    (bool, string) newResult = DeleteFile(wJPath);
-                    if (!newResult.Item1)
-                    {
-                        return (0, fileUpload_X5.name+newResult.Item2);
-
-                    }
                     //附件信息添加到主页面
                     FileData fileData = new FileData();
                     fileData.FileName = file.Name;
@@ -183,7 +176,7 @@ namespace MainForm.ClassFile.XiaomiAPI_MES
         /// 删除文件
         /// </summary>
         /// <param name="sourceFilePath">文件路径</param>
-        static (bool,string) DeleteFile(string sourceFilePath)
+        public static (bool,string) DeleteFile(string sourceFilePath)
         {
             try
             {

+ 59 - 81
MainForm/FaForm/Form_Home.cs

@@ -2455,96 +2455,74 @@ namespace MainForm
             string bucket =
                 $"{file_category}/{file_type}/{project}/{product_mode}/{run_mode}/{pass_result}/{device_code}/{sn}/{staion_id}";
 
-            // 获取所有图片文件
-            List<string> imageFiles = GetAllImageFiles(path);
+            if (guid == "")
+            {
+                guid = Guid.NewGuid().ToString();
+            }
             try
             {
-                if (imageFiles.Count > 0)
-                {
-                    CompressFolder("D:\\Temp\\VisionLog\\Pic\\Left", "D:\\Temp\\VisionLog\\Pic\\YaSuo.zip");
-
-                    foreach (string imageFile in imageFiles)
-                    {
-
-                        break;
-                        if (guid == "")
-                        {
-                            guid = Guid.NewGuid().ToString();
-                        }
-
-                        filename = Path.GetFileName(imageFile);
-
-                        sql = string.Format(
-                            "INSERT INTO [dbo].[DataFiles](stationCode,stationName,CarrierBarcode,ProductBarcode,bucket,fileName,fileContext,uuid,fileUrl,status,submitTime,createTime) " +
-                            "VALUES('{0}','{1}','{2}' ,'{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}')"
-                            , stationCode
-                            , stationName
-                            , BarcodeSet.strCarrierBarcode
-                            , BarcodeSet.strProductBarcode
-                            , bucket
-                            , filename
-                            , ""
-                            , guid
-                            , ""
-                            , 0
-                            , ""
-                            , DateTime.Now
-                        );
-                        string ret = SQLHelper_New.ExecuteNonQuery(sql, null);
-
-                        FileUpload_X5 fileUpload_X5 = new FileUpload_X5();
-                        fileUpload_X5.bucket = bucket;
-                        fileUpload_X5.name = filename;
-                        fileUpload_X5.uuid = guid.ToString();
-                        ///需要上传文件
-                        FileInfo file = new FileInfo(imageFile);
-                        string fileMd5Hex = GetMD5Hex(file);
-                        fileUpload_X5.md5 = fileMd5Hex;
-                        fileUpload_X5.uploadCloud = true;
-                        fileUpload_X5.informMqtt = true;
-
-                        FileMqttPayload fileMqttPayload = new FileMqttPayload();
-                        fileMqttPayload.factory = GlobalContext.Factory_Code;
-                        fileMqttPayload.project_name = GlobalContext.Project_Code;
-                        fileMqttPayload.product_mode = GlobalContext.product_mode;
-                        fileMqttPayload.line_no = GlobalContext.LineCode;
-                        fileMqttPayload.work_station_no = xiaomiParm.workstation;
-                        fileMqttPayload.equipment_no = xiaomiParm.deviceCode;
-                        fileMqttPayload.station_no = xiaomiParm.stationCode;
-                        fileMqttPayload.file_id = guid;
-                        fileMqttPayload.file_name = filename;
-                        fileMqttPayload.sn = BarcodeSet.strProductBarcode;
-                        //fileMqttPayload.opt_time = "";
-                        //fileMqttPayload.file_type = "";
-                        //fileMqttPayload.file_category = "";
-                        //fileMqttPayload.tag = "";
-                        fileMqttPayload.reference_info.pass_station_id = uuid;
-
-                        var fileresult =
-                            XiaomiMESHttp_UpLoadFile.FileUoladToMes(imageFile, fileUpload_X5, fileMqttPayload);
-
-                        if (fileresult.Result.Item1 == 0)
-                        {
-                            sql = string.Format("UPDATE [dbo].[DataFiles] SET status='{0}' WHERE uuid='{1}'", 1, guid);
-                            string retnew = SQLHelper_New.ExecuteNonQuery(sql, null);
-                        }
-
-                        msg = msg + $"{fileresult.Result.Item2}\r\n";
+                if (GlobalContext.MESIsSendUpFile)
+                {
+                    string toPath = GlobalContext.MqttFileBackupLogDir;
+                    string toFileName = $"[{xiaomiParm.workstation}]_{file_type}_{sn}_{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}.zip";
+                    string directoryPath = Path.GetDirectoryName(path);
+                    string strFilePath = toPath + toFileName;
+                    CompressFolder(directoryPath, strFilePath);
+
+                    FileUpload_X5 fileUpload_X5 = new FileUpload_X5();
+                    fileUpload_X5.bucket = bucket;
+                    fileUpload_X5.name = filename;
+                    fileUpload_X5.uuid = guid.ToString();
+                    ///需要上传文件
+                    FileInfo file = new FileInfo(strFilePath);
+                    string fileMd5Hex = GetMD5Hex(file);
+                    fileUpload_X5.md5 = fileMd5Hex;
+                    fileUpload_X5.uploadCloud = true;
+                    fileUpload_X5.informMqtt = true;
+
+                    FileMqttPayload fileMqttPayload = new FileMqttPayload();
+                    fileMqttPayload.factory = GlobalContext.Factory_Code;
+                    fileMqttPayload.project_name = GlobalContext.Project_Code;
+                    fileMqttPayload.product_mode = GlobalContext.product_mode;
+                    fileMqttPayload.line_no = GlobalContext.LineCode;
+                    fileMqttPayload.work_station_no = xiaomiParm.workstation;
+                    fileMqttPayload.equipment_no = xiaomiParm.deviceCode;
+                    fileMqttPayload.station_no = xiaomiParm.stationCode;
+                    fileMqttPayload.file_id = guid;
+                    fileMqttPayload.file_name = filename;
+                    fileMqttPayload.sn = BarcodeSet.strProductBarcode;
+                    //fileMqttPayload.opt_time = "";
+                    //fileMqttPayload.file_type = "";
+                    //fileMqttPayload.file_category = "";
+                    //fileMqttPayload.tag = "";
+                    fileMqttPayload.reference_info.pass_station_id = uuid;
+
+                    var fileresult =await
+                        XiaomiMESHttp_UpLoadFile.FileUoladToMes(strFilePath, fileUpload_X5, fileMqttPayload);
+
+                    msg = msg + $"{fileresult.Item2}\r\n";
+
+                    // 获取所有图片文件
+                    List<string> imageFiles = GetAllImageFiles(path);
+                    foreach (var imageFile in imageFiles) {
+                        if (File.Exists(imageFile))
+                        {
+                            //删除文件
+                            (bool, string) newResult = DeleteFile(imageFile);
+                            if (!newResult.Item1)
+                            {
+                                return (0, Path.GetFileName(imageFile) + newResult.Item2);
+                            }
+                        }
                     }
-
-                    return (1, msg);
-                }
-                else
-                {
-                    return (1, "文件不存在!");
                 }
+                return (1, msg);
             }
             catch (Exception e)
             {
                 return (1,
-                    filename + $"图片获取失败!载具码:{BarcodeSet.strCarrierBarcode}产品码{BarcodeSet.strProductBarcode},错误原因:" +
+                    filename + $"文件上传错误!载具码:{BarcodeSet.strCarrierBarcode}产品码{BarcodeSet.strProductBarcode},错误原因:" +
                     e.Message);
-                //AddMessage_Station(stationName, LogType.Error, filename + $"图片保存失败!载具码:{BarcodeSet.strCarrierBarcode}产品码{BarcodeSet.strProductBarcode}");
             }
         }
 

+ 2 - 1
MainForm/FaForm/Form_Main.cs

@@ -126,7 +126,8 @@ namespace MainForm
                 if (!Directory.Exists(GlobalContext.MqttPassResultLogDir)) Directory.CreateDirectory(GlobalContext.MqttPassResultLogDir);  // 判断路径是否存在,不存在则创建路径
                 if (!Directory.Exists(GlobalContext.MqttPassDetailLogDir)) Directory.CreateDirectory(GlobalContext.MqttPassDetailLogDir);  // 判断路径是否存在,不存在则创建路径
                 if (!Directory.Exists(GlobalContext.MqttFileUpLogDir)) Directory.CreateDirectory(GlobalContext.MqttFileUpLogDir);  // 判断路径是否存在,不存在则创建路径
-
+                if (!Directory.Exists(GlobalContext.MqttFileBackupLogDir)) Directory.CreateDirectory(GlobalContext.MqttFileBackupLogDir);  // 判断路径是否存在,不存在则创建路径
+                
                 GlobalContext.UpdateData();
 
                 //创建窗体及事件