FrmIDConfig.cs 10.2 KB

using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
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;

namespace OnlineStore.ACSingleStore
{
    public partial class FrmIdConfig : FrmBase
    {
        public delegate void PwdOK(int type);
        public event PwdOK PwdOKFun;
       
        private string cid = "";
        private string cid1 = "";
        private string cid2 = "";
        private int LeftId = 0;
        private int RightId = 0;

        public FrmIdConfig()
        {
            //StoreId = storeId;
            InitializeComponent();
        }

        private void FrmPwd_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void LoadData()
        {

            cid = StoreManager.Config.CID;
            cid1 = StoreManager.Store.BoxMap[1].CID;
            cid2 = StoreManager.Store.BoxMap[2].CID;
            LeftId = StoreManager.Store.BoxConfigMap[1].GetStoreId();
            RightId = StoreManager.Store.BoxConfigMap[2].GetStoreId();

            this.DialogResult = DialogResult.None;
            txthttpAddr.Text = ConfigAppSettings.GetValue(Setting_Init.http_server);
            txtLineAddr.Text = ConfigAppSettings.GetValue(Setting_Init.LineServerIp);
            cmbId.Items.Clear();
            int index = 0;
            
            cmbId.Items.Add("D2D1");
            cmbId.Items.Add("D4D3");
            cmbId.Items.Add("D6D5");
            List<string> cids = new List<string>() { "D2D1", "D4D3" , "D6D5" };
            index = cids.IndexOf(cid);
            cmbId.SelectedIndex = index;
           
            LoadPos();
            lblLeftCid.Text = "左侧 : " + cid1;
            lblRightCid.Text = "右侧 : " + cid2;
             
        }

         private List<string> allList1 = new List<string>();
        private List<string> allList2 = new List<string>();
        private void LoadPos()
        {
            allList1 = new List<string>(StoreManager.Store.BoxMap[1].PositionNumList);
            allList1.Insert(0, " ---暂无--- ");
            LoadLocationCom(1, 7, cmbPosition7, allList1);
            LoadLocationCom(1, 11, cmbPosition11, allList1);
            LoadLocationCom(1, 13, cmbPosition13, allList1);
            LoadLocationCom(1, 15, cmbPosition15, allList1);
            allList2 = new List<string>(StoreManager.Store.BoxMap[2].PositionNumList);
            allList2.Insert(0, " ---暂无--- ");
            LoadLocationCom(2, 7, cmbBox2_7, allList2);
            LoadLocationCom(2, 11, cmbBox2_11, allList2);
            LoadLocationCom(2, 13, cmbBox2_13, allList2);
            LoadLocationCom(2, 15, cmbBox2_15, allList2);
        }

        private void LoadLocationCom(int storeId,int width,ComboBox com,List<string> allList)
        {
            com.DataSource =new List<string>( allList);
            string posId = StoreManager.GetLocationPosId(storeId, width);
            int index = allList.IndexOf(posId);
            if (index >0)
            {
                com.SelectedIndex = index;
            }
            else
            {
                com.SelectedIndex = 0; 
            }
            foreach(string str in allList)
            { 
                com.AutoCompleteCustomSource.Add(str);
            }
            com.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }

