zrg
2025-07-31 57c475ed168e905443eb2e34cc12a3d03fc355f6
WFormSynchronizeData_SMR/EquipmentCollectionForm/EquipmentCollectionForm_JiuLing.cs
@@ -625,7 +625,7 @@
                    }
                    else
                    {
                        MessageBox.Show($"请求失败,: {response.StatusCode}");
                        MessageBox.Show($"请求失败:{response.StatusCode} - {url} - 当前时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
                    }
                }
@@ -667,7 +667,7 @@
                    }
                    else
                    {
                        MessageBox.Show($"请求失败,: {response.StatusCode}");
                        MessageBox.Show($"请求失败:{response.StatusCode} - {url} - 当前时间:{DateTime.Now:yyyy-MM-dd HH:mm:ss}");
                    }
                }
@@ -700,6 +700,7 @@
        {
            //设备列表接口
            string urls = url + EquipmentType_JL.Two;
            CustomWriteLog("设备列表接口:'" + urls + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            // 准备要发送的表单数据
            var postData = new StringContent("{\"token\":\"" + token + "\"}", System.Text.Encoding.UTF8, "application/json");
            JsonEquipmentData_JL jsonResult = await EquipmentList(urls, postData, "POST");
@@ -712,10 +713,12 @@
            string basePropIds = DBHelper.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "Config/SQLAPI.config", "basePropIds");
            basePropIds = "[" + basePropIds + "]";
            nos = nos.Replace(",", "\",\"");
            string stringJson = "{\"token\":\"" + token + "\",\"deviceNos\":[\"" + nos + "\"],\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\",\"basePropIds\":" + basePropIds + "}";
            //20250723  发现有的客户数采没有采集工艺参数 如果传入对应的 设备编号 会导致 请求失败  传入参数ID 也可以获取到对应的设备  这样不会 请求失败
            //string stringJson = "{\"token\":\"" + token + "\",\"deviceNos\":[\"" + nos + "\"],\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\",\"basePropIds\":" + basePropIds + "}";
            string stringJson = "{\"token\":\"" + token + "\",\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\",\"basePropIds\":" + basePropIds + "}";
            //设备列表接口
            string urls = url + EquipmentType_JL.Nine;
            CustomWriteLog("获取工艺参数接口:'" + urls + "'", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            CustomWriteLog("工艺参数接口:'" + urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            // 准备要发送的表单数据
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            JsonEquipmentData_JL jsonEquipment = await EquipmentList(urls, postData, "POST");
@@ -728,6 +731,7 @@
            string stringJson = "{\"token\":\"" + token + "\",\"deviceNo\":\"" + nos + "\",\"propIds\":[606,173,469,470],\"beginTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\"}";
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            string urls = url + EquipmentType_JL.Seven;
            CustomWriteLog("获取不良数,合数数,可疑数 总数:'" + urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            JsonEquipmentData_JL jsonResult = await EquipmentList(urls, postData, "POST");
            return jsonResult;
        }
@@ -741,6 +745,7 @@
            string stringJson = "{\"token\":\"" + token + "\",\"nos\":[" + nos + "]}";
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            string urls = url + EquipmentType_JL.Three;
            CustomWriteLog("设备运行状态:'" + urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            JsonEquipmentData_JL jsonResult = await EquipmentList(urls, postData, "POST");
            return jsonResult;
        }
@@ -753,6 +758,7 @@
            string stringJson = "{\"token\":\"" + token + "\",\"nos\":[" + nos + "],\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\"}";
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            string urls = url + EquipmentType_JL.Four;
            CustomWriteLog("设备时间段产量:'" + urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            JsonEquipmentData_JL jsonResult = await EquipmentList(urls, postData, "POST");
            return jsonResult;
        }
@@ -765,6 +771,8 @@
            string stringJson = "{\"token\":\"" + token + "\",\"no\":" + nos + ",\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\"}";
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            string urls = url + EquipmentType_JL.Five;
            // 记录开机时长
            CustomWriteLog("设备运行时间接口:'"+ urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            JsonResult_JL jsonResult = await EquipResultList(urls, postData, "POST");
            return jsonResult;
        }
@@ -777,6 +785,7 @@
            string stringJson = "{\"token\":\"" + token + "\",\"no\":" + nos + ",\"startTime\":\"" + HBegin + "\",\"endTime\":\"" + HEnd + "\"}";
            var postData = new StringContent(stringJson, System.Text.Encoding.UTF8, "application/json");
            string urls = url + EquipmentType_JL.Ten;
            CustomWriteLog("注塑机的 开机接口:'" + urls + "' 参数值: '" + stringJson + "'", DateTime.Now.ToString("yyyy-MM-dd"));
            JsonResult_JL jsonResult = await EquipResultList(urls, postData, "POST");
            return jsonResult;
        }
@@ -968,40 +977,42 @@
                //获取参数 获取每个设备对应的所有参数
                JsonEquipmentData_JL jsonEquipment = await FindAllDevicePropsDetailByTimeRange(Url, token, nos, TimeDate, time);
                var JsonData_JL = "{\"data\":[";
                if (jsonEquipment == null)
                {
                    CustomWriteLog("jsonEquipment对象为空", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                    CustomWriteLog("jsonEquipment对象为空", DateTime.Now.ToString("yyyy-MM-dd"));
                }
                if (jsonEquipment.data == null)
                {
                    CustomWriteLog("data属性为空", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                    CustomWriteLog("data属性为空", DateTime.Now.ToString("yyyy-MM-dd"));
                }
                var JsonData_JL = "{\"data\":[";
                CustomWriteLog("开始循环工艺参数总数为::'" + jsonEquipment.data.Count + "'", DateTime.Now.ToString("yyyy-MM-dd"));
                //通过每个设备进行循环赋值
                for (int i = 0; i < jsonEquipment.data.Count; i++)
                else
                {
                    //循环 螺母压装设备对应的所有工艺参数
                    for (int j = 0; j < jsonEquipment.data[i].props.Count; j++)
                    CustomWriteLog("开始循环工艺参数总数为:'" + jsonEquipment.data.Count + "'", DateTime.Now.ToString("yyyy-MM-dd"));
                    //通过每个设备进行循环赋值
                    for (int i = 0; i < jsonEquipment.data.Count; i++)
                    {
                        //循环 每个参数对应的所有数据
                        for (int k = 0; k < jsonEquipment.data[i].props[j].datas.Count; k++)
                        //循环 螺母压装设备对应的所有工艺参数
                        for (int j = 0; j < jsonEquipment.data[i].props.Count; j++)
                        {
                            JsonData_JL += "{\"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 + "\"},";
                            CustomWriteLog("工艺参数具体值:{\"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 + "\"}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            //循环 每个参数对应的所有数据
                            for (int k = 0; k < jsonEquipment.data[i].props[j].datas.Count; k++)
                            {
                                JsonData_JL += "{\"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 + "\"},";
                                //CustomWriteLog("工艺参数具体值:{\"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 + "\"}", DateTime.Now.ToString("yyyy-MM-dd"));
                            }
                        }
                    }
                    //获取设备时间段产量
                    JsonEquipmentData_JL data = await FindProdByNosAndTime(Url, token, jsonEquipment.data[i].deviceNo, TimeDate, time);
                    for (int j = 0; j < data.data.Count; j++)
                    {
                        //获取设备时间段产量
                        JsonEquipmentData_JL data = await FindProdByNosAndTime(Url, token, jsonEquipment.data[i].deviceNo, TimeDate, time);
                        for (int j = 0; j < data.data.Count; j++)
                        {
                        JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"生产数量\",\"HResult\":\"OK\",\"HCount\":" + data.data[j].prod + ",\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"},";
                        CustomWriteLog("{\"HDate\":\"" + time + "\",\"HTechParamName\":\"生产数量\",\"HResult\":\"OK\",\"HCount\":" + data.data[j].prod + ",\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"}", DateTime.Now.ToString("yyyy-MM-dd"));
                            JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"生产数量\",\"HResult\":\"OK\",\"HCount\":" + data.data[j].prod + ",\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"},";
                            //CustomWriteLog("{\"HDate\":\"" + time + "\",\"HTechParamName\":\"生产数量\",\"HResult\":\"OK\",\"HCount\":" + data.data[j].prod + ",\"HSourceCode\":\"" + jsonEquipment.data[i].deviceNo + "\"}", DateTime.Now.ToString("yyyy-MM-dd"));
                        }
                    }
                }
@@ -1009,75 +1020,96 @@
                //获取设备运行状态
                var EquipmentStaus = await FindDeviceStatusByNos(Url, token, nos);
                for (int i = 0; i < EquipmentStaus.data.Count; i++)
                if (EquipmentStaus == null)
                {
                    //卷绕  注塑  浸渍  组装  的设备运行 开关停机时间
                    if (EquipmentStaus.data[i].no.Contains("JS_RX_") || EquipmentStaus.data[i].no.Contains("JS_HX_") || EquipmentStaus.data[i].no.Contains("JS_LS_")
                        || EquipmentStaus.data[i].no.Contains("JS_YL_") || EquipmentStaus.data[i].no.Contains("JS_M2_") || EquipmentStaus.data[i].no.Contains("JS_ZS_"))
                    CustomWriteLog("EquipmentStaus对象为空", DateTime.Now.ToString("yyyy-MM-dd"));
                }
                if (EquipmentStaus.data == null)
                {
                    CustomWriteLog("data属性为空", DateTime.Now.ToString("yyyy-MM-dd"));
                }
                else
                {
                    for (int i = 0; i < EquipmentStaus.data.Count; i++)
                    {
                        string HBegDate = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
                        string HEndDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:00");
                        if (DateTime.Parse(HEndDate).AddMinutes(1).ToString("yyyy-MM-dd") != DateTime.Parse(HEndDate).ToString("yyyy-MM-dd"))
                        //卷绕  注塑  浸渍  组装  的设备运行 开关停机时间
                        if (EquipmentStaus.data[i].no.Contains("JS-MZ-") || EquipmentStaus.data[i].no.Contains("JS_LS_") || EquipmentStaus.data[i].no.Contains("JL_E_")
                            || EquipmentStaus.data[i].no.Contains("JL_") || EquipmentStaus.data[i].no.Contains("JL_A_") || EquipmentStaus.data[i].no.Contains("JL_B_")
                            || EquipmentStaus.data[i].no.Contains("JL_3_") || EquipmentStaus.data[i].no.Contains("JL_2_") || EquipmentStaus.data[i].no.Contains("JL_1_")
                            || EquipmentStaus.data[i].no.Contains("JS_RX_") || EquipmentStaus.data[i].no.Contains("JS_ZS_") || EquipmentStaus.data[i].no.Contains("JS_YL_")
                            || EquipmentStaus.data[i].no.Contains("JS_HX_") || EquipmentStaus.data[i].no.Contains("JS_LS_30_") || EquipmentStaus.data[i].no.Contains("JS_M2_"))
                        {
                            HEndDate = DateTime.Parse(HEndDate).AddMinutes(1).ToString("yyyy-MM-dd HH:mm:00");
                            string HBegDate = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
                            string HEndDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:00");
                            if (DateTime.Parse(HEndDate).AddMinutes(1).ToString("yyyy-MM-dd") != DateTime.Parse(HEndDate).ToString("yyyy-MM-dd"))
                            {
                                HEndDate = DateTime.Parse(HEndDate).AddMinutes(1).ToString("yyyy-MM-dd HH:mm:00");
                            }
                            JsonResult_JL HEqDate = await FindDeviceStatusTimeByNo(Url, token, EquipmentStaus.data[i].no, HBegDate, HEndDate);
                            // 记录开机时长
                            CustomWriteLog("设备开机时长: 开机时长" + ((float)(HEqDate.data.onlineTime / 60 / 60)).ToString("0.00") + "  " + EquipmentStaus.data[i].no + "",
                                            DateTime.Now.ToString("yyyy-MM-dd"));
                            // 记录关机时长
                            CustomWriteLog("设备关机时长: 关机时长" + ((float)(HEqDate.data.offlineTime / 60 / 60)).ToString("0.00") + "  " + EquipmentStaus.data[i].no + "",
                                            DateTime.Now.ToString("yyyy-MM-dd"));
                            // 记录停机时长
                            CustomWriteLog("设备停机时长: 停机时长" + ((float)(HEqDate.data.standbyTime / 60 / 60)).ToString("0.00") + "  " + EquipmentStaus.data[i].no + "",
                                            DateTime.Now.ToString("yyyy-MM-dd"));
                            // 记录运行时长
                            CustomWriteLog("设备运行时长: 运行时长" + ((float)(HEqDate.data.runTime / 60 / 60)).ToString("0.00") + "  " + EquipmentStaus.data[i].no + "",
                                            DateTime.Now.ToString("yyyy-MM-dd"));
                            JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"开机时长\",\"HResult\":\"" + ((float)(HEqDate.data.onlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                            JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"关机时长\",\"HResult\":\"" + ((float)(HEqDate.data.offlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                            JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"停机时长\",\"HResult\":\"" + ((float)(HEqDate.data.standbyTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                            JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"运行时长\",\"HResult\":\"" + ((float)(HEqDate.data.runTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        }
                        JsonResult_JL HEqDate = await FindDeviceStatusTimeByNo(Url, token, EquipmentStaus.data[i].no, HBegDate, HEndDate);
                        // 记录开机时长
                        CustomWriteLog("设备开机时长: {\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"开机时长\",\"HResult\":\"" + ((float)(HEqDate.data.onlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"}",
                                        DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        string staus = "";
                        switch (EquipmentStaus.data[i].status)
                        {
                            //-1:未知,1:离线,2:待机,3:正常运行,4:告警
                            case "-1":
                                staus = "未知";
                                break;
                            case "1":
                                staus = "离线";
                                break;
                            case "2":
                                staus = "待机";
                                break;
                            case "3":
                                staus = "正常运行";
                                break;
                            case "4":
                                staus = "告警";
                                break;
                        }
                        if (jsonEquipment == null || jsonEquipment.data == null)
                        {
                            // 当 jsonEquipment 或 jsonEquipment.data 为 null 时,统一走这里
                            JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"开关机状态\",\"HResult\":\"" + staus + "\",\"HCount\":0,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        }
                        else if (jsonEquipment.data.Count > 0)
                        {
                            JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"开关机状态\",\"HResult\":\"" + staus + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        }
                        else
                        {
                            JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"开关机状态\",\"HResult\":\"" + staus + "\",\"HCount\":0,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        }
                        // 记录关机时长
                        CustomWriteLog("设备关机时长: {\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"关机时长\",\"HResult\":\"" + ((float)(HEqDate.data.offlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"}",
                                        DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        // 记录停机时长
                        CustomWriteLog("设备停机时长: {\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"停机时长\",\"HResult\":\"" + ((float)(HEqDate.data.standbyTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"}",
                                        DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        // 记录运行时长
                        CustomWriteLog("设备运行时长: {\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"运行时长\",\"HResult\":\"" + ((float)(HEqDate.data.runTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"}",
                                        DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"开机时长\",\"HResult\":\"" + ((float)(HEqDate.data.onlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"关机时长\",\"HResult\":\"" + ((float)(HEqDate.data.offlineTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"停机时长\",\"HResult\":\"" + ((float)(HEqDate.data.standbyTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                        JsonData_JL += "{\"HDate\":\"" + HEndDate + "\",\"HTechParamName\":\"运行时长\",\"HResult\":\"" + ((float)(HEqDate.data.runTime / 60 / 60)).ToString("0.00") + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                    }
                    string staus = "";
                    switch (EquipmentStaus.data[i].status)
                    {
                        //-1:未知,1:离线,2:待机,3:正常运行,4:告警
                        case "-1":
                            staus = "未知";
                            break;
                        case "1":
                            staus = "离线";
                            break;
                        case "2":
                            staus = "待机";
                            break;
                        case "3":
                            staus = "正常运行";
                            break;
                        case "4":
                            staus = "告警";
                            break;
                    }
                    if (jsonEquipment.data.Count > 0)
                    {
                        JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"开关机状态\",\"HResult\":\"" + staus + "\",\"HCount\":1,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                    }
                    else
                    {
                        JsonData_JL += "{\"HDate\":\"" + time + "\",\"HTechParamName\":\"开关机状态\",\"HResult\":\"" + staus + "\",\"HCount\":0,\"HSourceCode\":\"" + EquipmentStaus.data[i].no + "\"},";
                    }
                }
                CustomWriteLog("03", DateTime.Now.ToString("yyyy-MM-dd"));
                //查询当前开工的设备 获取对应的物料信息
                DataSet datable = oCN.RunProcReturn(@"select m.HNumber,eq.HEquipFileNo from Sc_ICMOBillStatus_Tmp a
@@ -1096,7 +1128,7 @@
                    }
                }
                CustomWriteLog("03", DateTime.Now.ToString("yyyy-MM-dd"));
                CustomWriteLog("04", DateTime.Now.ToString("yyyy-MM-dd"));
                JsonData_JL = JsonData_JL.Substring(0, JsonData_JL.Length - 1);
                JsonData_JL += "]}";