1
yangle
2024-07-09 a239a07d5ba48791a20af5d1b4473c61c62eb95e
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs
@@ -1,4 +1,7 @@
using Newtonsoft.Json;
using HslCommunication;
using HslCommunication.Profinet.Melsec;
using Microsoft.VisualBasic.FileIO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
@@ -25,93 +28,26 @@
        //读取数据
        private void btnReadData_Click(object sender, EventArgs e)
        {
            if (num == 0) {
                this.btnReadData.Text = "暂停";
                this.timer1.Enabled = true;
                num = 1;
            }else if (num == 1)
            if (this.HEmpCode.Text == "")
            {
                this.btnReadData.Text = "启动";
                this.timer1.Enabled = false;
                num = 0;
                MessageBox.Show("请输入员工编码");
            }
//            if (this.HEmpCode.Text == "") {
//                MessageBox.Show("请输入员工编码");
//            }
//            else
//            {
//                int year = DateTime.Now.Year;
//                string month = DateTime.Now.Month.ToString();
//                string day = DateTime.Now.Day.ToString();
//                string dataTime = DateTime.Now.ToString("yyyyMMdd");
//                ////判断是否有这个文件
//                //bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
//                bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
//                if (flag)
//                {
//                    //StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
//                    StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
//                    string FileData = stream.ReadToEnd();
//                    stream.Close();
//                    FileData = FileData.Substring(0, FileData.Length - 1);
//                    FileData = "[" + FileData + "]";
//                    //JSON序列化转换字典集合
//                    List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
//                    List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
//                    foreach (JObject item in DataList)
//                    {
//                        Dictionary<string, string> dic = new Dictionary<string, string>();
//                        foreach (var itm in item.Properties())
//                        {
//                            dic.Add(itm.Name, itm.Value.ToString());
//                        }
//                        list.Add(dic);
//                    }
//                    //获取当前时间
//                    DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
//                    DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
//                    //循环集合
//                    for (int i = 0; i < list.Count; i++)
//                    {
//                        DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
//                        if (NowTime >= ActionTime && NowTime < EndTime)
//                        {
//                            string HSourceCode = list[i]["HSouceNumber"].ToString();
//                            string HEmpCode = this.HEmpCode.Text;
//                            //string HEmpCode = "";
//                            string HType = list[i]["HBadReason"].ToString();
//                            string HBarCode = list[i]["HBadCodeSN"].ToString();
//                            int HCount = 1;
//                            string HCreateTime = list[i]["HDate"].ToString();
//                            string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
//                            string HResult = list[i]["HResult"].ToString();
//                            string HProcNumber = list[i]["HProcNumber"].ToString();
//                            int HFlag = 0;
//                            DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
//                            if (ds.Tables[0].Rows.Count == 0)
//                            {
//                                string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
//values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
//                                oCN.RunProc(sql);
//                                ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
//                            }
//                        }
//                        else
//                        {
//                            //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
//                        }
//                    }
//                }
//            }
            else
            {
                if (num == 0)
                {
                    this.btnReadData.Text = "暂停";
                    this.timer1.Enabled = true;
                    num = 1;
                }
                else if (num == 1)
                {
                    this.btnReadData.Text = "启动";
                    this.timer1.Enabled = false;
                    num = 0;
                }
            }
        }
        //员工编码回车
@@ -170,75 +106,49 @@
            }
            else
            {
                int year = DateTime.Now.Year;
                string month = DateTime.Now.Month.ToString();
                string day = DateTime.Now.Day.ToString();
                Read_Txt();
                string dataTime = DateTime.Now.ToString("yyyyMMdd");
                ////判断是否有这个文件
                //bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
                bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
            }
        }
                if (flag)
        //文本读取数据
        public void Read_Txt() {
            int year = DateTime.Now.Year;
            string month = DateTime.Now.Month.ToString();
            string day = DateTime.Now.Day.ToString();
            string dataTime = DateTime.Now.ToString("yyyyMMdd");
            ////判断是否有这个文件
            bool flag = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}.txt");
            //bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt");
            if (flag)
            {
                StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
                //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
                string FileData = stream.ReadToEnd();
                stream.Close();
                //获取条码信息
                Xt_ReadText(FileData);
                bool flag2 = File.Exists($@"D:\{year}\{month}\{day}\{dataTime}gy.txt");
                //bool flag2 = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123gy.txt");
                if (flag2)
                {
                    //StreamReader stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}.txt", Encoding.GetEncoding("gb2312"));
                    StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123.txt", Encoding.GetEncoding("gb2312"));
                    string FileData = stream.ReadToEnd();
                    stream.Close();
                    FileData = FileData.Substring(0, FileData.Length - 1);
                    FileData = "[" + FileData + "]";
                    //JSON序列化转换字典集合
                    List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                    List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
                    foreach (JObject item in DataList)
                    {
                        Dictionary<string, string> dic = new Dictionary<string, string>();
                        foreach (var itm in item.Properties())
                        {
                            dic.Add(itm.Name, itm.Value.ToString());
                        }
                        list.Add(dic);
                    }
                    //获取当前时间
                    DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
                    DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
                    //循环集合
                    for (int i = 0; i < list.Count; i++)
                    {
                        DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                        if (NowTime >= ActionTime && NowTime < EndTime)
                        {
                            string HSourceCode = list[i]["HSouceNumber"].ToString();
                            string HEmpCode = this.HEmpCode.Text;
                            //string HEmpCode = "";
                            string HType = list[i]["HBadReason"].ToString();
                            string HBarCode = list[i]["HBadCodeSN"].ToString();
                            int HCount = 1;
                            string HCreateTime = list[i]["HDate"].ToString();
                            string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                            string HResult = list[i]["HResult"].ToString();
                            string HProcNumber = list[i]["HProcNumber"].ToString();
                            int HFlag = 0;
                            DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
                            if (ds.Tables[0].Rows.Count == 0)
                            {
                                string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                                oCN.RunProc(sql);
                                ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                            }
                        }
                        else
                        {
                            //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                        }
                    }
                    stream = new StreamReader($@"D:\{year}\{month}\{day}\{dataTime}gy.txt", Encoding.GetEncoding("gb2312"));
                    //stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20231123gy.txt", Encoding.GetEncoding("gb2312"));
                    FileData = stream.ReadToEnd();
                    //获取系统参数
                    Xt_Gy_RoutBill(FileData);
                }
            }
        }
        //生产资源回车
        private void HSouce_KeyDown(object sender, KeyEventArgs e)
