From 76eef0389848065963a295c66163a630697054fa Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 07 七月 2024 09:47:01 +0800
Subject: [PATCH] PDA
---
代码管理/PCS/WCS_Server/WIDESEA_WebApi/Controllers/ReadplcController.cs | 771 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 770 insertions(+), 1 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 d49784a..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,7 +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;
@@ -13,6 +20,732 @@
[ApiController]
public class ReadplcController : Controller
{
+ #region PCS骞抽潰鍥�
+ public class SectionData //闈欐�佸弬鏁�
+ {
+ public int r_direction { get; set; }
+ public bool r_machine_nr { get; set; }
+ public int r_part_process { get; set; }
+ public int r_part_status { get; set; }
+ 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
+ [HttpPost("One_unit_plc")]
+ public IActionResult One_unit_plc()
+ {
+ var DBIems = WheelDBItem.VK4WheelDBItem; //鑾峰彇杈婇亾锛岃緭閫佺嚎淇℃伅
+ var DBIems2 = VKDBItem.VK4DBItem; //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
+ var Section_nine = DBIems.Where(x => IsInRange(x.StackerNo, 10, 9, 10, 10)).OrderByDescending(x => x.StackerNo).ToList(); //10.9-10.10
+
+
+
+
+ #region
+ 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 => CreateSectionFiveItem4(x, 1))
+ .ToList();
+
+
+
+ //鏂版満姊版墜锛堜笅鏂欏彛浣嶏級
+ var Section_twelve = 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,
+ })
+ .ToList();
+
+
+ List<SectionData> sectDataList7 = new List<SectionData>();
+ var seDataList7 = new SectionData
+ {
+ r_direction = 0,
+ r_machine_nr = false,
+ r_part_process = 1, //璇诲彇杞﹁疆闆朵欢宸ヨ壓
+ r_part_status = 0, //璇诲彇杞﹁疆闆朵欢鐘舵��
+ r_wheel_SN = "2222",
+ r_wheel_type = 3, //璇诲彇杞﹁疆绫诲瀷
+ stackerNo = "10.12",
+
+ };
+ sectDataList7.Add(seDataList7);
+
+ var Section_eleven = sectDataList7.ToList();
+
+ 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
+ {
+ Section_one,
+ Section_two,
+ Section_three,
+ Section_four,
+ Section_five,
+ Section_six,
+ Section_seven,
+ Section_eight,
+ Section_nine,
+ Section_ten, //鑰佹満姊版墜
+ Section_eleven, //娑傛补鏈�
+ Section_twelve, //鏂版満姊版墜
+ Section_thirteen, //鏈�宸﹁竟
+ Section_fourteen, //绗簩涓潬娑傛补鏈�
+ Section_fifteen //VK4淇℃伅
+
+ };
+
+ return Ok(data);
+ }
+
+ private object CreateSectionFiveItem(WheelDBItem x) //杞﹀簥鏁版嵁
+ {
+ var stackerToMachineMap = new Dictionary<string, string>
+ {
+ { "10.5", "Machine1" },
+ { "10.6", "Machine2" },
+ { "10.11", "Machine3" },
+ { "10.12", "Machine4" }
+ };
+ var machineDataLookup = MachineDBItem.VK4MachineDBItem.Where(x => x.Name == "Machine1" || x.Name == "Machine2" || x.Name == "Machine3" || x.Name == "Machine4").ToDictionary(x => x.Name, x => x); //VK4鏈哄簥瀵硅薄闆嗗悎
+ if (stackerToMachineMap.TryGetValue(x.StackerNo, out var machineName) && machineDataLookup.TryGetValue(machineName, out var machineData))
+ {
+ 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,
+ c_machine_state = machineData.machine_state,
+
+ };
+ }
+ 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,
+ c_machine_state = 0,
+ };
+ }
+ }
+
+
+
+ [HttpGet("Four_unit_plc")]
+ public IActionResult Four_unit_plc(string staname)
+ {
+ var data = MachineDBItem.VK4MachineDBItem.Where(x => x.Name == staname).ToList();
+
+ return Ok(data);
+ }
+ #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();
+ var Section_two = DBIems.Where(x => IsInRange(x.StackerNo, 5, 11, 5, 12)).ToList();
+ var Section_three = DBIems.Where(x => IsInRange(x.StackerNo, 5, 9, 5, 10)).ToList();
+ var Section_four = DBIems.Where(x => IsInRange(x.StackerNo, 5, 1, 5, 8)).ToList();
+
+
+ #region
+
+ //var Section_five = DBIems.Where(x => IsInRange(x.StackerNo, 20, 5, 20, 6) || IsInRange(x.StackerNo, 20, 11, 20, 12)).ToList(); //杞﹂棿
+
+ var Section_five = DBIems
+ .Where(x => IsInRange(x.StackerNo, 20, 5, 20, 6) || IsInRange(x.StackerNo, 20, 11, 20, 12))
+ .Select(x => CreateSectionFiveItem2(x))
+ .ToList();
+ #endregion
+
+
+ var Section_six = DBIems.Where(x => IsInRange(x.StackerNo, 20, 1, 20, 2)).ToList(); //10.1-10.2
+ var Section_seven = DBIems.Where(x => IsInRange(x.StackerNo, 20, 3, 20, 4)).ToList(); //10.3-10.4
+ var Section_eight = DBIems.Where(x => IsInRange(x.StackerNo, 20, 7, 20, 8)).ToList(); //10.7-10.8
+ var Section_nine = DBIems.Where(x => IsInRange(x.StackerNo, 20, 9, 20, 10)).OrderByDescending(x => x.StackerNo).ToList(); //10.9-10.10
+
+ //鑰佹満姊版墜锛堟満搴婁綅锛�
+ var Section_ten = DBIems.Where(x => x.StackerNo == "鏈烘鎵�2")
+ .Select(x => CreateSectionFiveItem4(x, 2))
+ .ToList();
+
+
+ var Section_twelve = DBIems.Where(x => x.StackerNo == "鏈烘鎵�2").ToList(); //鏂版満姊版墜锛堜笅鏂欏彛浣嶏級
+
+
+ List<SectionData> sectDataList7 = new List<SectionData>();
+ var seDataList7 = new SectionData
+ {
+ r_direction = 0,
+ r_machine_nr = false,
+ r_part_process = 1, //璇诲彇杞﹁疆闆朵欢宸ヨ壓
+ r_part_status = 0, //璇诲彇杞﹁疆闆朵欢鐘舵��
+ r_wheel_SN = "2222",
+ r_wheel_type = 3, //璇诲彇杞﹁疆绫诲瀷
+ stackerNo = "20.12",
+
+ };
+ sectDataList7.Add(seDataList7);
+
+ var Section_eleven = sectDataList7.ToList(); //娑傛补鏈�
+
+ var Section_thirteen = DBIems.Where(x => x.StackerNo == "5.11").ToList(); //瑙嗚妫�娴嬪彴
+ var Section_fourteen = DBIems.Where(x => x.StackerNo == "5.12").ToList(); //瑙嗚妫�娴嬪彴
+
+ var data = new
+ {
+ Section_one,
+ Section_two,
+ Section_three,
+ Section_four,
+ Section_five,
+ Section_six,
+ Section_seven,
+ Section_eight,
+ Section_nine,
+ Section_ten,
+ Section_eleven,
+ Section_twelve,
+ Section_thirteen,
+ Section_fourteen
+
+ };
+
+ return Ok(data);
+ }
+
+ private object CreateSectionFiveItem2(WheelDBItem x)
+ {
+ var stackerToMachineMap = new Dictionary<string, string>
+ {
+ { "20.5", "Machine5" },
+ { "20.6", "Machine6" },
+ { "20.11", "Machine7" },
+ { "20.12", "Machine8" }
+ };
+ var machineDataLookup = MachineDBItem.VK4MachineDBItem.Where(x => x.Name == "Machine5" || x.Name == "Machine6" || x.Name == "Machine7" || x.Name == "Machine8").ToDictionary(x => x.Name, x => x); //VK4鏈哄簥瀵硅薄闆嗗悎
+ if (stackerToMachineMap.TryGetValue(x.StackerNo, out var machineName) && machineDataLookup.TryGetValue(machineName, out var machineData))
+ {
+ 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,
+ c_machine_state = machineData.machine_state,
+
+ };
+ }
+ 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,
+ c_machine_state = 0,
+
+ };
+ }
+ }
+
+ [HttpGet("Four_unit_plc2")]
+ public IActionResult Four_unit_plc2(string staname)
+ {
+ var data = MachineDBItem.VK4MachineDBItem.Where(x => x.Name == staname).ToList();
+
+ return Ok(data);
+ }
+ #endregion
+
+
+
+ #region 杈婇亾3
+ [HttpPost("Three_unit_plc")]
+ public IActionResult Three_unit_plc()
+ {
+
+ var DBIems = WheelDBItem.VK5WheelDBItem;
+ var DBIems2 = VKDBItem.VK5DBItem; //VK4鐘舵�佷俊鎭璞¢泦鍚�
+
+
+ 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();
+ var Section_four = DBIems.Where(x => IsInRange(x.StackerNo, 6, 1, 6, 8)).ToList();
+ var Section_thirteen = DBIems.Where(x => IsInRange(x.StackerNo, 6, 21, 6, 23)).ToList();
+
+ //杞﹂棿
+ #region
+
+ //var Section_five = DBIems.Where(x => IsInRange(x.StackerNo, 30, 4, 30, 5) || IsInRange(x.StackerNo, 30, 9, 30, 10)).ToList(); //杞﹂棿
+
+ var Section_five = DBIems
+ .Where(x => IsInRange(x.StackerNo, 30, 4, 30, 5) || IsInRange(x.StackerNo, 30, 9, 30, 10))
+ .Select(x => CreateSectionFiveItem3(x))
+ .ToList();
+ #endregion
+
+
+ var Section_six = DBIems.Where(x => x.StackerNo == "30.1").ToList(); //30.7
+ var Section_seven = DBIems.Where(x => IsInRange(x.StackerNo, 30, 2, 30, 3)).ToList(); //30.2-30.3
+ var Section_eight = DBIems.Where(x => x.StackerNo == "30.6").ToList(); //30.6
+ var Section_nine = DBIems.Where(x => IsInRange(x.StackerNo, 30, 7, 30, 8)).ToList(); //30.7-30.8
+
+ //鑰佹満姊版墜锛堟満搴婁綅锛�
+ var Section_ten = DBIems.Where(x => x.StackerNo == "鏈烘鎵�3")
+ .Select(x => CreateSectionFiveItem4(x))
+ .ToList();
+ var Section_twelve = DBIems.Where(x => x.StackerNo == "鏈烘鎵�3").ToList(); //鏂版満姊版墜锛堜笅鏂欏彛浣嶏級
+
+
+ List<SectionData> sectDataList7 = new List<SectionData>();
+ var seDataList7 = 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 = "30.12",
+
+ };
+ sectDataList7.Add(seDataList7);
+
+ 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
+ {
+ Section_one,
+ Section_two,
+ Section_three,
+ Section_four,
+ Section_five,
+ Section_six,
+ Section_seven,
+ Section_eight,
+ Section_nine,
+ Section_ten,
+ Section_eleven,
+ Section_twelve,
+ Section_thirteen,
+ Section_fifteen
+ };
+
+ return Ok(data);
+ }
+
+ private object CreateSectionFiveItem3(WheelDBItem x)
+ {
+ var stackerToMachineMap = new Dictionary<string, string>
+ {
+ { "30.4", "Machine9" },
+ { "30.5", "Machine10" },
+ { "30.9", "Machine11" },
+ { "30.10", "Machine12" }
+ };
+ var machineDataLookup = MachineDBItem.VK5MachineDBItem.Where(x => x.Name == "Machine9" || x.Name == "Machine10" || x.Name == "Machine11" || x.Name == "Machine12").ToDictionary(x => x.Name, x => x); //VK4鏈哄簥瀵硅薄闆嗗悎
+ if (stackerToMachineMap.TryGetValue(x.StackerNo, out var machineName) && machineDataLookup.TryGetValue(machineName, out var machineData))
+ {
+ 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,
+ c_machine_state = machineData.machine_state,
+
+ };
+ }
+ 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,
+ 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)
+ {
+ var data = MachineDBItem.VK5MachineDBItem.Where(x => x.Name == staname).ToList();
+
+ return Ok(data);
+ }
+
+
+
+ #endregion
+
+
+
+ // 杈呭姪鏂规硶锛氭鏌ョ粰瀹氱殑 stackerNo 鏄惁鍦ㄦ寚瀹氱殑鑼冨洿鍐�
+ private bool IsInRange(string stackerNo, int startRow, int startColumn, int endRow, int endColumn)
+ {
+ string[] parts = stackerNo.Split('.');
+ if (parts.Length != 2)
+ return false;
+
+ if (!int.TryParse(parts[0], out int row) || !int.TryParse(parts[1], out int column))
+ return false;
+
+ return row == startRow && column >= startColumn && row == endRow && column <= endColumn;
+ }
+ #endregion
+
+
#region 绗簲鏉垮潡锛堟柊澧炲唴瀹癸級
/// <summary>
/// 宸ュ崟淇℃伅VV_Workinfo
@@ -25,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,
@@ -34,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