yangle
2025-04-11 7bfb447cbba9524639300a74b0b0a86b40176e63
注释优化
17个文件已修改
2个文件已添加
170 ■■■■ 已修改文件
WFormSynchronizeData_SMR/.vs/WFormSynchronizeData_SMR/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/EquipmentCollectionForm/EquipmentCollectionForm.cs 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/DesignTimeResolveAssemblyReferences.cache 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/EquipmentCollectionForm.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/EquipmentCollectionForm.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/JZ_ReadDate.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/Program.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCoordinateExcelFrom.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadyDataForm.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/ZZ_GlueWeigh.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug.rar 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug/WFormReadData_SMR.exe 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug/WFormReadData_SMR.pdb 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.exe 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.pdb 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/WFormSynchronizeData_SMR/Form1.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WFormSynchronizeData_SMR/.vs/WFormSynchronizeData_SMR/v16/.suo
Binary files differ
WFormSynchronizeData_SMR/EquipmentCollectionForm/EquipmentCollectionForm.cs
@@ -265,6 +265,7 @@
            if (dr == DialogResult.Yes) {
                string Url = DBHelper.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "sUrl");
                //通过接口 获取token
                JsonResult jsonResult = await FindAccessToken(Url);
                string EquipFile = this.cmbEquipFile.Text;