@@ -273,5 +183,128 @@
                MessageBox.Show(this, e.Message, "提示");
            }
        }
        public void Xt_ReadText(string FileData)
        {
            FileData = FileData.Substring(0, FileData.Length - 1);
            FileData = "[" + FileData + "]";
            //JSON序列化转换字典集合
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
            foreach (JObject item in DataList)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                foreach (var itm in item.Properties())
                {
                    dic.Add(itm.Name, itm.Value.ToString());
                }
                list.Add(dic);
            }
            //获取当前时间
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            //循环集合
            for (int i = 0; i < list.Count; i++)
            {
                DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                if (NowTime >= ActionTime && NowTime < EndTime && list[i]["HBadCodeSN"].ToString() != "")
                {
                    string HSourceCode = list[i]["HSouceNumber"].ToString();
                    string HEmpCode = this.HEmpCode.Text;
                    //string HEmpCode = "";
                    string HType = list[i]["HBadReason"].ToString();
                    string HBarCode = list[i]["HBadCodeSN"].ToString();
                    int HCount = 1;
                    string HCreateTime = list[i]["HDate"].ToString();
                    string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                    string HResult = list[i]["HResult"].ToString();
                    string HProcNumber = list[i]["HProcNumber"].ToString();
                    int HFlag = 0;
                    DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollection_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollection_SN");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                        oCN.RunProc(sql);
                        ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                    }
                }
                else
                {
                    //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                }
            }
        }
        //读取系统参数
        public void Xt_Gy_RoutBill(string FileData)
        {
            FileData = FileData.Substring(0, FileData.Length - 1);
            FileData = "[" + FileData + "]";
            //JSON序列化转换字典集合
            List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
            List<object> DataList = JsonConvert.DeserializeObject<List<object>>(FileData);
            foreach (JObject item in DataList)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                foreach (var itm in item.Properties())
                {
                    dic.Add(itm.Name, itm.Value.ToString());
                }
                list.Add(dic);
            }
            //获取当前时间
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            //循环集合
            for (int i = 0; i < list.Count; i++)
            {
                DateTime NowTime = DateTime.Parse(list[i]["HDate"].ToString());
                if (NowTime >= ActionTime && NowTime < EndTime)
                {
                    string HSourceCode = list[i]["HSouceNumber"].ToString();
                    string HEmpCode = this.HEmpCode.Text;
                    //string HEmpCode = "";
                    string HType = list[i]["HType"].ToString();
                    string HBarCode = list[i]["HBadCodeSN"].ToString();
                    double HCount = double.Parse(list[i]["HCount"].ToString());
                    string HCreateTime = list[i]["HDate"].ToString();
                    string HDate = DateTime.Parse(list[i]["HDate"].ToString()).ToString("yyyy-MM-dd");
                    string HResult = list[i]["HResult"].ToString();
                    string HProcNumber = list[i]["HProcNumber"].ToString();
                    int HFlag = 0;
                    DataSet ds = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HCreateTime='" + HCreateTime + "'", "Sb_EquipMentCollectionTechParam_SN");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        string sql = $@"insert into Sb_EquipMentCollectionTechParam_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
values('{HSourceCode}','{HEmpCode}','{HType}','{HBarCode}','{HCount}','{HCreateTime}','{HDate}','{HResult}','{HProcNumber}','{HFlag}')";
                        oCN.RunProc(sql);
                        //ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                    }
                }
                else
                {
                    //CustomWriteLog("时间不在保存范围内", DateTime.Now.ToString("yyyy-MM-dd"));
                }
            }
        }
        private void ReadyDataForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (num == 1) {
                MessageBox.Show("当前按钮未暂停,不允许关闭!");
                e.Cancel = true;
            }
            else if (MessageBox.Show("确定要关闭吗?", "确认", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
    }
}