yl
2022-09-26 60c3bc8bf17d83e105acfb4b5219643b7aa875f1
设备维修申请接口开发
已添加6个文件
已修改26个文件
已删除3个文件
981 ■■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppDeviceManageController.cs 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/DeviceManagerController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppDeviceManageBLL.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppDeviceManageDAL.cs 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/DeviceManagerDAL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/HtmlPage1.html 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Hubs/ChatHub.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Hubs/HubsMessage1.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Hubs/HubsMessage2.html 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_4_5.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-09-23.TXT 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-09-24.TXT 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-09-26.TXT 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/AnDnDate.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/TestSocket.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Web.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.dll.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/HtmlPage1.html 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Web.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/original/Web.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/Controllers/AppDeviceManageController.cs
@@ -1,8 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
@@ -105,7 +107,7 @@
        /// <returns></returns>
        [Route(template: "AppDeviceRepairSave")]
        [HttpPost]
        public HttpResponseMessage AppDeviceRepairSave(string username,string maintcyc, AppDevicecCheck json)
        public HttpResponseMessage AppDeviceRepairSave(string username, string maintcyc, AppDevicecCheck json)
        {
            mes = AppDeviceManageBLL.AppDeviceRepairSave(username, maintcyc, json);
            return TJson.toJson(mes);
@@ -113,30 +115,91 @@
        #endregion
        #region[设备维修,扫描工位/设备二维码]
        #region[设备维修申请,扫描工位/设备二维码]
        /// <summary>
        /// è®¾å¤‡ç»´ä¿®,扫描工位/设备二维码
        /// è®¾å¤‡ç»´ä¿®ç”³è¯·,扫描工位/设备二维码
        /// </summary>
        /// <param name="eqpcode">设备编码</param>
        /// <returns></returns>
        [Route(template: "MaintainScanDeviceQrCodeData")]
        [Route(template: "MaintainScanDeviceApplyQrCodeData")]
        [HttpGet]
        public HttpResponseMessage MaintainScanDeviceQrCodeData(string eqpcode)
        public HttpResponseMessage MaintainScanDeviceApplyQrCodeData(string eqpcode)
        {
            mes = AppDeviceManageBLL.MaintainScanDeviceQrCodeData(eqpcode);
            mes = AppDeviceManageBLL.MaintainScanDeviceApplyQrCodeData(eqpcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[设备维修申请,提交保存]
        [Route(template: "MaintainScanDeviceApplySave")]
        [HttpPost]
        public HttpResponseMessage MaintainScanDeviceApplySave()
        {
            string username = HttpContext.Current.Request["username"].ToString();//操作人员
            string eqpcode = HttpContext.Current.Request["eqpcode"].ToString();//设备编码
            string wkshpcode = HttpContext.Current.Request["wkshpcode"].ToString(); //车间编码
            string faultsourcecode = HttpContext.Current.Request["faultsourcecode"].ToString(); //故障来源编码
            string faultdescr = HttpContext.Current.Request["faultdescr"].ToString(); //故障描述
            HttpFileCollection files = HttpContext.Current.Request.Files;
            mes = AppDeviceManageBLL.MaintainScanDeviceApplySave(username, eqpcode, wkshpcode, faultsourcecode, faultdescr, files);
            return TJson.toJson(mes);
        }
        #endregion
        #region[测试安灯呼叫]
        #region[安灯呼叫扫描工位]
        /// <summary>
        /// å®‰ç¯å‘¼å«æ‰«æå·¥ä½
        /// </summary>
        /// <param name="eqpcode">设备码</param>
        /// <returns></returns>
        [Route(template: "AppDeviceAnDengCallScanSearch")]
        [HttpPost]
        public HttpResponseMessage AppDeviceAnDengCallScanSearch(string eqpcode)
        {
            mes = AppDeviceManageBLL.AppDeviceAnDengCallScanSearch(eqpcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[安灯呼叫,选择扫描工位带出呼叫类型选项及对应人员数据]
        /// <summary>
        /// å®‰ç¯å‘¼å«,选择扫描工位带出呼叫类型选项及对应人员数据
        /// </summary>
        /// <param name="eqpcode">设备编码</param>
        /// <param name="wkshpcode">车间编码</param>
        /// <returns></returns>
        [Route(template: "AppDeviceAnDengCallItemSearch")]
        [HttpPost]
        public HttpResponseMessage AppDeviceAnDengCallItemSearch(string eqpcode, string wkshpcode)
        {
            mes = AppDeviceManageBLL.AppDeviceAnDengCallItemSearch(eqpcode, wkshpcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[安灯呼叫提交]
        /// <summary>
        /// å®‰ç¯å‘¼å«æäº¤
        /// </summary>
        /// <param name="username">登录人员</param>
        /// <param name="eqpcode">设备编码</param>
        /// <param name="wkshpcode">车间编码</param>
        /// <param name="json">提交数据</param>
        /// <returns></returns>
        [Route(template: "AppDeviceAnDengCallSave")]
        [HttpPost]
        public HttpResponseMessage AppDeviceAnDengCallSave(string eqpcode)
        public HttpResponseMessage AppDeviceAnDengCallSave(string username, string eqpcode, string wkshpcode, List<AnDnDate> json)
        {
            mes = AppDeviceManageBLL.AppDeviceAnDengCallSave(eqpcode);
            mes = AppDeviceManageBLL.AppDeviceAnDengCallSave(username, eqpcode, wkshpcode, json);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/DeviceManagerController.cs
@@ -667,7 +667,7 @@
        #region[设备点检记录明细查询]
        /// <summary>
        /// è®¾å¤‡ä¿å…»è®°å½•明细查询
        /// è®¾å¤‡ç‚¹æ£€è®°å½•明细查询
        /// </summary>
        /// <param name="djwo">设备点检单号</param>
        /// <returns></returns>
VueWebApi/DLL/BLL/AppDeviceManageBLL.cs
@@ -56,10 +56,17 @@
        #region[设备维修,扫描工位/设备二维码]
        public static ToMessage MaintainScanDeviceQrCodeData(string eqpcode)
        #region[设备维修申请,扫描工位/设备二维码]
        public static ToMessage MaintainScanDeviceApplyQrCodeData(string eqpcode)
        {
            return AppDeviceManageDAL.MaintainScanDeviceQrCodeData(eqpcode);
            return AppDeviceManageDAL.MaintainScanDeviceApplyQrCodeData(eqpcode);
        }
        #endregion
        #region[设备维修申请,提交保存]
        public static ToMessage MaintainScanDeviceApplySave(string username, string eqpcode, string wkshpcode, string faultsourcecode, string faultdescr, HttpFileCollection files)
        {
            return AppDeviceManageDAL.MaintainScanDeviceApplySave(username,eqpcode, wkshpcode, faultsourcecode, faultdescr, files);
        }
        #endregion
@@ -67,11 +74,27 @@
        #region[测试安灯呼叫]
        public static ToMessage AppDeviceAnDengCallSave(string eqpcode)
        #region[安灯呼叫扫描工位]
        public static ToMessage AppDeviceAnDengCallScanSearch(string eqpcode)
        {
            return AppDeviceManageDAL.AppDeviceAnDengCallSave(eqpcode);
            return AppDeviceManageDAL.AppDeviceAnDengCallScanSearch(eqpcode);
        }
        #endregion
        #region[安灯呼叫,选择扫描工位带出呼叫类型选项及对应人员数据]
        public static ToMessage AppDeviceAnDengCallItemSearch(string eqpcode,string wkshpcode)
        {
            return AppDeviceManageDAL.AppDeviceAnDengCallItemSearch(eqpcode, wkshpcode);
        }
        #endregion
        #region[安灯呼叫提交]
        public static ToMessage AppDeviceAnDengCallSave(string username, string eqpcode, string wkshpcode, List<AnDnDate> json)
        {
            return AppDeviceManageDAL.AppDeviceAnDengCallSave(username,eqpcode,wkshpcode,json);
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
@@ -6,6 +6,7 @@
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Hubs;
using VueWebApi.Models;
using VueWebApi.Tools;
@@ -104,12 +105,12 @@
        public static ToMessage AppDeviceCheckSave(string username, AppDevicecCheck json)
        {
            var sql = "";
            string djwo = "",numvalue="";
            string djwo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncode.EncodingSeach("1027");  //生成单号
                mes = SeachEncode.EncodingSeach("2040");  //生成单号
                if (mes.code == "300")
                {
                    return mes;
@@ -118,7 +119,7 @@
                {
                    List<string> wo = (List<string>)mes.data;
                    djwo = wo[0].ToString(); //获取单号
                    numvalue= wo[1].ToString(); //获取流水号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                if (json == null || json.children.Count <= 0)
                {
@@ -139,10 +140,10 @@
                    {
                        djwo = djwo,
                        eqp_code = json.code,
                        eqpchkmain_code=json.standcode,
                        eqpchkmain_code = json.standcode,
                        lm_user = username,
                        lm_date = DateTime.Now.ToString(),
                        chk_result=json.result
                        chk_result = json.result
                    }
                });
                //循环写入点检记录子表
@@ -157,7 +158,7 @@
                        {
                            seq = json.children[i].seq,
                            djwo = djwo,
                            eqpchkdeta_code =json.children[i].itemcode,
                            eqpchkdeta_code = json.children[i].itemcode,
                            chk_cyc = json.children[i].cycle,
                            result = json.children[i].result,
                            chk_value = json.children[i].value
@@ -279,7 +280,7 @@
        #endregion
        #region[日常保养,提交保存]
        public static ToMessage AppDeviceRepairSave(string username,string maintcyc, AppDevicecCheck json)
        public static ToMessage AppDeviceRepairSave(string username, string maintcyc, AppDevicecCheck json)
        {
            var sql = "";
            string bywo = "", numvalue = "";
@@ -287,7 +288,7 @@
            try
            {
                list.Clear();
                mes = SeachEncode.EncodingSeach("1028");  //生成单号
                mes = SeachEncode.EncodingSeach("2041");  //生成单号
                if (mes.code == "300")
                {
                    return mes;
@@ -318,7 +319,7 @@
                        bywo = bywo,
                        eqp_code = json.code,
                        eqpmaint_code = json.standcode,
                        maintcyc= maintcyc,
                        maintcyc = maintcyc,
                        lm_user = username,
                        lm_date = DateTime.Now.ToString(),
                        maint_result = json.result
@@ -328,7 +329,7 @@
                for (int i = 0; i < json.children.Count; i++)
                {
                    sql = @"insert into TEqpmaint_Proc_Deta(seq,bywo,eqpmaideta_code,result,maint_cyc,maint_value) 
                            values(@seq,@bywo,@eqpmaideta_code,@maint_cyc,@result,@maint_value)";
                            values(@seq,@bywo,@eqpmaideta_code,@result,@maint_cyc,@maint_value)";
                    list.Add(new
                    {
                        str = sql,
@@ -375,8 +376,167 @@
        #region[设备维修,扫描工位/设备二维码]
        public static ToMessage MaintainScanDeviceQrCodeData(string eqpcode)
        #region[设备维修申请,扫描工位/设备二维码]
        public static ToMessage MaintainScanDeviceApplyQrCodeData(string eqpcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取当前扫码设备是否申请维修记录
                sql = @"select *  from TEqp_RepairRequest where eqp_code=@eqpcode and status='REPA' or status='COMP'";
                dynamicParams.Add("@eqpcode", eqpcode);
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count > 0)
                {
                    //查看维修记录里面是否有已申请未维修及维修确认的数据
                    var rows = data0.AsEnumerable().Where(item => item["STATUS"].ToString().Equals("REPA")).ToArray();
                    if (rows.Length > 0)
                    {
                        mes.code = "300";
                        mes.Message = "当前设备/工位已申请,待维修!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "当前设备/工位已维修,待确认验证!";
                        mes.data = null;
                    }
                }
                else
                {
                    //获取对应设备及所属车间
                    sql = @"select A.code,A.name,T.org_code as wksp_code,T.org_name as wksp_name,E.eqpchkmain_code
                        from TEqpInfo A
                        left join TOrganization T on A.wksp_code=T.org_code
                        left join TEqpchk_Eqp E on A.code=E.eqp_code
                        where A.code=@eqpcode and A.enable='Y' and T.description='W'";
                    dynamicParams.Add("@eqpcode", eqpcode);
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        mes.code = "200";
                        mes.Message = "查询成功!";
                        mes.data = data;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "当前设备/工位不存在或异常!";
                        mes.data = data;
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[设备维修申请,提交保存]
        public static ToMessage MaintainScanDeviceApplySave(string username, string eqpcode, string wkshpcode, string faultsourcecode, string faultdescr, HttpFileCollection files)
        {
            var sql = "";
            string wxwo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncode.EncodingSeach("2042");  //生成单号
                if (mes.code == "300")
                {
                    mes.Message = "生成单号失败,请设置编码为【2042】的编码规则";
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    wxwo = wo[0].ToString(); //获取单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                //验证上传图片
                if (files != null && files.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        HttpPostedFile file = files[i];
                        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");
                        string imgPath = "/DeviceImage/image1/" + file.FileName;     //通过此对象获取文件名
                        string AbsolutePath = System.Web.HttpContext.Current.Server.MapPath(imgPath);
                        file.SaveAs(AbsolutePath); //将上传的东西保存
                        //循环写维修记录对应图片表
                        sql = @"insert into  TEqp_RepairImage(source_wo,wo_type,img1_url)
                                values(@source_wo,@wo_type,@img1_url)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                source_wo = wxwo,
                                wo_type = "REPA",
                                img1_url = imgPath
                            }
                        });
                    }
                }
                //写入维修记录表
                sql = @"insert into  TEqp_RepairRequest(docu_code,docu_date,status,wksp_code,eqp_code,request_person,request_date,failure_descript,source)
                                values(@docu_code,@docu_date,@status,@wksp_code,@eqp_code,@request_person,@request_date,@failure_descript,@source)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        docu_code = wxwo,
                        docu_date = DateTime.Now.ToString(),
                        status = "REPA",
                        wksp_code = wkshpcode,
                        eqp_code = eqpcode,
                        request_person = username,
                        request_date = DateTime.Now.ToString(),
                        failure_descript= faultdescr,
                        source=faultsourcecode
                    }
                });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "维修申请成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "维修申请失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[安灯呼叫扫描工位]
        public static ToMessage AppDeviceAnDengCallScanSearch(string eqpcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
@@ -414,17 +574,168 @@
        }
        #endregion
        #region[测试安灯呼叫]
        public static ToMessage AppDeviceAnDengCallSave(string eqpcode)
        #region[安灯呼叫,选择扫描工位带出呼叫类型选项及对应人员数据]
        public static ToMessage AppDeviceAnDengCallItemSearch(string eqpcode, string wkshpcode)
        {
            throw new NotImplementedException();
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<AnDnDate> list = new List<AnDnDate>();
            try
            {
                //根据车间代码查找呼叫类型数据
                sql = @"select A.id,B.code,B.name  from TAnDon_Roul_ConFig A
                        inner join TAnDonType B on A.andotype_code=B.code
                        where A.wkshp_code=@wkshpcode and A.enable='N'";
                dynamicParams.Add("@wkshpcode", wkshpcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    for (int i = 0; i < data.Rows.Count; i++)
                    {
                        AnDnDate mn = new AnDnDate();
                        mn.code = data.Rows[i]["CODE"].ToString();
                        mn.name = data.Rows[i]["NAME"].ToString();
                        mn.children = new List<AnDnDateSub>();
                        //根据呼叫类型id查找绑定人员
                        sql = @"select U.usercode,U.username
                                from TAnDon_Roul_ConFigUser A
                                inner join TUser U on A.usercode=U.usercode
                                where A.ando_cogfigid=@id";
                        dynamicParams.Add("@id", data.Rows[i]["ID"].ToString());
                        var data0 = DapperHelper.selectdata(sql, dynamicParams);
                        if (data0.Rows.Count > 0)
                        {
                            for (int j = 0; j < data0.Rows.Count; j++)
                            {
                                AnDnDateSub sn = new AnDnDateSub();
                                sn.usercode = data0.Rows[j]["USERCODE"].ToString();
                                sn.username = data0.Rows[j]["USERNAME"].ToString();
                                mn.children.Add(sn);
                            }
                        }
                        list.Add(mn);
                    }
                    mes.code = "200";
                    mes.Message = "查询成功!";
                    mes.data = list;
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "当前设备未设置安灯呼叫类型或者呼叫类型已关闭!";
                    mes.data = data;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[安灯呼叫提交]
        public static ToMessage AppDeviceAnDengCallSave(string username, string eqpcode, string wkshpcode, List<AnDnDate> json)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<object> list = new List<object>();
            ChatHub chthub = new ChatHub();
            try
            {
                list.Clear();
                //执行消息推送
                chthub.SendByGroupList(username, wkshpcode, eqpcode, json);
                for (int i = 1; i <= json.Count; i++)
                {
                    string code = json[i].code.ToString();
                    string name = json[i].name.ToString();
                    sql = @"select *   from TAnDon_Task_Info where wkshp_code=@wkshpcode and eqp_code=@eqpcode and type=@typecode and status='START'";
                    dynamicParams.Add("@wkshpcode", wkshpcode);
                    dynamicParams.Add("@eqpcode", eqpcode);
                    dynamicParams.Add("@typecode", code);
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        mes.code = "300";
                        mes.Message = "当前设备已经呼叫【" + name + "】,请先响应!";
                        mes.data = null;
                        return mes;
                    }
                    else
                    {
                        //获取主表最大ID
                        sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+@num,1) as id";
                        dynamicParams.Add("@num", i);
                        var dt = DapperHelper.selectdata(sql, dynamicParams);
                        //写入安灯呼叫表
                        sql = @"insert into TAnDon_Task_Info(wkshp_code,eqp_code,type,start_date,start_user,status)
                        values(@wkshp_code,@eqp_code,@type,@start_date,@start_user,@status)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                wkshp_code = wkshpcode,
                                eqp_code = eqpcode,
                                type = code,
                                start_date = DateTime.Now.ToString(),
                                start_user = username,
                                status = "START"
                            }
                        });
                        for (int j = 0; j < json[i].children.Count; j++)
                        {
                            //写入安灯记录推送人员表
                            sql = @"insert into TAnDnMessagePush(m_id,wkshp_code,eqp_code,type,resp_user,status)
                                    values(@m_id,@wkshp_code,@eqp_code,@type,@start_date,@start_user,@status)";
                            list.Add(new
                            {
                                str = sql,
                                parm = new
                                {
                                    m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
                                    wkshp_code = wkshpcode,
                                    eqp_code = eqpcode,
                                    type = code,
                                    resp_user = json[i].children[i].usercode,
                                    status = "N"
                                }
                            });
                        }
                    }
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "呼叫成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "呼叫失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/DeviceManagerDAL.cs
@@ -2251,7 +2251,7 @@
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select 
VueWebApi/HtmlPage1.html
ÎļþÒÑɾ³ý
VueWebApi/Hubs/ChatHub.cs
@@ -5,6 +5,7 @@
using System.Data;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.Hubs
@@ -42,6 +43,25 @@
            Clients.Clients(FindPublicBaseDic).SendMessage("来自用户:" + name1 + " å†…容:" + cont + "" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息推送!");
        }
        /// <summary>
        /// å®‰ç¯å‘¼å«æäº¤æ—¶è°ƒç”¨
        /// </summary>
        /// <param name="username">发起人</param>
        /// <param name="wkshpcode">车间编码</param>
        /// <param name="eqpcode">设备编码</param>
        /// <param name="json"></param>
        public void SendByGroupList(string username,string wkshpcode, string eqpcode, List<AnDnDate> json)
        {
            for (int i = 0; i < json.Count; i++)
            {
                string cont = wkshpcode + "对应设备" + eqpcode + json[i].name.ToString();
                var departmentIDs = json[i].children.ToList().Select(x => x.username).ToList();//获取推送人员
                var FindPublicBaseDic = _connections.Where(d => departmentIDs.Contains(d.Key)).Select(x => x.Value).ToList(); //匹配已经登录的推送人员唯一码
                var FindPublicBaseDicName = _connections.Where(d => FindPublicBaseDic.Contains(d.Value)).Select(x => x.Key).ToList(); //根据唯一码匹配已经登录的推送人员名称
                Clients.Clients(FindPublicBaseDic).SendMessage("来自用户:" + username +" å†…容:" + cont + "时间" + DateTime.Now.ToString("yyyy/MM/ddhh:mm:ss") + "的消息通知!");
            }
        }
        /// <summary>
        /// ç”¨æˆ·ä¸Šçº¿å‡½æ•°(单用户)
@@ -49,7 +69,7 @@
        /// <param name="name">用户名</param>
        public void SendLogin(string name)
        {
            LogHelper.WriteLogData("登录人员:" + name);
            //LogHelper.WriteLogData("登录人员:" + name);
            if (!userList.Contains(name))
            {
                userList.Add(name);
VueWebApi/Hubs/HubsMessage1.html
@@ -24,7 +24,7 @@
            //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
            var work = $.connection.chatHub;
            /*$('#displayname').val(prompt('请输入昵称:', ''));*/
            $('#displayname').val("1");
            $('#displayname').val("董么妹");
            $('#thisname').text('当前用户:' + $('#displayname').val());
VueWebApi/Hubs/HubsMessage2.html
@@ -11,8 +11,7 @@
    <h1>流程演示</h1>
    <input type="hidden" id="displayname" />
    <h2 id="thisname"></h2><br />
    <select id="username" style="width:153px;">
    </select>
    <input type="hidden" id="username" value="1" />
    <input id="cont" type="text" style="width:300px;">
    <input id="send" type="button" value="发送" />
    <div>
@@ -24,7 +23,7 @@
            //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
            var work = $.connection.chatHub;
            /*$('#displayname').val(prompt('请输入昵称:', ''));*/
            $('#displayname').val("2");
            $('#displayname').val("张三");
            $('#thisname').text('当前用户:' + $('#displayname').val());
@@ -35,28 +34,45 @@
            };
            //后端SendLogin调用后,产生的loginUser回调
            //work.client.loginUser = function (userlist) {
            //    reloadUser(userlist);
            //};
            //hub连接开启
            $.connection.hub.start().done(function () {
                var username = $('#displayname').val();
                //发送上线信息
                work.server.sendLogin(username);
                //点击按钮,发送消息
                $('#send').click(function () {
                    /*var friend = $('#username').val();*/
                    var wkshpname = "精工车间";
                    var eqpname = "设备01";
                    var json = [{ "code": "Q", "name": "呼叫质量", "children": [{ "usercode": "009", "username": "董么妹" }, { "usercode": "008", "username": "如花" }] }];
                    //调用后端函数,发送指定消息
                    work.server.sendByGroupList(username, wkshpname, eqpname, json);
                });
            });
        });
        //重新加载用户列表
        //var reloadUser = function () {
        //    $("#username").empty();
        //    for (i = 0; i < 5; i++) {
        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
        //    }
        //}
        //var reloadUser = function (userlist) {
        //    $("#username").empty();
        //    for (i = 0; i < userlist.length; i++) {
        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
        //    }
        //}
                //重新加载用户列表
                //var reloadUser = function () {
                //    $("#username").empty();
                //    for (i = 0; i < 5; i++) {
                //        $("#username").append("<option value=" + i + ">" + i + "</option>");
                //    }
                //}
                    //var reloadUser = function (userlist) {
                    //    $("#username").empty();
                    //    for (i = 0; i < userlist.length; i++) {
                    //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
                    //    }
                    //}
    </script>
</body>
</html>
VueWebApi/Image/app_4_5.png
VueWebApi/Logs/2022-09-23.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
 ã€æ—¶é—´ã€‘:2022-09-23 12:26:48,827
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:张三
时间:2022-09-23 12:26:48
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-09-23 12:28:46,556
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:张三
时间:2022-09-23 12:28:46
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-09-23 12:29:30,361
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 9
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:1
时间:2022-09-23 12:29:28
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-09-23 12:32:02,227
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 15
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:张三
时间:2022-09-23 12:32:02
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-09-23 12:32:25,943
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 9
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:1
时间:2022-09-23 12:32:25
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-09-23 13:44:09,487
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 8
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬36行
 ã€æ—¥å¿—内容】:登录人员:董么妹发送人:0发送内容:222
时间:2022-09-23 13:44:09
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Logs/2022-09-24.TXT
VueWebApi/Logs/2022-09-26.TXT
VueWebApi/Models/AnDnDate.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class AnDnDate
    {
        public string code { get; set; }
        public string name { get; set; }
        public List<AnDnDateSub> children { get; set; }//子节点
    }
    public class AnDnDateSub
    {
        public string usercode { get; set; }
        public string username { get; set; }
    }
}
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>D:\网站发布\XKDMesApi</_PublishTargetUrl>
    <History>True|2022-09-22T09:31:41.3605592Z;True|2022-09-22T17:25:44.2386416+08:00;True|2022-09-22T09:47:22.9767826+08:00;True|2022-09-16T14:31:58.5334673+08:00;True|2022-09-16T09:04:53.3449040+08:00;True|2022-09-15T15:15:18.3159768+08:00;True|2022-09-14T17:46:23.0171281+08:00;True|2022-09-14T17:43:44.4370239+08:00;True|2022-09-14T17:34:30.3167863+08:00;True|2022-09-14T17:33:00.5148855+08:00;True|2022-09-14T17:06:32.0879029+08:00;True|2022-09-14T16:50:12.7189783+08:00;True|2022-09-14T16:47:48.3868826+08:00;True|2022-09-14T16:42:35.3830356+08:00;True|2022-09-14T16:41:37.8545801+08:00;True|2022-09-14T16:36:47.0944090+08:00;True|2022-09-14T16:26:00.8638173+08:00;True|2022-09-14T16:13:43.6329252+08:00;True|2022-09-14T16:04:16.8093275+08:00;True|2022-09-14T16:02:54.4702614+08:00;True|2022-09-14T15:57:15.9623104+08:00;True|2022-09-14T15:54:23.8745601+08:00;True|2022-09-14T15:49:40.1730864+08:00;True|2022-09-14T15:42:08.2811334+08:00;True|2022-09-14T15:26:40.0417771+08:00;True|2022-09-14T15:24:30.2187269+08:00;True|2022-09-14T15:16:30.3856771+08:00;True|2022-09-14T15:09:22.4313367+08:00;True|2022-09-14T14:59:14.3795036+08:00;True|2022-09-14T14:53:26.8923244+08:00;True|2022-09-14T14:44:00.6688344+08:00;True|2022-09-14T14:41:53.3908108+08:00;True|2022-09-14T14:40:40.3787118+08:00;True|2022-09-14T14:28:39.2273279+08:00;True|2022-09-14T14:27:13.3566861+08:00;True|2022-09-14T14:25:25.4360688+08:00;True|2022-09-14T14:20:42.9734032+08:00;True|2022-09-14T13:51:39.1303401+08:00;True|2022-09-14T13:25:34.8906041+08:00;True|2022-09-14T13:19:28.9172079+08:00;True|2022-09-14T13:18:09.5900815+08:00;True|2022-09-14T10:58:58.0910068+08:00;True|2022-09-14T10:57:11.4834444+08:00;True|2022-09-14T10:45:39.8943674+08:00;True|2022-09-14T10:38:15.2282286+08:00;True|2022-09-14T10:36:54.8259640+08:00;True|2022-09-14T10:14:12.1218790+08:00;True|2022-09-14T10:13:20.0625618+08:00;True|2022-09-14T10:10:15.3538379+08:00;True|2022-09-14T10:07:09.4796434+08:00;True|2022-09-14T10:06:02.0382235+08:00;True|2022-09-14T09:57:12.0082796+08:00;True|2022-09-14T09:52:29.4689029+08:00;True|2022-09-14T09:47:26.7205193+08:00;True|2022-09-14T09:38:56.4089520+08:00;True|2022-09-14T09:32:34.9863473+08:00;True|2022-09-12T13:07:40.5119225+08:00;True|2022-09-09T15:21:48.4251654+08:00;True|2022-09-09T14:45:54.9315147+08:00;True|2022-09-09T11:01:18.2619729+08:00;True|2022-09-09T09:35:40.9779148+08:00;True|2022-09-09T09:26:51.9854326+08:00;True|2022-09-09T09:11:48.8023373+08:00;True|2022-09-09T09:05:45.5528883+08:00;True|2022-09-08T17:47:35.2628987+08:00;True|2022-09-08T17:43:32.6700813+08:00;True|2022-09-08T17:01:23.6259930+08:00;True|2022-09-08T16:55:57.2305777+08:00;True|2022-09-08T16:35:37.3631720+08:00;True|2022-09-08T16:19:13.9122228+08:00;True|2022-09-08T16:04:07.7348285+08:00;True|2022-09-08T16:00:49.9961701+08:00;True|2022-09-08T15:16:03.0110619+08:00;True|2022-09-08T10:19:46.2872822+08:00;True|2022-09-08T10:11:15.5386438+08:00;True|2022-09-08T08:19:02.5242539+08:00;True|2022-09-08T08:18:11.7308721+08:00;True|2022-09-07T11:39:27.2463573+08:00;True|2022-09-07T10:40:57.8877369+08:00;True|2022-09-07T10:37:10.1517098+08:00;True|2022-09-07T10:30:08.7782107+08:00;True|2022-09-07T10:23:52.8534200+08:00;True|2022-09-07T10:09:31.6994230+08:00;True|2022-09-07T10:01:16.2683112+08:00;True|2022-09-07T09:51:47.6282546+08:00;True|2022-09-06T19:11:45.1701913+08:00;True|2022-09-06T18:29:29.2671862+08:00;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
    <History>True|2022-09-23T08:12:28.0271396Z;True|2022-09-23T13:50:16.4039745+08:00;True|2022-09-23T13:49:02.0464589+08:00;True|2022-09-23T13:47:12.4458913+08:00;True|2022-09-23T13:42:58.0795715+08:00;True|2022-09-23T13:32:34.2909297+08:00;True|2022-09-23T13:31:14.5573692+08:00;True|2022-09-23T13:27:32.1842906+08:00;True|2022-09-23T12:50:51.2811202+08:00;True|2022-09-22T17:31:41.3605592+08:00;True|2022-09-22T17:25:44.2386416+08:00;True|2022-09-22T09:47:22.9767826+08:00;True|2022-09-16T14:31:58.5334673+08:00;True|2022-09-16T09:04:53.3449040+08:00;True|2022-09-15T15:15:18.3159768+08:00;True|2022-09-14T17:46:23.0171281+08:00;True|2022-09-14T17:43:44.4370239+08:00;True|2022-09-14T17:34:30.3167863+08:00;True|2022-09-14T17:33:00.5148855+08:00;True|2022-09-14T17:06:32.0879029+08:00;True|2022-09-14T16:50:12.7189783+08:00;True|2022-09-14T16:47:48.3868826+08:00;True|2022-09-14T16:42:35.3830356+08:00;True|2022-09-14T16:41:37.8545801+08:00;True|2022-09-14T16:36:47.0944090+08:00;True|2022-09-14T16:26:00.8638173+08:00;True|2022-09-14T16:13:43.6329252+08:00;True|2022-09-14T16:04:16.8093275+08:00;True|2022-09-14T16:02:54.4702614+08:00;True|2022-09-14T15:57:15.9623104+08:00;True|2022-09-14T15:54:23.8745601+08:00;True|2022-09-14T15:49:40.1730864+08:00;True|2022-09-14T15:42:08.2811334+08:00;True|2022-09-14T15:26:40.0417771+08:00;True|2022-09-14T15:24:30.2187269+08:00;True|2022-09-14T15:16:30.3856771+08:00;True|2022-09-14T15:09:22.4313367+08:00;True|2022-09-14T14:59:14.3795036+08:00;True|2022-09-14T14:53:26.8923244+08:00;True|2022-09-14T14:44:00.6688344+08:00;True|2022-09-14T14:41:53.3908108+08:00;True|2022-09-14T14:40:40.3787118+08:00;True|2022-09-14T14:28:39.2273279+08:00;True|2022-09-14T14:27:13.3566861+08:00;True|2022-09-14T14:25:25.4360688+08:00;True|2022-09-14T14:20:42.9734032+08:00;True|2022-09-14T13:51:39.1303401+08:00;True|2022-09-14T13:25:34.8906041+08:00;True|2022-09-14T13:19:28.9172079+08:00;True|2022-09-14T13:18:09.5900815+08:00;True|2022-09-14T10:58:58.0910068+08:00;True|2022-09-14T10:57:11.4834444+08:00;True|2022-09-14T10:45:39.8943674+08:00;True|2022-09-14T10:38:15.2282286+08:00;True|2022-09-14T10:36:54.8259640+08:00;True|2022-09-14T10:14:12.1218790+08:00;True|2022-09-14T10:13:20.0625618+08:00;True|2022-09-14T10:10:15.3538379+08:00;True|2022-09-14T10:07:09.4796434+08:00;True|2022-09-14T10:06:02.0382235+08:00;True|2022-09-14T09:57:12.0082796+08:00;True|2022-09-14T09:52:29.4689029+08:00;True|2022-09-14T09:47:26.7205193+08:00;True|2022-09-14T09:38:56.4089520+08:00;True|2022-09-14T09:32:34.9863473+08:00;True|2022-09-12T13:07:40.5119225+08:00;True|2022-09-09T15:21:48.4251654+08:00;True|2022-09-09T14:45:54.9315147+08:00;True|2022-09-09T11:01:18.2619729+08:00;True|2022-09-09T09:35:40.9779148+08:00;True|2022-09-09T09:26:51.9854326+08:00;True|2022-09-09T09:11:48.8023373+08:00;True|2022-09-09T09:05:45.5528883+08:00;True|2022-09-08T17:47:35.2628987+08:00;True|2022-09-08T17:43:32.6700813+08:00;True|2022-09-08T17:01:23.6259930+08:00;True|2022-09-08T16:55:57.2305777+08:00;True|2022-09-08T16:35:37.3631720+08:00;True|2022-09-08T16:19:13.9122228+08:00;True|2022-09-08T16:04:07.7348285+08:00;True|2022-09-08T16:00:49.9961701+08:00;True|2022-09-08T15:16:03.0110619+08:00;True|2022-09-08T10:19:46.2872822+08:00;True|2022-09-08T10:11:15.5386438+08:00;True|2022-09-08T08:19:02.5242539+08:00;True|2022-09-08T08:18:11.7308721+08:00;True|2022-09-07T11:39:27.2463573+08:00;True|2022-09-07T10:40:57.8877369+08:00;True|2022-09-07T10:37:10.1517098+08:00;True|2022-09-07T10:30:08.7782107+08:00;True|2022-09-07T10:23:52.8534200+08:00;True|2022-09-07T10:09:31.6994230+08:00;True|2022-09-07T10:01:16.2683112+08:00;True|2022-09-07T09:51:47.6282546+08:00;True|2022-09-06T19:11:45.1701913+08:00;True|2022-09-06T18:29:29.2671862+08:00;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="Areas/HelpPage/HelpPage.css">
@@ -720,16 +720,16 @@
      <publishTime>12/24/2021 15:38:29</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>09/22/2022 17:31:35</publishTime>
      <publishTime>09/23/2022 16:12:20</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll.config">
      <publishTime>06/15/2022 15:31:43</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>09/22/2022 17:31:35</publishTime>
      <publishTime>09/23/2022 16:12:20</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>09/22/2022 17:31:35</publishTime>
      <publishTime>09/23/2022 16:12:20</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -738,10 +738,10 @@
      <publishTime>01/23/2014 13:57:34</publishTime>
    </File>
    <File Include="bin/zh-Hans/Microsoft.AspNet.SignalR.Core.resources.dll">
      <publishTime>05/04/2017 02:34:10</publishTime>
      <publishTime>05/04/2017 10:34:10</publishTime>
    </File>
    <File Include="bin/zh-Hans/Microsoft.AspNet.SignalR.SystemWeb.resources.dll">
      <publishTime>05/04/2017 02:34:16</publishTime>
      <publishTime>05/04/2017 10:34:16</publishTime>
    </File>
    <File Include="bin/zh-Hans/Microsoft.Owin.Host.SystemWeb.resources.dll">
      <publishTime>01/18/2019 12:59:56</publishTime>
@@ -1284,13 +1284,13 @@
      <publishTime>09/14/2022 17:56:08</publishTime>
    </File>
    <File Include="Hubs/HubsMessage.html">
      <publishTime>09/08/2022 17:51:08</publishTime>
      <publishTime>09/23/2022 12:47:04</publishTime>
    </File>
    <File Include="Hubs/HubsMessage1.html">
      <publishTime>09/08/2022 17:47:19</publishTime>
      <publishTime>09/23/2022 12:40:14</publishTime>
    </File>
    <File Include="Hubs/HubsMessage2.html">
      <publishTime>09/08/2022 17:47:18</publishTime>
      <publishTime>09/23/2022 13:52:12</publishTime>
    </File>
    <File Include="Image/1.png">
      <publishTime>08/11/2022 08:20:52</publishTime>
@@ -1521,7 +1521,7 @@
      <publishTime>06/10/2022 08:20:24</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>09/22/2022 17:31:40</publishTime>
      <publishTime>09/23/2022 16:12:27</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/Tools/TestSocket.cs
ÎļþÒÑɾ³ý
VueWebApi/VueWebApi.csproj
@@ -360,6 +360,7 @@
      <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    <Compile Include="Hubs\ChatHub2.cs" />
    <Compile Include="Models\AnDnDate.cs" />
    <Compile Include="Models\AppDevicecCheck.cs" />
    <Compile Include="Models\EqpRepair.cs" />
    <Compile Include="Models\ExcelErro.cs" />
@@ -402,7 +403,6 @@
    <Compile Include="Tools\SeachEncode.cs" />
    <Compile Include="Tools\SessionControllerRouteHandler.cs" />
    <Compile Include="Tools\SessionRouteHandler.cs" />
    <Compile Include="Tools\TestSocket.cs" />
    <Compile Include="Tools\TJson.cs" />
    <Compile Include="Tools\ToMessage.cs" />
    <Compile Include="Util\EntityHelper.cs" />
@@ -418,7 +418,6 @@
    <Content Include="Global.asax" />
    <Content Include="Grid\grwebapp.js" />
    <Content Include="Grid\webapp-ws-tutorial.htm" />
    <Content Include="HtmlPage1.html" />
    <Content Include="Hubs\HubsMessage2.html" />
    <Content Include="Hubs\HubsMessage1.html" />
    <Content Include="Hubs\HubsMessage.html" />
@@ -443,6 +442,7 @@
    <Content Include="Image\app_4_2.png" />
    <Content Include="Image\app_4_3.png" />
    <Content Include="Image\app_4_4.png" />
    <Content Include="Image\app_4_5.png" />
    <Content Include="Image\app_5.png" />
    <Content Include="Image\app_5_1.png" />
    <Content Include="Image\app_5_2.png" />
@@ -535,6 +535,8 @@
  </ItemGroup>
  <ItemGroup>
    <Folder Include="App_Data\" />
    <Folder Include="DeviceImage\image1\" />
    <Folder Include="DeviceImage\image2\" />
    <Folder Include="File\excel\" />
    <Folder Include="File\newxls\" />
    <Folder Include="InExcel\" />
VueWebApi/Web.config
@@ -25,7 +25,6 @@
        <!--key失效时间30秒-->
        <add key="RedisKeyTimeCont" value="120" />
        <!--Excel导出模板配置IP-->
        <add key="serverIP" value="wss://121.196.36.24:8001" />
        <add key="FileIP" value="http://121.196.36.24:8001/" />
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
VueWebApi/bin/VueWebApi.dll.config
@@ -25,7 +25,6 @@
        <!--key失效时间30秒-->
        <add key="RedisKeyTimeCont" value="120" />
        <!--Excel导出模板配置IP-->
        <add key="serverIP" value="wss://121.196.36.24:8001" />
        <add key="FileIP" value="http://121.196.36.24:8001/" />
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -741,11 +741,36 @@
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.MaintainScanDeviceQrCodeData(System.String)">
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.MaintainScanDeviceApplyQrCodeData(System.String)">
            <summary>
            è®¾å¤‡ç»´ä¿®,扫描工位/设备二维码
            è®¾å¤‡ç»´ä¿®ç”³è¯·,扫描工位/设备二维码
            </summary>
            <param name="eqpcode">设备编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallScanSearch(System.String)">
            <summary>
            å®‰ç¯å‘¼å«æ‰«æå·¥ä½
            </summary>
            <param name="eqpcode">设备码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallItemSearch(System.String,System.String)">
            <summary>
            å®‰ç¯å‘¼å«,选择扫描工位带出呼叫类型选项及对应人员数据
            </summary>
            <param name="eqpcode">设备编码</param>
            <param name="wkshpcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallSave(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.AnDnDate})">
            <summary>
            å®‰ç¯å‘¼å«æäº¤
            </summary>
            <param name="username">登录人员</param>
            <param name="eqpcode">设备编码</param>
            <param name="wkshpcode">车间编码</param>
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.OrganizationSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -1361,7 +1386,7 @@
        </member>
        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceCheckSubTakeSearch(System.String)">
            <summary>
            è®¾å¤‡ä¿å…»è®°å½•明细查询
            è®¾å¤‡ç‚¹æ£€è®°å½•明细查询
            </summary>
            <param name="djwo">设备点检单号</param>
            <returns></returns>
@@ -2529,6 +2554,15 @@
            <param name="name2">消息接收者</param>
            <param name="cont">消息内容</param>
        </member>
        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroupList(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.AnDnDate})">
            <summary>
            å®‰ç¯å‘¼å«æäº¤æ—¶è°ƒç”¨
            </summary>
            <param name="username">发起人</param>
            <param name="wkshpcode">车间编码</param>
            <param name="eqpcode">设备编码</param>
            <param name="json"></param>
        </member>
        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
            <summary>
            ç”¨æˆ·ä¸Šçº¿å‡½æ•°(单用户)
@@ -3147,14 +3181,6 @@
            </summary>
            <param name="rolecode"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.TestSocket.Send(System.String,System.String)">
            <summary>
            å‘送消息
            </summary>
            <param name="userid"></param>
            <param name="msg"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.ObjectValueParser`1">
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/HtmlPage1.html
ÎļþÒÑɾ³ý
VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage1.html
@@ -24,7 +24,7 @@
            //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
            var work = $.connection.chatHub;
            /*$('#displayname').val(prompt('请输入昵称:', ''));*/
            $('#displayname').val("1");
            $('#displayname').val("董么妹");
            $('#thisname').text('当前用户:' + $('#displayname').val());
VueWebApi/obj/Release/Package/PackageTmp/Hubs/HubsMessage2.html
@@ -11,8 +11,7 @@
    <h1>流程演示</h1>
    <input type="hidden" id="displayname" />
    <h2 id="thisname"></h2><br />
    <select id="username" style="width:153px;">
    </select>
    <input type="hidden" id="username" value="1" />
    <input id="cont" type="text" style="width:300px;">
    <input id="send" type="button" value="发送" />
    <div>
@@ -24,7 +23,7 @@
            //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
            var work = $.connection.chatHub;
            /*$('#displayname').val(prompt('请输入昵称:', ''));*/
            $('#displayname').val("2");
            $('#displayname').val("张三");
            $('#thisname').text('当前用户:' + $('#displayname').val());
@@ -35,28 +34,45 @@
            };
            //后端SendLogin调用后,产生的loginUser回调
            //work.client.loginUser = function (userlist) {
            //    reloadUser(userlist);
            //};
            //hub连接开启
            $.connection.hub.start().done(function () {
                var username = $('#displayname').val();
                //发送上线信息
                work.server.sendLogin(username);
                //点击按钮,发送消息
                $('#send').click(function () {
                    /*var friend = $('#username').val();*/
                    var wkshpname = "精工车间";
                    var eqpname = "设备01";
                    var json = [{ "code": "Q", "name": "呼叫质量", "children": [{ "usercode": "009", "username": "董么妹" }, { "usercode": "008", "username": "如花" }] }];
                    //调用后端函数,发送指定消息
                    work.server.sendByGroupList(username, wkshpname, eqpname, json);
                });
            });
        });
        //重新加载用户列表
        //var reloadUser = function () {
        //    $("#username").empty();
        //    for (i = 0; i < 5; i++) {
        //        $("#username").append("<option value=" + i + ">" +i + "</option>");
        //    }
        //}
        //var reloadUser = function (userlist) {
        //    $("#username").empty();
        //    for (i = 0; i < userlist.length; i++) {
        //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
        //    }
        //}
                //重新加载用户列表
                //var reloadUser = function () {
                //    $("#username").empty();
                //    for (i = 0; i < 5; i++) {
                //        $("#username").append("<option value=" + i + ">" + i + "</option>");
                //    }
                //}
                    //var reloadUser = function (userlist) {
                    //    $("#username").empty();
                    //    for (i = 0; i < userlist.length; i++) {
                    //        $("#username").append("<option value=" + userlist[i] + ">" + userlist[i] + "</option>");
                    //    }
                    //}
    </script>
</body>
</html>
VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -25,7 +25,6 @@
    <!--key失效时间30秒-->
    <add key="RedisKeyTimeCont" value="120" />
    <!--Excel导出模板配置IP-->
    <add key="serverIP" value="wss://121.196.36.24:8001" />
    <add key="FileIP" value="http://121.196.36.24:8001/" />
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -748,6 +748,31 @@
            <param name="eqpcode">设备编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallScanSearch(System.String)">
            <summary>
            å®‰ç¯å‘¼å«æ‰«æå·¥ä½
            </summary>
            <param name="eqpcode">设备码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallItemSearch(System.String,System.String)">
            <summary>
            å®‰ç¯å‘¼å«,选择扫描工位带出呼叫类型选项及对应人员数据
            </summary>
            <param name="eqpcode">设备编码</param>
            <param name="wkshpcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengCallSave(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.AnDnDate})">
            <summary>
            å®‰ç¯å‘¼å«æäº¤
            </summary>
            <param name="username">登录人员</param>
            <param name="eqpcode">设备编码</param>
            <param name="wkshpcode">车间编码</param>
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.OrganizationSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç»„织架构查询
@@ -1361,7 +1386,7 @@
        </member>
        <member name="M:VueWebApi.Controllers.DeviceManagerController.DeviceCheckSubTakeSearch(System.String)">
            <summary>
            è®¾å¤‡ä¿å…»è®°å½•明细查询
            è®¾å¤‡ç‚¹æ£€è®°å½•明细查询
            </summary>
            <param name="djwo">设备点检单号</param>
            <returns></returns>
@@ -2529,6 +2554,15 @@
            <param name="name2">消息接收者</param>
            <param name="cont">消息内容</param>
        </member>
        <member name="M:VueWebApi.Hubs.ChatHub.SendByGroupList(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.AnDnDate})">
            <summary>
            å®‰ç¯å‘¼å«æäº¤æ—¶è°ƒç”¨
            </summary>
            <param name="username">发起人</param>
            <param name="wkshpcode">车间编码</param>
            <param name="eqpcode">设备编码</param>
            <param name="json"></param>
        </member>
        <member name="M:VueWebApi.Hubs.ChatHub.SendLogin(System.String)">
            <summary>
            ç”¨æˆ·ä¸Šçº¿å‡½æ•°(单用户)
@@ -3147,14 +3181,6 @@
            </summary>
            <param name="rolecode"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.TestSocket.Send(System.String,System.String)">
            <summary>
            å‘送消息
            </summary>
            <param name="userid"></param>
            <param name="msg"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.ObjectValueParser`1">
VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -25,7 +25,6 @@
        <!--key失效时间30秒-->
        <add key="RedisKeyTimeCont" value="120" />
        <!--Excel导出模板配置IP-->
        <add key="serverIP" value="wss://121.196.36.24:8001" />
        <add key="FileIP" value="http://121.196.36.24:8001/" />
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -25,7 +25,6 @@
    <!--key失效时间30秒-->
    <add key="RedisKeyTimeCont" value="120" />
    <!--Excel导出模板配置IP-->
    <add key="serverIP" value="wss://121.196.36.24:8001" />
    <add key="FileIP" value="http://121.196.36.24:8001/" />
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
b8cd0f8acb858c5d84c40903a64913c5cbad3758
d0fa6e5450730e3a6c9afa3aaa38f785c470472a
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -281,6 +281,7 @@
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