1.app生产进度看板接口开发
2.app工序检验接口开发
3.存货档案基础资料查询接口开发
4.PC工序检验接口调整
已添加12个文件
已修改40个文件
1638 ■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppAnalyticsController.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppQualityManagementController.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/BaseDateController.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductionManagementController.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/QualityManagementController.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ReportManagerController.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/BaseDateBLL.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductionManagementBLL.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/QualityManagementBLL.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ReportManagerBLL.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/BaseDateDAL.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductModelDAL.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductionManagementDAL.cs 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/QualityManagementDAL.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ReportManagerDAL.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_8_1.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_9_2.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_9_3.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_9_4.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Image/app_9_5.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Log4net/ActionConverter.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Log4net/ActionLoggerInfo.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Log4net/LogUtil.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2023-05-10.TXT 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/AppScheduleKanban.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ChannelActionFilterAttribute.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/DapperHelper.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Web.config 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.dll.config 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/log4net.config 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Web.config 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/log4net.config 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/original/Web.config 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/Controllers/AppAnalyticsController.cs
@@ -41,5 +41,29 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[App生产进度看板单据信息]
        /// <summary>
        /// App生产进度看板单据信息
        /// </summary>
        /// <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
        /// <param name="partcode">产品信息(可多个)</param>
        /// <param name="Ratetime">单据日期范围</param>
        /// <returns></returns>
        [Route(template: "ProductionScheduleKanban")]
        [HttpGet]
        public HttpResponseMessage ProductionScheduleKanban(string ordertype, string partcode=null, string Ratetime=null)
        {
            string startopendate = "";  //开始时间
            string endclosedate = "";    //结束时间
            if (Ratetime != "" && Ratetime != null)
            {
                startopendate = Ratetime.Split('~')[0].ToString();
                endclosedate = Ratetime.Split('~')[1].ToString();
            }
            mes = AppAnalyticsBLL.ProductionScheduleKanban(ordertype,partcode, startopendate, endclosedate);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/AppQualityManagementController.cs
@@ -7,6 +7,7 @@
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
@@ -80,5 +81,65 @@
        }
        #endregion
        #region[工序检验扫码获取任务信息]
        /// <summary>
        /// å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="orderstepqrcode">扫描工序二维码信息</param>
        /// <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
        /// <returns></returns>
        [Route(template: "StepCheckSearch")]
        [HttpGet]
        public HttpResponseMessage StepCheckSearch(string orderstepqrcode,string checktype)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            return TJson.toJson(mes);
        }
        #endregion
        #region[工序检验根据选择的检验方案查找检验项目]
        /// <summary>
        /// å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
        /// </summary>
        /// <param name="checkstandcode">检验方案编码</param>
        /// <returns></returns>
        [Route(template: "StepCheckItemList")]
        [HttpGet]
        public HttpResponseMessage StepCheckItemList(string checkstandcode)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckItemList(checkstandcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[工序检验,提交]
        /// <summary>
        /// å·¥åºæ£€éªŒ,提交
        /// </summary>
        /// <returns></returns>
        [Route(template: "SaveStepCheckItem")]
        [HttpPost]
        public HttpResponseMessage SaveStepCheckItem()
        {
            string wocode = HttpContext.Current.Request["wocode"].ToString();//工单号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//物料编码
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
            string checkstandcode = HttpContext.Current.Request["checkstandcode"].ToString();//质检方案编码
            string check_type = HttpContext.Current.Request["check_type"].ToString();//检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)
            string sampmethod = HttpContext.Current.Request["sampmethod"].ToString();//抽检方式:固定抽检(FIXED) æ¯”例抽检(SCARE)
            string qualitystatus = HttpContext.Current.Request["qualitystatus"].ToString(); //质量状态(合格、不合格)
            string labqty = HttpContext.Current.Request["good_qty"].ToString();//工序任务合格数量
            string sampleqty = HttpContext.Current.Request["sampleqty"].ToString();//样本数量
            string goodqty = HttpContext.Current.Request["goodqty"].ToString();//合格数量
            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//不合格数量
            string checkitemcont = HttpContext.Current.Request["checkitemcont"].ToString();//检验项目数据
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, checkstandcode, check_type, sampmethod, partcode, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/BaseDateController.cs
@@ -104,6 +104,10 @@
        #endregion
        #region[质检方案信息]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆä¿¡æ¯
        /// </summary>
        /// <returns></returns>
        [Route(template: "QualityScheme")]
        [HttpGet]
        public HttpResponseMessage QualityScheme()
@@ -112,5 +116,20 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[存货查询]
        /// <summary>
        /// å­˜è´§æŸ¥è¯¢
        /// </summary>
        /// <param name="param">存货信息</param>
        /// <returns></returns>
        [Route(template: "InventorySelect")]
        [HttpGet]
        public HttpResponseMessage InventorySelect(string param=null)
        {
            mes = BaseDateBLL.InventorySelect(param);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/ProductionManagementController.cs
@@ -677,40 +677,28 @@
        }
        #endregion
        #region[生产开报工,工序检验扫码获取任务信息]
        #region[工序检验扫码获取任务信息]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,工序检验扫码获取任务信息
        /// å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
        /// </summary>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <param name="orderstepqrcode">扫描工序二维码信息</param>
        /// <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckSearch")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode)
        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode);
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,工序检验获取检验标准下拉框数据]
        #region[工序检验根据选择的检验方案查找检验项目]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,工序检验获取检验标准下拉框数据
        /// å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
        /// </summary>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckSelect")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepCheckSelect()
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSelect();
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,工序检验根据检验标准获取检验项目列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,工序检验根据检验标准获取检验项目列表
        /// </summary>
        /// <param name="checkstandcode">检验标准编码</param>
        /// <param name="checkstandcode">检验方案编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckItemList")]
        [HttpGet]
@@ -721,29 +709,29 @@
        }
        #endregion
        #region[生产开报工,工序检验提交保存]
        #region[工序检验,提交]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,工序检验提交保存
        /// å·¥åºæ£€éªŒ,提交
        /// </summary>
        /// <param name="obj">提交信息</param>
        /// <returns></returns>
        [Route(template: "SaveMesOrderStepCheckItem")]
        [HttpPost]
        public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj)
        {
            string mesordercode = obj["mesordercode"].ToString(); //工单编号
            string wocode = obj["wocode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepcode = obj["stepcode"].ToString(); //工序编码
            string checkstanedcode = obj["checkstanedcode"].ToString(); //检验标准编码
            string checkusercode = obj["checkusercode"].ToString(); //检验人员编码
            string checktypecode = obj["checktypecode"].ToString(); //检验类型编码
            string checkresult = obj["checkresult"].ToString(); //检验结果
            string checkdescr = obj["checkdescr"].ToString(); //检验描述
            string checkqty = obj["checkqty"].ToString(); //检验数量
            string data = obj["data"].ToString();
            List<StepCheck> json = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StepCheck>>(data);
            string checkstandcode = obj["checkstandcode"].ToString(); //质检方案编码
            string check_type = obj["check_type"].ToString(); //检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)
            string sampmethod = obj["sampmethod"].ToString(); //抽检方式:固定抽检(FIXED) æ¯”例抽检(SCARE)
            string qualitystatus = obj["qualitystatus"].ToString(); //质量状态(合格、不合格)
            string labqty = obj["good_qty"].ToString(); //工序任务合格数量
            string sampleqty = obj["sampleqty"].ToString(); //样本数量
            string goodqty = obj["goodqty"].ToString(); //合格数量
            string ngqty = obj["ngqty"].ToString();//不合格数量
            string checkitemcont = obj["checkitemcont"].ToString(); //检验项目数据
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username, json);
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode,stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/QualityManagementController.cs
@@ -355,10 +355,11 @@
            string suitobject = obj["suitobject"].ToString(); //适用对象
            string suitpart = obj["suitpart"].ToString();  //适用物料(编码)或者物料类型(编码)
            string descr = obj["descr"].ToString(); //检验方案描述
            string stepcode = obj["stepcode"].ToString(); //工序编码(首检、巡检、完工检验)
            string checkitem = obj["checkitem"].ToString(); //质检列表
            string type = obj["type"].ToString(); //操作类型
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = QualityManagementBLL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status,checktype,sampmethod,sampscare,suitobject,suitpart,descr,checkitem,type,username);
            mes = QualityManagementBLL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status,checktype,sampmethod,sampscare,suitobject,suitpart,descr, stepcode, checkitem,type,username);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/ReportManagerController.cs
@@ -590,5 +590,70 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产进度报表]
        /// <summary>
        /// ç”Ÿäº§è¿›åº¦æŠ¥è¡¨
        /// </summary>
        /// <param name="status">工单状态</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="routecode">工艺路线编码</param>
        /// <param name="routename">工艺路线名称</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="lm_date">单据日期</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "ProductionScheduleReportSearch")]
        [HttpGet]
        public HttpResponseMessage ProductionScheduleReportSearch(int page, int rows, string prop, string order,string status=null, string wocode = null, string routecode = null, string routename = null, string partcode = null, string partname = null, string partspec = null,string lm_date=null)
        {
            string opendate = "";     //开始时间
            string closedate = "";    //结束时间
            if (lm_date != "" && lm_date != null)
            {
                opendate = lm_date.Split('~')[0].ToString();
                closedate = lm_date.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.ProductionScheduleReportSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产进度报表导出]
        /// <summary>
        /// ç”Ÿäº§è¿›åº¦æŠ¥è¡¨å¯¼å‡º
        /// </summary>
        /// <param name="status">工单状态</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="routecode">工艺路线编码</param>
        /// <param name="routename">工艺路线名称</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="lm_date">单据日期</param>
        /// <returns></returns>
        [Route(template: "ProductionScheduleReportExcelSearch")]
        [HttpGet]
        public HttpResponseMessage ProductionScheduleReportExcelSearch(string status = null, string wocode = null, string routecode = null, string routename = null, string partcode = null, string partname = null, string partspec = null, string lm_date = null)
        {
            string opendate = "";     //开始时间
            string closedate = "";    //结束时间
            if (lm_date != "" && lm_date != null)
            {
                opendate = lm_date.Split('~')[0].ToString();
                closedate = lm_date.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.ProductionScheduleReportExcelSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
@@ -15,5 +15,12 @@
            return AppAnalyticsDAL.ProductionKanban(usercode, startopendate, endclosedate, defecttype);
        }
        #endregion
        #region[App生产进度看板单据信息]
        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
        {
            return AppAnalyticsDAL.ProductionScheduleKanban(ordertype, partcode, startopendate, endclosedate);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/BaseDateBLL.cs
@@ -57,5 +57,12 @@
            return BaseDateDAL.QualityScheme();
        }
        #endregion
        #region[存货查询]
        public static ToMessage InventorySelect(string param)
        {
            return BaseDateDAL.InventorySelect(param);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -246,35 +246,30 @@
        }
        #endregion
        #region[生产开报工,工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode)
        #region[工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode,string checktype)
        {
            return ProductionManagementDAL.MesOrderStepCheckSearch(orderstepqrcode);
            return ProductionManagementDAL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
        }
        #endregion
        #region[生产开报工,工序检验获取检验标准下拉框数据]
        public static ToMessage MesOrderStepCheckSelect()
        {
            return ProductionManagementDAL.MesOrderStepCheckSelect();
        }
        #endregion
        #region[生产开报工,工序检验根据检验标准获取检验项目列表]
        #region[工序检验根据选择的检验方案查找检验项目]
        public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
        {
            return ProductionManagementDAL.MesOrderStepCheckItemList(checkstandcode);
        }
        #endregion
        #region[生产开报工,工序检验提交保存]
        public static ToMessage SaveMesOrderStepCheckItem(string mesordercode, string partcode, string stepcode, string checkstanedcode, string checkusercode, string checktypecode, string checkresult, string checkdescr,string checkqty, string username, List<StepCheck> json)
        #region[工序检验,提交]
        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        {
            return ProductionManagementDAL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username, json);
            return ProductionManagementDAL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
        }
        #endregion
        #region[MES工单批量关闭查询]
        public static ToMessage MesOrderBitchClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
VueWebApi/DLL/BLL/QualityManagementBLL.cs
@@ -131,9 +131,9 @@
        #endregion
        #region[质检方案新增/编辑提交]
        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string checkitem, string type, string username)
        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr,string stepcode, string checkitem, string type, string username)
        {
            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, checkitem, type, username);
            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, stepcode, checkitem, type, username);
        }
        #endregion