@@ -290,6 +291,7 @@
            try
            {
               
                //获取所有设备数据
                JsonEquipmentData jsonResult =await FindDeviceList(url, token);
                if (jsonResult.code != "0")
@@ -300,7 +302,7 @@
                else
                {
                    string nos = "";
                    //获取去设备编码
                    //获取设备编码
                    for (int i = 0; i < jsonResult.data.Count; i++)
                    {
                        if (jsonResult.data[i].no == this.cmbEquipFile.SelectedValue.ToString())
@@ -308,8 +310,11 @@
                            nos = jsonResult.data[i].no;
                        }
                    }
                    //开始时间
                    string HBegin = this.txtBegin.Text;
                    //结束时间
                    string HEnd = this.txtEnd.Text;
                    //获取不良数,合数数,可疑数 总数
                    jsonResult = await FindDevicePropCalc(url, token, nos, HBegin, HEnd);
                    if (jsonResult.code != "0")
                    {
@@ -405,9 +410,12 @@
                                        decimal HUpLimit = 0;
                                        decimal HDownLimit = 0;
                                        //分析方法 为定量分析
                                        if (HAnalysisMethod == "2")
                                        {
                                           //获取上限
                                            HUpLimit = decimal.Parse(dataSet.Tables[0].Rows[i]["HTargetVal"].ToString()) + decimal.Parse(dataSet.Tables[0].Rows[i]["HUpLimit"].ToString());
                                            //获取下限
                                            HDownLimit = decimal.Parse(dataSet.Tables[0].Rows[i]["HTargetVal"].ToString()) + decimal.Parse(dataSet.Tables[0].Rows[i]["HDownLimit"].ToString());
                                        }
@@ -429,16 +437,19 @@
                                                    break;
                                            }
                                            //SRM@101.2@VEN00005@CGDD000167@1.02.002.002@20231129@1000
                                            //判断检验项目的代码 跟列名是否一致
                                            if (dataSet.Tables[0].Rows[i]["HQCCheckItemNumber"].ToString().Contains(HQCCheckItemName))
                                            {
                                                for (int k = 0; k < dt.Rows.Count; k++)
                                                {
                                                    //只取时间范围内的数据
                                                    if (DateTime.Parse(dt.Rows[k]["HDate"].ToString()) >= DateTime.Parse(HBegin) && DateTime.Parse(dt.Rows[k]["HDate"].ToString()) <= DateTime.Parse(HEnd))
                                                    {
                                                        //获取检验值
                                                        decimal HInSpectValue = decimal.Parse(dt.Rows[k][dt.Columns[j].ColumnName].ToString());
                                                        //默认值结论为合格
                                                        int HInSpectResult = 1;
                                                        //定量分析 进行判断是否满足上下限
                                                        if (HAnalysisMethod == "2")
                                                        {
                                                            HInSpectResult = (HInSpectValue > HUpLimit || HDownLimit > HInSpectValue) ? 0 : 1;
@@ -448,7 +459,7 @@
                                                            HInSpectResult = int.Parse(HInSpectValue.ToString());
                                                        }
                                                        //如果当前结论为合格 并且历史结论也是合格 则继续保持合格
                                                        if (HInSpectResult == 1 && HLastResult != 0)
                                                        {
                                                            HLastResult = 1;
@@ -486,7 +497,7 @@
                        ",0,0,'',0,'','" + dataSet.Tables[0].Rows[i]["HTargetVal"].ToString() + "'" +
                        ",'" + dataSet.Tables[0].Rows[i]["HUpLimit"].ToString() + "','" + dataSet.Tables[0].Rows[i]["HDownLimit"].ToString() + "','','',0,'" + HAnalysisMethod + "'," + dataSet.Tables[0].Rows[i]["HInspectInstruMentID"].ToString() + ",'" + HLastResult + "'" +
                        ") ");
                                        //如果当前结论为合格 并且历史结论也是合格 则继续保持合格
                                        if (HLastResult == 1 && HLastResults != 0)
                                        {
                                            HLastResults = 1;
@@ -924,6 +935,7 @@
            //TimeDate = "2025-02-10 13:10:50";
            //time = "2025-02-10 13:11:50";
            //获取所有设备数据
            JsonEquipmentData jsonResult = await FindDeviceList(Url, token);
            if (jsonResult.code != "0")
            {
@@ -932,7 +944,7 @@
            else {
                string nos = "";
                //获取去设备编码
                //获取设备编码
                for (int i = 0; i < jsonResult.data.Count; i++)
                {
                    nos += jsonResult.data[i].no + ",";
@@ -946,21 +958,32 @@
                    //}
                }
                nos = nos.Substring(0, nos.Length - 1);
                //获取参数 获取每个设备对应的所有参数
                JsonEquipmentData jsonEquipment = await FindAllDevicePropsDetailByTimeRange(Url, token, nos, TimeDate, time);
                var JsonData = "{\"data\":[";
                CustomWriteLog("01" , DateTime.Now.ToString("yyyy-MM-dd"));
                //通过每个设备进行循环赋值
                for (int i = 0; i < jsonEquipment.data.Count; i++)
                {
                    //获取设备对应的编码 判断编码是否满足为螺母压装设备
                    if (jsonEquipment.data[i].deviceNo.Contains("CMR-ZZ-SE-"))
                    {
                        //循环 螺母压装设备对应的所有工艺参数
                        for (int j = 0; j < jsonEquipment.data[i].props.Count; j++)
                        {
                            //循环 每个参数对应的所有数据
                            for (int k = 0; k < jsonEquipment.data[i].props[j].datas.Count; k++)
                            {
                                //日志
                                CustomWriteLog("1-" + k + ":" + jsonEquipment.data[i].props[j].datas[k].value, DateTime.Now.ToString("yyyy-MM-dd"));
                                //获取参数的类型
                                valueData value = JsonConvert.DeserializeObject<valueData>(jsonEquipment.data[i].props[j].datas[k].value);
                                //日志
                                CustomWriteLog("2", DateTime.Now.ToString("yyyy-MM-dd"));
                                if (value.type == "良品")
                                {
                                    JsonData += "{\"HDate\":\"" + jsonEquipment.data[i].props[j].datas[k].createTime + "\",\"HTechParamName\":\"螺母是否凸出\",\"HResult\":\"OK\",\"HCount\":1,\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"},";
@@ -990,14 +1013,17 @@
                        }
                    }
                    else {
                        //循环 螺母压装设备对应的所有工艺参数
                        for (int j = 0; j < jsonEquipment.data[i].props.Count; j++)
                        {
                            //循环 每个参数对应的所有数据
                            for (int k = 0; k < jsonEquipment.data[i].props[j].datas.Count; k++)
                            {
                                JsonData += "{\"HDate\":\"" + jsonEquipment.data[i].props[j].datas[k].createTime + "\",\"HTechParamName\":\"" + jsonEquipment.data[i].props[j].propName + "\",\"HResult\":\""+ jsonEquipment.data[i].props[j].datas[k].value + "\",\"HCount\":1,\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"},";
                            }
                        }
                        //获取设备时间段产量
                        JsonEquipmentData data = await FindProdByNosAndTime(Url, token, jsonEquipment.data[i].deviceNo, TimeDate, time);
                        for (int j = 0; j < data.data.Count; j++)
@@ -1009,7 +1035,9 @@
                }
                CustomWriteLog("02", DateTime.Now.ToString("yyyy-MM-dd"));
                var  EquipmentStaus = await FindDeviceStatusByNos(Url, token, nos);
                //获取设备运行状态
                var EquipmentStaus = await FindDeviceStatusByNos(Url, token, nos);
                for (int i = 0; i < EquipmentStaus.data.Count; i++)
                {
@@ -1078,7 +1106,7 @@
                    }
                }
                //查询当前开工的设备 获取对应的物料信息
                DataSet datable = oCN.RunProcReturn(@"select m.HNumber,eq.HEquipFileNo from Sc_ICMOBillStatus_Tmp a
                                            inner join Gy_EquipFileBillMain eq on a.HSourceID = eq.HSourceID
                                            inner join Gy_Material m on a.HMaterID = m.HItemID
@@ -1096,8 +1124,11 @@
                }
                CustomWriteLog("03", DateTime.Now.ToString("yyyy-MM-dd"));
                JsonData = JsonData.Substring(0, JsonData.Length - 1);
                JsonData += "]}";
                //保存数据
                DataSave(JsonData);
                if (TimeDate != "")
                {
@@ -1139,6 +1170,8 @@
            JsonResult jsonResult = await getUrl(urls, formData);
            string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            string token = jsonResult.data.token;
            //获取所有的设备数据
            JsonEquipmentData jsonEquipment = await FindDeviceList(Url, token);
            if (jsonEquipment.code != "0")
@@ -1164,10 +1197,12 @@
                //this.Time_CLHB.Enabled = false;
                //查询开工的设备信息 以及 查询当天设备对应的开工时间 和完工时间
                DataSet ds = oCN.RunProcReturn("exec h_p_Sc_TimeICMOReporList '" + nos + "'", "h_p_Sc_TimeICMOReporList");
               
                if (ds.Tables[0].Rows.Count > 0)
                {
                    //根据当天只开工没有完工对应的产量数据 生成产量汇报单
                    DataTable dt = ds.Tables[0];
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
@@ -1177,12 +1212,14 @@
                        string HEndDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                        jsonEquipment = await FindProdByNosAndTime(Url, token, nos, HBegDate, HEndDate);
                        if (decimal.Parse(jsonEquipment.data[0].prod) > 0) {
                            //生成产量汇报单
                            oCN.RunProc("exec h_p_Sc_AddTimeICMORepor " + HICMInterID + "," + jsonEquipment.data[0].prod+",'"+ HEndDate + "'");
                        }
                    }
                }
                if (ds.Tables[1].Rows.Count > 0)
                {
                {
                    //根据当天开工并且完工对应的产量数据 生成产量汇报单
                    DataTable dt = ds.Tables[1];
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
@@ -1193,6 +1230,7 @@
                        jsonEquipment = await FindProdByNosAndTime(Url, token, nos, HBegDate, HEndDate);
                        if (decimal.Parse(jsonEquipment.data[0].prod) > 0)
                        {
                            //生成产量汇报单
                            oCN.RunProc("exec h_p_Sc_AddTimeICMORepor " + HICMInterID + "," + jsonEquipment.data[0].prod + ",'" + HEndDate + "'");
                        }
                    }
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/DesignTimeResolveAssemblyReferences.cache
Binary files differ
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/EquipmentCollectionForm.csproj.AssemblyReference.cache
Binary files differ
WFormSynchronizeData_SMR/EquipmentCollectionForm/obj/Debug/EquipmentCollectionForm.csproj.FileListAbsolute.txt
@@ -10,3 +10,4 @@
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\EquipmentCollectionForm\obj\Debug\EquipmentCollectionForm.csproj.CopyComplete
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\EquipmentCollectionForm\obj\Debug\EquipmentCollectionForm.exe
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\EquipmentCollectionForm\obj\Debug\EquipmentCollectionForm.pdb
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\EquipmentCollectionForm\obj\Debug\EquipmentCollectionForm.csproj.AssemblyReference.cache
WFormSynchronizeData_SMR/WFormReadData_SMR/JZ_ReadDate.cs
@@ -208,6 +208,7 @@
            dataTable.Columns.Clear();
            dataTable.Rows.Clear();
            //把获取的数据 进行数据整理 单位不一样的进行换算
            for (int i = 0; i < ds.Tables.Count; i++)
            {
                DataTable dt = ds.Tables[i];
@@ -226,6 +227,7 @@
                    }
                }
                //存储数据到 dataTable
                string[] str = { "Ls(uH)_10kHz", "Ls(uH)_100kHz", "Z(Ω)_600kHz", "Ls(uH)_1MHz", "Ls(uH)_2MHz", "Z(Ω)_2MHz", "Z(Ω)_1MHz", "Z(Ω)_10MHz", "Z(Ω)_100kHz" };
                for (int o = 0; o < str.Length; o++)
                {
@@ -306,6 +308,7 @@
            {
                string HProcID = this.cmbPro.SelectedValue.ToString();
                //修改是在哪个设备上进行的数据采集 men.HNumber CMR-E-026 LMJC  浸渍 铁芯检测 设备
                //查询当前流转卡 当前工序 有没有对应的检验方案
                DataSet dataSet = oCN.RunProcReturn(@"select b.HAnalysisMethod,b.HInspectInstruMentID,a.HInterID HQCSchemeID,b.HQCCheckItemID, ch.HNumber HQCCheckItemNumber,m.HNumber,HUpLimit,HDownLimit,HTargetVal 
from Sc_ProcessExchangeBillMain pr with(nolock)
inner join Gy_QCCheckProjectMain a with(nolock) on pr.HMaterID=a.HMaterID and a.HProcID="+ HProcID + @"
@@ -318,6 +321,7 @@
                //保存数据
                if (dataSet.Tables[0].Rows.Count > 0)
                {
                    //判断数据有没有派工
                    DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID,staus.HProcID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -414,6 +418,7 @@
                                                        HInSpectResult = (HInSpectValue > HUpLimit || HDownLimit > HInSpectValue) ? 2 : 1;
                                                    }
                                                }
                                                //日志
                                                DBHelper.CustomWriteLog("Insert into QC_ProcessCheckBillSub " +
                          " (HInterID,HBillNo_bak,HEntryID,HSNO,HCloseMan" +
                          ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
WFormSynchronizeData_SMR/WFormReadData_SMR/Program.cs
@@ -16,7 +16,7 @@
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new ReadyDataForm());
            Application.Run(new ReadCSV());
        }
    }
}
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCSV.cs
@@ -200,6 +200,7 @@
                //string csv_file_path_Read = $@"D:\DATA SAVE\{Year}\{Year + Month}\{Year + Month + Day}\{HBath}\数据保存_MES读取.csv";
                //复制一份文件
                File.Copy(csv_file_path, csv_file_path_Read, true);
                string contents = File.ReadAllText(csv_file_path_Read, Encoding.GetEncoding("gb2312"));
@@ -253,6 +254,7 @@
                            string HProcNumber = "005"; //005
                            int HFlag = 0;
                            //string HEmpCode = "";
                            //判断条码不为空
                            if (HBadCodeSN != "")
                            {
                                string HType = "";
@@ -270,6 +272,7 @@
                                        ListSelect.Items.Add("条码:" + HBarCode + ",当前日期:" + DateTime.Now.ToString() + ",日期:" + HCreateTime + ",结果:" + HResult);
                                        list.Add(HBarCode);
                                        //新增工艺参数
                                        for (int i = 0; i < dt.Columns.Count; i++)
                                        {
                                            if (dt.Columns[i].ColumnName.Contains("Hz"))
@@ -277,6 +280,7 @@
                                                HType = dt.Columns[i].ColumnName;
                                                string HCount_1 = item[HType].ToString();
                                                //查询当天条码 对应的工艺参数有没有插入到里面 如果没有则新增
                                                DataSet ds1 = oCN.RunProcReturn(@"select * from Sb_EquipMentCollectionTechParam_SN where HBarCode='" + HBarCode + "' and HType='" + HType + "'", "Sb_EquipMentCollectionTechParam_SN");
                                                if (ds1.Tables[0].Rows.Count == 0)
@@ -409,6 +413,7 @@
                    }
                    else
                    {
                        //错误信息弹出框 定时超过2分钟弹一次
                        if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                        {
                            time = DateTime.Now;
@@ -432,6 +437,7 @@
                    AllProcessExchangeHProcExchBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                }
                else {
                    //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
@@ -449,6 +455,8 @@
            HProcExchInterID = AllProcessExchangeHProcExchInterID;
            DataSet ds1;
            //第一次流转卡+工序和后面的做对比 如果是同一个流转卡就不进行判断
            if ((HProcExchBillNo + HProcNumber) != AllSNBarcodeProcCtrl) {
                //查询工序
                ds1 = oCN.RunProcReturn(@"SELECT  HItemID,HName FROM Gy_Process WHERE HNumber='" + HProcNumber + "'", "Gy_Process");
@@ -470,12 +478,15 @@
               
            string HProcID = AllHProcID;
            string HProName = AllHProName;
            //第一次流转卡+工序和后面的做对比 如果是同一个流转卡就不进行判断
            if ((HProcExchBillNo + HProcNumber) == AllSNBarcodeProcCtrl)
            {
                //判断 当前工序 条码 的上一道工序有没有过站
                ds1 = oCN.RunProcReturn("exec h_p_Sc_SNBarcodeProcCtrl_S '" + HBarCode + "'," + HProcID, "h_v_Gy_QualifiedRecordsList");
                if (ds1.Tables[0].Rows.Count == 0)
                {
                    //flag_1=只有第一次进来才会弹出 错误信息弹出框 定时超过2分钟弹一次
                    if (!flag_1 && (DateTime.Now - time).Minutes > hqty)
                    {
                        time = DateTime.Now;
@@ -488,6 +499,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;
@@ -505,15 +517,19 @@
where ou.HProcExchInterID={HProcExchInterID} and ou.HProcID={AllHProcID}
group by  ou.HProcExchInterID,ou.HProcExchEntryID,ou.HQty", "Sc_StationOutBillMain");
            //获取流转卡数量
            double hqtyOut = AllHQty;
            //流转卡数量-出站单数量大于0
            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;
@@ -527,6 +543,7 @@
            //拍照工序除外
            if (HProcNumber != "013") {
                //增加产线组装追溯单
                //查询当前流转卡对应的工序有没有配件信息,如果有 则判断配件单的数量是否为0
                DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + HProcID, "h_p_Gy_BarCodeBillBomList");
                if (dataSet.Tables[0].Rows.Count > 0)
                {
@@ -538,6 +555,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;
WFormSynchronizeData_SMR/WFormReadData_SMR/ReadCoordinateExcelFrom.cs
@@ -350,7 +350,8 @@
            for (int i = 0; i < ds.Tables.Count; i++)
            {
                //修改是在哪个设备上进行的数据采集 b.HInspectInstruMentID=1  三坐标1    轮廓仪2
                //修改  是在哪个设备上进行的数据采集 b.HInspectInstruMentID=1  三坐标1    轮廓仪2
                //查询当前流转卡 以及 工序 对应的检验方案是否存在
                DataSet dataSet = oCN.RunProcReturn(@"select b.HInspectInstruMentID,a.HInterID HQCSchemeID,b.HQCCheckItemID, ch.HNumber HQCCheckItemNumber,m.HNumber,HUpLimit,HDownLimit,HTargetVal 
from Sc_ProcessExchangeBillMain pr with(nolock)
inner join Gy_QCCheckProjectMain a with(nolock) on pr.HMaterID=a.HMaterID
@@ -450,6 +451,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                //判断当前流转卡 当前工序 是否已经派过工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -558,6 +560,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                // 判断当前流转卡 当前工序 是否已经派过工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -659,6 +662,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                // 判断当前流转卡 当前工序 是否已经派过工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID,staus.HProcID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -785,6 +789,7 @@
            {
                string cmbPro = this.cmbPro.SelectedValue.ToString();
                //查询取样单数据
               DataSet ds = oCN.RunProcReturn("select  * from h_v_QC_TakeSampleCheckBillList where 单据号='" + HBillNo + "' and  HProcID='" + cmbPro + "'", "h_v_QC_TakeSampleCheckBillList");
                if (ds.Tables[0].Rows.Count == 0)
                {
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;
WFormSynchronizeData_SMR/WFormReadData_SMR/ZZ_GlueWeigh.cs
@@ -73,6 +73,7 @@
            }
        }
        //条形码回车
        private void txtLzk_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
@@ -123,13 +124,13 @@
        private void ZZ_GlueWeigh_Load(object sender, EventArgs e)
        {
            this.cmbEquip.SelectedIndex = 0;
            this.cmbEquip.DropDownStyle = ComboBoxStyle.DropDownList;
            this.cmbEquip.DropDownStyle = ComboBoxStyle.DropDownList;//只读
            this.cmbPro.DropDownStyle = ComboBoxStyle.DropDownList;
            this.cmbJYSelect.DropDownStyle = ComboBoxStyle.DropDownList;
            this.cmbPro.DropDownStyle = ComboBoxStyle.DropDownList;//只读
            this.cmbJYSelect.DropDownStyle = ComboBoxStyle.DropDownList;//只读
            this.cmbJYSelect.SelectedIndex = 0; 
            this.txtHMakerNumber.ReadOnly = true;
            this.txtPcm.ReadOnly = true;
            this.txtHMakerNumber.ReadOnly = true;//只读
            this.txtPcm.ReadOnly = true;//只读
        }
        //查询称重的重量
@@ -156,6 +157,7 @@
                        break;
                }
                //查询 顶部点胶重量 和  底部点胶重量 当前最大的数据
                DataSet ds = oCN.RunProcReturn(@"select top 1 HTechParamName,HResult,HCreateTime from Sb_EquipMentCollectionTechParam_Temp 
                where HSourceCode = '" + HNumber + @"' and HTechParamName = '顶部点胶重量' and HCreateTime in(
                select  max(HCreateTime) from  Sb_EquipMentCollectionTechParam_Temp 
@@ -175,6 +177,7 @@
                if (ds.Tables[0].Rows.Count > 0)
                {
                    //获取  顶部点胶重量 和 底部点胶重量
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        string HTechParamName = ds.Tables[0].Rows[i]["HTechParamName"].ToString();
@@ -332,6 +335,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                //判断当前流转卡对应的工序有没有开工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -376,7 +380,7 @@
                        {
                            HLastResults = 0;
                        }
                        //新增子表
                        oCN.RunProc("Insert into QC_FirstPieceCheckBillSub " +
                        " (HInterID,HBillNo_bak,HEntryID,HCloseMan" +
                        ",HEntryCloseDate,HCloseType,HRemark,HSourceInterID" +
@@ -439,6 +443,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                //判断当前流转卡对应的工序有没有开工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID
from Sc_ProcessExchangeBillMain a with(nolock)
@@ -538,6 +543,7 @@
                long HInterID = oCN.CreateBillID_Prod(BillType, ref sExeReturnInfo);
                string HBillNo = oCN.CreateBillCode(BillType, ref sExeReturnInfo, true);
                //判断当前流转卡对应的工序有没有开工
                DataSet ds = oCN.RunProcReturn(@"select    staus.HSourceID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,a.HPlanQty,a.HInterID HProcExchInterID,
staus.HSourceEntryID HProcExchEntryID,a.HBillNo HProcExchBillNo,a.HQty,a.HMaterID,staus.HProcID
from Sc_ProcessExchangeBillMain a with(nolock)
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug.rar
Binary files differ
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug/WFormReadData_SMR.exe
Binary files differ
WFormSynchronizeData_SMR/WFormReadData_SMR/bin/Debug/WFormReadData_SMR.pdb
Binary files differ
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.csproj.AssemblyReference.cache
Binary files differ
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.csproj.FileListAbsolute.txt
@@ -36,3 +36,4 @@
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\WFormReadData_SMR\obj\Debug\WFormReadData_SMR.csproj.CopyComplete
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\WFormReadData_SMR\obj\Debug\WFormReadData_SMR.exe
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\WFormReadData_SMR\obj\Debug\WFormReadData_SMR.pdb
E:\智云mes\SRM\WFormSynchronizeData_SMR\WFormSynchronizeData_SMR\WFormReadData_SMR\obj\Debug\WFormReadData_SMR.csproj.AssemblyReference.cache
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.exe
Binary files differ
WFormSynchronizeData_SMR/WFormReadData_SMR/obj/Debug/WFormReadData_SMR.pdb
Binary files differ
WFormSynchronizeData_SMR/WFormSynchronizeData_SMR/Form1.cs
@@ -29,6 +29,8 @@
            timer.Start();
            CustomWriteLog("1.计时器开始:"+timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
            //根据时间正序排序获取前150条数据
            DataTable list = oCN.RunProcReturn("select top 150 * from Sb_EquipMentCollection_SN  WITH(NOLOCK) where HFlag=0  order by HCreateTime", "Sb_EquipMentCollection_SN").Tables[0];
          
            //循环集合
@@ -74,6 +76,9 @@
                bool flag = false;
                string HBadCodeSN = dic["HBarCode"].ToString();
                HBadCodeSN = TM_ZH(HBadCodeSN);
                //判断当天条码有没有存储在条码表里 如果没有 则保存数据 并返回0
                //如果已存在 则返回 1
                //如果条件不满足的 则返回 2
                int num = SNHBardCodeList(HBadCodeSN);
                CustomWriteLog("2.2.条码生成:" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
@@ -94,18 +99,21 @@
                    //left join Gy_Process p WITH(NOLOCK) on a.HProcID=p.HItemID
                    //where  p.HNumber='" + dic["HProcNumber"].ToString() + "' and sn.HBarCode='" + HBadCodeSN + "'", "Sc_StationOutBillSub_SN");
                    //查询这个工序对应的条码 出站单是否已经存在
                    DataSet ds1 = oCN.RunProcReturn(@"select a.HProcID from Sc_StationOutBillMain a WITH(NOLOCK)
inner join Sc_StationOutBillSub_SN sn WITH(NOLOCK) on a.HInterID=sn.HInterID
left join Gy_Process p WITH(NOLOCK) on a.HProcID=p.HItemID
where  p.HNumber='" + dic["HProcNumber"].ToString() + "' and sn.HBarCode='" + HBadCodeSN + "'", "Sc_StationOutBillSub_SN");
                    //判断条码之前是否为NG  同时 判断出站单的条码数据是不存在
                    if (ds.Tables[0].Rows.Count > 0 && ds1.Tables[0].Rows.Count == 0)
                    {
                        //返修好的条码进行重新过站保存
                        flag = getOKOutBillAdd(dic, HBadCodeSN, "OK");
                    }
                    else
                    {
                        //出站单的条码数据是不存在 则新增
                        if (ds1.Tables[0].Rows.Count > 0)
                        {
                            flag = true;
@@ -144,6 +152,9 @@
                int num = 0;
                string HBadCodeSN = dic["HBarCode"].ToString();
                HBadCodeSN = TM_ZH(HBadCodeSN);
                //判断当天条码有没有存储在条码表里 如果没有 则保存数据 并返回0
                //如果已存在 则返回 1
                //如果条件不满足的 则返回 2
                num = SNHBardCodeList(HBadCodeSN);
                if (num == 0 || num == 1)
@@ -189,6 +200,7 @@
                CustomWriteLog("2.1.2.绑定流转卡:"+ HProcNumber+"----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                //查询生产资源
                ds = oCN.RunProcReturn("select * from Gy_Source WITH(NOLOCK) where HNumber='" + dic["HSourceCode"].ToString() + "' ", "Gy_Source");
                long HSourceID = 0;
                if (ds.Tables[0].Rows.Count != 0)
@@ -231,7 +243,7 @@
                CustomWriteLog("2.1.5.获取客户信息:" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                //根据流转卡和工序 查询出站单需要保存的信息
                ds = oCN.RunProcReturn(@"select   a.HWorkShopID,b.HProcNo,b.HProcID,a.HMaterID,a.HQty,a.HInterID,HEntryID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,b.HCenterID  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 
@@ -310,6 +322,7 @@
                CustomWriteLog("2.1.7给字段赋值 :" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                //获取班次
                DataSet set= oCN.RunProcReturn("exec h_p_Gy_GetWorkShiftInfo " + HWorkShopID + "," + HCenterID, "h_p_Gy_GetWorkShiftInfo");
                if (set.Tables[0].Rows.Count > 0) {
                    HShiftsID = int.Parse(set.Tables[0].Rows[0]["HInterID"].ToString());
@@ -339,6 +352,7 @@
                CustomWriteLog("2.1.9获取是否有出站单 :" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                //如果没有出站单则新增出站单
                if (ds.Tables[0].Rows.Count != 0)
                {
                    HInterID = long.Parse(ds.Tables[0].Rows[0]["HInterID"].ToString());
@@ -379,6 +393,8 @@
                if (HResult == "OK")
                {
                    CustomWriteLog("2.1.11 条码反写 :" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                    //查询 出站单子表 条码表的数据
                    ds = oCN.RunProcReturn("select  * from Sc_StationOutBillSub_SN WITH(NOLOCK) where HInterID='" + HInterID + "' order by HEntryID desc", "Sc_StationOutBillSub_SN");
                    string HMakeTime = dic["HCreateTime"].ToString();
@@ -393,16 +409,19 @@
                else if (HResult == "NG")
                {
                    CustomWriteLog("2.1.13 不合格反写 :" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
                    //通过条码查询生产质量汇报单数据
                    ds = oCN.RunProcReturn("select  * from Sc_QualityReportBillSub WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' order by HMakeDate desc", "Sc_QualityReportBillSub");
                    if (ds.Tables[0].Rows.Count > 0) {
                        string HBadDate = ds.Tables[0].Rows[0]["HMakeDate"].ToString();
                        //通过条码查询返修记录单的数据
                        ds = oCN.RunProcReturn("select  * from Sc_SourceLineRepairBillMain WITH(NOLOCK) where HBarCode='" + HBadCodeSN + "' order by HMakeDate desc", "Sc_SourceLineRepairBillMain");
                        if (ds.Tables[0].Rows.Count > 0) {
                            string HRepairDate = ds.Tables[0].Rows[0]["HMakeDate"].ToString();
                            //判断 生产质量汇报单的创建时间 是否 小于 返修记录的创建时间
                            //正常情况是 先生成生产质量汇报单 然后才会去返修
                            //如果条码生成质量汇报单的时间 大于返修记录的时间 则证明这个条码属于测试条码 正常 返修OK的才会进入这个出站单保存方法 不会进入NG
                            if (DateTime.Parse(HBadDate) < DateTime.Parse(HRepairDate)) {
                                //反写工序出站单的不良数量
                                oCN.RunProc("update Sc_StationOutBillMain  set HBadCount+=1,HWasterQty_Work+=1 where HInterID='" + HInterID + "'");
@@ -461,6 +480,7 @@
                //增加产线组装追溯单
                //查询流转卡和工序对应的配件信息  如果有 则查询配件的数量
                DataSet dataSet = oCN.RunProcReturn("exec h_p_Gy_BarCodeBillBomList '" + HProcExchBillNo + "'," + HProcID, "h_p_Gy_BarCodeBillBomList");
                CustomWriteLog("2.1.18 产线组装追溯单查询 :" + HProcNumber + "----" + timer.Elapsed, DateTime.Now.ToString("yyyy-MM-dd"));
@@ -581,6 +601,7 @@
                    HDeptID = 0;
                }
                //根据流转卡和工序 查询出站单需要保存的信息
                ds = oCN.RunProcReturn(@"select   b.HProcNo,b.HProcID,a.HMaterID,a.HQty,a.HInterID,HEntryID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo 
                from Sc_ProcessExchangeBillMain a WITH(NOLOCK)
                inner join Sc_ProcessExchangeBillSub b WITH(NOLOCK) on a.HInterID=b.HInterID
@@ -611,11 +632,13 @@
                //    return false;
                //}
                //查询产线组装追溯单的数据  获取时间 根据时间判断对应 是哪天出站单的数据
                ds = oCN.RunProcReturn("select  HDate from Sc_AssemblyBillMain WITH(NOLOCK) where HMainSourceInterID=" + HProcExchInterID + " and HMainSourceEntryID=" + HProcExchEntryID, "Sc_AssemblyBillMain");
                DateTime HDate=DateTime.Now;
                //当产品没有配件的时候 查询 不良记录
                if (ds.Tables[0].Rows.Count == 0)
                {
                    //查询生产质量汇报单数据
                    ds = oCN.RunProcReturn("select HMakeDate from Sc_QualityReportBillSub WITH(NOLOCK) where HProcExchInterID=" + HProcExchInterID + " and HProcExchEntryID=" + HProcExchEntryID+ " and HBarCode='" + HBadCodeSN + "'", "Sc_AssemblyBillMain");
                    HDate = DateTime.Parse(ds.Tables[0].Rows[0]["HMakeDate"].ToString());
                }
@@ -686,7 +709,7 @@
            try
            {
                //查询出站单的信息 方便参数保存
                 DataSet ds = oCN.RunProcReturn(@"select a.HProcExchInterID,a.HProcExchEntryID,a.HProcExchBillNo,a.HProcID,p.HNumber from Sc_StationOutBillMain a WITH(NOLOCK) 
left join Gy_Process p WITH(NOLOCK)  on a.HProcID=p.HItemID where HInterID=" + HInterID + " and HBillNo='" + HBillNo + "'", "Sc_StationOutBillMain");
                string HProcExchInterID = ds.Tables[0].Rows[0]["HProcExchInterID"].ToString();
@@ -696,6 +719,7 @@
                string HProcNum = ds.Tables[0].Rows[0]["HNumber"].ToString();
                //注:因为 组装 拍照 时间间隔比较短  所以目前只明确组装工序才可以保存工艺参数 之后如果有其他工序的话  需要增加工序字段
                if (HProcID == "88"|| HProcNum=="005") {
                    //查询工艺参数临时表 获取当天条码对应的参数
                    ds = oCN.RunProcReturn(@"select  s.HItemID HMouldID,t.HItemID HTechParamID,HCount,HCreateTime,a.HResult from  Sb_EquipMentCollectionTechParam_SN a WITH(NOLOCK)
inner join Gy_Source s WITH(NOLOCK) on a.HSourceCode=s.HNumber
inner join Gy_TechnologyParameter t WITH(NOLOCK) on a.HType=t.HName
@@ -1014,6 +1038,8 @@
                long HICMOInterID = 0;
                long HICMOEntryID = 0;
                string HICMOBillNo = "";
                //根据 条码+工序 查询流转卡信息
                ds = oCN.RunProcReturn(@"select b.HProcID, HMaterID,HUnitID,a.HICMOInterID,a.HICMOEntryID,a.HICMOBillNo,HBillNo,a.HInterID,b.HEntryID,a.HBillNo 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