From 08dd2afd7a9614dad029e94918516b068d413cac Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期四, 04 七月 2024 17:46:41 +0800
Subject: [PATCH] 大屏

---
 代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs |  460 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 373 insertions(+), 87 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs"
index 8bb61cc..baee244 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs"
@@ -1,9 +1,14 @@
 锘縰sing Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.Drawing.Chart;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using WIDESEA_Comm;
+using WIDESEA_Comm.PLCDBItem;
 using WIDESEA_Core.EFDbContext;
 using WIDESEA_Core.Extensions;
+using WIDESEA_Core.Utilities;
+using WIDESEA_Entity.DomainModels;
 using WIDESEA_WCS.IRepositories;
 using WIDESEA_WCS.Repositories;
 using WIDESEA_WMS.IRepositories;
@@ -16,7 +21,7 @@
     public class ReadplcController : Controller
     {
         #region PCS骞抽潰鍥�
-        public class SectionData    //姝诲弬鏁�
+        public class SectionData    //闈欐�佸弬鏁�
         {
             public int r_direction { get; set; }
             public bool r_machine_nr { get; set; }
@@ -25,6 +30,8 @@
             public string r_wheel_SN { get; set; }
             public int r_wheel_type { get; set; }
             public string stackerNo { get; set; }
+            public string Name { get; set; }
+            public int vk_state { get; set; }
         }
 
         #region 杈婇亾1
@@ -33,16 +40,62 @@
         {
             var DBIems = WheelDBItem.VK4WheelDBItem; //鑾峰彇杈婇亾锛岃緭閫佺嚎淇℃伅
             var DBIems2 = VKDBItem.VK4DBItem;       //VK4鐘舵�佷俊鎭璞¢泦鍚�
-            var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry1").FirstOrDefault();       // VK4妗佹灦鏈烘鎵嬪璞¢泦鍚�
 
+            var DBIems3 = Oiling_machine.Oiling_machineDBItem;
+
+            if (DBIems.Count == 0)
+            {
+                List<SectionData> DBIemss = new List<SectionData>();
+                for (int i = 0; i < 32; i++)
+                {
+                    var seDataList = new SectionData
+                    {
+                        r_direction = 0,
+                        r_machine_nr = false,
+                        r_part_process = 1,
+                        r_part_status = 0,
+                        r_wheel_SN = "",
+                        r_wheel_type = 3,
+                        stackerNo = "4." + i.ToString(),
+                    };
+                    switch (i)
+                    {
+                        case 27:
+                            seDataList.stackerNo = "鏈烘鎵�1";
+                            break;
+                        case 28:
+                            seDataList.stackerNo = "10.11";
+                            break;
+                        case 29:
+                            seDataList.stackerNo = "10.12";
+                            break;
+                        case 30:
+                            seDataList.stackerNo = "10.5";
+                            break;
+                        case 31:
+                            seDataList.stackerNo = "10.6";
+                            break;
+                        default:
+                            break;
+                    }
+                    DBIemss.Add(seDataList);
+                }
+
+
+
+                List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem
+                {
+                    StackerNo = sd.stackerNo,
+                }).ToList();
+
+                DBIems = convertedList;
+            }
 
 
             var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 4, 13, 4, 24)).ToList();
             var Section_two = DBIems.Where(x => IsInRange(x.StackerNo, 4, 11, 4, 12)).ToList();
             var Section_three = DBIems.Where(x => IsInRange(x.StackerNo, 4, 9, 4, 10)).ToList();
             var Section_four = DBIems.Where(x => IsInRange(x.StackerNo, 4, 1, 4, 8)).ToList();
-
-
             var Section_six = DBIems.Where(x => IsInRange(x.StackerNo, 10, 1, 10, 2)).ToList();   //10.1-10.2
             var Section_seven = DBIems.Where(x => IsInRange(x.StackerNo, 10, 3, 10, 4)).ToList(); //10.3-10.4
             var Section_eight = DBIems.Where(x => IsInRange(x.StackerNo, 10, 7, 10, 8)).ToList();     //10.7-10.8
@@ -50,44 +103,17 @@
 
 
 
+
             #region