        private void btnNext_Click(object sender, EventArgs e)
        {
            SaveConfig();
        }
        private void SaveConfig()
        {
            //int index = cmbId.SelectedIndex + 1;
            DialogResult result = MessageBox.Show("更改料仓为[" + cid + "],左侧CID ["+cid1+"],右侧CID ["+cid2+"] \r\n 重启客户端后生效", "确认提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (result.Equals(DialogResult.OK))
            {
                //string storeCID = "line-ac-" + index.ToString().PadLeft(2, '0');
                ConfigAppSettings.SaveValue(Setting_Init.Store_CID, cid);
                ConfigAppSettings.SaveValue(Setting_Init.Store_CID + "_1", cid1);
                ConfigAppSettings.SaveValue(Setting_Init.Store_CID + "_2", cid2);


                //如果总配置文件存在,保存到总的配置文件
                string filePath1 = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config).Replace(".csv", "_1.csv");
                bool re = LoadCSVLibrary.CSVPositionReader<ACStorePosition>.UpdatePostion(filePath1, LeftId);
                //LogUtil.info("更新文件(" + LeftId + "):" + filePath1 + " 结果:" + re);
                string filePath2 = Application.StartupPath + ConfigAppSettings.GetValue(Setting_Init.Store_Position_Config).Replace(".csv", "_2.csv");
                re = LoadCSVLibrary.CSVPositionReader<ACStorePosition>.UpdatePostion(filePath2, RightId);
                //LogUtil.info("更新文件(" + RightId + "):" + filePath2 + " 结果:" + re);

                string httpstr = txthttpAddr.Text.Trim();
                ConfigAppSettings.SaveValue(Setting_Init.http_server, httpstr);
                string lineStr = txtLineAddr.Text.Trim();
                ConfigAppSettings.SaveValue(Setting_Init.LineServerIp, lineStr); 

                LogUtil.info("更改料仓为[" + cid + "],左侧CID [" + cid1 + "],右侧ICID [" + cid2 + "],http_server ["+httpstr+"] ,LineServerIp ["+lineStr+"] ");
                MessageBox.Show("保存成功,请重启客户端");
                this.DialogResult = DialogResult.OK;
            }
        }
        private void btnBack_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        private void FrmPwd_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode.Equals(Keys.Enter))
            {
                btnNext_Click(null, null);
            }
        }

        private void txtPwd_KeyDown(object sender, KeyEventArgs e)
        { 
            if (e.KeyCode.Equals(Keys.Enter))
            {
                btnNext_Click(null, null);
            }else if (e.KeyCode.Equals(Keys.Escape))
            {
                btnBack_Click(null, null);
            }
        }

        private void FrmPwd_Shown(object sender, EventArgs e)
        { 

        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txthttpAddr.Text = "http://10.85.162.124/myproject/";
            txtLineAddr.Text = "10.85.162.124";
        }

        private void cmbPosition7_MouseLeave(object sender, EventArgs e)
        {
            try
            {
                ComboBox box = (ComboBox)sender;
                string value = box.Text;
                if (allList1.Contains(value.Trim()))
                {

                }
                else
                {
                    box.Text = allList1[0];
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("cmbPosition7_MouseLeave 出错:" + ex.ToString());
            }
        }

        private void btnSavePosID_Click(object sender, EventArgs e)
        {
            SavePosition();
        }

        private void SaveP(int storeId, ComboBox box, int width)
        {
            string key = Setting_Init.Location_PosID_ + storeId + "_" + width;
            if (storeId.Equals(1))
            {
                string value = box.Text;
                if (!allList1.Contains(value))
                {
                    box.Text = allList1[0];
                    value = allList1[0];
                }
                if (value.Equals(allList1[0]))
                {
                    value = "";
                }
                ConfigAppSettings.SaveValue(key, value);
                LogUtil.info("更改配置:【" + key + "】=【" + value + "】");
            }
            else if (storeId.Equals(2))
            {
                string value = box.Text;
                if (!allList2.Contains(value))
                {
                    box.Text = allList2[0];
                    value = allList2[0];
                }
                if (value.Equals(allList2[0]))
                {
                    value = "";
                }
                ConfigAppSettings.SaveValue(key, value);
                LogUtil.info("更改配置:【" + key + "】=【" + value + "】");
            }
        }
        private void cmbId_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = cmbId.SelectedIndex;
            if (index >= 0)
            {
                int num = index + 1;
                cid = cmbId.Text;
                
                LeftId = Convert.ToInt32(cid.Substring(1, 1));
                RightId = Convert.ToInt32(cid.Substring(3, 1));
                cid1 = "line-ac-0" + cid.Substring(1, 1);
                cid2 = "line-ac-0" + cid.Substring(3, 1);

                lblLeftCid.Text = "左侧 : " + cid1;
                lblRightCid.Text = "右侧 : " + cid2;
            }
        }

     
        private void SavePosition()
        {

            try
            {
                SaveP(1,cmbPosition7, 7);
                SaveP(1,cmbPosition11, 11);
                SaveP(1,cmbPosition13, 13);
                SaveP(1,cmbPosition15, 15);

                SaveP(2, cmbBox2_7, 7);
                SaveP(2, cmbBox2_11, 11);
                SaveP(2, cmbBox2_13, 13);
                SaveP(2, cmbBox2_15, 15);
                MessageBox.Show("保存定位库位成功");
            }
            catch (Exception ex)
            {
                LogUtil.error("btnSavePosID_Click 出错:" + ex.ToString());
            }
        }
        private void cmbBox2_15_MouseLeave(object sender, EventArgs e)
        {
            try
            {
                ComboBox box = (ComboBox)sender;
                string value = box.Text;
                if (allList2.Contains(value.Trim()))
                {

                }
                else
                {
                    box.Text = allList2[0];
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("cmbBox2_15_MouseLeave 出错:" + ex.ToString());
            }
        }
    }
}