844184169 vor 3 Wochen
Ursprung
Commit
682820c664

+ 9 - 1
LocalhostMES/App.config

@@ -339,7 +339,7 @@
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
-        <bindingRedirect oldVersion="0.0.0.0-9.5.0.0" newVersion="9.5.0.0" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.33.0" newVersion="8.0.33.0" />
       </dependentAssembly>
       <dependentAssembly>
         <assemblyIdentity name="Unity.Abstractions" publicKeyToken="489b6accfaf20ef0" culture="neutral" />
@@ -353,6 +353,14 @@
         <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-5.3.0.0" newVersion="5.3.0.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Google.Protobuf" publicKeyToken="a7d26565bac4d604" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-3.32.0.0" newVersion="3.32.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="K4os.Compression.LZ4.Streams" publicKeyToken="2186fa9121ef231d" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.3.8.0" newVersion="1.3.8.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>

+ 6 - 4
LocalhostMES/Controller/MesApiClient.cs

@@ -133,9 +133,10 @@ namespace LocalhostMES.Controller
         #region 2.4 接收工件加工参数
         public async Task<ApiResponse<bool?>> SendProcessParametersAsync(ProcessParameterRequest request)
         {
+            request.messageTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
             var requestJson = JsonConvert.SerializeObject(request);
             var content = new StringContent(requestJson, Encoding.UTF8, "application/json");
-
+            LogHelper.WriteLogInfo(requestJson);
             var requestMessage = new HttpRequestMessage(HttpMethod.Post, $"https://mom-jh-annex-api.leapmotor.com/app-mom-mes/api/task/receive/manualSave ")
             {
                 Content = content
@@ -145,7 +146,7 @@ namespace LocalhostMES.Controller
             requestMessage.Headers.Add("token", _token);
 
             var response = await _httpClient.SendAsync(requestMessage);
-            LogHelper.WriteLogInfo(requestMessage.ToString());
+      
            
             return await ParseResponseAsync<ApiResponse<bool?>>(response);
         }
@@ -164,11 +165,12 @@ namespace LocalhostMES.Controller
         #region 辅助方法
         private async Task<T> ParseResponseAsync<T>(HttpResponseMessage response) where T : class
         {
-            LogHelper.WriteLogInfo(response.ToString());
+          
             if ( response.IsSuccessStatusCode)
             {
                 var json = await response.Content.ReadAsStringAsync();
                 var jObject = JObject.Parse(json);
+                LogHelper.WriteLogInfo(json);
                 if (jObject.ContainsKey("data"))
                 {
                     string str = jObject["data"].ToString();
@@ -180,7 +182,7 @@ namespace LocalhostMES.Controller
                 }
                 // 将JObject转换回字符串
                 string newJsonString = jObject.ToString();
-              
+               
                 return JsonConvert.DeserializeObject<T>(newJsonString);
             }
             else

+ 36 - 20
LocalhostMES/Controller/MesController.cs

@@ -10,6 +10,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Web.Http;
+using System.Web.UI.WebControls.WebParts;
 
 namespace LocalhostMES.Controller
 {
@@ -365,7 +366,7 @@ namespace LocalhostMES.Controller
                             Employee = request.employee ?? "",
                             ScanType = request.scanTpye
                         };
-                        //DatabaseHelper.InsertBindRecord(bindRecord);
+                        DatabaseHelper.InsertBindRecord(bindRecord);
                         if (management.IsLocalhostMode)
                         {
                             //if (DatabaseHelper.GetProductProductionRecords(request.sn) == 0)
@@ -379,26 +380,27 @@ namespace LocalhostMES.Controller
                                 traceId = Guid.NewGuid().ToString("N").Substring(0, 24),
                                 data = true
                             };
-                                return Ok(response);
-                            //}
-                            //else
-                            //{
+                            return Ok(response);
 
-                            //    var errorResponse = new ErrorResponse
-                            //    {
-                            //        code = "55000",
-                            //        success = false,
-                            //        msg = $"数据库查询失败",
-                            //        msgTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                            //        traceId = Guid.NewGuid().ToString("N").Substring(0, 24)
-                            //    };
-                            //    return Content(System.Net.HttpStatusCode.InternalServerError, errorResponse);
-                            //}
                         }
 
 
                     }
                 }