-
-            //var Section_five = DBIems.Where(x => IsInRange(x.StackerNo, 10, 5, 10, 6) || IsInRange(x.StackerNo, 10, 11, 10, 12)).ToList();
-
             var Section_five = DBIems
                 .Where(x => IsInRange(x.StackerNo, 10, 5, 10, 6) || IsInRange(x.StackerNo, 10, 11, 10, 12))
                 .Select(x => CreateSectionFiveItem(x))
                 .ToList();
             #endregion
 
-
-
-
-
             //鑰佹満姊版墜
             var Section_ten = DBIems.Where(x => x.StackerNo == "鏈烘鎵�1")
-               .Select(x => new
-               {
-                   stackerNo = x.StackerNo,
-                   r_wheel_SN = x.R_wheel_SN,
-                   r_wheel_type = x.R_wheel_type,
-                   r_part_status = x.R_part_status,
-                   r_part_process = x.R_part_process,
-                   g_name = DBIems3.Name,
-                   g_communication_IO = DBIems3.communication_IO,
-                   g_drive_fault = DBIems3.drive_fault,
-                   g_emergency_stop_portal = DBIems3.emergency_stop_portal,
-                   g_gantry_state = DBIems3.gantry_state,
-                   g_portal_fault = DBIems3.portal_fault,
-                   g_power_on = DBIems3.power_on,
-                   g_programm_running = DBIems3.programm_running,
-                   g_ready_for_auto_start = DBIems3.ready_for_auto_start,
-                   g_ready_for_operate = DBIems3.ready_for_operate,
-                   g_state_AUTO = DBIems3.state_AUTO,
-                   g_state_JOG = DBIems3.state_JOG,
-                   g_state_MDA = DBIems3.state_MDA,
-
-               })
+                .Select(x => CreateSectionFiveItem4(x, 1))
                 .ToList();
 
 
@@ -101,9 +127,6 @@
                     r_wheel_type = x.R_wheel_type,
                     r_part_status = x.R_part_status,
                     r_part_process = x.R_part_process,
-
-
-
                 })
                 .ToList();
 
@@ -127,7 +150,24 @@
             var Section_thirteen = DBIems.Where(x => x.StackerNo == "4.11").ToList();   //瑙嗚妫�娴嬪彴
             var Section_fourteen = DBIems.Where(x => x.StackerNo == "4.12").ToList();   //瑙嗚妫�娴嬪彴
 
+
             var Section_fifteen = DBIems2.ToList();
+            if (DBIems2.Count == 0)
+            {
+                List<SectionData> sectDataList1 = new List<SectionData>();
+                var seDataList1 = new SectionData
+                {
+                    Name = "VK4",
+                    vk_state = 0,
+
+                };
+                sectDataList1.Add(seDataList1);
+                List<VKDBItem> convertedList = sectDataList1.Select(sd => new VKDBItem
+                {
+                    Name = sd.Name,
+                }).ToList();
+                Section_fifteen = convertedList;
+            }
 
             var data = new
             {
@@ -152,7 +192,7 @@
             return Ok(data);
         }
 
-        private object CreateSectionFiveItem(WheelDBItem x)
+        private object CreateSectionFiveItem(WheelDBItem x)   //杞﹀簥鏁版嵁
         {
             var stackerToMachineMap = new Dictionary<string, string>
         {
@@ -179,11 +219,17 @@
             {
                 return new
                 {
-                    StackerNo = (string)null,
-
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    c_machine_state = 0,
                 };
             }
         }
+
+
 
         [HttpGet("Four_unit_plc")]
         public IActionResult Four_unit_plc(string staname)
@@ -194,12 +240,122 @@
         }
         #endregion
 
