| | |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using WIDESEA_Comm; |
| | | using WIDESEA_Core.EFDbContext; |
| | | using WIDESEA_Core.Extensions; |
| | | using WIDESEA_WCS.IRepositories; |
| | |
| | | [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; } |
| | | } |
| | | |
| | | #region è¾é1 |
| | | [HttpPost("One_unit_plc")] |
| | | public IActionResult One_unit_plc() |
| | | { |
| | | var DBIems = WheelDBItem.VK4WheelDBItem; //è·åè¾éï¼è¾éçº¿ä¿¡æ¯ |
| | | var DBIems2 = VKDBItem.VK4DBItem; //VK4ç¶æä¿¡æ¯å¯¹è±¡éå |
| | | var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry1").FirstOrDefault(); // VK4æ¡æ¶æºæ¢°æå¯¹è±¡éå |
| | | |
| | | |
| | | |
| | | 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)).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, |
| | | |
| | | }) |
| | | .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(); |
| | | |
| | | 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 = (string)null, |
| | | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | [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 è¾é2 |
| | | [HttpPost("Two_unit_plc")] |
| | | public IActionResult Two_unit_plc() |
| | | { |
| | | var DBIems = WheelDBItem.VK4WheelDBItem; |
| | | var DBIems3 = GantryDBItem.VK4GantryDBItem.Where(x => x.Name == "Gantry2").FirstOrDefault(); |
| | | |
| | | 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 => 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, |
| | | |
| | | }) |
| | | .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 = (string)null, |
| | | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | [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ç¶æä¿¡æ¯å¯¹è±¡éå |
| | | var DBIems3 = GantryDBItem.VK5GantryDBItem.Where(x => x.Name == "Gantry3").FirstOrDefault(); |
| | | 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 => 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, |
| | | |
| | | }) |
| | | .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(); |
| | | |
| | | 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 = (string)null, |
| | | |
| | | }; |
| | | } |
| | | } |
| | | |
| | | [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 |