+                else 
+                {
+                    var bindRecord = new BindRecord
+                    {
+                        Sn = request.sn,
+                        PartNum ="",
+                        StationCode = request.stationCode,
+                        BindTime = DateTime.TryParse(request.scanTime, out var scanTime) ? scanTime : DateTime.Now,
+                        Employee = request.employee ?? "",
+                        ScanType = request.scanTpye
+                    };
+                    DatabaseHelper.InsertBindRecord(bindRecord);
+
+                }
                 if (management.IsLocalhostMode)
                 {
                     LogHelper.WriteLogInfo($"收到请求: 接收SN和关键件  成功");
@@ -407,6 +409,7 @@ namespace LocalhostMES.Controller
                 var okresponse = await management.ApiClient.SendSnComponentAsync(request);
                 if (okresponse.success && okresponse.code == "200")
                 {
+                   
                     LogHelper.WriteLogInfo($"收到请求: 接收SN和关键件  成功");
                     return Ok(okresponse);
                 }
@@ -499,11 +502,11 @@ namespace LocalhostMES.Controller
                     Sn = request.sn,
                     Station = request.station,
                     OverallResult = request.overallResult,
-                    ProcessTime = DateTime.TryParse(request.messageTime, out var msgTime) ? msgTime : DateTime.Now,
+                    ProcessTime = DateTime.Now,
                     Equipment = request.equipment ?? ""
                 };
 
-                //DatabaseHelper.InsertProcessRecord(processRecord);
+                DatabaseHelper.InsertProcessRecord(processRecord);
                 if (management.IsLocalhostMode)
                 {
                     var response = new ApiResponse<bool>
@@ -518,12 +521,25 @@ namespace LocalhostMES.Controller
                     LogHelper.WriteLogInfo($"收到请求:接收工件加工参数  成功");
                     return Ok(response);
                 }