+        #region 鍏辩敤鏂规硶锛堣緤閬�1-2锛�
+        private object CreateSectionFiveItem4(WheelDBItem x, int k) //鏈烘鎵嬫暟鎹�
+        {
+            var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry1").FirstOrDefault();
+            if (k == 2)
+            {
+                DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry2").FirstOrDefault();
+            }
+            if (DBIems3 == null)
+            {
+                return new
+                {
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    g_name = false,
+                    g_communication_IO = false,
+                    g_drive_fault = false,
+                    g_emergency_stop_portal = false,
+                    g_gantry_state = false,
+                    g_portal_fault = false,
+                    g_power_on = false,
+                    g_programm_running = false,
+                    g_ready_for_auto_start = false,
+                    g_ready_for_operate = false,
+                    g_state_AUTO = false,
+                    g_state_JOG = false,
+                    g_state_MDA = false,
+
+                };
+            }
+            else
+            {
+                return new
+                {
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    g_name = DBIems3.Name,
+                    g_communication_IO = DBIems3.communication_IO,
+                    g_drive_fault = DBIems3.drive_fault,
+                    g_emergency_stop_portal = DBIems3.emergency_stop_portal,
+                    g_gantry_state = DBIems3.gantry_state,
+                    g_portal_fault = DBIems3.portal_fault,
+                    g_power_on = DBIems3.power_on,
+                    g_programm_running = DBIems3.programm_running,
+                    g_ready_for_auto_start = DBIems3.ready_for_auto_start,
+                    g_ready_for_operate = DBIems3.ready_for_operate,
+                    g_state_AUTO = DBIems3.state_AUTO,
+                    g_state_JOG = DBIems3.state_JOG,
+                    g_state_MDA = DBIems3.state_MDA,
+
+                };
+            }
+        }
+        #endregion
+
+
         #region 杈婇亾2
         [HttpPost("Two_unit_plc")]
         public IActionResult Two_unit_plc()
         {
             var DBIems = WheelDBItem.VK4WheelDBItem;
             var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry2").FirstOrDefault();
+            if (DBIems.Count == 0)
+            {
+                List<SectionData> DBIemss = new List<SectionData>();
+                for (int i = 0; i < 32; i++)
+                {
+                    var seDataList = new SectionData
+                    {
+                        r_direction = 0,
+                        r_machine_nr = false,
+                        r_part_process = 1,
+                        r_part_status = 0,
+                        r_wheel_SN = "",
+                        r_wheel_type = 3,
+                        stackerNo = "5." + i.ToString(),
+                    };
+                    switch (i)
+                    {
+                        case 27:
+                            seDataList.stackerNo = "鏈烘鎵�2";
+                            break;
+                        case 28:
+                            seDataList.stackerNo = "20.11";
+                            break;
+                        case 29:
+                            seDataList.stackerNo = "20.12";
+                            break;
+                        case 30:
+                            seDataList.stackerNo = "20.5";
+                            break;
+                        case 31:
+                            seDataList.stackerNo = "20.6";
+                            break;
+                        default:
+                            break;
+                    }
+                    DBIemss.Add(seDataList);
+                }
+
+
+
+                List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem
+                {
+                    StackerNo = sd.stackerNo,
+                }).ToList();
+
+                DBIems = convertedList;
+            }
+
 
             List<SectionData> DataList2 = new List<SectionData>();
             var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 5, 13, 5, 24)).ToList();
@@ -226,28 +382,7 @@
 
             //鑰佹満姊版墜锛堟満搴婁綅锛�
             var Section_ten = DBIems.Where(x => x.StackerNo == "鏈烘鎵�2")
-               .Select(x => new
-               {
-                   stackerNo = x.StackerNo,
-                   r_wheel_SN = x.R_wheel_SN,
-                   r_wheel_type = x.R_wheel_type,
-                   r_part_status = x.R_part_status,
-                   r_part_process = x.R_part_process,
-                   g_name = DBIems3.Name,
-                   g_communication_IO = DBIems3.communication_IO,
-                   g_drive_fault = DBIems3.drive_fault,
-                   g_emergency_stop_portal = DBIems3.emergency_stop_portal,
-                   g_gantry_state = DBIems3.gantry_state,
-                   g_portal_fault = DBIems3.portal_fault,
-                   g_power_on = DBIems3.power_on,
-                   g_programm_running = DBIems3.programm_running,
-                   g_ready_for_auto_start = DBIems3.ready_for_auto_start,
-                   g_ready_for_operate = DBIems3.ready_for_operate,
-                   g_state_AUTO = DBIems3.state_AUTO,
-                   g_state_JOG = DBIems3.state_JOG,
-                   g_state_MDA = DBIems3.state_MDA,
-
-               })
+               .Select(x => CreateSectionFiveItem4(x, 2))
                 .ToList();
 
 
@@ -322,7 +457,12 @@
             {
                 return new
                 {
-                    StackerNo = (string)null,
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    c_machine_state = 0,
 
                 };
             }
@@ -346,7 +486,59 @@
 
             var DBIems = WheelDBItem.VK5WheelDBItem;
             var DBIems2 = VKDBItem.VK5DBItem;       //VK4鐘舵�佷俊鎭璞¢泦鍚�
