yl
2022-10-09 9eb6dc41797cbace32a65877067a9c9ac3154f7a
安灯呼叫、安灯响应接口开发
已添加4个文件
已修改24个文件
967 ■■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppDeviceManageController.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductionManagementController.cs 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppDeviceManageBLL.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductionManagementBLL.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppDeviceManageDAL.cs 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductionManagementDAL.cs 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-10-08.TXT 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-10-09.TXT 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/AnDnDate.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/CapaPlan.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/CapacityPlanSect.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Web.config 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.dll.config 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Web.config 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/original/Web.config 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config 5 ●●●● 补丁 | 查看 | 原始文档 | 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
@@ -156,11 +156,11 @@
        /// è®¾å¤‡ç»´ä¿®åˆ—表
        /// </summary>
        /// <returns></returns>
        [Route(template: "RepairScanDeviceQrCodeData")]
        [Route(template: "RepairScanDeviceQrCodeDataList")]
        [HttpGet]
        public HttpResponseMessage RepairScanDeviceQrCodeData()
        public HttpResponseMessage RepairScanDeviceQrCodeDataList()
        {
            mes = AppDeviceManageBLL.RepairScanDeviceQrCodeData();
            mes = AppDeviceManageBLL.RepairScanDeviceQrCodeDataList();
            return TJson.toJson(mes);
        }
        #endregion