VueWebApi/DLL/BLL/ReportManagerBLL.cs
@@ -142,5 +142,20 @@
            return ReportManagerDAL.LogisticsCheckSubSearch(checkid);
        }
        #endregion
        #region[生产进度报表]
        public static ToMessage ProductionScheduleReportSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.ProductionScheduleReportSearch(status,wocode, routecode, routename, partcode, partname, partspec, opendate, closedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[生产进度报表导出]
        public static ToMessage ProductionScheduleReportExcelSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate)
        {
            return ReportManagerDAL.ProductionScheduleReportExcelSearch(status,wocode, routecode, routename, partcode, partname, partspec,opendate, closedate);
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -5,6 +5,7 @@
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
@@ -100,5 +101,243 @@
            return mes;
        }
        #endregion
        #region[App生产进度看板单据信息]
        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            List<AppScheduleKanban> list = new List<AppScheduleKanban>();
            var dynamicParams = new DynamicParameters();
            string search = "",sql="";
            DataTable dt;
            try
            {
                //根据查询条件,查找符合要求的单据
                switch (ordertype)
                {
                    case "SO": //按销售订单统计
                        if (partcode != "" && partcode != null)
                        {
                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
                            search += " and A.materiel_code in @partcode ";
                            dynamicParams.Add("@partcode", selects.ToArray());
                        }
                        if (startopendate != "" && startopendate != null)
                        {
                            search += " and convert(varchar(100),A.saleOrderDate,21)>=@startopendate and convert(varchar(100),A.saleOrderDate,21)<=@endclosedate ";
                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                        }
                        //获取单据信息
                        sql = @"select distinct saleOrderCode,A.saleOrderDate,sum(A.saleOrderqty) as saleOrderqty
                                from TKimp_Ewo A
                                where A.saleOrderCode<>'' " + search+ " group by A.saleOrderCode,A.saleOrderDate  order by A.saleOrderDate desc";
                        dt = DapperHelper.selectlist(sql, dynamicParams);
                        if (dt.Rows.Count > 0)
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                AppScheduleKanban cmp = new AppScheduleKanban();
                                cmp.ordercode = dt.Rows[i]["saleOrderCode"].ToString();
                                cmp.orderqty = dt.Rows[i]["saleOrderqty"].ToString();
                                cmp.children = new List<AppScheduleKanbanSub>();
                                //获取单据下产品完成信息
                                sql = @"select AA.wo,AA.partcode,AA.partname,AA.partspec,AA.saleOrderqty,isnull(BB.good_qty,0) as good_qty  from(
                                        select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.saleOrderqty) as saleOrderqty
                                        from TKimp_Ewo E
                                        left  join TMateriel_Info T on E.materiel_code=T.partcode
                                        where E.saleOrderCode=@saleOrderCode
                                        group by E.wo,T.partcode,T.partname,T.partspec
                                        ) as AA
                                        left join
                                        (
                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code
                                          where  S.isend='Y' and S.good_qty>0
                                          group by M.m_po
                                        ) as BB  on AA.wo=BB.m_po";
                                dynamicParams.Add("@saleOrderCode", dt.Rows[i]["saleOrderCode"].ToString());
                                var data = DapperHelper.selectdata(sql, dynamicParams);
                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //报工总数量
                                cmp.ordergoodqty = good_qty.ToString();
                                for (int j = 0; j < data.Rows.Count; j++)
                                {
                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
                                    cbp.code= data.Rows[j]["partcode"].ToString();
                                    cbp.name = data.Rows[j]["partname"].ToString();
                                    cbp.spec = data.Rows[j]["partspec"].ToString();
                                    cbp.planqty= data.Rows[j]["saleOrderqty"].ToString();
                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
                                    cmp.children.Add(cbp);
                                }
                                list.Add(cmp);
                            }
                            mes.code = "200";
                            mes.Message = "success!";
                            mes.data = list;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "无符合要求单据!";
                            mes.data = null;
                        }
                        break;
                    case "MO": //按生产订单统计
                        if (partcode != "" && partcode != null)
                        {
                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
                            search += " and A.materiel_code in @partcode ";
                            dynamicParams.Add("@partcode", selects.ToArray());
                        }
                        if (startopendate != "" && startopendate != null)
                        {
                            search += " and convert(varchar(100),A.createdate,21)>=@startopendate and convert(varchar(100),A.createdate,21)<=@endclosedate ";
                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                        }
                        //获取单据信息
                        sql = @"select distinct A.wo,A.createdate,sum(A.qty) as orderqty
                                from TKimp_Ewo A
                                where 1=1  "+search+" group by A.wo,A.createdate  order by A.createdate desc";
                        dt = DapperHelper.selectlist(sql, dynamicParams);
                        if (dt.Rows.Count > 0)
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                AppScheduleKanban cmp = new AppScheduleKanban();
                                cmp.ordercode = dt.Rows[i]["wo"].ToString();
                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
                                cmp.children = new List<AppScheduleKanbanSub>();
                                //获取单据下产品完成信息
                                sql = @"select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.qty) as orderqty,isnull(BB.good_qty,0) as good_qty
                                        from TKimp_Ewo E
                                        left  join TMateriel_Info T on E.materiel_code=T.partcode
                                        left  join (
                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code
                                          where  S.isend='Y' and S.good_qty>0
                                          group by M.m_po
                                        ) as BB  on E.wo=BB.m_po
                                        where E.wo=@wo
                                        group by E.wo,T.partcode,T.partname,T.partspec,BB.good_qty";
                                dynamicParams.Add("@wo", dt.Rows[i]["wo"].ToString());
                                var data = DapperHelper.selectdata(sql, dynamicParams);
                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //报工总数量
                                cmp.ordergoodqty = good_qty.ToString();
                                for (int j = 0; j < data.Rows.Count; j++)
                                {
                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
                                    cbp.code = data.Rows[j]["partcode"].ToString();
                                    cbp.name = data.Rows[j]["partname"].ToString();
                                    cbp.spec = data.Rows[j]["partspec"].ToString();
                                    cbp.planqty = data.Rows[j]["orderqty"].ToString();
                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
                                    cmp.children.Add(cbp);
                                }
                                list.Add(cmp);
                            }
                            mes.code = "200";
                            mes.Message = "success!";
                            mes.data = list;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "无符合要求单据!";
                            mes.data = null;
                        }
                        break;
                    case "PO": //按生产工单统计
                        if (partcode != "" && partcode != null)
                        {
                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
                            search += " and A.materiel_code in @partcode ";
                            dynamicParams.Add("@partcode", selects.ToArray());
                        }
                        if (startopendate != "" && startopendate != null)
                        {
                            search += " and convert(varchar(100),A.lm_date,21)>=@startopendate and convert(varchar(100),A.lm_date,21)<=@endclosedate ";
                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                        }
                        //获取单据信息
                        sql = @"select distinct A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date,sum(A.plan_qty) as orderqty
                                from TK_Wrk_Man A
                                left  join TMateriel_Info T on A.materiel_code=T.partcode
                                where 1=1 "+search+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
                        dt = DapperHelper.selectlist(sql, dynamicParams);
                        if (dt.Rows.Count > 0)
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                AppScheduleKanban cmp = new AppScheduleKanban();
                                cmp.ordercode = dt.Rows[i]["wo_code"].ToString();
                                cmp.partcode= dt.Rows[i]["partcode"].ToString();
                                cmp.partname = dt.Rows[i]["partname"].ToString();
                                cmp.partspec = dt.Rows[i]["partspec"].ToString();
                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
                                cmp.children = new List<AppScheduleKanbanSub>();
                                //获取单据下产品完成信息
                                sql = @"select M.wo_code,T.stepcode,T.stepname,S.plan_qty,S.good_qty,S.isend
                                        from TK_Wrk_Man M
                                        inner join TK_Wrk_Step S on M.wo_code=S.wo_code
                                        left  join TStep T on S.step_code=T.stepcode
                                        where  M.wo_code=@wo_code
                                        order by S.seq ";
                                dynamicParams.Add("@wo_code", dt.Rows[i]["wo_code"].ToString());
                                var data = DapperHelper.selectdata(sql, dynamicParams);
                                if (data.Rows.Count > 0)
                                {
                                    cmp.ordergoodqty = data.AsEnumerable().Where(t => t.Field<string>("isend") == "Y").ToList().Select(c => c.Field<decimal>("good_qty")).First().ToString();
                                    for (int j = 0; j < data.Rows.Count; j++)
                                    {
                                        AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
                                        cbp.code = data.Rows[j]["stepcode"].ToString();
                                        cbp.name = data.Rows[j]["stepname"].ToString();
                                        cbp.spec = data.Rows[j]["isend"].ToString();
                                        cbp.planqty = data.Rows[j]["plan_qty"].ToString();
                                        cbp.goodqty = data.Rows[j]["good_qty"].ToString();
                                        cmp.children.Add(cbp);
                                    }
                                    list.Add(cmp);
                                }
                                else
                                {
                                    cmp.ordergoodqty = "0";
                                    list.Add(cmp);
                                }
                            }
                            mes.code = "200";
                            mes.Message = "success!";
                            mes.data = list;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "无符合要求单据!";
                            mes.data = null;
                        }
                        break;
                    default:
                        break;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/BaseDateDAL.cs
@@ -197,5 +197,30 @@
            return mes;
        }
        #endregion
        #region[存货查询]
        public static ToMessage InventorySelect(string param)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select * from TMateriel_Info where concat(partcode, partname,partspec) like concat('%',@param,'%');";
                dynamicParams.Add("@param", param);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -1433,6 +1433,7 @@
                sql = @"select stepcode,stepname from TStep where is_delete<>'1' and enable='Y'";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.count = data.Rows.Count;
                mes.Message = "查询成功!";
                mes.data = data;
            }
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -608,7 +608,7 @@
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "当前工艺路线对应工序【"+dtck.Rows[i]["step_code"].ToString()+"】,未关联设备,请关联所有工序对应设备!";
                        mes.Message = "当前工艺路线对应工序【" + dtck.Rows[i]["step_code"].ToString() + "】,未关联设备,请关联所有工序对应设备!";
                        mes.data = null;
                        return mes;
                    }
@@ -628,8 +628,8 @@
                        where C.step_code=@step_code";
                    dynamicParams.Add("@step_code", dtck1.Rows[i]["step_code"].ToString());
                    var dtck2 = DapperHelper.selectdata(sql, dynamicParams);
                    int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() =="N").Count();
                    if (dtck2.Rows.Count == query)
                    int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() == "N").Count();
                    if (dtck2.Rows.Count == query)
                    {
                        mes.code = "300";
                        mes.count = 0;
@@ -2246,6 +2246,8 @@
                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, reportqty = reportqty, ngqty = ngqty } });
                //写入ERP入库单
                //判断是否末道工序完工报工(自动关闭工单及工序任务)
                //list = AutosCloseOrder.AutosColseOrderReport(list,mesordercode, partcode, stepseq,stepcode,reportqty,ngqty);
                bool aa = DapperHelper.DoTransaction(list);
