yangle
2024-11-29 1d9f82659dbfdfd6ac0ddbb33f1fd5af1164d939
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs
@@ -122,12 +122,12 @@
            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");
            //bool flag = File.Exists($@"C:\Users\admin\Desktop\新建文件夹 (2)\20241128.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"));
                //StreamReader stream = new StreamReader($@"C:\Users\admin\Desktop\新建文件夹 (2)\20241128.txt", Encoding.GetEncoding("gb2312"));
                string FileData = stream.ReadToEnd();
                stream.Close();
@@ -201,9 +201,10 @@
                list.Add(dic);
            }
            //获取当前时间
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-1).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime ActionTime = DateTime.Parse(DateTime.Now.AddMinutes(-2).ToString("yyyy-MM-dd  HH:mm:ss"));
            DateTime EndTime = DateTime.Parse(DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd  HH:mm:00"));
            bool flag_1 = false;
            bool flag_2 = false;
            //循环集合
            for (int i = 0; i < list.Count; i++)
            {
@@ -226,10 +227,46 @@
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        string sql = $@"insert into Sb_EquipMentCollection_SN(HSourceCode,HEmpCode,HType,HBarCode,HCount,HCreateTime,HDate,HResult,HProcNumber,HFlag)
                        string HProjectNum = HBarCode.Substring(18, 8);
                        DataSet dataSet = oCN.RunProcReturn("select HBillNo from Sc_ProcessExchangeBillMain where HProjectNum='" + HProjectNum + "-1'", "Sc_ProcessExchangeBillMain");
                        if (dataSet.Tables[0].Rows.Count > 0)
                        {
                            string HBillNo = dataSet.Tables[0].Rows[0]["HBillNo"].ToString();
                            dataSet = oCN.RunProcReturn("select  * from Sc_ICMOBillStatus_Tmp where HSourceBillNo='" + HBillNo + "' and HICMOStatus='1'", "Sc_ICMOBillStatus_Tmp");
                            if (dataSet.Tables[0].Rows.Count > 0)
                            {
                                if (Get_AllowLoadData(HBarCode, HProcNumber, flag_1, out flag_2))
                                {
                                    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);
                                    oCN.RunProc(sql);
                                    ListSelect.Items.Add("条码:" + HBarCode + ",日期:" + HCreateTime + ",结果:" + HResult);
                                }
                                else
                                {
                                    flag_1 = flag_2;
                                }
                            }
                            else
                            {
                                if (!flag_1)
                                {
                                    MessageBox.Show(new Form { TopMost = true }, "条码:" + HBarCode + ",对应的流转卡:" + HBillNo + ",流转卡未开工!");
                                }
                                DBHelper.CustomWriteLog("条码:" + HBarCode + ",对应的流转卡:" + HBillNo + ",流转卡未开工!", DateTime.Now.ToString("yyyy-MM-dd"));
                                flag_1 = true;
                            }
                        }
                        else
                        {
                            if (!flag_1)
                            {
                                MessageBox.Show(new Form { TopMost = true }, "条码:" + HBarCode + ",流转卡不存在!");
                            }
                            DBHelper.CustomWriteLog("条码:" + HBarCode + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd"));
                            flag_1 = true;
                        }
                    }
                }
                else