@@ -289,5 +289,38 @@
        #region[安灯响应扫描工位/设备]
        /// <summary>
        /// å®‰ç¯å“åº”扫描工位/设备
        /// </summary>
        /// <param name="eqpcode">设备/工位编码</param>
        /// <returns></returns>
        [Route(template: "AppDeviceAnDengLampResponseScanSearch")]
        [HttpPost]
        public HttpResponseMessage AppDeviceAnDengLampResponseScanSearch(string eqpcode)
        {
            mes = AppDeviceManageBLL.AppDeviceAnDengLampResponseScanSearch(eqpcode);
            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: "AppDeviceAnDengLampResponseSave")]
        [HttpPost]
        public HttpResponseMessage AppDeviceAnDengLampResponseSave(string username, string eqpcode, string wkshpcode, List<ObjectData> json)
        {
            mes = AppDeviceManageBLL.AppDeviceAnDengLampResponseSave(username, eqpcode, wkshpcode, json);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/ProductionManagementController.cs
@@ -8,6 +8,7 @@
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Script.Serialization;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
using VueWebApi.Tools;
@@ -705,5 +706,120 @@
        }
        #endregion
        #region[产能规划查询]
        /// <summary>
        /// äº§èƒ½è§„划查询
        /// </summary>
        /// <param name="page">页码</param>
        /// <param name="rows">页数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <param name="workshop">车间编码</param>
        /// <param name="devicetype">生产单元</param>
        /// <param name="stustype">有效状态</param>
        /// <returns></returns>
        [Route(template: "CapacityPlanningSearch")]
        [HttpGet]
        public HttpResponseMessage CapacityPlanningSearch(int page, int rows, string prop, string order,string workshop = null, string devicetype = null, string stustype = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ProductionManagementBLL.CapacityPlanningSearch(workshop, devicetype, stustype, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
        #region[产能规划默认方案保存提交]
        /// <summary>
        /// äº§èƒ½è§„划默认方案保存提交
        /// </summary>
        /// <param name="captplanid">产能规划(生产资源)id</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="capunitcode">生产单元编码</param>
        /// <param name="capsetupcode">默认方案编码</param>
        /// <param name="captplantype">资源类型</param>
        /// <returns></returns>
        [Route(template: "CapacityPlanSubmit")]
        [HttpPost]
        public HttpResponseMessage CapacityPlanSubmit(string wkshopcode, string capunitcode,string captplanid=null,string capsetupcode=null,string captplantype=null)
        {
            string type = ""; //提交类型
            if (captplanid == "" || captplanid == null)
            {
                type = "Add";
            }
            else
            {
                type = "Update";
            }
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.CapacityPlanSubmit(type,captplanid,wkshopcode,capunitcode,capsetupcode, captplantype,username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[产能规划点击日历组件查找已关联的日期方案]
        /// <summary>
        /// äº§èƒ½è§„划点击日历组件查找已关联的日期方案
        /// </summary>
        /// <param name="captplanid">产能规划(生产资源)id</param>
        /// <returns></returns>
        [Route(template: "CapacityPlanningCalendar")]
        [HttpGet]
        public HttpResponseMessage CapacityPlanningCalendar(string captplanid)
        {
            mes = ProductionManagementBLL.CapacityPlanningCalendar(captplanid);
            return TJson.toJson(mes);
        }
        #endregion
        #region[产能规划日历双击时带出对应的方案]
        /// <summary>
        /// äº§èƒ½è§„划日历双击时带出对应的方案
        /// </summary>
        /// <param name="captplanid">产能规划(生产资源)id</param>
        /// <param name="datetime">双击选中的日期</param>
        /// <returns></returns>
        [Route(template: "CapacityPlanningOnclickSelect")]
        [HttpGet]
        public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid,string datetime)
        {
            mes = ProductionManagementBLL.CapacityPlanningOnclickSelect(captplanid, datetime);
            return TJson.toJson(mes);
        }
        #endregion
        #region[产能规划工作日历选择提交]
        /// <summary>
        /// äº§èƒ½è§„划工作日历选择提交
        /// </summary>
        /// <returns></returns>
        [Route(template: "CapacityPlanningGivePlanSubmit")]
        [HttpPost]
        public HttpResponseMessage CapacityPlanningGivePlanSubmit()
        {
            string wkshopcode = HttpContext.Current.Request["wkshopcode"].ToString();//车间编码
            string capunitcode = HttpContext.Current.Request["capunitcode"].ToString();//生产单元编码
            string captplanid = HttpContext.Current.Request["captplanid"].ToString(); //产能规划(生产资源)列表id
            string capsetupcode = HttpContext.Current.Request["capsetupcode"].ToString(); //默认方案编码
            string captplantype = HttpContext.Current.Request["captplantype"].ToString(); //资源类型
            string worklist = HttpContext.Current.Request["worklist"].ToString();  //工作日历数据集
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            List<CapaPlan> objs = Serializer.Deserialize<List<CapaPlan>>(worklist);
            string type = ""; //提交类型
            if (captplanid == "" || captplanid == null)
            {
                type = "Add";
            }
            else
            {
                type = "Update";
            }
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs,type, username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/AppDeviceManageBLL.cs
@@ -72,9 +72,9 @@
        #region[设备维修列表]
        public static ToMessage RepairScanDeviceQrCodeData()
        public static ToMessage RepairScanDeviceQrCodeDataList()
        {
            return AppDeviceManageDAL.RepairScanDeviceQrCodeData();
            return AppDeviceManageDAL.RepairScanDeviceQrCodeDataList();
        }
        #endregion
@@ -130,5 +130,19 @@
        #endregion
        #region[安灯响应扫描工位/设备]
        public static ToMessage AppDeviceAnDengLampResponseScanSearch(string eqpcode)
        {
            return AppDeviceManageDAL.AppDeviceAnDengLampResponseScanSearch(eqpcode);
        }
        #endregion
        #region[安灯响应提交]
        public static ToMessage AppDeviceAnDengLampResponseSave(string username, string eqpcode, string wkshpcode, List<ObjectData> json)
        {
            return AppDeviceManageDAL.AppDeviceAnDengLampResponseSave(username,eqpcode,wkshpcode,json);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -255,5 +255,42 @@
            return ProductionManagementDAL.MesOrderBitchAntiClosedSeave(username, dt);
        }
        #endregion
        #region[产能规划查询]
        public static ToMessage CapacityPlanningSearch(string workshop, string devicetype, string stustype, int startNum, int endNum, string prop, string order)
        {
            return ProductionManagementDAL.CapacityPlanningSearch(workshop, devicetype, stustype, startNum, endNum, prop, order);
        }
        #endregion
        #region[产能规划默认方案保存提交]
        public static ToMessage CapacityPlanSubmit(string type, string captplanid, string wkshopcode, string capunitcode, string capsetupcode,string captplantype, string username)
        {
            return ProductionManagementDAL.CapacityPlanSubmit(type, captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, username);
        }
        #endregion
        #region[产能规划点击日历组件查找已关联的日期方案]
        public static ToMessage CapacityPlanningCalendar(string captplanid)
        {
            return ProductionManagementDAL.CapacityPlanningCalendar(captplanid);
        }
        #endregion
        #region[产能规划日历双击时带出对应的方案]
        public static ToMessage CapacityPlanningOnclickSelect(string captplanid, string datetime)
        {
            return ProductionManagementDAL.CapacityPlanningOnclickSelect(captplanid,datetime);
        }
        #endregion
        #region[产能规划工作日历选择提交]
        public static ToMessage CapacityPlanningGivePlanSubmit(string captplanid, string wkshopcode, string capunitcode, string capsetupcode, string captplantype, List<CapaPlan> objs, string type, string username)
        {
            return ProductionManagementDAL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs, type, username);
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
@@ -466,13 +466,13 @@
                    for (int i = 0; i < files.Count; i++)
                    {
                        HttpPostedFile file = files[i];
                        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");
                        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string imgPath = "/DeviceImage/image1/" + imgName + 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)";
                        sql = @"insert into  TEqp_RepairImage(source_wo,wo_type,img1url)
                                values(@source_wo,@wo_type,@img1url)";
                        list.Add(new
                        {
                            str = sql,
@@ -480,7 +480,7 @@
                            {
                                source_wo = wxwo,
                                wo_type = "REPA",
                                img1_url = imgPath
                                img1url = imgPath
                            }
                        });
                    }
@@ -538,7 +538,7 @@
        #region[设备维修列表]
        public static ToMessage RepairScanDeviceQrCodeData()
        public static ToMessage RepairScanDeviceQrCodeDataList()
        {
            string sql = "";
            try
@@ -606,7 +606,7 @@
                    {
                        string imgPath1 = "", imgPath2 = "", AbsolutePath = "";
                        HttpPostedFile file = files[i];
                        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");
                        string imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string keyname = files.AllKeys[i].ToString();
                        if (keyname == "files1")
                        {
@@ -621,8 +621,8 @@
                        file.SaveAs(AbsolutePath); //将上传的东西保存
                                                   //循环写维修记录对应图片表
                        sql = @"insert into  TEqp_RepairImage(source_wo,wo_type,img1_url,img2_url)
                                values(@source_wo,@wo_type,@img1_url,@img2_url)";
                        sql = @"insert into  TEqp_RepairImage(source_wo,wo_type,img1url,img2url)
                                values(@source_wo,@wo_type,@img1url,@img2url)";
                        list.Add(new
                        {
                            str = sql,
@@ -630,8 +630,8 @@
                            {
                                source_wo = wxwo,
                                wo_type = "COMP",
                                img1_url = imgPath1,
                                img2_url = imgPath2
                                img1url = imgPath1,
                                img2url = imgPath2
                            }
                        });
                    }
@@ -897,10 +897,14 @@
            try
            {
                //根据车间代码查找呼叫类型数据
                sql = @"select A.id,B.code,B.name  from TAnDon_Roul_ConFig A
                sql = @"select A.id,B.code,B.name,(case when F.type is null then 'N' else 'Y' end) flag
                        from TAnDon_Roul_ConFig A
                        inner join TAnDonType B on A.andotype_code=B.code
                        where A.wkshp_code=@wkshpcode and A.enable='N'";
                        inner  join TEqpInfo E on A.wkshp_code=e.wksp_code
                        left join(select type,wkshp_code,eqp_code  from TAnDon_Task_Info where eqp_code=@eqpcode and wkshp_code=@wkshpcode and status='START') F on A.wkshp_code=F.wkshp_code and E.code=F.eqp_code
                        where A.wkshp_code=@wkshpcode and E.code=@eqpcode and A.enable='N'";
                dynamicParams.Add("@wkshpcode", wkshpcode);
                dynamicParams.Add("@eqpcode", eqpcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
@@ -909,6 +913,7 @@
                        AnDnDate mn = new AnDnDate();
                        mn.code = data.Rows[i]["CODE"].ToString();
                        mn.name = data.Rows[i]["NAME"].ToString();
                        mn.flag = data.Rows[i]["FLAG"].ToString();
                        mn.children = new List<AnDnDateSub>();
                        //根据呼叫类型id查找绑定人员
                        sql = @"select U.usercode,U.username   
@@ -1005,7 +1010,7 @@
                        {
                            //写入安灯记录推送人员表
                            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)";
                                    values(@m_id,@wkshp_code,@eqp_code,@type,@resp_user,@status)";
                            list.Add(new
                            {
                                str = sql,
@@ -1051,5 +1056,107 @@
        #endregion
        #region[安灯响应扫描工位/设备]
        public static ToMessage AppDeviceAnDengLampResponseScanSearch(string eqpcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应设备及所属车间的安灯呼叫记录
                sql = @"select A.eqp_code,B.name as eqp_name,T.org_name,A.type as typecode,D.name as typename
                        from TAnDon_Task_Info A
                        left join  TEqpInfo B on A.eqp_code=B.code
                        left join  TOrganization T on B.wksp_code=T.org_code
                        left join  TAnDonType D on A.type=D.code
                        where A.eqp_code=@eqpcode and A.status='START' and B.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 AppDeviceAnDengLampResponseSave(string username, string eqpcode, string wkshpcode, List<ObjectData> json)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<object> list = new List<object>();
            ChatHub chthub = new ChatHub();
            try
            {
                list.Clear();
                for (int i = 1; i <= json.Count; i++)
                {
                    string code = json[i].code.ToString();
                    string name = json[i].name.ToString();
                    //更新安灯呼叫表
                    sql = @"update TAnDon_Task_Info set resp_user=@resp_user,resp_date=@resp_date,status='CLOSED',taking=cast ( cast ( datediff ( ss, start_date, @resp_date) / ( 60 * 60 * 24 ) as int ) as varchar ) + '天' +
                            cast ( cast ( datediff ( ss, start_date, @resp_date ) % 86400 / 3600 as int ) as varchar ) + '小时' +
                            cast ( cast ( datediff ( ss, start_date, @resp_date ) % 3600 / 60 as int ) as varchar ) + '分' +
                            cast ( cast ( datediff ( ss, start_date, @resp_date ) % 60 as int ) as varchar ) + '秒'
                            where wkshp_code=@wkshp_code and eqp_code=@eqp_code and type=@type and status='START'";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            wkshp_code = wkshpcode,
                            eqp_code = eqpcode,
                            type = code,
                            resp_date = DateTime.Now.ToString(),
                            resp_user = username,
                            status = "START"
                        }
                    });
                }
                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/ProductionManagementDAL.cs
@@ -2515,6 +2515,420 @@
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[产能规划查询]
        public static ToMessage CapacityPlanningSearch(string workshop, string devicetype, string stustype, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (workshop != "" && workshop != null)
                {
                    search += "and A.wksp_code=@workshop ";
                    dynamicParams.Add("@workshop", workshop);
                }
                if (devicetype != "" && devicetype != null)
                {
                    search += "and A.code=@devicetype ";
                    dynamicParams.Add("@devicetype", devicetype);
                }
                if (stustype != "" && stustype != null)
                {
                    search += "and B.enable=@stustype ";
                    dynamicParams.Add("@stustype", stustype);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            B.id             CaptPlanId,
                            A.wksp_code      CaptPlanWorkShopid,
                            C.org_name       CaptPlanWorkShop,
                            A.code           CaptPlanDeviceTypeid,
                            A.name           CaptPlanDeviceType,
                            A.ClassType      CaptPlanType,
                            E.aa             CaptPlanShopCalendar,
                            E.RR             CaptPlanShopMaxDate,
                            E.TT             CaptPlanShopCalendarList,
                            B.wkshift_code   CaptPlanWorkShiftCode,
                            D.name           CaptPlanWorkShift,
                            D.duration       CaptPlanDuration,
                            B.lm_date        CaptPlanDate,
                            B.ENABLE         CaptPlanStus,
                            G.username       CaptPlanUser
                            FROM(
                            select distinct B.wksp_code,A.code,A.name,'D' ClassType   from TEqpType A
                            left join TEqpInfo B on A.code=B.eqptype_code
                            left join TFlw_Rteqp C on B.code=C.eqp_code
                            left join TFlw_Rtdt  D on C.step_code=D.step_code
                            where D.first_choke='Y'  --order by A.code
                            )A
                            left join TOrganization C on A.wksp_code=C.org_code
                            left join TWkm_capac_plan B ON A.wksp_code=B.wkshop and A.code=B.eqp_typecode
                            left join TBas_wkshift_info D on B.wkshift_code=D.code
                            left join TUser  G   on B.lm_user=G.usercode
                            left join (
                               select m_id,
                               min(CONVERT(varchar(100), wkdate, 23))+'~'+max(CONVERT(varchar(100), wkdate, 23)) aa,
                               max(CONVERT(varchar(100), wkdate, 23))RR,
                               STUFF((
                                    SELECT ',' + CONVERT(varchar(100),t1.wkdate, 23)
                                      FROM TWkm_capac_plan_sub t1
                                      WHERE t1.m_id = t0.m_id
                                      ORDER BY t1.m_id
                                      FOR XML PATH('')), 1, LEN(','), '') AS TT
                                      FROM TWkm_capac_plan_sub t0 where CONVERT(varchar(100), wkdate, 23)>=CONVERT(varchar(100),getdate(), 23)
                                      GROUP BY t0.m_id
                             ) E on B.id=E.m_id
                            where C.description='W' ";
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[产能规划默认方案保存提交]
        public static ToMessage CapacityPlanSubmit(string type, string captplanid, string wkshopcode, string capunitcode, string capsetupcode, string captplantype, string username)
        {
            var dynamicParams = new DynamicParameters();
            try
            {
                if (type == "Add")
                {
                    var sql = @"insert into TWkm_capac_plan(wkshop, eqp_typecode, wkshift_code, enable, lm_user, lm_time,classtype)
                            values(@wkshop,@eqp_typecode,@wkshift_code,@enable,@lm_user,@lm_time,@classtype)";
                    dynamicParams.Add("@wkshop", wkshopcode);
                    dynamicParams.Add("@eqp_typecode", capunitcode);
                    dynamicParams.Add("@wkshift_code", capsetupcode);
                    dynamicParams.Add("@enable", "Y");
                    dynamicParams.Add("@lm_user", username);
                    dynamicParams.Add("@lm_time", DateTime.Now.ToString());
                    dynamicParams.Add("@classtype", captplantype);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "新增操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "新增操作失败!";
                        mes.data = null;
                    }
                }
                if (type == "Update")
                {
                    var sql = @"update TWkm_capac_plan set wkshift_code=@wkshift_code,lm_user=@username,lm_date=@CreateDate where id=@captplanid";
                    dynamicParams.Add("@captplanid", captplanid);
                    dynamicParams.Add("@wkshift_code", capsetupcode);
                    dynamicParams.Add("@username", username);
                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        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 CapacityPlanningCalendar(string captplanid)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<CapaPlan> list = new List<CapaPlan>();
            try
            {
                sql = @"select CONVERT(varchar(100), wkdate, 23) DataTime,wkshift_code   from TWkm_capac_plan_sub where m_id=@captplanid";
                dynamicParams.Add("@captplanid", captplanid);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string DataTime = dt.Rows[i]["DataTime"].ToString();//日期
                    string key = dt.Rows[i]["wkshift_code"].ToString(); //方案编码
                    CapaPlan cmp = new CapaPlan();
                    cmp.name = DataTime;
                    cmp.key = key;
                    list.Add(cmp);
                }
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = list;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[产能规划日历双击时带出对应的方案]
        public static ToMessage CapacityPlanningOnclickSelect(string captplanid, string datetime)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<CapacityPlanSect> list = new List<CapacityPlanSect>();
            try
            {
                sql = @"select distinct AA.code,AA.name,(case  when AA.Stus is null then 'N' else 'Y' end) flag
                        from
                        (
                        select A.code,A.name,B.wkshift_code Stus  from TBas_wkshift_info A
                        left join TWkm_capac_plan_sub B on A.code= B.wkshift_code and B.m_id=@captplanid and CONVERT(varchar(100), wkdate, 23)=@datetime
                        ) AA  order by code";
                dynamicParams.Add("@captplanid", captplanid);
                dynamicParams.Add("@datetime", datetime);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string code = dt.Rows[i]["code"].ToString();//方案编码
                    string name = dt.Rows[i]["name"].ToString();//方案名称
                    string flag = dt.Rows[i]["flag"].ToString();   //选中方案标识
                    CapacityPlanSect cmp = new CapacityPlanSect();
                    cmp.CapCode = code;
                    cmp.CapName = name;
                    cmp.CapStus = flag;
                    cmp.list = new List<object>();
                    string sql1 = @"select wktme1_start,wktme2_start,wktme3_start,wktme4_start,wktme5_start  from TBas_wkshift_info where code=@code";
                    dynamicParams.Add("@code", code);
                    var db = DapperHelper.selectdata(sql, dynamicParams);
                    for (int j = 0; j < db.Columns.Count; j++) //时间段
                    {
                        if (db.Rows[0][j].ToString().Trim() != null && db.Rows[0][j].ToString().Trim() != "")
                        {
                            cmp.list.Add(db.Rows[0][j].ToString());
                        }
                    }
                    list.Add(cmp);
                }
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = list;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[产能规划工作日历选择提交]
        public static ToMessage CapacityPlanningGivePlanSubmit(string captplanid, string wkshopcode, string capunitcode, string capsetupcode, string captplantype, List<CapaPlan> objs, string type, string username)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                if (capsetupcode == "" || capsetupcode == null)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "默认方案选择不能为空!";
                    mes.data = null;
                    return mes;
                }
                if (objs.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "工作日历选择不能为空!";
                    mes.data = null;
                    return mes;
                }
                if (type == "Add")
                {
                    for (int i = 0; i < objs.Count; i++)
                    {
                        sql = @"insert into TWkm_capac_plan_sub(m_id, wkdate,wkshift_code)
                                     values(@m_id,@wkdate,@wkshift_code)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                m_id = captplanid,
                                wkdate = objs[i].name,
                                wkshift_code = objs[i].key
                            }
                        });
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作失败!";
                        mes.data = null;
                    }
                }
                if (type == "Update")
                {
                    //定义两个数组用来对比修改前后日期及方案的变化
                    List<CapaPlan> ids = new List<CapaPlan>();
                    List<CapaPlan> ids1 = new List<CapaPlan>();
                    for (int i = 0; i < objs.Count; i++)
                    {
                        ids.Add(objs[i]);
                    }
                    //根据id查找日历时间
                    string sql2 = @"select CONVERT(varchar(100), wkdate, 23) wkdate,wkshift_code  from TWkm_capac_plan_sub where m_id=@m_id";
                    dynamicParams.Add("@m_id", captplanid);
                    var dt2 = DapperHelper.selectdata(sql2, dynamicParams);
                    if (dt2.Rows.Count > 0)
                    {
                        for (int k = 0; k < dt2.Rows.Count; k++)
                        {
                            CapaPlan ids2 = new CapaPlan();
                            ids2.name = dt2.Rows[k]["wkdate"].ToString();
                            ids2.key = dt2.Rows[k]["wkshift_code"].ToString();
                            ids1.Add(ids2);
                        }
                    }
                    List<CapaPlan> list3 = ids.Except(ids1).ToList(); //表示ids中哪些值是ids1中所不存在的;
                    List<CapaPlan> list4 = ids1.Except(ids).ToList(); //表示ids1中哪些值是ids中所不存在的;
                    list4 = list3.Union(list4).ToList();
                    //查找关键工序设备、工位群组的所有设备
                    string sql3 = @"select *  from(
                                  select distinct A.code,A.name  from TEqpInfo A
                                  left join TFlw_Rteqp B on A.code=B.eqp_code
                                  left join TFlw_Rtdt D on B.step_code=D.step_code
                                  where A.wksp_code=@wkshopcode  and D.first_choke='Y'  order by A.code)";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                    var dt3 = DapperHelper.selectdata(sql3, dynamicParams);
                    if (list4.Count > 0)  //如果日期有变动
                    {
                        if (dt3.Rows.Count > 0)
                        {
                            for (int m = 0; m < list4.Count; m++)
                            {
                                for (int n = 0; n < dt3.Rows.Count; n++)
                                {
                                    string sql4 = @"select  A.wo_code,A.eqp_code,A.Time_Start,A.time_end,
                                                 (case  B.Status when 'SCHED' then '已排程' when 'ALLOC' then '已派发' when 'START' then '已开工' end ) status
                                                  from TK_Wrk_EqpAps  A
                                                  left join mes_tk_wrk_man B on A.wo_code=B.Wo_Code
                                                  left join gn_eqp_eqpinfo C on A.eqp_code=C.code
                                                  where TO_char(time_start,'YYYY-MM-DD')='" + list4[m].name + "' and A.eqp_code='" + dt3.Rows[n]["CODE"] + "' and B.isaps='Y' and B.status IN('SCHED','ALLOC','START')";
                                    DataTable dt4 = DBHelper.GetTable(sql4);
                                    if (dt4.Rows.Count > 0)
                                    {
                                        for (int g = 0; g < dt4.Rows.Count; g++)
                                        {
                                            json = new DWZJson()
                                            {
                                                statusCode = "300",
                                                message = "修改失败!,日期:" + dt4.Rows[g]["TIME_START"] + "有【" + dt4.Rows[g]["STATUS"] + "】工单:" + dt4.Rows[g]["WO_CODE"] + "",
                                            };
                                            return json;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    list.Add(@"update gn_wkm_capac_plan set wkshift_code='" + CapSetupCode + "',classtype='" + CaptPlanType + "', enable='Y',lm_user='" + lm_user + "',lm_time=sysdate  where id='" + CaptPlanId + "'");
                    list.Add(@"delete gn_wkm_capac_plan_sub where m_id='" + CaptPlanId + "'");
                    for (int i = 0; i < objs.Count; i++)
                    {
                        list.Add(@"insert into gn_wkm_capac_plan_sub(m_id, id, wkdate,wkshift_code)
                                     values('" + CaptPlanId + "',gn_wkm_capac_plan_sub_S.nextVal,to_date('" + objs[i].name + "','yyyy-MM-dd'),'" + objs[i].key + "')");
                    }
                    int count = DBHelper.Executesqltran(list, pt.ToArray());
                    if (count > 0)
                    {
                        json = new DWZJson()
                        {
                            statusCode = "200",
                            message = "修改成功!",
                        };
                    }
                    else
                    {
                        json = new DWZJson()
                        {
                            statusCode = "300",
                            message = "修改失败!",
                        };
                    }
                }
            }
            catch (Exception e)
            {
                json = new DWZJson()
                {
                    statusCode = "300",
                    message = e.Message,
                };
            }
            return mes;
        }
VueWebApi/Logs/2022-10-08.TXT
VueWebApi/Logs/2022-10-09.TXT
VueWebApi/Models/AnDnDate.cs
@@ -10,6 +10,7 @@
    {
        public string code { get; set; }
        public string name { get; set; }
        public string flag { get; set; }
        public List<AnDnDateSub> children { get; set; }//子节点
    }
    public class AnDnDateSub 
VueWebApi/Models/CapaPlan.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class CapaPlan
    {
        public string name { get; set; }
        public string key { get; set; }
        public override bool Equals(object obj)
        {
            if (obj is CapaPlan)
            {
                CapaPlan student = obj as CapaPlan;
                return name == student.name && key == student.key;
            }
            return false;
        }
        public override int GetHashCode()
        {
            return name.GetHashCode() ^ key.GetHashCode();
        }
    }
}
VueWebApi/Models/CapacityPlanSect.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class CapacityPlanSect
    {
        public string CapCode { get; set; }   //方案编码
        public string CapName { get; set; }   //方案名称
        public string CapStus { get; set; }   //选中状态
        public List<object> list { 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-29T07:59:52.7749027Z;True|2022-09-28T18:13:25.7208132+08:00;True|2022-09-27T14:01:52.5493804+08:00;True|2022-09-27T08:32:48.3460557+08:00;True|2022-09-23T16:12:28.0271396+08:00;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>
    <History>True|2022-10-09T08:25:10.1147763Z;True|2022-10-08T16:54:50.7779806+08:00;True|2022-10-08T16:35:23.1960956+08:00;True|2022-10-08T16:06:16.5635598+08:00;True|2022-10-08T16:01:24.5889763+08:00;True|2022-10-08T13:11:34.8631266+08:00;True|2022-09-29T15:59:52.7749027+08:00;True|2022-09-28T18:13:25.7208132+08:00;True|2022-09-27T14:01:52.5493804+08:00;True|2022-09-27T08:32:48.3460557+08:00;True|2022-09-23T16:12:28.0271396+08:00;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/29/2022 15:59:46</publishTime>
      <publishTime>10/09/2022 16:25:03</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll.config">
      <publishTime>06/15/2022 15:31:43</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>09/29/2022 15:59:46</publishTime>
      <publishTime>10/09/2022 16:25:03</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>09/29/2022 15:59:45</publishTime>
      <publishTime>10/09/2022 16:25:03</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1524,7 +1524,7 @@
      <publishTime>06/10/2022 08:20:24</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>09/29/2022 15:59:52</publishTime>
      <publishTime>10/09/2022 16:25:09</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/VueWebApi.csproj
@@ -362,6 +362,8 @@
    <Compile Include="Hubs\ChatHub2.cs" />
    <Compile Include="Models\AnDnDate.cs" />
    <Compile Include="Models\AppDevicecCheck.cs" />
    <Compile Include="Models\CapacityPlanSect.cs" />
    <Compile Include="Models\CapaPlan.cs" />
    <Compile Include="Models\EqpRepair.cs" />
    <Compile Include="Models\ExcelErro.cs" />
    <Compile Include="Models\MaterialRout.cs" />
VueWebApi/Web.config
@@ -30,11 +30,14 @@
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000"/>
    </appSettings>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
        <httpRuntime targetFramework="4.6.1" />
        <!--最大请求长度,单位为kb-->
        <httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" maxQueryStringLength="2097151"/>
        <!--session失效时间-->
        <sessionState mode="InProc" timeout="240">
        <!--<sessionState mode="Off">-->
VueWebApi/bin/VueWebApi.dll.config
@@ -30,11 +30,14 @@
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000"/>
    </appSettings>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
        <httpRuntime targetFramework="4.6.1" />
        <!--最大请求长度,单位为kb-->
        <httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" maxQueryStringLength="2097151"/>
        <!--session失效时间-->
        <sessionState mode="InProc" timeout="240">
        <!--<sessionState mode="Off">-->
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -754,7 +754,7 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.RepairScanDeviceQrCodeData">
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.RepairScanDeviceQrCodeDataList">
            <summary>
            è®¾å¤‡ç»´ä¿®åˆ—表
            </summary>
@@ -804,6 +804,23 @@
        <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.AppDeviceManageController.AppDeviceAnDengLampResponseScanSearch(System.String)">
            <summary>
            å®‰ç¯å“åº”扫描工位/设备
            </summary>
            <param name="eqpcode">设备/工位编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengLampResponseSave(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
            <summary>
            å®‰ç¯å“åº”提交
            </summary>
            <param name="username">登录人员</param>
            <param name="eqpcode">设备编码</param>
@@ -2087,6 +2104,51 @@
            <param name="dt">工单号数组对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            äº§èƒ½è§„划查询
            </summary>
            <param name="page">页码</param>
            <param name="rows">页数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <param name="workshop">车间编码</param>
            <param name="devicetype">生产单元</param>
            <param name="stustype">有效状态</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanSubmit(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            äº§èƒ½è§„划默认方案保存提交
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <param name="wkshopcode">车间编码</param>
            <param name="capunitcode">生产单元编码</param>
            <param name="capsetupcode">默认方案编码</param>
            <param name="captplantype">资源类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningCalendar(System.String)">
            <summary>
            äº§èƒ½è§„划点击日历组件查找已关联的日期方案
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningOnclickSelect(System.String,System.String)">
            <summary>
            äº§èƒ½è§„划日历双击时带出对应的方案
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <param name="datetime">双击选中的日期</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningGivePlanSubmit">
            <summary>
            äº§èƒ½è§„划工作日历选择提交
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
            <summary>
            å­˜è´§ç±»åž‹æŽ¥å£
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -30,11 +30,14 @@
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <!--提交json字符串过长问题-->
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
  </appSettings>
  <system.web>
    <compilation targetFramework="4.6.1" />
    <customErrors mode="Off" />
    <httpRuntime targetFramework="4.6.1" />
    <!--最大请求长度,单位为kb-->
    <httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" maxQueryStringLength="2097151" />
    <!--session失效时间-->
    <sessionState mode="InProc" timeout="240">
      <!--<sessionState mode="Off">-->
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -754,7 +754,7 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.RepairScanDeviceQrCodeData">
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.RepairScanDeviceQrCodeDataList">
            <summary>
            è®¾å¤‡ç»´ä¿®åˆ—表
            </summary>
@@ -804,6 +804,23 @@
        <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.AppDeviceManageController.AppDeviceAnDengLampResponseScanSearch(System.String)">
            <summary>
            å®‰ç¯å“åº”扫描工位/设备
            </summary>
            <param name="eqpcode">设备/工位编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppDeviceManageController.AppDeviceAnDengLampResponseSave(System.String,System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
            <summary>
            å®‰ç¯å“åº”提交
            </summary>
            <param name="username">登录人员</param>
            <param name="eqpcode">设备编码</param>
@@ -2087,6 +2104,51 @@
            <param name="dt">工单号数组对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            äº§èƒ½è§„划查询
            </summary>
            <param name="page">页码</param>
            <param name="rows">页数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <param name="workshop">车间编码</param>
            <param name="devicetype">生产单元</param>
            <param name="stustype">有效状态</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanSubmit(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            äº§èƒ½è§„划默认方案保存提交
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <param name="wkshopcode">车间编码</param>
            <param name="capunitcode">生产单元编码</param>
            <param name="capsetupcode">默认方案编码</param>
            <param name="captplantype">资源类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningCalendar(System.String)">
            <summary>
            äº§èƒ½è§„划点击日历组件查找已关联的日期方案
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningOnclickSelect(System.String,System.String)">
            <summary>
            äº§èƒ½è§„划日历双击时带出对应的方案
            </summary>
            <param name="captplanid">产能规划(生产资源)id</param>
            <param name="datetime">双击选中的日期</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.CapacityPlanningGivePlanSubmit">
            <summary>
            äº§èƒ½è§„划工作日历选择提交
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
            <summary>
            å­˜è´§ç±»åž‹æŽ¥å£
VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -30,11 +30,14 @@
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000"/>
    </appSettings>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
        <httpRuntime targetFramework="4.6.1" />
        <!--最大请求长度,单位为kb-->
        <httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" maxQueryStringLength="2097151"/>
        <!--session失效时间-->
        <sessionState mode="InProc" timeout="240">
        <!--<sessionState mode="Off">-->
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -30,11 +30,14 @@
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <!--提交json字符串过长问题-->
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
  </appSettings>
  <system.web>
    <compilation targetFramework="4.6.1" />
    <customErrors mode="Off" />
    <httpRuntime targetFramework="4.6.1" />
    <!--最大请求长度,单位为kb-->
    <httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" maxQueryStringLength="2097151" />
    <!--session失效时间-->
    <sessionState mode="InProc" timeout="240">
      <!--<sessionState mode="Off">-->
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
d0fa6e5450730e3a6c9afa3aaa38f785c470472a
4c059e89a90f96b504ee8972696ec24aa2524b70
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -281,7 +281,6 @@
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