@@ -2512,6 +2514,8 @@
                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, sqty = sqty, ngqty = ngqty } });
                ////写入ERP入库单
                //判断是否末道工序完工报工(自动关闭工单及工序任务)
                //list = AutosCloseOrder.AutosColseOrderReport(list, mesordercode, partcode, stepseq, stepcode, sqty, ngqty);
@@ -2712,13 +2716,16 @@
        }
        #endregion
        #region[生产开报工,工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode)
        #region[工序检验扫码获取任务信息]
        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
        {
            var sql = "";
            string ordercode = "";
            string stepcode = "";
            var dynamicParams = new DynamicParameters();
            Dictionary<string, object> list = new Dictionary<string, object>();
            try
            {
                if (orderstepqrcode != "" && orderstepqrcode != null)
@@ -2738,7 +2745,7 @@
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                    //通过扫描二维码信息查找任务信息
                    sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname
                    sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.stocktype_code,S.stepcode,S.stepname
                            from TK_Wrk_Step A
                            inner join TK_Wrk_Man P on A.wo_code=P.wo_code
                            left join TMateriel_Info M on P.materiel_code=M.partcode
@@ -2749,11 +2756,44 @@
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "查询成功!";
                        mes.data = data;
                        return mes;
                        if (decimal.Parse(data.Rows[0]["good_qty"].ToString()) > 0)
                        {
                            //获取绑定的质检方案、抽样方式、样本数
                            sql = @"select code as checkstandcode,name as checkstandname,sampmethod,sampscare
                            from TStepCheckStandard
                            where (PATINDEX('%,' + RTRIM(@partcode) + ',%',',' + suitpart + ',')>0 or PATINDEX('%,' + RTRIM(@stocktype_code) + ',%',',' + suitpart + ',')>0)
                            and checktype=@checktype and stepcode=@stepcode ";
                            dynamicParams.Add("@partcode", data.Rows[0]["partcode"].ToString());//物料编码
                            dynamicParams.Add("@stepcode", stepcode);//工序编码
                            dynamicParams.Add("@stocktype_code", data.Rows[0]["stocktype_code"].ToString());//存货类型编码
                            dynamicParams.Add("@checktype", checktype);//检验类型
                            var data1 = DapperHelper.selectdata(sql, dynamicParams);
                            if (data1.Rows.Count > 0)
                            {
                                list.Add("labcont", data);
                                list.Add("chekstand", data1);
                                mes.code = "200";
                                mes.count = 0;
                                mes.Message = "查询成功!";
                                mes.data = list;
                            }
                            else
                            {
                                mes.code = "300";
                                mes.count = 0;
                                mes.Message = "当前产品【" + data.Rows[0]["partname"].ToString() + "】,对应工序【" + data.Rows[0]["stepname"].ToString() + "】,未指定质检方案!";
                                mes.data = null;
                                return mes;
                            }
                        }
                        else
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "当前工序任务无报工产出!";
                            mes.data = null;
                            return mes;
                        }
                    }
                    else
                    {
@@ -2784,47 +2824,36 @@
        }
        #endregion
        #region[生产开报工,工序检验获取检验标准下拉框数据]
        public static ToMessage MesOrderStepCheckSelect()
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取工序检验标准
                sql = @"select code,name  from TStepCheckStandard where is_delete<>'1'";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                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[生产开报工,工序检验根据检验标准获取检验项目列表]
        #region[工序检验根据选择的检验方案查找检验项目]
        public static ToMessage MesOrderStepCheckItemList(string checkstandcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //根据检验标准编码获取工序检验项目
                sql = @"select B.code,B.name,A.stepcheckitem_desc,A.stepcheckitem_seq   from TStepCheckStandardSub A
                //质检方案编码获取检验项
                sql = @"select A.stepcheckitem_seq, B.code,B.name,A.required,A.numberjudge,A.unit,A.decimalnum,
                        A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc
                        from TStepCheckStandardSub A
                        left join TStepCheckItem B on A.stepcheckitem_code=B.code
                        where B.is_delete<>'1' and A.stepstaned_code=@checkstandcode";
                dynamicParams.Add("@checkstandcode", checkstandcode);
                        where A.stepstaned_code=@checkstandcode
                        order by A.stepcheckitem_seq";
                dynamicParams.Add("@checkstandcode", checkstandcode);//质检方案编码
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前质检方案无检验项!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
@@ -2837,21 +2866,24 @@
        }
        #endregion
        #region[生产开报工,工序检验提交保存]
        public static ToMessage SaveMesOrderStepCheckItem(string mesordercode, string partcode, string stepcode, string checkstanedcode, string checkusercode, string checktypecode, string checkresult, string checkdescr, string checkqty, string username, List<StepCheck> json)
        #region[工序检验,提交]
        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
        {
            var sql = "";
            string[] arra = new string[] { };
            string[] arra1 = new string[] { };
            List<object> list = new List<object>();
            string checktypename = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                string date = DateTime.Now.ToString(); //获取系统时间
                string datetime = DateTime.Now.ToString(); //获取系统时间
                //获取检验项目信息
                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitemcont);
                list.Clear();
                switch (checktypecode)
                //写入检验记录主表
                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date)
                                values(@wo_code,@partcode,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
                switch (check_type)
                {
                    case "FirstCheck":
                        checktypename = "首检";
@@ -2865,20 +2897,51 @@
                    default:
                        break;
                }
                //写入工序检验记录主表
                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,check_result,check_descr,check_qty,lm_user,lm_date)
                                values(@mesordercode,@partcode,@stepcode,@checkstanedcode,@checkusercode,@checktypecode,@checktypename,@checkresult,@checkdescr,@check_qty,@lm_user,@lm_date)";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, partcode = partcode, stepcode = stepcode, checkstanedcode = checkstanedcode, checkusercode = checkusercode, checktypecode = checktypecode, checktypename = checktypename, checkresult = checkresult, checkdescr = checkdescr, check_qty = checkqty, lm_user = username, lm_date = date } });
                //写入工序检验记录子表
                //获取主表最大ID
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        wo_code = wocode,
                        partcode = partcode,
                        step_code=stepcode,
                        checkstaned_code = checkstandcode,
                        check_user = username,
                        check_type = check_type,
                        check_typename = checktypename,
                        sampmethod = sampmethod,
                        check_result = qualitystatus,
                        check_qty = decimal.Parse(sampleqty),
                        good_qty = decimal.Parse(goodqty),
                        ng_qty = decimal.Parse(ngqty),
                        lm_user = username,
                        lm_date = datetime
                    }
                });
                sql = @"select ISNULL(IDENT_CURRENT('TStepCheckRecord')+1,1) as id";
                var dt = DapperHelper.selecttable(sql);
                for (int i = 0; i < json.Count; i++)
                //写入检验记录子表
                for (int j = 0; j < arra.Count; j++)
                {
                    sql = @"insert into  TStepCheckRecordSub(m_id,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_result,lm_user,lm_date)
                                values(@m_id,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_result,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), checkiem_seq = int.Parse(json[i].seq), checkitem_code = json[i].code, checkitem_name = json[i].name, checkitem_descr = json[i].descr, check_result = json[i].checkresult, lm_user = username, lm_date = date } });
                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date)
                                values(@m_id,@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
                            checknum = arra[j]["checknum"].ToString(),
                            checkiem_seq = arra[j]["checkiem_seq"].ToString(),
                            checkitem_code = arra[j]["checkitem_code"].ToString(),
                            checkitem_name = arra[j]["checkitem_name"].ToString(),
                            checkitem_descr = arra[j]["checkitem_descr"].ToString(),
                            check_value = arra[j]["check_value"].ToString(),
                            check_result = arra[j]["check_result"].ToString(),
                            lm_user = username,
                            lm_date = datetime
                        }
                    });
                }
                bool aa = DapperHelper.DoTransaction(list);
@@ -2886,14 +2949,14 @@
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "检验成功!";
                    mes.Message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "检验失败!";
                    mes.Message = "操作失败!";
                    mes.data = null;
                }
            }
@@ -2909,6 +2972,8 @@
        #endregion
        #region[MES工单批量关闭查询]
        public static ToMessage MesOrderBitchClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
VueWebApi/DLL/DAL/QualityManagementDAL.cs
@@ -905,7 +905,7 @@
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *  from(
                            select A.code,A.name,A.status,A.checktype,A.sampmethod,A.sampscare,A.suitobject,A.descr,A.suitpart,A.lm_date,U.username,
                            select A.code,A.name,A.status,A.checktype,A.sampmethod,A.sampscare,A.suitobject,A.stepcode,S.stepname,A.descr,A.suitpart,A.lm_date,U.username,
                            case when A.suitobject='P' then
                            STUFF(( SELECT ';' + partname
                            FROM TMateriel_Info
@@ -919,7 +919,8 @@
                            FOR XML PATH('')), 1, 1,'')
                            end as suitpartname
                            from TStepCheckStandard A
                            left join TUser U on  A.lm_user=U.usercode
                            left join TUser U on  A.lm_user=U.usercode
                            left join TStep S on A.stepcode=S.stepcode
                            ) as AA 
                            where " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