@@ -295,6 +332,145 @@
        }
        //根据条码 判断是否保存
        public bool Get_AllowLoadData(string HBarCode, string HProcNumber, bool flag_1, out bool flag_2)
        {
            if (HBarCode.Length != 29 && HBarCode.Length != 50)
            {
                flag_2 = false;
                return false;
            }
            //判断长度是否为29位 无尘车间
            string HProcExchBillNo = "";
            string HProcExchInterID = "";
            if (HBarCode.Length == 29)
            {
                string str1 = HBarCode.Substring(18, 8);
                string str2 = HBarCode.Substring(23, 3);
                DataSet ds = oCN.RunProcReturn("select  HInterID,HBillNo from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%' or HProjectNum like'" + str2 + "-1%' order by HMakeDate desc", "Sc_ProcessExchangeBillMain");
                //判断是否能找到对应的流转卡
                if (ds.Tables[0].Rows.Count > 0)
                {
                    HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                    HProcExchInterID = ds.Tables[0].Rows[0]["HInterID"].ToString();
                }
                else
                {
                    if (!flag_1)
                    {
                        MessageBox.Show(new Form { TopMost = true }, "条码:" + HBarCode + ",流转卡不存在!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
            }
            //判断长度是否为50位  15车间
            else if (HBarCode.Length == 50)
            {
                string str1 = HBarCode.Substring(42, 8);
                DataSet ds = oCN.RunProcReturn("select  HBillNo from Sc_ProcessExchangeBillMain where HProjectNum like'" + str1 + "-1%'", "Sc_ProcessExchangeBillMain");
                //判断是否能找到对应的流转卡
                if (ds.Tables[0].Rows.Count > 0)
                {
                    HProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                }
                else
                {
                    if (!flag_1)
                    {
                        MessageBox.Show("条码:" + HBarCode + ",流转卡不存在!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + ",流转卡不存在!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
            }
            //过站控制
            DataSet ds1 = oCN.RunProcReturn(@"select   b.HProcNo,b.HProcID,p.HName from Sc_ProcessExchangeBillMain a WITH(NOLOCK)
inner join Sc_ProcessExchangeBillSub b WITH(NOLOCK) on a.HInterID=b.HInterID
left join Gy_Process p WITH(NOLOCK) on  b.HProcID=p.HItemID
where a.HBillNo='" + HProcExchBillNo + "'  and p.HNumber='" + HProcNumber + "'", "Sc_ProcessExchangeBillMain");
            string HProcID = "0";
            if (ds1.Tables[0].Rows.Count > 0)
            {
                HProcID = ds1.Tables[0].Rows[0]["HProcID"].ToString();
                string HProName = ds1.Tables[0].Rows[0]["HName"].ToString();
                ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + HProcID, "h_v_Gy_QualifiedRecordsList");
                if (ds1.Tables[0].Rows.Count == 0)
                {
                    if (!flag_1)
                    {
                        MessageBox.Show("条码:" + HBarCode + "工序:" + HProName + ",工序控制查无数据!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + "工序:" + HProName + ",工序控制查无数据!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
                else if (ds1.Tables[0].Rows[0]["HBack"].ToString() == "2")
                {
                    if (!flag_1)
                    {
                        MessageBox.Show("条码:" + HBarCode + "工序:" + HProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!");
                    }
                    DBHelper.CustomWriteLog("条码:" + HBarCode + "工序:" + HProcID + "," + ds1.Tables[0].Rows[0]["HBackRemark"].ToString() + "!", DateTime.Now.ToString("yyyy-MM-dd"));
                    flag_2 = true;
                    return false;
                }
            }
            //查询出站数量是否超过流转卡数量
            ds1 = oCN.RunProcReturn($@"select (b.HQty -sum(isnull(ou.HQty,0))-sum(isnull(ou.HBadCount,0))) HQty from Sc_ProcessExchangeBillSub b WITH(NOLOCK)
left join Sc_StationOutBillMain ou WITH(NOLOCK) on b.HInterID=ou.HProcExchInterID and b.HEntryID=ou.HProcExchEntryID
where b.HInterID={HProcExchInterID} and b.HProcID={HProcID}
group by b.HInterID,b.HEntryID,b.HQty", "Sc_ProcessExchangeBill_Out");
            if (double.Parse(ds1.Tables[0].Rows[0][0].ToString()) < 0)
            {
                if (!flag_1)
                {
                    MessageBox.Show("流转卡:" + HProcExchBillNo + ",出站数量超过流转卡数量!");
                }
                DBHelper.CustomWriteLog("流转卡:" + HProcExchBillNo + ",出站数量超过流转卡数量!", DateTime.Now.ToString("yyyy-MM-dd"));
                flag_2 = true;
                return false;
            }
            //增加产线组装追溯单
            DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + HProcID, "h_p_Gy_BarCodeBillBomList");
            if (dataSet.Tables[0].Rows.Count > 0)
            {
                //判配件数量是否等于0
                for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++)
                {
                    double SYHQty = double.Parse(dataSet.Tables[0].Rows[i]["配件数量"].ToString());
                    string HMaterNamePJ = dataSet.Tables[0].Rows[i]["配件代码"].ToString();
                    string HMaterBarCode = dataSet.Tables[0].Rows[i]["HBarCode"].ToString();
                    if (SYHQty == 0)
                    {
                        if (!flag_1)
                        {
                            MessageBox.Show("流转卡:" + HProcExchBillNo + ",配件条码:" + HMaterBarCode + ",配件代码:" + HMaterNamePJ + ",数量为0!");
                        }
                        DBHelper.CustomWriteLog("流转卡:" + HProcExchBillNo + ",配件条码:" + HMaterBarCode + ",配件代码:" + HMaterNamePJ + ",数量为0!", DateTime.Now.ToString("yyyy-MM-dd"));
                        flag_2 = true;
                        return false;
                    }
                }
            }
            flag_2 = false;
            return true;
        }
        private void ReadyDataForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (num == 1) {