yangle
2025-04-11 7bfb447cbba9524639300a74b0b0a86b40176e63
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs
@@ -195,6 +195,7 @@
        public void Xt_ReadText(string FileData)
        {
            //获取文本所有数据
            FileData = FileData.Substring(0, FileData.Length - 1);
            FileData = "[" + FileData + "]";
            //JSON序列化转换字典集合
@@ -239,8 +240,10 @@
                        DataSet dataSet;
                       
                        string HProjectNum = HBarCode.Substring(18, 8);
                        //通过截取项目号 如果第一条数据的项目号跟后面的一样 就不进行判断
                        if (HBarCode.Contains(AllProcessExchange)==false) {
                            //判断流转卡是否存在
                            dataSet = oCN.RunProcReturn("select HInterID,HBillNo from Sc_ProcessExchangeBillMain where HProjectNum='" + HProjectNum + "-1'", "Sc_ProcessExchangeBillMain");
                            if (dataSet.Tables[0].Rows.Count > 0) {
                                AllProcessExchangeHProcExchBillNo = dataSet.Tables[0].Rows[0]["HBillNo"].ToString();
@@ -248,10 +251,12 @@
                                AllProcessExchange = HProjectNum;
                            }
                        }
                        //判断截取的项目号 跟赋值的项目号是否一样 需要先满足上面的条件
                        if (AllProcessExchange == HProjectNum)
                        {
                            //通过截取项目号 如果第一条数据的项目号跟后面的一样 就不进行判断
                            if (HBarCode.Contains(AllBeginWork) == false) {
                                //判断当前流转卡对应的工序数据是否开工
                                dataSet = oCN.RunProcReturn("select  * from Sc_ICMOBillStatus_Tmp where HSourceBillNo='" + AllProcessExchangeHProcExchBillNo + "' and HICMOStatus<>'0'", "Sc_ICMOBillStatus_Tmp");
                                if (dataSet.Tables[0].Rows.Count > 0)
@@ -260,10 +265,12 @@
                                }
                            }
                            //满足上述条件 并且项目号 和赋值项目号一样 则进行新增
                            if (AllBeginWork == HProjectNum)
                            {
                                if (Get_AllowLoadData(HBarCode, HProcNumber, flag_1, AllProcessExchangeHProcExchBillNo, AllProcessExchangeHProcExchInterID, 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);
@@ -369,6 +376,7 @@
        //根据条码 判断是否保存
        public bool Get_AllowLoadData(string HBarCode, string HProcNumber, bool flag_1,string HProcExchBillNo,string HProcExchInterID, out bool flag_2)
        {
            //判断条码的长度
            if (HBarCode.Length != 29 && HBarCode.Length != 50)
            {
                flag_2 = false;
@@ -392,6 +400,7 @@
                }
                else
                {
                    //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
@@ -404,7 +413,8 @@
                }
            }
            DataSet ds1;
            //第一次流转卡+工序和后面的做对比 如果是同一个流转卡就不进行判断
            if ((HProcExchBillNo + HProcNumber) != AllSNBarcodeProcCtrl) {
                
                //查询工序
@@ -425,14 +435,16 @@
                AllSNBarcodeProcCtrl = HProcExchBillNo + HProcNumber;
            }
            //第一次流转卡+工序和后面的做对比 如果是同一个流转卡就不进行判断
            if ((HProcExchBillNo + HProcNumber) == AllSNBarcodeProcCtrl)
            {
                //过站控制
                //判断当前工序对应的条码是否上道工序过站
                ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + AllHProcID, "h_p_Sc_SNBarcodeProcCtrl_S");
                if (ds1.Tables[0].Rows.Count == 0)
                {
                    //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
@@ -445,6 +457,7 @@
                }
                else if (ds1.Tables[0].Rows[0]["HBack"].ToString() == "2")
                {
                    //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
@@ -461,14 +474,17 @@
                ds1 = oCN.RunProcReturn($@"select ({AllHQty}-sum(isnull(ou.HQty,0))-sum(isnull(ou.HBadCount,0))) HQty from Sc_StationOutBillMain ou WITH(NOLOCK)
where ou.HProcExchInterID={HProcExchInterID} and ou.HProcID={AllHProcID}
group by  ou.HProcExchInterID,ou.HProcExchEntryID,ou.HQty", "Sc_StationOutBillMain");
            //获取流转卡数量
            double hqtyOut = AllHQty;
            if (ds1.Tables[0].Rows.Count > 0) {
                hqtyOut = double.Parse(ds1.Tables[0].Rows[0][0].ToString());
            }
            //流转卡数量-出站单数量大于0
            if (hqtyOut <= 0)
            {
                //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                {
                    time = DateTime.Now;
@@ -483,6 +499,7 @@
            if (HProcNumber != "013")
            {
                //增加产线组装追溯单
                //查询当前流转卡对应的工序有没有配件信息,如果有 则判断配件单的数量是否为0
                DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + AllHProcID, "h_p_Gy_BarCodeBillBomList");
                if (dataSet.Tables[0].Rows.Count > 0)
                {
@@ -494,6 +511,7 @@
                        string HMaterBarCode = dataSet.Tables[0].Rows[i]["HBarCode"].ToString();
                        if (SYHQty == 0)
                        {
                            //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                            if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                            {
                                time = DateTime.Now;