@@ -970,7 +971,7 @@
        #endregion
        #region[质检方案新增/编辑提交]
        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr, string checkitem, string type, string username)
        public static ToMessage QualityInspectionAddEditSave(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampmethod, string sampscare, string suitobject, string suitpart, string descr,string stepcode, string checkitem, string type, string username)
        {
            var sql = "";
            List<object> list = new List<object>();
@@ -985,8 +986,8 @@
                {
                    case "Add": //新增
                        //写入质检方案主表
                        sql = @"insert into  TStepCheckStandard(code,name,status,checktype,sampmethod,sampscare,suitobject,suitpart,descr,lm_user,lm_date)
                                values(@code,@name,@status,@checktype,@sampmethod,@sampscare,@suitobject,@suitpart,@descr,@lm_user,@lm_date)";
                        sql = @"insert into  TStepCheckStandard(code,name,status,checktype,sampmethod,sampscare,suitobject,suitpart,stepcode,descr,lm_user,lm_date)
                                values(@code,@name,@status,@checktype,@sampmethod,@sampscare,@suitobject,@suitpart,@stepcode,@descr,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
@@ -1000,6 +1001,7 @@
                                sampscare = sampscare,
                                suitobject = suitobject,
                                suitpart = suitpart,
                                stepcode= stepcode,
                                descr = descr,
                                lm_user = username,
                                lm_date = date
@@ -1051,7 +1053,7 @@
                        list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
                        //修改质检方案主表
                        sql = @"update TStepCheckStandard set name=@name,status=@status,checktype=@checktype,sampmethod=@sampmethod,sampscare=@sampscare,
                                suitobject=@suitobject,suitpart=@suitpart,descr=@descr
                                suitobject=@suitobject,suitpart=@suitpart,stepcode=@stepcode,descr=@descr
                                where code=@code";
                        list.Add(new
                        {
@@ -1066,6 +1068,7 @@
                                sampscare = sampscare,
                                suitobject = suitobject,
                                suitpart = suitpart,
                                stepcode = stepcode,
                                descr = descr,
                            }
                        });
VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -1478,5 +1478,205 @@
            return mes;
        }
        #endregion
        #region[生产进度报表]
        public static ToMessage ProductionScheduleReportSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (status != "" && status != null)
                {
                    switch (status)
                    {
                        case "START":
                            search += "and AA.status='START' ";
                            break;
                        case "CLOSED":
                            search += "and AA.status='CLOSED' ";
                            break;
                        default:
                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
                            break;
                    }
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (routecode != "" && routecode != null)
                {
                    search += "and AA.route_code like '%'+@routecode+'%' ";
                    dynamicParams.Add("@routecode", routecode);
                }
                if (routename != "" && routename != null)
                {
                    search += "and AA.route_name like '%'+@routename+'%' ";
                    dynamicParams.Add("@routename", routename);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and AA.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select  AA.saleOrderCode,AA.m_po,AA.wo_code,
                            (case when AA.status='START' then '执行中' when AA.status='CLOSED' then '已完成' else '未开始' end) as status,
                            AA.lm_date,AA.route_code,AA.route_name,AA.partcode,AA.partname,AA.partspec,AA.plan_qty,left(AA.concat_name,len(concat_name)-1) as concat_name  from
                            (
                            select E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
                             inner join TStep S on n.step_code=S.stepcode
                             where n.wo_code=m.wo_code for xml path('')) as concat_name
                            from TK_Wrk_Step m
                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
                            left join TKimp_Ewo E on W.m_po=E.wo
                            inner join TMateriel_Info P on W.materiel_code=p.partcode
                            inner join TFlw_Rout R on W.route_code=R.code
                            group by E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
                            ) AA
                            where " + search;
                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 ProductionScheduleReportExcelSearch(string status, string wocode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (status != "" && status != null)
                {
                    switch (status)
                    {
                        case "START":
                            search += "and AA.status='START' ";
                            break;
                        case "CLOSED":
                            search += "and AA.status='CLOSED' ";
                            break;
                        default:
                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
                            break;
                    }
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (routecode != "" && routecode != null)
                {
                    search += "and AA.route_code like '%'+@routecode+'%' ";
                    dynamicParams.Add("@routecode", routecode);
                }
                if (routename != "" && routename != null)
                {
                    search += "and AA.route_name like '%'+@routename+'%' ";
                    dynamicParams.Add("@routename", routename);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and AA.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select  AA.saleOrderCode as ERP源单号,AA.m_po as ERP生产订单,AA.wo_code as ç”Ÿäº§å·¥å•号,
                            (case when AA.status='START' then '执行中' when AA.status='CLOSED' then '已完成' else '未开始' end) as å·¥å•状态,
                            AA.lm_date as å•据日期,AA.route_code as å·¥è‰ºè·¯çº¿ç¼–号,AA.route_name as å·¥è‰ºè·¯çº¿åç§°,
                            AA.partcode as äº§å“ç¼–码,AA.partname as äº§å“åç§°,AA.partspec as äº§å“è§„æ ¼,AA.plan_qty as ä»»åŠ¡æ•°é‡,left(AA.concat_name,len(concat_name)-1) as ç”Ÿäº§è¿›åº¦  from
                            (
                            select E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
                             inner join TStep S on n.step_code=S.stepcode
                             where n.wo_code=m.wo_code for xml path('')) as concat_name
                            from TK_Wrk_Step m
                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
                            left join TKimp_Ewo E on W.m_po=E.wo
                            inner join TMateriel_Info P on W.materiel_code=p.partcode
                            inner join TFlw_Rout R on W.route_code=R.code
                            group by E.saleOrderCode,W.m_po,m.wo_code,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
                            ) AA
                            where " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "生产进度报表");
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = msg;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/Image/app_8_1.png
VueWebApi/Image/app_9_2.png
VueWebApi/Image/app_9_3.png
VueWebApi/Image/app_9_4.png
VueWebApi/Image/app_9_5.png
VueWebApi/Log4net/ActionConverter.cs
@@ -21,14 +21,20 @@
            {
                switch (this.Option.ToLower())
                {
                    case "userid":
                        writer.Write(actionInfo.ActionClick);
                    case "op_type":
                        writer.Write(actionInfo.op_type);
                        break;
                    case "unitcode":
                        writer.Write(actionInfo.UserCode);
                    case "op_content":
                        writer.Write(actionInfo.op_content);
                        break;
                    case "menuid":
                        writer.Write(actionInfo.UserIP);
                    case "actionclick":
                        writer.Write(actionInfo.actionclick);
                        break;
                    case "ippath":
                        writer.Write(actionInfo.ippath);
                        break;
                    case "lm_user":
                        writer.Write(actionInfo.lm_user);
                        break;
                    default:
                        writer.Write("");
VueWebApi/Log4net/ActionLoggerInfo.cs
@@ -7,16 +7,20 @@
{
    public class ActionLoggerInfo
    {
        public string ActionClick { get; set; }
        public string UserCode { get; set; }
        public string UserIP { get; set; }
        public int Level { get; set; }
        public ActionLoggerInfo(string ActionClick, string UserCode, string UserIP,int Level)
        public string op_type { get; set; }
        public string op_content { get; set; }
        public string actionclick { get; set; }
        public string ippath { get; set; }
        public string lm_user { get; set; }
        public int level { get; set; }
        public ActionLoggerInfo(string op_type,string op_content,string actionclick,string ippath,string lm_user, int level)
        {
            this.ActionClick = ActionClick;
            this.UserCode = UserCode;
            this.UserIP = UserIP;
            this.Level = Level;
            this.op_type = op_type;
            this.op_content = op_content;
            this.actionclick = actionclick;
            this.ippath = ippath;
            this.lm_user = lm_user;
            this.level = level;
        }
    }
}
VueWebApi/Log4net/LogUtil.cs
@@ -59,15 +59,16 @@
        }
        /// <summary>
        /// æ—¥å¿—调用方法
        /// æ“ä½œè®°å½•调用方法
        /// </summary>
        /// <param name="actionclick">接口方法</param>
        /// <param name="usercode">用户编码</param>
        /// <param name="userip">用户ip</param>
        /// <param name="level">日志等级</param>
        public static void SaveMessage(string actionclick, string usercode, string userip,int level)
        /// <param name="op_type">操作类型</param>
        /// <param name="op_content">操作类容</param>
        /// <param name="actionclick">操作方法</param>
        /// <param name="ippath">ip地址</param>
        /// <param name="lm_user">操作人员</param>
        public static void SaveMessage(string op_type, string op_content, string actionclick,string ippath,string lm_user, int level)
        {
            _message = new ActionLoggerInfo(actionclick, usercode, userip, level);
            _message = new ActionLoggerInfo(op_type, op_content, actionclick, ippath, lm_user, level);
            switch (level)
            {
                case 1: Info(); break;
VueWebApi/Logs/2023-05-10.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
 ã€æ—¶é—´ã€‘:2023-05-10 08:08:10,058
 ã€çº§åˆ«ã€‘:INFO
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 6
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬50行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 08:12:14,946
 ã€çº§åˆ«ã€‘:INFO
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 8
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬50行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 08:23:43,441
 ã€çº§åˆ«ã€‘:INFO
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 7
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬50行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 08:28:58,148
 ã€çº§åˆ«ã€‘:WARN
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 7
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬57行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 08:33:30,681
 ã€çº§åˆ«ã€‘:WARN
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬57行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 08:56:34,910
 ã€çº§åˆ«ã€‘:WARN
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 14
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬57行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-10 09:17:40,903
 ã€çº§åˆ«ã€‘:INFO
 ã€ç±»åã€‘:OperateLogger
 ã€çº¿ç¨‹ID】: 8
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES产品\VueWebApi\VueWebApi\Log4net\LogUtil.cs ç¬¬50行
 ã€æ—¥å¿—内容】:VueWebApi.Log4net.ActionLoggerInfo
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Models/AppScheduleKanban.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class AppScheduleKanban
    {
        /// <summary>
        /// å•据编号
        /// </summary>
        public string ordercode { get; set; }
        /// <summary>
        /// å•据数量
        /// </summary>
        public string orderqty { get; set; }
        /// <summary>
        /// å•据编号
        /// </summary>
        public string ordergoodqty { get; set; }
        /// <summary>
        /// äº§å“ç¼–码
        /// </summary>
        public string partcode { get; set; }
        /// <summary>
        /// äº§å“åç§°
        /// </summary>
        public string partname { get; set; }
        /// <summary>
        /// äº§å“è§„æ ¼
        /// </summary>
        public string partspec { get; set; }
        public List<AppScheduleKanbanSub> children { get; set; }//子节点
    }
    public class AppScheduleKanbanSub
    {
        public string code { get; set; }
        public string name { get; set; }
        public string spec { get; set; }
        public string planqty { get; set; }
        public string goodqty { 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|2023-05-09T11:30:19.2882714Z;True|2023-05-08T18:08:56.2476136+08:00;True|2023-05-08T18:07:15.2514972+08:00;True|2023-05-08T18:04:38.8770595+08:00;True|2023-05-08T17:47:24.7720275+08:00;True|2023-05-08T17:34:16.2613338+08:00;True|2023-05-08T17:31:32.9125441+08:00;True|2023-05-08T17:24:27.5765230+08:00;True|2023-05-08T17:18:32.6186281+08:00;True|2023-05-08T16:41:34.1978109+08:00;True|2023-05-08T16:38:10.1042972+08:00;True|2023-05-08T16:35:13.8108245+08:00;True|2023-05-08T16:05:00.4230119+08:00;True|2023-05-08T15:52:54.8659373+08:00;True|2023-05-08T15:27:59.7369215+08:00;True|2023-05-08T13:48:29.4669255+08:00;True|2023-05-06T09:21:10.0166182+08:00;True|2023-05-05T14:14:36.8872753+08:00;True|2023-04-25T09:53:42.9989490+08:00;True|2023-04-25T09:29:47.9359947+08:00;True|2023-04-21T10:10:47.7408362+08:00;True|2023-04-19T10:05:32.2323010+08:00;True|2023-04-19T08:47:02.1943920+08:00;True|2023-04-19T08:36:23.7737952+08:00;True|2023-04-19T08:27:33.3238877+08:00;True|2023-04-13T16:59:39.7958192+08:00;True|2023-04-13T16:34:45.9951848+08:00;True|2023-04-13T16:27:59.7386867+08:00;False|2023-04-13T16:23:36.7558189+08:00;True|2023-04-12T16:31:46.6724339+08:00;True|2023-04-12T16:23:35.3177339+08:00;True|2023-04-11T12:49:48.0246851+08:00;True|2023-04-11T12:46:56.0293166+08:00;True|2023-04-11T11:13:00.9841554+08:00;True|2023-04-10T16:53:41.8964649+08:00;True|2023-04-07T08:30:18.4653189+08:00;True|2023-04-06T17:29:55.4388629+08:00;True|2023-04-06T16:45:39.5573964+08:00;True|2023-04-04T15:41:18.1582540+08:00;True|2023-04-04T15:33:47.4319210+08:00;True|2023-04-04T15:24:23.0417772+08:00;True|2023-04-04T15:05:34.8694589+08:00;True|2023-04-04T13:51:06.6709099+08:00;True|2023-04-04T08:51:53.0379573+08:00;True|2023-04-04T08:26:14.1581736+08:00;True|2023-04-04T08:09:40.3919185+08:00;True|2023-04-04T08:03:47.3773358+08:00;True|2023-03-29T10:59:42.8557249+08:00;True|2023-03-29T10:32:37.1829423+08:00;True|2023-03-24T15:23:09.2950637+08:00;True|2023-03-22T17:52:59.0162624+08:00;True|2023-03-22T17:44:51.7892593+08:00;True|2023-03-22T17:41:41.7366750+08:00;True|2023-03-22T17:30:45.1983751+08:00;True|2023-03-22T17:25:48.0681920+08:00;True|2023-03-22T17:16:16.5578143+08:00;True|2023-03-22T16:36:15.7695476+08:00;True|2023-03-22T10:21:58.5145068+08:00;True|2023-03-20T17:21:47.4459321+08:00;True|2023-03-20T17:21:27.0468975+08:00;True|2023-03-20T16:58:02.8681774+08:00;True|2023-03-20T16:34:42.1058692+08:00;True|2023-03-20T16:23:47.7801897+08:00;True|2023-03-03T08:56:05.4730255+08:00;True|2023-03-02T16:23:31.6756396+08:00;True|2023-03-01T15:52:28.2849007+08:00;True|2023-03-01T15:35:55.8647024+08:00;True|2023-03-01T15:21:23.8133690+08:00;True|2023-02-28T16:00:01.5165754+08:00;True|2023-02-28T14:53:18.0954404+08:00;True|2023-02-28T14:45:14.0183407+08:00;True|2023-02-15T15:10:18.1493103+08:00;True|2023-02-15T14:45:42.3134512+08:00;True|2023-02-15T14:38:34.6207896+08:00;True|2023-02-15T14:28:47.3494779+08:00;True|2023-02-15T14:06:19.8843387+08:00;True|2023-02-15T12:37:06.8372351+08:00;True|2023-02-15T09:18:28.2740085+08:00;True|2023-02-14T16:38:24.2037803+08:00;False|2023-02-14T16:35:10.9291528+08:00;True|2023-02-13T14:56:38.5856100+08:00;True|2023-02-13T12:50:51.9358444+08:00;True|2023-02-11T10:08:39.6831781+08:00;True|2023-02-11T09:54:32.8160454+08:00;True|2023-02-11T09:54:21.9971913+08:00;True|2023-02-11T02:11:17.5904204+08:00;True|2023-02-11T02:04:19.4213456+08:00;True|2023-02-10T13:03:57.4443981+08:00;True|2023-02-09T21:55:13.8322950+08:00;True|2023-02-09T21:34:49.3120350+08:00;True|2023-02-07T10:08:39.5582710+08:00;True|2023-02-03T08:25:45.7718782+08:00;True|2023-01-30T12:40:37.6820386+08:00;True|2023-01-30T08:45:34.0836363+08:00;True|2023-01-11T10:13:36.4366183+08:00;True|2023-01-11T09:37:39.6235517+08:00;True|2023-01-11T09:37:05.7608583+08:00;True|2023-01-11T09:14:36.0337347+08:00;True|2023-01-10T16:29:20.9791940+08:00;True|2023-01-10T16:09:20.2950245+08:00;True|2023-01-10T14:43:30.8069585+08:00;True|2023-01-10T14:43:14.0392269+08:00;True|2023-01-10T13:30:42.7077204+08:00;True|2023-01-10T13:09:48.9547948+08:00;True|2023-01-10T12:18:02.7207328+08:00;True|2023-01-06T16:33:28.2963933+08:00;True|2023-01-06T16:27:31.9342782+08:00;True|2023-01-06T16:23:33.0323708+08:00;True|2023-01-06T14:06:25.7389071+08:00;True|2023-01-06T13:50:39.1399992+08:00;True|2023-01-06T11:55:24.5609585+08:00;True|2023-01-06T11:08:53.3862603+08:00;True|2023-01-06T10:35:25.4696330+08:00;True|2023-01-06T10:27:54.7687528+08:00;True|2023-01-06T09:34:11.0798818+08:00;True|2023-01-05T16:47:28.7063631+08:00;True|2023-01-04T15:09:12.6813075+08:00;True|2023-01-04T15:06:20.1259155+08:00;True|2022-12-27T15:22:00.8719157+08:00;True|2022-12-27T15:18:56.4183337+08:00;True|2022-12-27T11:13:35.0250651+08:00;True|2022-12-26T14:12:52.3868526+08:00;True|2022-12-26T10:35:25.9712626+08:00;True|2022-12-20T09:02:47.7097031+08:00;True|2022-12-19T14:40:38.5851369+08:00;True|2022-12-14T12:51:44.0399559+08:00;True|2022-12-14T10:59:36.5250039+08:00;True|2022-12-14T10:54:23.0704819+08:00;True|2022-12-14T10:54:11.5744699+08:00;True|2022-12-14T10:53:33.7127244+08:00;True|2022-12-14T10:47:34.9597966+08:00;True|2022-12-08T15:06:12.8416810+08:00;True|2022-12-07T16:44:49.7931793+08:00;True|2022-11-26T11:05:21.2315179+08:00;True|2022-11-26T10:56:49.3021067+08:00;True|2022-11-25T13:00:54.9138172+08:00;True|2022-11-25T12:43:01.0212012+08:00;True|2022-11-25T12:36:22.2745198+08:00;True|2022-11-25T12:33:27.1942331+08:00;True|2022-11-25T11:07:23.5860394+08:00;True|2022-11-25T10:36:26.1052993+08:00;True|2022-11-24T16:50:49.0061385+08:00;True|2022-11-24T16:47:23.6152654+08:00;True|2022-11-24T15:36:20.0275278+08:00;True|2022-11-24T15:25:29.2391337+08:00;True|2022-11-24T15:25:19.7988304+08:00;True|2022-11-24T15:06:48.3860466+08:00;True|2022-11-24T14:52:24.7879819+08:00;True|2022-11-24T10:12:41.0992839+08:00;True|2022-11-21T15:13:29.3527873+08:00;True|2022-11-21T10:42:28.8298039+08:00;True|2022-11-18T11:10:34.9917493+08:00;True|2022-11-18T11:10:11.7210670+08:00;True|2022-11-18T10:59:20.7515137+08:00;True|2022-11-18T10:52:33.2724652+08:00;True|2022-11-18T09:22:10.0215858+08:00;True|2022-11-18T09:16:35.0644453+08:00;True|2022-11-16T10:30:33.9013342+08:00;True|2022-11-16T09:55:08.7555656+08:00;True|2022-10-29T11:48:17.9164445+08:00;True|2022-10-29T10:27:39.6224331+08:00;True|2022-10-29T09:25:19.4865788+08:00;True|2022-10-29T09:01:58.2237798+08:00;True|2022-10-29T08:57:17.1749942+08:00;True|2022-10-28T14:44:10.4595607+08:00;True|2022-10-28T14:41:10.8050513+08:00;True|2022-10-28T14:39:02.0096359+08:00;True|2022-10-28T14:27:52.1679095+08:00;True|2022-10-28T14:19:07.6073425+08:00;True|2022-10-28T14:16:46.4140421+08:00;True|2022-10-28T14:06:54.5820895+08:00;True|2022-10-28T14:06:20.4765666+08:00;True|2022-10-28T14:00:01.8073205+08:00;True|2022-10-28T13:56:40.6320465+08:00;True|2022-10-28T12:52:46.3086338+08:00;True|2022-10-28T11:31:08.7626713+08:00;True|2022-10-28T11:28:25.3391022+08:00;True|2022-10-27T17:13:49.3276407+08:00;True|2022-10-27T17:09:49.3362372+08:00;True|2022-10-27T14:49:20.9922482+08:00;True|2022-10-27T11:08:32.7803317+08:00;True|2022-10-27T09:19:17.9537933+08:00;True|2022-10-27T09:14:00.6751533+08:00;True|2022-10-27T09:08:05.5814368+08:00;True|2022-10-27T09:04:21.1435873+08:00;True|2022-10-26T16:47:26.8255243+08:00;True|2022-10-26T16:29:26.3405800+08:00;False|2022-10-26T16:28:18.6237074+08:00;True|2022-10-26T14:29:39.8852546+08:00;True|2022-10-26T14:11:14.0537705+08:00;True|2022-10-26T10:56:16.7897290+08:00;True|2022-10-26T10:29:02.5303566+08:00;True|2022-10-26T10:28:29.9192643+08:00;True|2022-10-26T10:28:16.5901050+08:00;True|2022-10-26T10:22:02.2019236+08:00;True|2022-10-26T10:17:08.3009992+08:00;True|2022-10-20T18:19:28.0452517+08:00;True|2022-10-20T18:14:36.1031080+08:00;True|2022-10-20T16:49:08.1312509+08:00;True|2022-10-20T10:11:30.3988252+08:00;True|2022-10-20T09:52:55.2879279+08:00;True|2022-10-20T09:07:20.5119842+08:00;True|2022-10-20T08:55:23.9003542+08:00;True|2022-10-19T17:56:47.0600040+08:00;True|2022-10-19T17:26:22.4420642+08:00;True|2022-10-19T17:15:09.2591171+08:00;True|2022-10-19T17:00:58.0407123+08:00;True|2022-10-19T16:53:20.8393084+08:00;True|2022-10-19T16:49:09.6859302+08:00;True|2022-10-19T16:40:53.2090492+08:00;True|2022-10-19T16:35:02.0381742+08:00;True|2022-10-19T16:30:49.8415090+08:00;True|2022-10-19T16:05:14.3522346+08:00;True|2022-10-19T15:50:08.9509925+08:00;True|2022-10-19T15:36:28.6015003+08:00;True|2022-10-19T15:33:26.7861204+08:00;True|2022-10-19T15:27:02.8006070+08:00;True|2022-10-19T15:16:31.4065993+08:00;True|2022-10-19T15:14:34.8724996+08:00;True|2022-10-18T18:12:15.5930366+08:00;True|2022-10-18T18:06:54.1679240+08:00;True|2022-10-18T18:02:12.3473981+08:00;True|2022-10-18T17:39:10.7104222+08:00;True|2022-10-18T17:35:14.3679319+08:00;True|2022-10-18T17:32:18.8020932+08:00;True|2022-10-18T17:09:35.5170795+08:00;True|2022-10-18T17:02:58.3933082+08:00;True|2022-10-18T16:46:19.9647705+08:00;True|2022-10-18T11:28:23.1151472+08:00;True|2022-10-17T16:44:34.9653103+08:00;True|2022-10-16T01:53:49.3818533+08:00;True|2022-10-16T01:46:58.7626854+08:00;True|2022-10-16T01:35:19.3037353+08:00;True|2022-10-15T14:31:57.4587818+08:00;True|2022-10-15T14:22:52.4245457+08:00;True|2022-10-14T15:32:59.8175195+08:00;True|2022-10-14T15:24:23.9954226+08:00;True|2022-10-14T15:24:02.4438281+08:00;True|2022-10-14T11:07:04.2629220+08:00;True|2022-10-13T16:44:07.8507864+08:00;True|2022-10-13T16:34:20.4037866+08:00;True|2022-10-13T15:07:55.6527739+08:00;True|2022-10-12T14:59:51.4425162+08:00;True|2022-10-12T11:14:22.2463823+08:00;True|2022-10-12T08:53:16.5351204+08:00;True|2022-10-12T08:24:28.2157523+08:00;False|2022-10-12T08:23:56.2743080+08:00;True|2022-10-12T08:12:38.4791356+08:00;False|2022-10-12T08:12:14.9860966+08:00;True|2022-10-12T08:08:31.1437091+08:00;True|2022-10-11T18:10:13.8327911+08:00;True|2022-10-10T16:21:33.7622381+08:00;True|2022-10-10T09:56:53.1134309+08:00;False|2022-10-10T09:56:18.9153013+08:00;True|2022-10-10T08:46:48.2842004+08:00;True|2022-10-09T16:25:10.1147763+08:00;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>
    <History>True|2023-05-19T05:58:21.8716077Z;True|2023-05-19T13:43:04.0108113+08:00;True|2023-05-18T14:00:14.2429421+08:00;True|2023-05-18T14:00:00.5235856+08:00;True|2023-05-18T13:50:34.8609414+08:00;True|2023-05-18T13:43:21.0316462+08:00;True|2023-05-18T10:19:05.7358704+08:00;True|2023-05-16T14:51:14.2413890+08:00;True|2023-05-11T16:12:03.5847312+08:00;True|2023-05-11T14:51:24.9777508+08:00;True|2023-05-11T14:22:01.5250259+08:00;True|2023-05-11T14:18:25.5821570+08:00;True|2023-05-09T19:30:19.2882714+08:00;True|2023-05-08T18:08:56.2476136+08:00;True|2023-05-08T18:07:15.2514972+08:00;True|2023-05-08T18:04:38.8770595+08:00;True|2023-05-08T17:47:24.7720275+08:00;True|2023-05-08T17:34:16.2613338+08:00;True|2023-05-08T17:31:32.9125441+08:00;True|2023-05-08T17:24:27.5765230+08:00;True|2023-05-08T17:18:32.6186281+08:00;True|2023-05-08T16:41:34.1978109+08:00;True|2023-05-08T16:38:10.1042972+08:00;True|2023-05-08T16:35:13.8108245+08:00;True|2023-05-08T16:05:00.4230119+08:00;True|2023-05-08T15:52:54.8659373+08:00;True|2023-05-08T15:27:59.7369215+08:00;True|2023-05-08T13:48:29.4669255+08:00;True|2023-05-06T09:21:10.0166182+08:00;True|2023-05-05T14:14:36.8872753+08:00;True|2023-04-25T09:53:42.9989490+08:00;True|2023-04-25T09:29:47.9359947+08:00;True|2023-04-21T10:10:47.7408362+08:00;True|2023-04-19T10:05:32.2323010+08:00;True|2023-04-19T08:47:02.1943920+08:00;True|2023-04-19T08:36:23.7737952+08:00;True|2023-04-19T08:27:33.3238877+08:00;True|2023-04-13T16:59:39.7958192+08:00;True|2023-04-13T16:34:45.9951848+08:00;True|2023-04-13T16:27:59.7386867+08:00;False|2023-04-13T16:23:36.7558189+08:00;True|2023-04-12T16:31:46.6724339+08:00;True|2023-04-12T16:23:35.3177339+08:00;True|2023-04-11T12:49:48.0246851+08:00;True|2023-04-11T12:46:56.0293166+08:00;True|2023-04-11T11:13:00.9841554+08:00;True|2023-04-10T16:53:41.8964649+08:00;True|2023-04-07T08:30:18.4653189+08:00;True|2023-04-06T17:29:55.4388629+08:00;True|2023-04-06T16:45:39.5573964+08:00;True|2023-04-04T15:41:18.1582540+08:00;True|2023-04-04T15:33:47.4319210+08:00;True|2023-04-04T15:24:23.0417772+08:00;True|2023-04-04T15:05:34.8694589+08:00;True|2023-04-04T13:51:06.6709099+08:00;True|2023-04-04T08:51:53.0379573+08:00;True|2023-04-04T08:26:14.1581736+08:00;True|2023-04-04T08:09:40.3919185+08:00;True|2023-04-04T08:03:47.3773358+08:00;True|2023-03-29T10:59:42.8557249+08:00;True|2023-03-29T10:32:37.1829423+08:00;True|2023-03-24T15:23:09.2950637+08:00;True|2023-03-22T17:52:59.0162624+08:00;True|2023-03-22T17:44:51.7892593+08:00;True|2023-03-22T17:41:41.7366750+08:00;True|2023-03-22T17:30:45.1983751+08:00;True|2023-03-22T17:25:48.0681920+08:00;True|2023-03-22T17:16:16.5578143+08:00;True|2023-03-22T16:36:15.7695476+08:00;True|2023-03-22T10:21:58.5145068+08:00;True|2023-03-20T17:21:47.4459321+08:00;True|2023-03-20T17:21:27.0468975+08:00;True|2023-03-20T16:58:02.8681774+08:00;True|2023-03-20T16:34:42.1058692+08:00;True|2023-03-20T16:23:47.7801897+08:00;True|2023-03-03T08:56:05.4730255+08:00;True|2023-03-02T16:23:31.6756396+08:00;True|2023-03-01T15:52:28.2849007+08:00;True|2023-03-01T15:35:55.8647024+08:00;True|2023-03-01T15:21:23.8133690+08:00;True|2023-02-28T16:00:01.5165754+08:00;True|2023-02-28T14:53:18.0954404+08:00;True|2023-02-28T14:45:14.0183407+08:00;True|2023-02-15T15:10:18.1493103+08:00;True|2023-02-15T14:45:42.3134512+08:00;True|2023-02-15T14:38:34.6207896+08:00;True|2023-02-15T14:28:47.3494779+08:00;True|2023-02-15T14:06:19.8843387+08:00;True|2023-02-15T12:37:06.8372351+08:00;True|2023-02-15T09:18:28.2740085+08:00;True|2023-02-14T16:38:24.2037803+08:00;False|2023-02-14T16:35:10.9291528+08:00;True|2023-02-13T14:56:38.5856100+08:00;True|2023-02-13T12:50:51.9358444+08:00;True|2023-02-11T10:08:39.6831781+08:00;True|2023-02-11T09:54:32.8160454+08:00;True|2023-02-11T09:54:21.9971913+08:00;True|2023-02-11T02:11:17.5904204+08:00;True|2023-02-11T02:04:19.4213456+08:00;True|2023-02-10T13:03:57.4443981+08:00;True|2023-02-09T21:55:13.8322950+08:00;True|2023-02-09T21:34:49.3120350+08:00;True|2023-02-07T10:08:39.5582710+08:00;True|2023-02-03T08:25:45.7718782+08:00;True|2023-01-30T12:40:37.6820386+08:00;True|2023-01-30T08:45:34.0836363+08:00;True|2023-01-11T10:13:36.4366183+08:00;True|2023-01-11T09:37:39.6235517+08:00;True|2023-01-11T09:37:05.7608583+08:00;True|2023-01-11T09:14:36.0337347+08:00;True|2023-01-10T16:29:20.9791940+08:00;True|2023-01-10T16:09:20.2950245+08:00;True|2023-01-10T14:43:30.8069585+08:00;True|2023-01-10T14:43:14.0392269+08:00;True|2023-01-10T13:30:42.7077204+08:00;True|2023-01-10T13:09:48.9547948+08:00;True|2023-01-10T12:18:02.7207328+08:00;True|2023-01-06T16:33:28.2963933+08:00;True|2023-01-06T16:27:31.9342782+08:00;True|2023-01-06T16:23:33.0323708+08:00;True|2023-01-06T14:06:25.7389071+08:00;True|2023-01-06T13:50:39.1399992+08:00;True|2023-01-06T11:55:24.5609585+08:00;True|2023-01-06T11:08:53.3862603+08:00;True|2023-01-06T10:35:25.4696330+08:00;True|2023-01-06T10:27:54.7687528+08:00;True|2023-01-06T09:34:11.0798818+08:00;True|2023-01-05T16:47:28.7063631+08:00;True|2023-01-04T15:09:12.6813075+08:00;True|2023-01-04T15:06:20.1259155+08:00;True|2022-12-27T15:22:00.8719157+08:00;True|2022-12-27T15:18:56.4183337+08:00;True|2022-12-27T11:13:35.0250651+08:00;True|2022-12-26T14:12:52.3868526+08:00;True|2022-12-26T10:35:25.9712626+08:00;True|2022-12-20T09:02:47.7097031+08:00;True|2022-12-19T14:40:38.5851369+08:00;True|2022-12-14T12:51:44.0399559+08:00;True|2022-12-14T10:59:36.5250039+08:00;True|2022-12-14T10:54:23.0704819+08:00;True|2022-12-14T10:54:11.5744699+08:00;True|2022-12-14T10:53:33.7127244+08:00;True|2022-12-14T10:47:34.9597966+08:00;True|2022-12-08T15:06:12.8416810+08:00;True|2022-12-07T16:44:49.7931793+08:00;True|2022-11-26T11:05:21.2315179+08:00;True|2022-11-26T10:56:49.3021067+08:00;True|2022-11-25T13:00:54.9138172+08:00;True|2022-11-25T12:43:01.0212012+08:00;True|2022-11-25T12:36:22.2745198+08:00;True|2022-11-25T12:33:27.1942331+08:00;True|2022-11-25T11:07:23.5860394+08:00;True|2022-11-25T10:36:26.1052993+08:00;True|2022-11-24T16:50:49.0061385+08:00;True|2022-11-24T16:47:23.6152654+08:00;True|2022-11-24T15:36:20.0275278+08:00;True|2022-11-24T15:25:29.2391337+08:00;True|2022-11-24T15:25:19.7988304+08:00;True|2022-11-24T15:06:48.3860466+08:00;True|2022-11-24T14:52:24.7879819+08:00;True|2022-11-24T10:12:41.0992839+08:00;True|2022-11-21T15:13:29.3527873+08:00;True|2022-11-21T10:42:28.8298039+08:00;True|2022-11-18T11:10:34.9917493+08:00;True|2022-11-18T11:10:11.7210670+08:00;True|2022-11-18T10:59:20.7515137+08:00;True|2022-11-18T10:52:33.2724652+08:00;True|2022-11-18T09:22:10.0215858+08:00;True|2022-11-18T09:16:35.0644453+08:00;True|2022-11-16T10:30:33.9013342+08:00;True|2022-11-16T09:55:08.7555656+08:00;True|2022-10-29T11:48:17.9164445+08:00;True|2022-10-29T10:27:39.6224331+08:00;True|2022-10-29T09:25:19.4865788+08:00;True|2022-10-29T09:01:58.2237798+08:00;True|2022-10-29T08:57:17.1749942+08:00;True|2022-10-28T14:44:10.4595607+08:00;True|2022-10-28T14:41:10.8050513+08:00;True|2022-10-28T14:39:02.0096359+08:00;True|2022-10-28T14:27:52.1679095+08:00;True|2022-10-28T14:19:07.6073425+08:00;True|2022-10-28T14:16:46.4140421+08:00;True|2022-10-28T14:06:54.5820895+08:00;True|2022-10-28T14:06:20.4765666+08:00;True|2022-10-28T14:00:01.8073205+08:00;True|2022-10-28T13:56:40.6320465+08:00;True|2022-10-28T12:52:46.3086338+08:00;True|2022-10-28T11:31:08.7626713+08:00;True|2022-10-28T11:28:25.3391022+08:00;True|2022-10-27T17:13:49.3276407+08:00;True|2022-10-27T17:09:49.3362372+08:00;True|2022-10-27T14:49:20.9922482+08:00;True|2022-10-27T11:08:32.7803317+08:00;True|2022-10-27T09:19:17.9537933+08:00;True|2022-10-27T09:14:00.6751533+08:00;True|2022-10-27T09:08:05.5814368+08:00;True|2022-10-27T09:04:21.1435873+08:00;True|2022-10-26T16:47:26.8255243+08:00;True|2022-10-26T16:29:26.3405800+08:00;False|2022-10-26T16:28:18.6237074+08:00;True|2022-10-26T14:29:39.8852546+08:00;True|2022-10-26T14:11:14.0537705+08:00;True|2022-10-26T10:56:16.7897290+08:00;True|2022-10-26T10:29:02.5303566+08:00;True|2022-10-26T10:28:29.9192643+08:00;True|2022-10-26T10:28:16.5901050+08:00;True|2022-10-26T10:22:02.2019236+08:00;True|2022-10-26T10:17:08.3009992+08:00;True|2022-10-20T18:19:28.0452517+08:00;True|2022-10-20T18:14:36.1031080+08:00;True|2022-10-20T16:49:08.1312509+08:00;True|2022-10-20T10:11:30.3988252+08:00;True|2022-10-20T09:52:55.2879279+08:00;True|2022-10-20T09:07:20.5119842+08:00;True|2022-10-20T08:55:23.9003542+08:00;True|2022-10-19T17:56:47.0600040+08:00;True|2022-10-19T17:26:22.4420642+08:00;True|2022-10-19T17:15:09.2591171+08:00;True|2022-10-19T17:00:58.0407123+08:00;True|2022-10-19T16:53:20.8393084+08:00;True|2022-10-19T16:49:09.6859302+08:00;True|2022-10-19T16:40:53.2090492+08:00;True|2022-10-19T16:35:02.0381742+08:00;True|2022-10-19T16:30:49.8415090+08:00;True|2022-10-19T16:05:14.3522346+08:00;True|2022-10-19T15:50:08.9509925+08:00;True|2022-10-19T15:36:28.6015003+08:00;True|2022-10-19T15:33:26.7861204+08:00;True|2022-10-19T15:27:02.8006070+08:00;True|2022-10-19T15:16:31.4065993+08:00;True|2022-10-19T15:14:34.8724996+08:00;True|2022-10-18T18:12:15.5930366+08:00;True|2022-10-18T18:06:54.1679240+08:00;True|2022-10-18T18:02:12.3473981+08:00;True|2022-10-18T17:39:10.7104222+08:00;True|2022-10-18T17:35:14.3679319+08:00;True|2022-10-18T17:32:18.8020932+08:00;True|2022-10-18T17:09:35.5170795+08:00;True|2022-10-18T17:02:58.3933082+08:00;True|2022-10-18T16:46:19.9647705+08:00;True|2022-10-18T11:28:23.1151472+08:00;True|2022-10-17T16:44:34.9653103+08:00;True|2022-10-16T01:53:49.3818533+08:00;True|2022-10-16T01:46:58.7626854+08:00;True|2022-10-16T01:35:19.3037353+08:00;True|2022-10-15T14:31:57.4587818+08:00;True|2022-10-15T14:22:52.4245457+08:00;True|2022-10-14T15:32:59.8175195+08:00;True|2022-10-14T15:24:23.9954226+08:00;True|2022-10-14T15:24:02.4438281+08:00;True|2022-10-14T11:07:04.2629220+08:00;True|2022-10-13T16:44:07.8507864+08:00;True|2022-10-13T16:34:20.4037866+08:00;True|2022-10-13T15:07:55.6527739+08:00;True|2022-10-12T14:59:51.4425162+08:00;True|2022-10-12T11:14:22.2463823+08:00;True|2022-10-12T08:53:16.5351204+08:00;True|2022-10-12T08:24:28.2157523+08:00;False|2022-10-12T08:23:56.2743080+08:00;True|2022-10-12T08:12:38.4791356+08:00;False|2022-10-12T08:12:14.9860966+08:00;True|2022-10-12T08:08:31.1437091+08:00;True|2022-10-11T18:10:13.8327911+08:00;True|2022-10-10T16:21:33.7622381+08:00;True|2022-10-10T09:56:53.1134309+08:00;False|2022-10-10T09:56:18.9153013+08:00;True|2022-10-10T08:46:48.2842004+08:00;True|2022-10-09T16:25:10.1147763+08:00;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">
@@ -729,16 +729,16 @@
      <publishTime>12/24/2021 15:38:29</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>05/09/2023 19:30:11</publishTime>
      <publishTime>05/19/2023 13:58:17</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll.config">
      <publishTime>06/15/2022 15:31:43</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>05/09/2023 19:30:11</publishTime>
      <publishTime>05/19/2023 13:58:17</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>05/09/2023 19:30:11</publishTime>
      <publishTime>05/19/2023 13:58:17</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1478,6 +1478,9 @@
    <File Include="Image/app_8.png">
      <publishTime>08/30/2022 10:11:46</publishTime>
    </File>
    <File Include="Image/app_8_1.png">
      <publishTime>05/17/2023 09:22:00</publishTime>
    </File>
    <File Include="Image/app_8_7.png">
      <publishTime>04/04/2023 15:22:25</publishTime>
    </File>
@@ -1486,6 +1489,18 @@
    </File>
    <File Include="Image/app_9_1.png">
      <publishTime>01/03/2023 11:11:06</publishTime>
    </File>
    <File Include="Image/app_9_2.png">
      <publishTime>05/17/2023 09:07:41</publishTime>
    </File>
    <File Include="Image/app_9_3.png">
      <publishTime>05/17/2023 09:07:41</publishTime>
    </File>
    <File Include="Image/app_9_4.png">
      <publishTime>05/17/2023 09:07:41</publishTime>
    </File>
    <File Include="Image/app_9_5.png">
      <publishTime>05/17/2023 09:07:41</publishTime>
    </File>
    <File Include="Image/index_1.png">
      <publishTime>08/30/2022 10:11:46</publishTime>
@@ -1506,7 +1521,7 @@
      <publishTime>06/10/2022 09:23:15</publishTime>
    </File>
    <File Include="log4net.config">
      <publishTime>05/09/2023 19:02:28</publishTime>
      <publishTime>05/10/2023 09:38:48</publishTime>
    </File>
    <File Include="Scripts/bootstrap.js">
      <publishTime>06/10/2022 08:20:26</publishTime>
@@ -1560,7 +1575,7 @@
      <publishTime>06/10/2022 08:20:24</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>05/09/2023 19:30:18</publishTime>
      <publishTime>05/19/2023 13:58:21</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/Tools/ChannelActionFilterAttribute.cs
@@ -24,7 +24,7 @@
        /// è¯·æ±‚接口之前渠道过滤
        /// </summary>
        /// <param name="actionContext"></param>
        public override void  OnActionExecuting(HttpActionContext actionContext)
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            try
            {
@@ -39,7 +39,7 @@
                    //获取redis中当前用户信息
                    User r_loginUser = redis.Get<User>(rediskey, 0);
                    //如果session中的用户guid和redis中的用户guid匹配
                    if(r_loginUser.guid.Equals(guid))
                    if (r_loginUser.guid.Equals(guid))
                    {
                        //重置过期时间
                        redis.KeyExpire(rediskey, redis.secondsTimeOut);
@@ -64,7 +64,7 @@
                mes.Message = "登录已超时,请重新登录!";
                actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(mes), Encoding.GetEncoding("UTF-8"), "application/json") };
            }
        }
        }
    }
}
VueWebApi/Tools/DapperHelper.cs
@@ -45,6 +45,8 @@
            {
                try
                {
                    //用户操作记录写入数据表
                    //Log4net.LogUtil.SaveMessage("PC", "操作了xxxxx", "api/Login/LoginSave", ConfigurationManager.AppSettings["FileIP"], "9999", 1);
                    list = conn.Query<T>(sql, parm).ToList<T>();
                }
                catch (Exception ex)
VueWebApi/VueWebApi.csproj
@@ -402,6 +402,7 @@
    <Compile Include="Models\AppDevicecCheck.cs" />
    <Compile Include="Models\AppLabCode.cs" />
    <Compile Include="Models\AppPurchOrderSave.cs" />
    <Compile Include="Models\AppScheduleKanban.cs" />
    <Compile Include="Models\APSList.cs" />
    <Compile Include="Models\ApsOrderSerch.cs" />
    <Compile Include="Models\BomSub.cs" />
@@ -528,9 +529,14 @@
    <Content Include="Image\app_7_3.png" />
    <Content Include="Image\app_7_4.png" />
    <Content Include="Image\app_8.png" />
    <Content Include="Image\app_8_1.png" />
    <Content Include="Image\app_8_7.png" />
    <Content Include="Image\app_9.png" />
    <Content Include="Image\app_9_1.png" />
    <Content Include="Image\app_9_2.png" />
    <Content Include="Image\app_9_3.png" />
    <Content Include="Image\app_9_4.png" />
    <Content Include="Image\app_9_5.png" />
    <Content Include="Image\index_1.png" />
    <Content Include="Image\index_2.png" />
    <Content Include="Scripts\bootstrap.js" />
VueWebApi/Web.config
@@ -35,7 +35,18 @@
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add
                    name="textWriterTraceListener"
                    type="System.Diagnostics.TextWriterTraceListener"
                    initializeData="D:\log4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
VueWebApi/bin/VueWebApi.dll.config
@@ -35,7 +35,18 @@
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add
                    name="textWriterTraceListener"
                    type="System.Diagnostics.TextWriterTraceListener"
                    initializeData="D:\log4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -515,6 +515,15 @@
            <param name="defecttype">缺陷统计类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
            <summary>
            App生产进度看板单据信息
            </summary>
            <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
            <param name="partcode">产品信息(可多个)</param>
            <param name="Ratetime">单据日期范围</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppPersonalController.PieceRateWage(System.String,System.String,System.String)">
            <summary>
            App个人计件工资
@@ -718,6 +727,27 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckItemList(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.SaveStepCheckItem">
            <summary>
            å·¥åºæ£€éªŒ,提交
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.PurchSupplierSelect">
            <summary>
            é‡‡è´­ä¾›æ–¹ä¿¡æ¯æŸ¥è¯¢
@@ -753,6 +783,19 @@
            <summary>
            å•位信息查询
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.QualityScheme">
            <summary>
            è´¨æ£€æ–¹æ¡ˆä¿¡æ¯
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.InventorySelect(System.String)">
            <summary>
            å­˜è´§æŸ¥è¯¢
            </summary>
            <param name="param">存货信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.PurchaseOrderController.PurchaseOrderSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -1116,6 +1159,38 @@
            ç‰©æµæ£€éªŒï¼ŒæŸ¥çœ‹æ£€éªŒæ˜Žç»†
            </summary>
            <param name="checkid">检验记录ID</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§è¿›åº¦æŠ¥è¡¨
            </summary>
            <param name="status">工单状态</param>
            <param name="wocode">工单编号</param>
            <param name="routecode">工艺路线编码</param>
            <param name="routename">工艺路线名称</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
            <param name="partspec">规格型号</param>
            <param name="lm_date">单据日期</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§è¿›åº¦æŠ¥è¡¨å¯¼å‡º
            </summary>
            <param name="status">工单状态</param>
            <param name="wocode">工单编号</param>
            <param name="routecode">工艺路线编码</param>
            <param name="routename">工艺路线名称</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
            <param name="partspec">规格型号</param>
            <param name="lm_date">单据日期</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SendController.GetConnect(System.String)">
@@ -2629,31 +2704,25 @@
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验扫码获取任务信息
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSelect">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验获取检验标准下拉框数据
            </summary>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckItemList(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验根据检验标准获取检验项目列表
            å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验标准编码</param>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.SaveMesOrderStepCheckItem(Newtonsoft.Json.Linq.JObject)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验提交保存
            å·¥åºæ£€éªŒ,提交
            </summary>
            <param name="obj">提交信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -3453,6 +3522,16 @@
            æ³¨å†ŒSession
            </summary>
        </member>
        <member name="M:VueWebApi.Log4net.LogUtil.SaveMessage(System.String,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            æ“ä½œè®°å½•调用方法
            </summary>
            <param name="op_type">操作类型</param>
            <param name="op_content">操作类容</param>
            <param name="actionclick">操作方法</param>
            <param name="ippath">ip地址</param>
            <param name="lm_user">操作人员</param>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.rightcode">
            <summary>
            åŠŸèƒ½ç¼–ç 
@@ -3528,6 +3607,36 @@
            æ¡ç ä¿¡æ¯
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.ordercode">
            <summary>
            å•据编号
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.orderqty">
            <summary>
            å•据数量
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.ordergoodqty">
            <summary>
            å•据编号
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partcode">
            <summary>
            äº§å“ç¼–码
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partname">
            <summary>
            äº§å“åç§°
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partspec">
            <summary>
            äº§å“è§„æ ¼
            </summary>
        </member>
        <member name="P:VueWebApi.Models.ApsOrderSerch.wocode">
            <summary>
            å·¥å•号
VueWebApi/log4net.config
@@ -8,11 +8,11 @@
    <log4net>
        <!--写入到文件-->
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
        <!--<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
            <!--文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录-->
            --><!--文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录--><!--
            <param name="File" value="Logs\" />
            <!--将日记写入到跟目录下面的Logs文件夹下面的yyyy-MM-dd.TXT文件中-->
            --><!--将日记写入到跟目录下面的Logs文件夹下面的yyyy-MM-dd.TXT文件中--><!--
            <param name="AppendToFile" value="true" />
@@ -25,66 +25,69 @@
            <param name="RollingStyle" value="Date" />
            <param name="DatePattern" value="yyyy-MM-dd.TXT" />
            <!--TXT后缀必须是大写的,否则有问题-->
            --><!--TXT后缀必须是大写的,否则有问题--><!--
            <param name="CountDirection" value="-1" />
            <!--log4net记录错误的格式(即:用什么样的格式(布局)来记录错误)-->
            --><!--log4net记录错误的格式(即:用什么样的格式(布局)来记录错误)--><!--
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value=" ã€æ—¶é—´ã€‘:%d%n ã€çº§åˆ«ã€‘:%p%n ã€ç±»åã€‘:%c%n ã€çº¿ç¨‹ID】: %thread %n ã€æ–‡ä»¶åœ°å€ã€‘:%F ç¬¬%L行%n ã€æ—¥å¿—内容】:%m%n ã€æ—¥è®°è¯¦ç»†ã€‘:%exception %n---------------------------------------------------------------------------------------------------------------%n" />
            </layout>
        </appender>
        </appender>-->
        <!--将日记写入数据库-->
        <!--此处将操作记录写入数据库,日志同理-->
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <bufferSize value="-1" />
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <connectionString value="data source=121.196.36.24,1533;initial catalog=vmes;persist security info=True;user id=sa;password=xkd@20230101;MultipleActiveResultSets=True;" />
            <commandText value="INSERT INTO T_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
            <commandText value="insert into T_Take ([op_type],[op_content],[actionclick],[ippath],[lm_user],[lm_date])
                                values (@op_type, @op_content, @actionclick, @ippath, @lm_user, @lm_date)" />
            <parameter>
                <parameterName value="@log_date"  />
                <dbType value="DateTime" />
                <layout type="log4net.Layout.RawTimeStampLayout" />
            </parameter>
            <parameter>
                <parameterName value="@thread" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%thread" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@log_level" />
                <parameterName value="@op_type" />
                <dbType value="String" />
                <size value="50" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%level" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{op_type}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@logger" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%logger" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@message" />
                <parameterName value="@op_content" />
                <dbType value="String" />
                <size value="4000" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%message" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{op_content}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@exception" />
                <parameterName value="@actionclick" />
                <dbType value="String" />
                <size value="2000" />
                <layout type="log4net.Layout.ExceptionLayout" />
                <size value="100" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{actionclick}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@ippath" />
                <dbType value="String" />
                <size value="100" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{ippath}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@lm_user" />
                <dbType value="String" />
                <size value="50" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{lm_user}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@lm_date"  />
                <dbType value="DateTime" />
                <layout type="log4net.Layout.RawTimeStampLayout" />
            </parameter>
        </appender>
VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Image/app_8_1.png
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_2.png
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_3.png
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_4.png
VueWebApi/obj/Release/Package/PackageTmp/Image/app_9_5.png
VueWebApi/obj/Release/Package/PackageTmp/Web.config
@@ -35,7 +35,15 @@
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <!--提交json字符串过长问题-->
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
    <add key="log4net.Internal.Debug" value="true" />
  </appSettings>
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\log4net.txt" />
      </listeners>
    </trace>
  </system.diagnostics>
  <system.web>
    <compilation targetFramework="4.6.1" />
    <customErrors mode="Off" />
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -515,6 +515,15 @@
            <param name="defecttype">缺陷统计类型</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionScheduleKanban(System.String,System.String,System.String)">
            <summary>
            App生产进度看板单据信息
            </summary>
            <param name="ordertype">单据类型(SO:销售订单、MO:生产订单、PO:生产工单)</param>
            <param name="partcode">产品信息(可多个)</param>
            <param name="Ratetime">单据日期范围</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppPersonalController.PieceRateWage(System.String,System.String,System.String)">
            <summary>
            App个人计件工资
@@ -718,6 +727,27 @@
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckSearch(System.String,System.String)">
            <summary>
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.StepCheckItemList(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.SaveStepCheckItem">
            <summary>
            å·¥åºæ£€éªŒ,提交
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.PurchSupplierSelect">
            <summary>
            é‡‡è´­ä¾›æ–¹ä¿¡æ¯æŸ¥è¯¢
@@ -753,6 +783,19 @@
            <summary>
            å•位信息查询
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.QualityScheme">
            <summary>
            è´¨æ£€æ–¹æ¡ˆä¿¡æ¯
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.InventorySelect(System.String)">
            <summary>
            å­˜è´§æŸ¥è¯¢
            </summary>
            <param name="param">存货信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.PurchaseOrderController.PurchaseOrderSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -1116,6 +1159,38 @@
            ç‰©æµæ£€éªŒï¼ŒæŸ¥çœ‹æ£€éªŒæ˜Žç»†
            </summary>
            <param name="checkid">检验记录ID</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportSearch(System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§è¿›åº¦æŠ¥è¡¨
            </summary>
            <param name="status">工单状态</param>
            <param name="wocode">工单编号</param>
            <param name="routecode">工艺路线编码</param>
            <param name="routename">工艺路线名称</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
            <param name="partspec">规格型号</param>
            <param name="lm_date">单据日期</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ReportManagerController.ProductionScheduleReportExcelSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§è¿›åº¦æŠ¥è¡¨å¯¼å‡º
            </summary>
            <param name="status">工单状态</param>
            <param name="wocode">工单编号</param>
            <param name="routecode">工艺路线编码</param>
            <param name="routename">工艺路线名称</param>
            <param name="partcode">产品编码</param>
            <param name="partname">产品名称</param>
            <param name="partspec">规格型号</param>
            <param name="lm_date">单据日期</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SendController.GetConnect(System.String)">
@@ -2629,31 +2704,25 @@
            <param name="json">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String)">
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSearch(System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验扫码获取任务信息
            å·¥åºæ£€éªŒæ‰«ç èŽ·å–ä»»åŠ¡ä¿¡æ¯
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckSelect">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验获取检验标准下拉框数据
            </summary>
            <param name="orderstepqrcode">扫描工序二维码信息</param>
            <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepCheckItemList(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验根据检验标准获取检验项目列表
            å…¥åŽ‚æ£€éªŒ,工序检验根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验标准编码</param>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.SaveMesOrderStepCheckItem(Newtonsoft.Json.Linq.JObject)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,工序检验提交保存
            å·¥åºæ£€éªŒ,提交
            </summary>
            <param name="obj">提交信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -3453,6 +3522,16 @@
            æ³¨å†ŒSession
            </summary>
        </member>
        <member name="M:VueWebApi.Log4net.LogUtil.SaveMessage(System.String,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            æ“ä½œè®°å½•调用方法
            </summary>
            <param name="op_type">操作类型</param>
            <param name="op_content">操作类容</param>
            <param name="actionclick">操作方法</param>
            <param name="ippath">ip地址</param>
            <param name="lm_user">操作人员</param>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.rightcode">
            <summary>
            åŠŸèƒ½ç¼–ç 
@@ -3528,6 +3607,36 @@
            æ¡ç ä¿¡æ¯
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.ordercode">
            <summary>
            å•据编号
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.orderqty">
            <summary>
            å•据数量
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.ordergoodqty">
            <summary>
            å•据编号
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partcode">
            <summary>
            äº§å“ç¼–码
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partname">
            <summary>
            äº§å“åç§°
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppScheduleKanban.partspec">
            <summary>
            äº§å“è§„æ ¼
            </summary>
        </member>
        <member name="P:VueWebApi.Models.ApsOrderSerch.wocode">
            <summary>
            å·¥å•号
VueWebApi/obj/Release/Package/PackageTmp/log4net.config
@@ -8,11 +8,11 @@
    <log4net>
        <!--写入到文件-->
        <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
        <!--<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
            <!--文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录-->
            --><!--文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录--><!--
            <param name="File" value="Logs\" />
            <!--将日记写入到跟目录下面的Logs文件夹下面的yyyy-MM-dd.TXT文件中-->
            --><!--将日记写入到跟目录下面的Logs文件夹下面的yyyy-MM-dd.TXT文件中--><!--
            <param name="AppendToFile" value="true" />
@@ -25,66 +25,69 @@
            <param name="RollingStyle" value="Date" />
            <param name="DatePattern" value="yyyy-MM-dd.TXT" />
            <!--TXT后缀必须是大写的,否则有问题-->
            --><!--TXT后缀必须是大写的,否则有问题--><!--
            <param name="CountDirection" value="-1" />
            <!--log4net记录错误的格式(即:用什么样的格式(布局)来记录错误)-->
            --><!--log4net记录错误的格式(即:用什么样的格式(布局)来记录错误)--><!--
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value=" ã€æ—¶é—´ã€‘:%d%n ã€çº§åˆ«ã€‘:%p%n ã€ç±»åã€‘:%c%n ã€çº¿ç¨‹ID】: %thread %n ã€æ–‡ä»¶åœ°å€ã€‘:%F ç¬¬%L行%n ã€æ—¥å¿—内容】:%m%n ã€æ—¥è®°è¯¦ç»†ã€‘:%exception %n---------------------------------------------------------------------------------------------------------------%n" />
            </layout>
        </appender>
        </appender>-->
        <!--将日记写入数据库-->
        <!--此处将操作记录写入数据库,日志同理-->
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
            <bufferSize value="-1" />
            <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            <connectionString value="data source=121.196.36.24,1533;initial catalog=vmes;persist security info=True;user id=sa;password=xkd@20230101;MultipleActiveResultSets=True;" />
            <commandText value="INSERT INTO T_Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
            <commandText value="insert into T_Take ([op_type],[op_content],[actionclick],[ippath],[lm_user],[lm_date])
                                values (@op_type, @op_content, @actionclick, @ippath, @lm_user, @lm_date)" />
            <parameter>
                <parameterName value="@log_date"  />
                <dbType value="DateTime" />
                <layout type="log4net.Layout.RawTimeStampLayout" />
            </parameter>
            <parameter>
                <parameterName value="@thread" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%thread" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@log_level" />
                <parameterName value="@op_type" />
                <dbType value="String" />
                <size value="50" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%level" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{op_type}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@logger" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%logger" />
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@message" />
                <parameterName value="@op_content" />
                <dbType value="String" />
                <size value="4000" />
                <layout type="log4net.Layout.PatternLayout">
                    <conversionPattern value="%message" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{op_content}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@exception" />
                <parameterName value="@actionclick" />
                <dbType value="String" />
                <size value="2000" />
                <layout type="log4net.Layout.ExceptionLayout" />
                <size value="100" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{actionclick}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@ippath" />
                <dbType value="String" />
                <size value="100" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{ippath}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@lm_user" />
                <dbType value="String" />
                <size value="50" />
                <layout type="VueWebApi.Log4net.ActionLayoutPattern">
                    <conversionPattern value="%actionInfo{lm_user}"/>
                </layout>
            </parameter>
            <parameter>
                <parameterName value="@lm_date"  />
                <dbType value="DateTime" />
                <layout type="log4net.Layout.RawTimeStampLayout" />
            </parameter>
        </appender>
VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -35,7 +35,18 @@
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <!--提交json字符串过长问题-->
        <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
        <add key="log4net.Internal.Debug" value="true"/>
    </appSettings>
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add
                    name="textWriterTraceListener"
                    type="System.Diagnostics.TextWriterTraceListener"
                    initializeData="D:\log4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>
    <system.web>
        <compilation debug="true" targetFramework="4.6.1" />
        <customErrors mode="Off" />
VueWebApi/obj/Release/TransformWebConfig/transformed/Web.config
@@ -35,7 +35,15 @@
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <!--提交json字符串过长问题-->
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
    <add key="log4net.Internal.Debug" value="true" />
  </appSettings>
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="textWriterTraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\log4net.txt" />
      </listeners>
    </trace>
  </system.diagnostics>
  <system.web>
    <compilation targetFramework="4.6.1" />
    <customErrors mode="Off" />
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
1d4e44b5cb3d48d6853a2a835df2fed59566e054
a846e011ebe7b9ff1188f24629019f1e16661320
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