using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WCS_Client.Models; namespace WCS_Client.From { public partial class Form_SystemSet : Form { public Form_SystemSet() { InitializeComponent(); Init(); } private static Form_SystemSet childFromInstanc; public static Form_SystemSet ChildFromInstanc { get { if (childFromInstanc == null || childFromInstanc.IsDisposed) { childFromInstanc = new Form_SystemSet(); } return childFromInstanc; } } private void Init() { TryCachHelper.TryExecute((db) => { var wcs_sysset = db.Queryable().ToList(); var wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm01"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_01.Checked = true; } else { rdoBtnDisable_01.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm02"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_02.Checked = true; } else { rdoBtnDisable_02.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm03"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_03.Checked = true; } else { rdoBtnDisable_03.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm04"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_04.Checked = true; } else { rdoBtnDisable_04.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm05"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_05.Checked = true; } else { rdoBtnDisable_05.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm06"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_06.Checked = true; } else { rdoBtnDisable_06.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm07"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_07.Checked = true; } else { rdoBtnDisable_07.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm08"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnable_08.Checked = true; } else { rdoBtnDisable_08.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "Rgv02_Mode"); if (wcs_sys_srm.SET_VALUE == "3") { rdoBtnRGV2Mode_03.Checked = true; } else if (wcs_sys_srm.SET_VALUE == "4") { rdoBtnRGV2Mode_04.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "ConveyorBox_1F"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnableAGV_01.Checked = true; } else { rdoBtnDisableAGV_01.Checked = true; } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "ConveyorBox_2F"); if (wcs_sys_srm.SET_VALUE == "0") { rdoBtnEnableAGV_02.Checked = true; } else { rdoBtnDisableAGV_02.Checked = true; } }); } private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } private void btnSave_Click(object sender, EventArgs e) { string result = TryCachHelper.TryTranExecute((db) => { var wcs_sysset = db.Queryable().ToList(); var wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm01"); if (rdoBtnEnable_01.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_01.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm02"); if (rdoBtnEnable_02.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_02.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm03"); if (rdoBtnEnable_03.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_03.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm04"); if (rdoBtnEnable_04.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_04.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm05"); if (rdoBtnEnable_05.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_05.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm06"); if (rdoBtnEnable_06.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_06.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm07"); if (rdoBtnEnable_07.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_07.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "srm08"); if (rdoBtnEnable_08.Checked && wcs_sys_srm.SET_VALUE == "1") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisable_08.Checked && wcs_sys_srm.SET_VALUE == "0") { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "Rgv02_Mode"); if (rdoBtnRGV2Mode_03.Checked && wcs_sys_srm.SET_VALUE != "3") { wcs_sys_srm.SET_VALUE = "3"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnRGV2Mode_04.Checked && wcs_sys_srm.SET_VALUE != "4") { wcs_sys_srm.SET_VALUE = "4"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "ConveyorBox_1F"); if(rdoBtnEnableAGV_01.Checked && wcs_sys_srm.SET_VALUE != "0") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisableAGV_01.Checked && wcs_sys_srm.SET_VALUE != "1") { //检测是否存在未完成的出库任务,存在则不可启用 var agvtasks = db.Queryable().Where(v => v.TASKTYPE.Trim() == "1" && v.WKSTATUS < 99); if (agvtasks.Where(v => v.STARTPOS.Contains("2285") || v.STARTPOS.Contains("2284") || v.STARTPOS.Contains("2275") || v.STARTPOS.Contains("2274")).Count() > 0) { throw new Exception(string.Format("一楼存在未完成的出库AGV任务,不可禁用。")); } else { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } } wcs_sys_srm = wcs_sysset.FirstOrDefault(v => v.SET_ID == "ConveyorBox_2F"); if (rdoBtnEnableAGV_02.Checked && wcs_sys_srm.SET_VALUE != "0") { wcs_sys_srm.SET_VALUE = "0"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } else if (rdoBtnDisableAGV_02.Checked && wcs_sys_srm.SET_VALUE != "1") { //检测是否存在未完成的出库任务,存在则不可启用 var agvtasks = db.Queryable().Where(v => v.TASKTYPE.Trim() == "1" && v.WKSTATUS < 99); if (agvtasks.Where(v => v.STARTPOS.Contains("2390") || v.STARTPOS.Contains("2383") || v.STARTPOS.Contains("2375") || v.STARTPOS.Contains("2373")).Count() > 0) { throw new Exception(string.Format("二楼存在未完成的出库AGV任务,不可禁用。")); } else { wcs_sys_srm.SET_VALUE = "1"; //更新 db.Updateable(wcs_sys_srm).UpdateColumns(it => new { it.SET_VALUE }).ExecuteCommand(); } } }); if (string.IsNullOrWhiteSpace(result)) { MessageBox.Show("系统配置更新成功"); } else { MessageBox.Show(result); Init(); } } } }