-            var DBIems3 = GantryDBItem.VK5GantryDBItem.Where(x => x.Name == "Gantry3").FirstOrDefault();
+
+
+            if (DBIems.Count == 0)
+            {
+                List<SectionData> DBIemss = new List<SectionData>();
+                for (int i = 0; i < 31; i++)
+                {
+                    var seDataList = new SectionData
+                    {
+                        r_direction = 0,
+                        r_machine_nr = false,
+                        r_part_process = 0,
+                        r_part_status = 0,
+                        r_wheel_SN = "",
+                        r_wheel_type = 0,
+                        stackerNo = "6." + i.ToString(),
+                    };
+                    switch (i)
+                    {
+                        case 25:
+                            seDataList.stackerNo = "7.21";
+                            break;
+                        case 26:
+                            seDataList.stackerNo = "30.9";
+                            break;
+                        case 27:
+                            seDataList.stackerNo = "30.10";
+                            break;
+                        case 28:
+                            seDataList.stackerNo = "30.4";
+                            break;
+                        case 29:
+                            seDataList.stackerNo = "30.5";
+                            break;
+                        case 30:
+                            seDataList.stackerNo = "鏈烘鎵�3";
+                            break;
+                        default:
+                            break;
+                    }
+                    DBIemss.Add(seDataList);
+                }
+
+
+
+                List<WheelDBItem> convertedList = DBIemss.Select(sd => new WheelDBItem
+                {
+                    StackerNo = sd.stackerNo,
+                }).ToList();
+
+                DBIems = convertedList;
+            }
+
             var Section_one = DBIems.Where(x => IsInRange(x.StackerNo, 6, 13, 6, 20) || x.StackerNo == "6.24" || x.StackerNo == "7.21").ToList();
             var Section_two = DBIems.Where(x => IsInRange(x.StackerNo, 6, 11, 6, 12)).ToList();
             var Section_three = DBIems.Where(x => IsInRange(x.StackerNo, 6, 9, 6, 10)).ToList();
@@ -372,28 +564,7 @@
 
             //鑰佹満姊版墜锛堟満搴婁綅锛�
             var Section_ten = DBIems.Where(x => x.StackerNo == "鏈烘鎵�3")
-               .Select(x => new
-               {
-                   stackerNo = x.StackerNo,
-                   r_wheel_SN = x.R_wheel_SN,
-                   r_wheel_type = x.R_wheel_type,
-                   r_part_status = x.R_part_status,
-                   r_part_process = x.R_part_process,
-                   g_name = DBIems3.Name,
-                   g_communication_IO = DBIems3.communication_IO,
-                   g_drive_fault = DBIems3.drive_fault,
-                   g_emergency_stop_portal = DBIems3.emergency_stop_portal,
-                   g_gantry_state = DBIems3.gantry_state,
-                   g_portal_fault = DBIems3.portal_fault,
-                   g_power_on = DBIems3.power_on,
-                   g_programm_running = DBIems3.programm_running,
-                   g_ready_for_auto_start = DBIems3.ready_for_auto_start,
-                   g_ready_for_operate = DBIems3.ready_for_operate,
-                   g_state_AUTO = DBIems3.state_AUTO,
-                   g_state_JOG = DBIems3.state_JOG,
-                   g_state_MDA = DBIems3.state_MDA,
-
-               })
+               .Select(x => CreateSectionFiveItem4(x))
                 .ToList();
             var Section_twelve = DBIems.Where(x => x.StackerNo == "鏈烘鎵�3").ToList();      //鏂版満姊版墜锛堜笅鏂欏彛浣嶏級
 
@@ -415,6 +586,22 @@
             var Section_eleven = sectDataList7.ToList();  //娑傛补鏈�
 
             var Section_fifteen = DBIems2.ToList();
+            if (DBIems2.Count == 0)
+            {
+                List<SectionData> sectDataList1 = new List<SectionData>();
+                var seDataList1 = new SectionData
+                {
+                    Name = "VK5",
+                    vk_state = 0,
+
+                };
+                sectDataList1.Add(seDataList1);
+                List<VKDBItem> convertedList = sectDataList1.Select(sd => new VKDBItem
+                {
+                    Name = sd.Name,
+                }).ToList();
+                Section_fifteen = convertedList;
+            }
 
             var data = new
             {
@@ -464,11 +651,71 @@
             {
                 return new
                 {
-                    StackerNo = (string)null,
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    c_machine_state = 0
 
                 };
             }
         }