-                var mesres =await management.ApiClient.SendProcessParametersAsync(request);
-                LogHelper.WriteLogInfo($"收到请求:接收工件加工参数  成功");
-                return Ok(mesres);
+                var okresponse = await management.ApiClient.SendProcessParametersAsync(request);
+
+                if (okresponse.success && okresponse.code == "200")
+                {
+                    LogHelper.WriteLogInfo($"收到请求: 接收工件加工参数  成功");
+                    return Ok(okresponse);
+                }
+                else
+                {
+                    LogHelper.WriteLogInfo($"收到请求: 接收工件加工参数  失败\r\n" + okresponse.ToString());
+                    okresponse.success = false;
+                    return Content(System.Net.HttpStatusCode.InternalServerError, okresponse);
+                }
+
+                
             }
             catch (Exception ex)
             {
+                LogHelper.WriteLogInfo("出错");
                 var errorResponse = new ErrorResponse
                 {
                     code = "55000",

+ 49 - 8
LocalhostMES/DataBase/DatabaseHelper.cs

@@ -17,8 +17,8 @@ namespace LocalhostMES.DataBase
     {
         public static SqlSugarScope Db = new SqlSugarScope(new ConnectionConfig()
         {
-           // ConnectionString= "Server = 192.168.1.26; Database =LingPaoProject; User Id = root; Password = root; ",
-            ConnectionString = "Database=LingPaoProject; Data Source=192.168.1.26; Port=3306;User Id=root; Password=root;Charset=utf8;TreatTinyAsBoolean=false;",//连接符字串
+            //192.168.1.100
+            ConnectionString = "Database=LingPaoProject; Data Source=192.168.1.26; Port=3306;User Id=root; Password=root;Charset=utf8;AllowPublicKeyRetrieval=True;SslMode=None;",//连接符字串
             DbType = SqlSugar.DbType.MySql,//数据库类型
             IsAutoCloseConnection = true //不设成true要手动close
         },
@@ -34,12 +34,40 @@ namespace LocalhostMES.DataBase
 
         public static void CreataDataTable()
         {
+            try
+            {
+
+                Db.CodeFirst.InitTables<SnInfo>();
+                Db.CodeFirst.InitTables<BindRecord>();
+                Db.CodeFirst.InitTables<ProcessRecord>();
+                Db.CodeFirst.InitTables<ParkingLot>();
+                Db.CodeFirst.InitTables<WorkOrderInfo>();
+                // 您的数据库操作代码
+            }
+            catch (AggregateException ex)
+            {
+                // 遍历所有内部异常
+                foreach (var inner in ex.InnerExceptions)
+                {
+                    Console.WriteLine($"内部异常: {inner.Message}");
+                    Console.WriteLine(inner.StackTrace);
+                }
+                // 或者只取第一个
+                // var actualException = ex.InnerException;
+            }
+            catch (SqlSugarException ex)
+            {
+                Console.WriteLine($"错误消息:{ex.Message}");
+                Console.WriteLine($"内部异常:{ex.InnerException?.Message}");
+                Console.WriteLine($"堆栈:{ex.StackTrace}");
+                // 也可以记录日志
+            }
+            catch (Exception e) 
+            {
+            
+            
+            }
 
-            Db.CodeFirst.InitTables<WorkOrderInfo>();
-            Db.CodeFirst.InitTables<SnInfo>();
-            Db.CodeFirst.InitTables<BindRecord>();
-            Db.CodeFirst.InitTables<ProcessRecord>();
-            Db.CodeFirst.InitTables<ParkingLot>();
             
 
         }
@@ -69,7 +97,20 @@ namespace LocalhostMES.DataBase
             }
             else
             {
-                return Db.Queryable<WorkOrderInfo>().ToList();
+                return Db.Queryable<WorkOrderInfo>().
+                    Select(it=>new WorkOrderInfo 
+                    {OrderNo=it.OrderNo,
+                        LineCode=it.LineCode,
+                        CreateTime=it.CreateTime, 
+                        EndTime=it.EndTime, 
+                        IsLocalhost=it.IsLocalhost,
+                        MaterialCode=it.MaterialCode, 
+                        MaterialName=it.MaterialName,
+                        PlannedQuantity=it.PlannedQuantity,
+                        StartTime=it.StartTime, 
+                        Status=it.Status,
+                        WorkOrderNo=it.WorkOrderNo, 
+                        CompletedQuantity=SqlFunc.Subqueryable<SnInfo>().Where(s=>s.WorkOrderNo==it.WorkOrderNo).Count() }).ToList();
             }
         }
 

+ 5 - 2
LocalhostMES/LocalhostMES.csproj

@@ -37,6 +37,9 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="BouncyCastle.Crypto, Version=1.9.0.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
+      <HintPath>..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll</HintPath>
+    </Reference>
     <Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
       <HintPath>..\packages\BouncyCastle.Cryptography.2.6.2\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
     </Reference>
@@ -250,8 +253,8 @@
     <Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <HintPath>..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.31\lib\net45\Microsoft.Xaml.Behaviors.dll</HintPath>
     </Reference>
-    <Reference Include="MySql.Data, Version=9.5.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
-      <HintPath>..\packages\MySql.Data.9.5.0\lib\net462\MySql.Data.dll</HintPath>
+    <Reference Include="MySql.Data, Version=8.0.33.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
+      <HintPath>..\packages\MySql.Data.8.0.33\lib\net462\MySql.Data.dll</HintPath>
     </Reference>
     <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>

+ 6 - 2
LocalhostMES/Models/MesModel.cs

@@ -50,10 +50,13 @@ namespace LocalhostMES.Models
         public string LineCode { get; set; }              // 线体编码
     }
 
-    public class WorkOrderInfo
+    public class WorkOrderInfo:BindableBase
     {
+
+        private string _WorkOrderNo;
+
         [SqlSugar.SugarColumn(IsPrimaryKey = true)]
-        public string WorkOrderNo { get; set; }
+        public string WorkOrderNo { get => _WorkOrderNo; set { SetProperty(ref _WorkOrderNo, value); } }
 
         public bool IsLocalhost { get; set;}
         public string OrderNo { get; set; } = "0";
@@ -226,6 +229,7 @@ namespace LocalhostMES.Models
 
     public class ProcessRecord
     {
+        [SqlSugar.SugarColumn(IsPrimaryKey = true)]
         public string Sn { get; set; }
         public string Station { get; set; }
         public string OverallResult { get; set; }

+ 51 - 0
LocalhostMES/ViewModels/MainViewModel.cs

@@ -460,6 +460,56 @@ namespace LocalhostMES.ViewModels
                 else
                 {
                     AddLog("无可用SN");
+                    var request = new ProcessParameterRequest
+                    {
+                        businessTpye = "SCAN_TASK",
+                        plant = "1211",
+                        workShop = "ZPCJ",
+                        line = "ZPX-01",
+                        station = "ZPX-01-01",
+                        site = "ZPX-01-01-01",
+                        sn = "LingPao",
+                        barcode = "PART-001",
+                        materialCode = "T03GCD",
+                        equipment = "EQUIP001",
+                        overallResult = "OK",
+                        tightenResultDetail = new List<TightenResult>
+                    {
+                        new TightenResult
+                        {
+                            point_num = 1,
+                            pset = 1,
+                            torque = 45.08m,
+                            angle = 44.0m,
+                            tighten_status = "OK",
+                            tighten_dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                        }
+                    },
+                        stepResultDetail = new List<StepResult>
+                    {
+                        new StepResult
+                        {
+                            tagCode = "TEST_PRESSURE",
+                            tagValue = "3.0",
+                            tagRage = "2.7-3.3",
+                            tagResult = "OK",
+                            tagUnit = "kg",
+                            ngCode = new List<NgCodeInfo>()
+                        }
+                    },
+                        reservedField1 = "",
+                        reservedField2 = "",
+                        reservedField3 = "",
+                        messageTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
+                    };
+                    AddLog("请求参数:");
+                    AddLog(JsonConvert.SerializeObject(request, Formatting.Indented));
+
+                    var response = await Management.ApiClient.SendProcessParametersAsync(request);
+
+                    AddLog("响应结果:");
+                    AddLog(JsonConvert.SerializeObject(response, Formatting.Indented));
+              
                 }
                 ShowMessage("加工参数上报测试完成", false);
             }
@@ -555,6 +605,7 @@ namespace LocalhostMES.ViewModels
         {
             try
             {
+                DgSns.Clear();
                 var workOrderNo = SearchWorkOrder.Trim();
                 if ( string.IsNullOrEmpty(workOrderNo) )
                 {

+ 6 - 0
LocalhostMES/Views/MainView.xaml

@@ -267,6 +267,12 @@
                             <TextBlock Text="工单号:"
                                        VerticalAlignment="Center"
                                        Margin="5,0" />
+                            <ComboBox  ItemsSource="{Binding DgWorkOrders}" 
+                                       DisplayMemberPath="WorkOrderNo"
+                                       SelectedValuePath="WorkOrderNo"
+                                       SelectedValue="{Binding SearchWorkOrder}">
+                                
+                            </ComboBox>
                             <TextBox x:Name="txtSearchWorkOrder"
                                      Width="150"
                                      Margin="5,0"

+ 2 - 1
LocalhostMES/packages.config

@@ -76,10 +76,11 @@
   <package id="Microsoft.Owin.Host.HttpListener" version="4.2.2" targetFramework="net472" />
   <package id="Microsoft.Owin.Hosting" version="4.2.3" targetFramework="net472" />
   <package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.31" targetFramework="net472" />
-  <package id="MySql.Data" version="9.5.0" targetFramework="net472" />
+  <package id="MySql.Data" version="8.0.33" targetFramework="net472" />
   <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net472" />
   <package id="Newtonsoft.Json.Bson" version="1.0.2" targetFramework="net472" />
   <package id="Owin" version="1.0" targetFramework="net472" />
+  <package id="Portable.BouncyCastle" version="1.9.0" targetFramework="net472" />
   <package id="Prism.Core" version="8.1.97" targetFramework="net472" />
   <package id="Prism.Unity" version="8.1.97" targetFramework="net472" />
   <package id="Prism.Wpf" version="8.1.97" targetFramework="net472" />