+        private object CreateSectionFiveItem4(WheelDBItem x) //鏈烘鎵嬫暟鎹�
+        {
+            var DBIems3 = GantryDBItem.VK5GantryDBItem.Where(x => x.Name == "Gantry3").FirstOrDefault();
+            if (DBIems3 == null)
+            {
+                return new
+                {
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    g_name = false,
+                    g_communication_IO = false,
+                    g_drive_fault = false,
+                    g_emergency_stop_portal = false,
+                    g_gantry_state = false,
+                    g_portal_fault = false,
+                    g_power_on = false,
+                    g_programm_running = false,
+                    g_ready_for_auto_start = false,
+                    g_ready_for_operate = false,
+                    g_state_AUTO = false,
+                    g_state_JOG = false,
+                    g_state_MDA = false,
+
+                };
+            }
+            else
+            {
+                return new
+                {
+                    stackerNo = x.StackerNo,
+                    r_wheel_SN = x.R_wheel_SN,
+                    r_wheel_type = x.R_wheel_type,
+                    r_part_status = x.R_part_status,
+                    r_part_process = x.R_part_process,
+                    g_name = DBIems3.Name,
+                    g_communication_IO = DBIems3.communication_IO,
+                    g_drive_fault = DBIems3.drive_fault,
+                    g_emergency_stop_portal = DBIems3.emergency_stop_portal,
+                    g_gantry_state = DBIems3.gantry_state,
+                    g_portal_fault = DBIems3.portal_fault,
+                    g_power_on = DBIems3.power_on,
+                    g_programm_running = DBIems3.programm_running,
+                    g_ready_for_auto_start = DBIems3.ready_for_auto_start,
+                    g_ready_for_operate = DBIems3.ready_for_operate,
+                    g_state_AUTO = DBIems3.state_AUTO,
+                    g_state_JOG = DBIems3.state_JOG,
+                    g_state_MDA = DBIems3.state_MDA,
+
+                };
+            }
+        }
+
 
         [HttpGet("Four_unit_plc3")]
         public IActionResult Four_unit_plc3(string staname)
@@ -477,6 +724,9 @@
 
             return Ok(data);
         }
+
+
+
         #endregion
 
 
@@ -508,7 +758,8 @@
             Idt_mes_headRepository db = new dt_mes_headRepository(volContext);
             Idt_mes_detailRepository dbs = new dt_mes_detailRepository(volContext);
             var data = db.Find(_ => true).Where(x => x.processCode == "28").OrderByDescending(x => x.CreateTime).Take(10).ToList();
-            var dataList = data.Select(x => new {
+            var dataList = data.Select(x => new
+            {
                 jobID = x.jobID,
                 drawingNo = x.drawingNo,
                 quantity = x.quantity,
@@ -517,5 +768,40 @@
             return Ok(dataList);
         }
         #endregion
+
+        #region pcs骞抽潰鍥惧簱浣嶄俊鎭�
+        [HttpPost("dt_stationinfolist")]
+        public IActionResult dt_stationinfolist()
+        {
+            VOLContext volContext = new VOLContext();
+            Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext);
+            string[] stationCodes = { "W", "A", "B", "C", "D01" };
+            List<Tuple<List<dt_stationinfo>, int>> responseData = new List<Tuple<List<dt_stationinfo>, int>>();
+            foreach (string code in stationCodes)
+            {
+                var data = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).OrderBy(a => a.stationCode).ToList();
+                int inst = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).GroupBy(a => a.line).Count();
+                responseData.Add(Tuple.Create(data, inst));
+            }
+            return Ok(responseData);
+        }
+        [HttpPost("pcs_dt_stationinfolist")]
+        public IActionResult pcs_dt_stationinfolist()
+        {
+            VOLContext volContext = new VOLContext();
+            Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext);
+            string[] stationCodes = { "X01", "X02", "X03", "S", "DD001" };
+            List<Tuple<List<dt_stationinfo>>> responseData = new List<Tuple<List<dt_stationinfo>>>();
+            foreach (string code in stationCodes)
+            {
+                var data = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).OrderBy(a => a.stationCode).ToList();
+                responseData.Add(Tuple.Create(data));
+            }
+            return Ok(responseData);
+        }
+        #endregion
+
+
+       
     }
 }

--
Gitblit v1.9.3