yl
2023-05-30 925394b1b7f61a2c2a15fdaa0ecd0763214ccda1
增加App报工、工序检验功能
已添加18个文件
已修改31个文件
已删除1个文件
4260 ■■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppAnalyticsController.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppDeviceManageController.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppPersonalController.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppProductionManagementController.cs 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/AppQualityManagementController.cs 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/BaseDateController.cs 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/LoginController.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductionManagementController.cs 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/QualityManagementController.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ReportManagerController.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/SystemSettingController.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppPersonalBLL.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/AppQualityManagementBLL.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/BaseDateBLL.cs 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductionManagementBLL.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/QualityManagementBLL.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ReportManagerBLL.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/SystemSettingBLL.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppPersonalDAL.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/AppQualityManagementDAL.cs 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/BaseDateDAL.cs 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/KanBanManagerentDAL.cs 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/LoginDAL.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductionManagementDAL.cs 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/QualityManagementDAL.cs 461 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ReportManagerDAL.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/SystemSettingDAL.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2023-05-30.TXT 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/AppLabCode.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/AppScheduleKanban.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/User.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/AppLableBarCode.cs 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ChannelActionFilterAttributeApp.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.dll 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.dll 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.dll 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/Controllers/AppAnalyticsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/AppAnalytics")]
    [ControllerGroup("App智能分析", "在线接口")]
    //[ChannelActionFilterAttributeApp]
    public class AppAnalyticsController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region[App生产看板]
        /// <summary>
        /// App生产看板
        /// </summary>
        /// <param name="usercode">登录人员</param>
        /// <param name="Ratetime">时间</param>
        /// <param name="defecttype">缺陷统计类型</param>
        /// <returns></returns>
        [Route(template: "ProductionKanban")]
        [HttpGet]
        public HttpResponseMessage ProductionKanban(string usercode, string Ratetime,string defecttype)
        {
            string startopendate = "";  //开始时间
            string endclosedate = "";    //结束时间
            if (Ratetime != "" && Ratetime != null)
            {
                startopendate = Ratetime.Split('~')[0].ToString();
                endclosedate = Ratetime.Split('~')[1].ToString();
            }
            mes = AppAnalyticsBLL.ProductionKanban(usercode, startopendate, endclosedate, defecttype);
            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/AppDeviceManageController.cs
@@ -14,6 +14,7 @@
{
    [RoutePrefix(prefix: "api/AppDeviceManage")]
    [ControllerGroup("App设备管理", "在线接口")]
    //[ChannelActionFilterAttributeApp]
    public class AppDeviceManageController : ApiController
    {
        //定义全局信息返回变量
VueWebApi/Controllers/AppPersonalController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/AppPersonal")]
    [ControllerGroup("App个人中心", "在线接口")]
    //[ChannelActionFilterAttributeApp]
    public class AppPersonalController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region[App个人计件工资]
        /// <summary>
        /// App个人计件工资
        /// </summary>
        /// <param name="compute">计算方式:末道计算、逐道计算</param>
        /// <param name="usercode">登录人员</param>
        /// <param name="Ratetime">时间</param>
        /// <returns></returns>
        [Route(template: "PieceRateWage")]
        [HttpGet]
        public HttpResponseMessage PieceRateWage(string compute, string usercode,string Ratetime)
        {
            string startopendate = "";  //开始时间
            string endclosedate = "";    //结束时间
            if (Ratetime != "" && Ratetime != null)
            {
                startopendate = Ratetime.Split('~')[0].ToString();
                endclosedate = Ratetime.Split('~')[1].ToString();
            }
            mes = AppPersonalBLL.PieceRateWage(compute,usercode, startopendate, endclosedate);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/AppProductionManagementController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,233 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/AppProductionManagement")]
    [ControllerGroup("App生产管理", "在线接口")]
    //[ChannelActionFilterAttributeApp]
    public class AppProductionManagementController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region [生产开报工:开工(开始/报工)/外协(发料/收料)时条件判断及数据返回接口]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
        /// </summary>
        /// <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
        /// <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepStart")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null)
        {
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工:开工时获取设备下拉列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥æ—¶èŽ·å–è®¾å¤‡ä¸‹æ‹‰åˆ—è¡¨
        /// </summary>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepStartSelectEqp")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepStartSelectEqp(string orderstepqrcode)
        {
            mes = ProductionManagementBLL.MesOrderStepStartSelectEqp(orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工:报工时获取生产班组下拉框]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
        /// </summary>
        /// <returns></returns>
        [Route(template: "MesOrderStepReportSelectUserGroup")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepReportSelectUserGroup()
        {
            mes = ProductionManagementBLL.MesOrderStepReportSelectUserGroup();
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工:根据生产班组查找人员列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
        /// </summary>
        /// <param name="usergroupcode">班组编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderGroupSelectUser")]
        [HttpGet]
        public HttpResponseMessage MesOrderGroupSelectUser(string usergroupcode)
        {
            mes = ProductionManagementBLL.MesOrderGroupSelectUser(usergroupcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工:人员下拉列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šäººå‘˜ä¸‹æ‹‰åˆ—表
        /// </summary>
        /// <param name="usercode">人员编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderSelectUser")]
        [HttpGet]
        public HttpResponseMessage MesOrderSelectUser(string usercode = null)
        {
            mes = ProductionManagementBLL.MesOrderSelectUser(usercode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工:发料/收料时获取外协下拉列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå‘æ–™/收料时获取外协下拉列表
        /// </summary>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepSelectWX")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepSelectWX(string orderstepqrcode)
        {
            mes = ProductionManagementBLL.MesOrderStepSelectWX(orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产报工:报工/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨]
        /// <summary>
        /// ç”Ÿäº§æŠ¥å·¥ï¼šæŠ¥å·¥/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨
        /// </summary>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepSelectCause")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepSelectCause(string orderstepqrcode)
        {
            mes = ProductionManagementBLL.MesOrderStepSelectCause(orderstepqrcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,开工提交]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,开工提交
        /// </summary>
        /// <param name="obj">开工提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepStart")]
        [HttpPost]
        public HttpResponseMessage SavaMesOrderStepStart()
        {
            string mesordercode = HttpContext.Current.Request["mesordercode"].ToString();//工单编号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//产品编码
            string stepseq = HttpContext.Current.Request["stepseq"].ToString();//工序序号
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
            string eqpcode = HttpContext.Current.Request["eqpcode"].ToString();//设备编码
            string taskqty = HttpContext.Current.Request["taskqty"].ToString();//任务数量
            string startqty = HttpContext.Current.Request["startqty"].ToString();//开工数量
            var username = HttpContext.Current.Request["admin"].ToString(); //开工人员
            mes = ProductionManagementBLL.SavaMesOrderStepStart(mesordercode, partcode, stepseq, stepcode, eqpcode, taskqty, startqty, username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,报工提交]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,报工提交
        /// </summary>
        /// <param name="obj">报工提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepReport")]
        [HttpPost]
        public HttpResponseMessage SavaMesOrderStepReport()
        {
            string mesordercode = HttpContext.Current.Request["mesordercode"].ToString();//工单编号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//产品编码
            string stepseq = HttpContext.Current.Request["stepseq"].ToString();//工序序号
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
            string eqpcode = HttpContext.Current.Request["eqpcode"].ToString();//设备编码
            string usergroupcode = HttpContext.Current.Request["usergroupcode"].ToString();//班组编码
            string reportuser = HttpContext.Current.Request["reportuser"].ToString();//报工人员
            string taskqty = HttpContext.Current.Request["taskqty"].ToString();//任务数量
            string startqty = HttpContext.Current.Request["startqty"].ToString();//开工数量
            string reportqty = HttpContext.Current.Request["reportqty"].ToString();//报工工数量
            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//不良数量
            string badcode = HttpContext.Current.Request["badcode"].ToString();//不良原因编码
            string remarks = HttpContext.Current.Request["remarks"].ToString();//备注
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode,usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,发料提交]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,发料提交
        /// </summary>
        /// <param name="obj">发料提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepOut")]
        [HttpPost]
        public HttpResponseMessage SavaMesOrderStepOut()
        {
            string mesordercode = HttpContext.Current.Request["mesordercode"].ToString();//工单编号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//产品编码
            string stepseq = HttpContext.Current.Request["stepseq"].ToString();//工序序号
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
            string wxcode = HttpContext.Current.Request["wxcode"].ToString();//外协供应商编码
            string outuser = HttpContext.Current.Request["outuser"].ToString();//发料人员
            string taskqty = HttpContext.Current.Request["taskqty"].ToString();//任务数量
            string fqty = HttpContext.Current.Request["fqty"].ToString();//发料数量
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = ProductionManagementBLL.SavaMesOrderStepOut(mesordercode, partcode, stepseq, stepcode, wxcode, outuser, taskqty, fqty, username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,收料提交]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥,收料提交
        /// </summary>
        /// <param name="obj">收料提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepIn")]
        [HttpPost]
        public HttpResponseMessage SavaMesOrderStepIn()
        {
            string mesordercode = HttpContext.Current.Request["mesordercode"].ToString();//工单编号
            string partcode = HttpContext.Current.Request["partcode"].ToString();//产品编码
            string stepseq = HttpContext.Current.Request["stepseq"].ToString();//工序序号
            string stepcode = HttpContext.Current.Request["stepcode"].ToString();//工序编码
            string wxcode = HttpContext.Current.Request["wxcode"].ToString();//外协供应商编码
            string inuser = HttpContext.Current.Request["inuser"].ToString();//收料人员
            string taskqty = HttpContext.Current.Request["taskqty"].ToString();//任务数量
            string sqty = HttpContext.Current.Request["sqty"].ToString();//收料数量
            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//不良数量
            string badcode = HttpContext.Current.Request["badcode"].ToString();//不良原因编码
            string remarks = HttpContext.Current.Request["remarks"].ToString();//备注
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/AppQualityManagementController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/AppQualityManagement")]
    [ControllerGroup("App质量管理", "在线接口")]
    //[ChannelActionFilterAttributeApp]
    public class AppQualityManagementController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region[入厂检验,扫描采购到货生成标签]
        /// <summary>
        /// å…¥åŽ‚æ£€éªŒ,扫描采购到货生成标签
        /// </summary>
        /// <param name="labcode">采购到货生成标签</param>
        /// <returns></returns>
        [Route(template: "InFactoryCheckScanLabCode")]
        [HttpGet]
        public HttpResponseMessage InFactoryCheckScanLabCode(string labcode)
        {
            mes = AppQualityManagementBLL.InFactoryCheckScanLabCode(labcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[入厂检验,根据选择的检验方案查找检验项目]
        /// <summary>
        /// å…¥åŽ‚æ£€éªŒ,根据选择的检验方案查找检验项目
        /// </summary>
        /// <param name="checkstandcode">检验方案编码</param>
        /// <returns></returns>
        [Route(template: "InFactoryCheckItem")]
        [HttpGet]
        public HttpResponseMessage InFactoryCheckItem(string checkstandcode)
        {
            mes = AppQualityManagementBLL.InFactoryCheckItem(checkstandcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[入厂检验,提交]
        /// <summary>
        /// å…¥åŽ‚æ£€éªŒ,提交
        /// </summary>
        /// <returns></returns>
        [Route(template: "InFactoryCheckSave")]
        [HttpPost]
        public HttpResponseMessage InFactoryCheckSave()
        {
            string hbillno = HttpContext.Current.Request["hbillno"].ToString();//采购订单号
            string labcode = HttpContext.Current.Request["labcode"].ToString();//标签编号
            string checkstandcode = HttpContext.Current.Request["checkstandcode"].ToString();//质检方案编码
            string check_type = HttpContext.Current.Request["check_type"].ToString();//检验类型(入厂检验(InCheck))
            string sampmethod = HttpContext.Current.Request["sampmethod"].ToString();//抽检方式:固定抽检(FIXED) æ¯”例抽检(SCARE)
            string partcode = HttpContext.Current.Request["partcode"].ToString();//物料编码
            string customercode = HttpContext.Current.Request["customercode"].ToString();//往来单位(外购供方编码)
            string batchno = HttpContext.Current.Request["batchno"].ToString();//批次号
            string qualitystatus = HttpContext.Current.Request["qualitystatus"].ToString(); //质量状态(合格、不合格)
            string labqty = HttpContext.Current.Request["labqty"].ToString();//物料数量(标签数量)
            string sampleqty = HttpContext.Current.Request["sampleqty"].ToString();//样本数量
            string goodqty = HttpContext.Current.Request["goodqty"].ToString();//合格数量
            string ngqty = HttpContext.Current.Request["ngqty"].ToString();//不合格数量
            string issyncbatch = HttpContext.Current.Request["issyncbatch"].ToString();//同步相同批次
            string checkitemcont = HttpContext.Current.Request["checkitemcont"].ToString();//检验项目数据
            string username = HttpContext.Current.Request["admin"].ToString();//操作人员
            mes = AppQualityManagementBLL.InFactoryCheckSave(hbillno, labcode, checkstandcode, check_type, sampmethod, partcode, customercode, batchno, qualitystatus, labqty, sampleqty, goodqty, ngqty, issyncbatch, checkitemcont, username);
            return TJson.toJson(mes);
        }
        #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,partcode,stepcode,checkstandcode,check_type,sampmethod,qualitystatus,labqty,sampleqty,goodqty,ngqty,checkitemcont,username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/BaseDateController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/BaseDate")]
    [ControllerGroup("基本资料", "在线接口")]
    //[ChannelActionFilter]
    public class BaseDateController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region[采购供方信息查询]
        /// <summary>
        /// é‡‡è´­ä¾›æ–¹ä¿¡æ¯æŸ¥è¯¢
        /// </summary>
        /// <returns></returns>
        [Route(template: "PurchSupplierSelect")]
        [HttpGet]
        public HttpResponseMessage PurchSupplierSelect()
        {
            mes = BaseDateBLL.PurchSupplierSelect();
            return TJson.toJson(mes);
        }
        #endregion
        #region[部门信息查询]
        /// <summary>
        /// éƒ¨é—¨ä¿¡æ¯æŸ¥è¯¢
        /// </summary>
        /// <returns></returns>
        [Route(template: "DepartMentSelect")]
        [HttpGet]
        public HttpResponseMessage DepartMentSelect()
        {
            mes = BaseDateBLL.DepartMentSelect();
            return TJson.toJson(mes);
        }
        #endregion
        #region[仓库信息查询]
        /// <summary>
        /// ä»“库信息查询
        /// </summary>
        /// <returns>StoreHouseSearch</returns>
        [Route(template: "StoreHouseSearch")]
        [HttpGet]
        public HttpResponseMessage StoreHouseSearch()
        {
            mes = BaseDateBLL.StoreHouseSearch();
            return TJson.toJson(mes);
        }
        #endregion
        #region[库位信息查询]
        /// <summary>
        /// åº“位信息查询
        /// </summary>
        /// <returns></returns>
        [Route(template: "WarehouseLocationSearch")]
        [HttpGet]
        public HttpResponseMessage WarehouseLocationSearch()
        {
            mes = BaseDateBLL.WarehouseLocationSearch();
            return TJson.toJson(mes);
        }
        #endregion
        #region[库位查询仓库]
        /// <summary>
        /// åº“位查询仓库
        /// </summary>
        /// <param name="locationcode">库位编码</param>
        /// <returns></returns>
        [Route(template: "WarehouseLocationSearchStoreHouse")]
        [HttpGet]
        public HttpResponseMessage WarehouseLocationSearchStoreHouse(string locationcode)
        {
            mes = BaseDateBLL.WarehouseLocationSearchStoreHouse(locationcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[单位信息查询]
        /// <summary>
        /// å•位信息查询
        /// </summary>
        /// <returns></returns>
        [Route(template: "UnitSerch")]
        [HttpGet]
        public HttpResponseMessage UnitSerch()
        {
            mes = BaseDateBLL.UnitSerch();
            return TJson.toJson(mes);
        }
        #endregion
        #region[质检方案信息]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆä¿¡æ¯
        /// </summary>
        /// <returns></returns>
        [Route(template: "QualityScheme")]
        [HttpGet]
        public HttpResponseMessage QualityScheme()
        {
            mes = BaseDateBLL.QualityScheme();
            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/LoginController.cs
@@ -238,9 +238,11 @@
                    ms.usercode = dt.Rows[0]["USERCODE"].ToString();
                    ms.username = dt.Rows[0]["USERNAME"].ToString();
                    ms.password = dt.Rows[0]["PASSWORD"].ToString();
                    ms.group_name = dt.Rows[0]["GROUP_NAME"].ToString();
                    ms.usertype = usertype;
                    mss.Add(ms);
                    //写入登录操作记录
                    mes = LoginBLL.LoginBas(ms.usercode, ms.usertype);
                    mes.code = "200";
                    mes.Message = "登录成功!";
                    mes.data = ms;
VueWebApi/Controllers/ProductionManagementController.cs
@@ -629,40 +629,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]
@@ -673,29 +661,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
@@ -296,5 +296,91 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[质检方案列表查询]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆåˆ—表查询
        /// </summary>
        /// <param name="qualityinsptcode">质检方案编码</param>
        /// <param name="qualityinsptname">质检方案名称</param>
        /// <param name="status">有效状态</param>
        /// <param name="checktype">质检类型</param>
        /// <param name="sampltype">抽样方式</param>
        /// <param name="suitobject">适用对象</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "QualityInspectionSearch")]
        [HttpGet]
        public HttpResponseMessage QualityInspectionSearch(string qualityinsptcode = null, string qualityinsptname = null, string status = null, string checktype = null, string sampltype = null, string suitobject = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = QualityManagementBLL.QualityInspectionSearch(qualityinsptcode, qualityinsptname, status, checktype, sampltype, suitobject, startNum, endNum, prop, order);
            return TJson.toJson(mes);
        }
        #endregion
        #region[质检方案查看编辑]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆæŸ¥çœ‹ç¼–辑
        /// </summary>
        /// <param name="qualityinsptcode">质检方案编码</param>
        /// <returns></returns>
        [Route(template: "QualityInspectionSeeEdit")]
        [HttpGet]
        public HttpResponseMessage QualityInspectionSeeEdit(string qualityinsptcode)
        {
            mes = QualityManagementBLL.QualityInspectionSeeEdit(qualityinsptcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[质检方案新增/编辑提交]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆæ–°å¢ž/编辑提交
        /// </summary>
        /// <param name="obj">提交数据</param>
        /// <returns></returns>
        [Route(template: "QualityInspectionAddEditSave")]
        [HttpPost]
        public HttpResponseMessage QualityInspectionAddEditSave([FromBody] JObject obj)
        {
            string qualityinsptcode = obj["qualityinsptcode"].ToString(); //质检方案编码
            string qualityinsptname = obj["qualityinsptname"].ToString(); //质检方案名称
            string status = obj["status"].ToString(); //有效状态
            string checktype = obj["checktype"].ToString(); //检验类型
            string sampmethod = obj["sampmethod"].ToString(); //抽检方式
            string sampscare = obj["sampscare"].ToString(); //固定抽检(样本数)   æ¯”例抽检(百分比)
            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, stepcode, checkitem, type, username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[质检方案删除]
        /// <summary>
        /// è´¨æ£€æ–¹æ¡ˆåˆ é™¤
        /// </summary>
        /// <param name="qualityinsptcode">质检方案编码</param>
        /// <returns></returns>
        [Route(template: "QualityInspectionDelete")]
        [HttpPost]
        public HttpResponseMessage QualityInspectionDelete(string qualityinsptcode)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = QualityManagementBLL.QualityInspectionDelete(qualityinsptcode, username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/ReportManagerController.cs
@@ -385,5 +385,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/Controllers/SystemSettingController.cs
@@ -80,6 +80,23 @@
        #endregion
        #region[生成系统条码(自定义)]
        /// <summary>
        /// ç”Ÿæˆç³»ç»Ÿæ¡ç (自定义)
        /// </summary>
        /// <param name="rightcode">功能编码</param>
        /// <param name="partcode">物料编码</param>
        /// <param name="qty">数量</param>
        /// <param name="onelabqty">单标签数量</param>
        /// <returns></returns>
        [Route(template: "LabelBarCode")]
        [HttpGet]
        public HttpResponseMessage LabelBarCode(string rightcode, string partcode, string qty, string onelabqty)
        {
            mes = SystemSettingBLL.LabelBarCode(rightcode, partcode, qty, onelabqty);
            return TJson.toJson(mes);
        }
        #endregion
        #region[车间公告列表]
        /// <summary>
VueWebApi/DLL/BLL/AppAnalyticsBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.DLL.DAL;
using VueWebApi.Tools;
namespace VueWebApi.DLL.BLL
{
    public class AppAnalyticsBLL
    {
        #region[App生产看板]
        public static ToMessage ProductionKanban(string usercode, string startopendate, string endclosedate,string defecttype)
        {
            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/AppPersonalBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.DLL.DAL;
using VueWebApi.Tools;
namespace VueWebApi.DLL.BLL
{
    public class AppPersonalBLL
    {
        #region[App个人计件工资]
        public static ToMessage PieceRateWage(string compute, string usercode, string startopendate, string endclosedate)
        {
            return AppPersonalDAL.PieceRateWage(compute,usercode, startopendate, endclosedate);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/AppQualityManagementBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.DLL.DAL;
using VueWebApi.Tools;
namespace VueWebApi.DLL.BLL
{
    public class AppQualityManagementBLL
    {
        #region[入厂检验,扫描采购到货生成标签]
        public static ToMessage InFactoryCheckScanLabCode(string labcode)
        {
            return AppQualityManagementDAL.InFactoryCheckScanLabCode(labcode);
        }
        #endregion
        #region[入厂检验,根据选择的检验方案查找检验项目]
        public static ToMessage InFactoryCheckItem(string checkstandcode)
        {
            return AppQualityManagementDAL.InFactoryCheckItem(checkstandcode);
        }
        #endregion
        #region[入厂检验,提交]
        public static ToMessage InFactoryCheckSave(string hbillno, string labcode, string checkstandcode, string check_type, string sampmethod, string partcode, string customercode, string batchno, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string issyncbatch, string checkitemcont, string username)
        {
            return AppQualityManagementDAL.InFactoryCheckSave(hbillno, labcode, checkstandcode, check_type, sampmethod, partcode, customercode, batchno, qualitystatus, labqty, sampleqty, goodqty, ngqty, issyncbatch, checkitemcont, username);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/BaseDateBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.DLL.DAL;
using VueWebApi.Tools;
namespace VueWebApi.DLL.BLL
{
    public class BaseDateBLL
    {
        #region[采购供方信息查询]
        public static ToMessage PurchSupplierSelect()
        {
            return BaseDateDAL.PurchSupplierSelect();
        }
        #endregion
        #region[部门信息查询]
        public static ToMessage DepartMentSelect()
        {
            return BaseDateDAL.DepartMentSelect();
        }
        #endregion
        #region[仓库信息查询]
        public static ToMessage StoreHouseSearch()
        {
            return BaseDateDAL.StoreHouseSearch();
        }
        #endregion
        #region[库位信息查询]
        public static ToMessage WarehouseLocationSearch()
        {
            return BaseDateDAL.WarehouseLocationSearch();
        }
        #endregion
        #region[库位查询仓库]
        public static ToMessage WarehouseLocationSearchStoreHouse(string locationcode)
        {
            return BaseDateDAL.WarehouseLocationSearchStoreHouse(locationcode);
        }
        #endregion
        #region[单位信息查询]
        public static ToMessage UnitSerch()
        {
            return BaseDateDAL.UnitSerch();
        }
        #endregion
        #region[质检方案信息]
        public static ToMessage QualityScheme()
        {
            return BaseDateDAL.QualityScheme();
        }
        #endregion
        #region[存货查询]
        public static ToMessage InventorySelect(string param)
        {
            return BaseDateDAL.InventorySelect(param);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -227,31 +227,25 @@
        }
        #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
VueWebApi/DLL/BLL/QualityManagementBLL.cs
@@ -114,5 +114,34 @@
            return QualityManagementDAL.StepCheckTableOutExcel(wocode, partcode, partname, partapec, stepname, standname, checktype, checkresult, prop, order);
        }
        #endregion
        #region[质检方案列表查询]
        public static ToMessage QualityInspectionSearch(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampltype, string suitobject, int startNum, int endNum, string prop, string order)
        {
            return QualityManagementDAL.QualityInspectionSearch(qualityinsptcode, qualityinsptname, status, checktype, sampltype, suitobject, startNum, endNum, prop, order);
        }
        #endregion
        #region[质检方案查看编辑]
        public static ToMessage QualityInspectionSeeEdit(string qualityinsptcode)
        {
            return QualityManagementDAL.QualityInspectionSeeEdit(qualityinsptcode);
        }
        #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 stepcode, string checkitem, string type, string username)
        {
            return QualityManagementDAL.QualityInspectionAddEditSave(qualityinsptcode, qualityinsptname, status, checktype, sampmethod, sampscare, suitobject, suitpart, descr, stepcode, checkitem, type, username);
        }
        #endregion
        #region[质检方案删除]
        public static ToMessage QualityInspectionDelete(string qualityinsptcode, string username)
        {
            return QualityManagementDAL.QualityInspectionDelete(qualityinsptcode, username);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ReportManagerBLL.cs
@@ -97,5 +97,20 @@
            return ReportManagerDAL.MaintenanceDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
        }
        #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/BLL/SystemSettingBLL.cs
@@ -32,6 +32,14 @@
        #endregion
        #region[生成系统条码(自定义)]
        public static ToMessage LabelBarCode(string rightcode, string partcode, string qty, string onelabqty)
        {
            return SystemSettingDAL.LabelBarCode(rightcode, partcode, qty, onelabqty);
        }
        #endregion
        #region[车间公告列表]
        public static ToMessage SystemAnnouncementSearch(string wkspcode, string ancetitle, string ancecont, string cancel, string level, int startNum, int endNum, string prop, string order)
        {
VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,343 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class AppAnalyticsDAL
    {
        public static DataTable dt;    //定义全局变量dt
        public static bool res;       //定义全局变量dt
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        public static string strProcName = ""; //定义全局sql变量
        public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[App生产看板]
        public static ToMessage ProductionKanban(string usercode, string startopendate, string endclosedate,string defecttype)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                // --------------生产总览--------------
                var sql = @"select
                             sum(CASE AA.clmname WHEN '计划数量' THEN AA.clmqty ELSE 0 END) as 'plan_qty',
                             sum(CASE AA.clmname WHEN '合格产出' THEN AA.clmqty ELSE 0 END) as 'good_qty',
                             sum(CASE AA.clmname WHEN '缺陷产出' THEN AA.clmqty ELSE 0 END) as 'defect_qty'
                             from(
                             select  isnull(sum(A.plan_qty),0) as clmqty,'计划数量'as clmname  from TK_Wrk_Man  A
                             where A.lm_date between @startopendate and @endclosedate
                             union all
                             select isnull(sum(P.good_qty),0) as report_qty,'合格产出' as åˆæ ¼äº§å‡º  from TK_Wrk_Man  A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code  and P.isend='Y'
                             where A.lm_date between @startopendate and @endclosedate
                             union all
                             select (isnull(sum(P.ng_qty),0)+isnull(sum(P.bad_qty),0)) as ngqty,'缺陷产出' as ç¼ºé™·äº§å‡º  from TK_Wrk_Man  A
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code
                             where A.lm_date between @startopendate and @endclosedate
                             ) as AA";
                dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                dList.Add("dt0", data0);
                // --------------生产工单--------------
                var sql1 = @"select sum(AA.cluntqty) as wo_coum,AA.wo_status   from (
                             select COUNT(A.id) as cluntqty,
                             case when A.status='START' then '执行中' when A.status='CLOSED' then '已结束' else '未开始' end as wo_status
                             from TK_Wrk_Man A
                             where A.lm_date between @startopendate and @endclosedate
                             group by A.status
                             ) as AA group by AA.wo_status";
                var data1 = DapperHelper.selectdata(sql1, dynamicParams);
                dList.Add("dt1", data1);
                // --------------缺陷统计--------------
                var sql2 = "";
                switch (defecttype)
                {
                    case "prt": //按产品统计
                         sql2 = @"select top 5 sum(AA.plan_qty) as plan_qty,AA.partname,sum(AA.ng_qty)+sum(AA.bad_qty) as defect_qty  from (
                                  select A.plan_qty,M.partname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                  inner join (select wo_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code) S on A.wo_code=S.wo_code
                                  inner join TMateriel_Info M on A.materiel_code=M.partcode
                                  where A.lm_date between @startopendate and @endclosedate
                                  ) as AA
                                  group by AA.partname
                                  order by defect_qty desc";
                        break;
                    case "stp"://按工序统计
                         sql2 = @"select top 5 sum(AA.plan_qty) as plan_qty,AA.stepname,sum(AA.ng_qty)+sum(AA.bad_qty) as defect_qty  from (
                                  select A.plan_qty,T.stepname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                  inner join (select wo_code,step_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code,step_code) S on A.wo_code=S.wo_code
                                  inner join TStep T on S.step_code=T.stepcode
                                  where A.lm_date between @startopendate and @endclosedate
                                  ) as AA
                                  group by AA.stepname
                                  order by defect_qty desc";
                        break;
                    default:
                        break;
                }
                var data2 = DapperHelper.selectdata(sql2, dynamicParams);
                dList.Add("dt2", data2);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = dList;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            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/AppPersonalDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class AppPersonalDAL
    {
        public static DataTable dt;    //定义全局变量dt
        public static bool res;       //定义全局变量dt
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        public static string strProcName = ""; //定义全局sql变量
        public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[App个人计件工资]
        public static ToMessage PieceRateWage(string compute, string usercode,string startopendate, string endclosedate)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (compute == "last")  //末道工序
                {
                    search += "and P.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                dynamicParams.Add("@usercode", usercode);
                dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                // --------------查询报工数、良品扣除、计算工资收入--------------
                //left  join TPrteEqp_Stad S on A.materiel_code=S.materiel_code and A.eqp_code=S.eqp_code and A.step_code=S.step_code and K.route_code=S.route_code and K.wkshp_code=S.wkspcode
                var sql = @"select isnull(sum(BB.report_qty),0) as report_qty,(isnull(sum(BB.userngmoney),0)+isnull(sum(BB.userbadmoney),0)) as userngbadmoney,
                            isnull(sum(BB.usermoney),0)-(isnull(sum(BB.userngmoney),0)+isnull(sum(BB.userbadmoney),0)) as usermoney
                            from (
                            select AA.wo_code,AA.partcode,AA.partname,AA.partspec,AA.stepcode,AA.stepname,
                            AA.task_qty,AA.group_code,AA.group_name,AA.report_qty,AA.unprice,AA.isend,
                            AA.moneys as usermoney,AA.badmoneys as userbadmoney,AA.ngmoneys as userngmoney,AA.username,AA.report_date
                            from (
                            select distinct A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,
                            A.task_qty,G.group_code,G.group_name,B.report_qty,isnull(S.unprice,0) as unprice,P.isend,
                            (B.report_qty*isnull(S.unprice,0)) as moneys,(B.ng_qty*isnull(S.unprice,0)) as ngmoneys,(B.bad_qty*isnull(S.unprice,0)) as badmoneys,
                            B.report_person,U.username,B.report_date
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                            left  join TK_Wrk_Man K on A.wo_code=K.wo_code
                            left  join TGroup G on B.usergroup_code=G.group_code
                            left  join TWoPrteEqp_Stad S on A.wo_code=S.wo and A.materiel_code=S.materiel_code and A.eqp_code=S.eqp_code and A.step_code=S.step_code and K.route_code=S.route_code
                            left  join TMateriel_Info M on A.materiel_code=M.partcode
                            left  join TStep T on A.step_code=T.stepcode
                            left  join TUser U on B.report_person=U.usercode
                            where B.report_person=@usercode and  B.report_date between @startopendate and @endclosedate "+search+") as AA) as BB";
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                dList.Add("dt0", data0);
                // --------------查询报工明细(按照工单、产品、工序分组)--------------
                var sql1 = @"select AA.wo_code,AA.partcode,AA.partname,AA.stepcode,AA.stepname,
                             AA.task_qty,AA.group_code,AA.group_name,AA.unprice,
                             isnull(sum(AA.report_qty),0) as report_qty,isnull(sum(AA.ng_qty),0) as ng_qty,isnull(sum(AA.bad_qty),0) as bad_qty,
                             AA.report_person,AA.username,AA.colum
                             from (
                             select distinct A.wo_code,M.partcode,M.partname,T.stepcode,T.stepname,
                             A.task_qty,G.group_code,G.group_name,isnull(S.unprice,0) as unprice,
                             B.report_qty,B.ng_qty,B.bad_qty,
                             B.report_person,U.username,B.report_date,
                             (select distinct count(*)   from TK_Wrk_RecordSub S  where S.m_id=B.m_id) as colum
                             from TK_Wrk_Record A
                             inner join TK_Wrk_RecordSub B on A.id=B.m_id
                             inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                             left  join TK_Wrk_Man K on A.wo_code=K.wo_code
                             left  join TGroup G on B.usergroup_code=G.group_code
                             left  join TWoPrteEqp_Stad S on A.wo_code=S.wo and A.materiel_code=S.materiel_code and A.eqp_code=S.eqp_code and A.step_code=S.step_code and K.route_code=S.route_code
                             left  join TMateriel_Info M on A.materiel_code=M.partcode
                             left  join TStep T on A.step_code=T.stepcode
                             left  join TUser U on B.report_person=U.usercode
                             where B.report_person=@usercode and B.report_date between @startopendate and @endclosedate " + search+") as AA  group by AA.wo_code,AA.partcode,AA.partname,AA.stepcode,AA.stepname,AA.task_qty,AA.group_code,AA.group_name,AA.unprice,AA.report_person,AA.username,colum";
                var data1 = DapperHelper.selectdata(sql1, dynamicParams);
                dList.Add("dt1", data1);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = dList;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/AppQualityManagementDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,310 @@
using Dapper;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class AppQualityManagementDAL
    {
        public static DataTable dt;    //定义全局变量dt
        public static bool res;       //定义全局变量dt
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        public static string strProcName = ""; //定义全局sql变量
        public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[入厂检验,扫描采购到货生成标签]
        public static ToMessage InFactoryCheckScanLabCode(string labcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            Dictionary<string, object> list = new Dictionary<string, object>();
            try
            {
                //判断条码是否有效(采购到货功能编码:2060)
                sql = @"select *  from T_BarCodeBill where hbarcode=@labcode and rightcode=@rightcode and hbarcodestatus='Y'";
                dynamicParams.Add("@labcode", labcode);
                dynamicParams.Add("@rightcode", "2060");
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "不是有效的标签条码!";
                    mes.data = null;
                    return mes;
                }
                //判断条码是否需要检验
                sql = @"select *  from TMateriel_Info where partcode=@partcode and is_incheck='N'";
                dynamicParams.Add("@partcode", data0.Rows[0]["hmaterialcode"].ToString());
                var data_0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data_0.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "此标签条码免检!";
                    mes.data = null;
                    return mes;
                }
                //判断条码是否检验
                sql = @"select *  from TStepCheckRecord where hbarcode=@labcode and check_type='InCheck'";
                dynamicParams.Add("@labcode", labcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "此标签条码已检验!";
                    mes.data = null;
                    return mes;
                }
                //获取标签信息
                sql = @"select A.hbillno,A.hmaterialcode as partcode,M.partname,M.partspec,A.hbarcode,M.stocktype_code,A.hqty,
                        A.hcustomercode,C.name as hcustomername,A.hbatchno,A.qualitystatus
                        from T_BarCodeBill A
                        left join TMateriel_Info M on A.hmaterialcode=M.partcode
                        left join TCustomer C on A.hcustomercode=C.code
                        where A.hbarcode=@labcode and A.hbarcodestatus='Y'";
                dynamicParams.Add("@labcode", labcode);
                var data1 = DapperHelper.selectdata(sql, dynamicParams);
                if (data1.Rows.Count > 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='InCheck'";
                    dynamicParams.Add("@partcode", data1.Rows[0]["partcode"].ToString());//物料编码
                    dynamicParams.Add("@stocktype_code", data1.Rows[0]["stocktype_code"].ToString());//存货类型编码
                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
                    list.Add("labcont", data1);
                    list.Add("chekstand", data2);
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "查询成功!";
                    mes.data = list;
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "此标签条码不存在或失效!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[入厂检验,根据选择的检验方案查找检验项目]
        public static ToMessage InFactoryCheckItem(string checkstandcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //质检方案编码获取检验项
                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 A.stepstaned_code=@checkstandcode
                        order by A.stepcheckitem_seq";
                dynamicParams.Add("@checkstandcode", checkstandcode);//质检方案编码
                var data = DapperHelper.selectdata(sql, dynamicParams);
                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)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[入厂检验,提交]
        public static ToMessage InFactoryCheckSave(string hbillno, string labcode, string checkstandcode, string check_type, string sampmethod, string partcode, string customercode, string batchno, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string issyncbatch, string checkitemcont, string username)
        {
            var sql = "";
            List<object> list = new List<object>();
            List<ObjectData> obj = new List<ObjectData>();
            var dynamicParams = new DynamicParameters();
            try
            {
                string datetime = DateTime.Now.ToString(); //获取系统时间
                //获取检验项目信息
                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitemcont);
                list.Clear();
                if (issyncbatch == "Y")  //同步相同批次
                {
                    //查找相同批次条码(功能编码、单据号、单据类型、条码类型、物料编码、批次号、条码状态)
                    sql = @"select hbarcode,hqty  from T_BarCodeBill
                            where rightcode=@rightcode and hbillno=@hbillno and hbilltype=@hbilltype and hbarcodetype=@hbarcodetype
                            and hmaterialcode=@hmaterialcode and hbatchno=@hbatchno and hbarcodestatus=@hbarcodestatus";
                    dynamicParams.Add("@rightcode", "2060");
                    dynamicParams.Add("@hbillno", hbillno);
                    dynamicParams.Add("@hbilltype", "1103");
                    dynamicParams.Add("@hbarcodetype", "P");
                    dynamicParams.Add("@hmaterialcode", partcode);
                    dynamicParams.Add("@hbatchno", batchno);
                    dynamicParams.Add("@hbarcodestatus", "Y");
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        for (int i = 0; i < data.Rows.Count; i++)
                        {
                            ObjectData tbj = new ObjectData();
                            tbj.code = data.Rows[i]["hbarcode"].ToString();
                            tbj.name = data.Rows[i]["hqty"].ToString();
                            obj.Add(tbj);
                        }
                    }
                    else
                    {
                        ObjectData tbj = new ObjectData();
                        tbj.code = labcode;
                        tbj.name = labqty;
                        obj.Add(tbj);
                    }
                }
                else
                {
                    ObjectData tbj = new ObjectData();
                    tbj.code = labcode;
                    tbj.name = labqty;
                    obj.Add(tbj);
                }
                //循环标签个数
                for (int i = 0; i <obj.Count; i++)
                {
                    //写入检验记录主表
                    sql = @"insert into  TStepCheckRecord(hbarcode,wo_code,partcode,checkstaned_code,customer_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date)
                                values(@hbarcode,@wo_code,@partcode,@checkstaned_code,@customer_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbarcode = obj[i].code,
                            wo_code = hbillno,
                            partcode = partcode,
                            checkstaned_code = checkstandcode,
                            customer_code=customercode,
                            check_user = username,
                            check_type = check_type,
                            check_typename = "入厂检验",
                            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
                        }
                    });
                    //获取主表最大ID
                    sql = @"select ISNULL(IDENT_CURRENT('TStepCheckRecord')+@num,1) as id";
                    dynamicParams.Add("@num", i+1);
                    var dt = DapperHelper.selectdata(sql, dynamicParams);
                    //写入检验记录子表
                    for (int j = 0; j < arra.Count; j++)
                    {
                        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
                            }
                        });
                    }
                }
                //回写条码档案表标签质检状态
                sql = @"update T_BarCodeBill set qualitystatus=@qualitystatus  where rightcode=@rightcode and hbillno=@hbillno and hbilltype=@hbilltype
                        and hbarcodetype=@hbarcodetype  and hmaterialcode=@hmaterialcode and hbatchno=@hbatchno and hbarcodestatus=@hbarcodestatus";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        qualitystatus= qualitystatus,
                        rightcode = "2060",
                        hbillno = hbillno,
                        hbilltype = "1103",
                        hbarcodetype = "P",
                        hmaterialcode = partcode,
                        hbatchno = batchno,
                        hbarcodestatus = "Y"
                    }
                });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "操作失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/BaseDateDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,226 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class BaseDateDAL
    {
        public static DataTable dt;    //定义全局变量dt
        public static bool res;       //定义全局变量dt
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        public static string strProcName = ""; //定义全局sql变量
        public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[采购供方信息查询]
        public static ToMessage PurchSupplierSelect()
        {
            string sql = "";
            try
            {
                sql = @"select code,name  from TCustomer
                        where type in('211','228') and is_delete='0'";
                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[部门信息查询]
        public static ToMessage DepartMentSelect()
        {
            string sql = "";
            try
            {
                sql = @"select org_code as code,org_name as name from TOrganization
                        where description='D' and is_delete='0'";
                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[仓库信息查询]
        public static ToMessage StoreHouseSearch()
        {
            string sql = "";
            try
            {
                sql = @"select code,name  from T_Sec_Stck";
                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[库位信息查询]
        public static ToMessage WarehouseLocationSearch()
        {
            string sql = "";
            try
            {
                sql = @"select code,name  from T_Sec_Loca";
                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[库位查找仓库]
        public static ToMessage WarehouseLocationSearchStoreHouse(string locationcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select code,name  from T_Sec_Loca";
                var data = DapperHelper.selecttable(sql);
                if (data.Rows.Count <= 0)
                {
                    mes.code = "300";
                    mes.Message = "库位信息不存在!";
                    mes.data = null;
                    return mes;
                }
                sql = @"select A.code as locationcode,A.name as locationname,B.code as warehousecode,B.name as warehousename
                        from T_Sec_Loca A
                        inner join T_Sec_Stck B on A.stock_code=B.code
                        where A.code=@locationcode";
                dynamicParams.Add("@locationcode", locationcode);
                var data1 = 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
        #region[单位信息查询]
        public static ToMessage UnitSerch()
        {
            string sql = "";
            try
            {
                sql = @"select code,name  from TUom
                        where is_delete='0'";
                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[质检方案信息]
        public static ToMessage QualityScheme()
        {
            string sql = "";
            try
            {
                sql = @"select code,name,sampmethod,sampscare  from TStepCheckStandard
                        where status='Y' and checktype='InCheck'";
                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[存货查询]
        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/KanBanManagerentDAL.cs
@@ -58,17 +58,30 @@
                {
                    string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[] 
                    //查询产线下已开工的加工单信息
                    sql = @"select *  from (
                                    select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,S.good_qty,S.ng_qty,S.bad_qty   from TK_Wrk_Record 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
                                    left join TUom T on M.uom_code=T.code
                                    left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
                                    left join (
                                      select wo_code,sum(good_qty) as good_qty,sum(ng_qty) as ng_qty,sum(bad_qty) as bad_qty  from TK_Wrk_Step where isend='Y' group by wo_code
                                    ) S on P.wo_code=S.wo_code
                                    where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'
                                    ) as AA where AA.plan_qty>(AA.good_qty+aa.bad_qty+AA.ng_qty)";
                    //sql = @"select *  from (
                    //                select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,S.good_qty,S.ng_qty,S.bad_qty   from TK_Wrk_Record 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
                    //                left join TUom T on M.uom_code=T.code
                    //                left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
                    //                left join (
                    //                  select wo_code,sum(good_qty) as good_qty,sum(ng_qty) as ng_qty,sum(bad_qty) as bad_qty  from TK_Wrk_Step where isend='Y' group by wo_code
                    //                ) S on P.wo_code=S.wo_code
                    //                where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'
                    //                ) as AA where AA.plan_qty>(AA.good_qty+aa.bad_qty+AA.ng_qty)";
                    sql = @"select  AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname,
                          sum(AA.good_qty) as good_qty,sum(AA.ng_qty)+sum(AA.bad_qty) as ng_qty,sum(AA.bad_qty) as  bad_qty
                          from(
                          select  P.lm_date,E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,A.good_qty,A.ng_qty,A.bad_qty
                          from TK_Wrk_Record 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
                          left join TUom T on M.uom_code=T.code
                          left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
                          where P.status<>'CLOSED' and P.status<>'NEW'
                          and P.wkshp_code in @shopcode and  DateDiff(dd,P.lm_date,getdate())<=15
                          ) as AA  group by AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname
                          order by AA.lm_date desc";
                    var data0 = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                
                    if (data0.Rows.Count > 0)
@@ -93,7 +106,7 @@
                            lineone.children = new List<TreeTwo>();
                            //查新工单下工序信息
                            sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty,A.status
                            sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty+A.bad_qty as ng_qty,A.status
                                            from TK_Wrk_Step A
                                            left join TStep T on A.step_code=T.stepcode
                                            where A.wo_code=@wo_code";
@@ -158,17 +171,30 @@
            try
            {
                //获取任务列表信息
                sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
                //sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
                //         select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
                //         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                //         from TK_Wrk_Man A
                //         inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                //         inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                //         left  join TMateriel_Info M on A.materiel_code=M.partcode
                //         left  join TUom U on M.uom_code=U.code
                //         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
                //         and A.plan_qty>(B.good_qty+B.ng_qty+B.bad_qty)
                //         )as A ";
                sql = @"select *  from(
                         select A.*,ROW_NUMBER() OVER(ORDER BY A.lm_date desc) AS RowNum from(
                         select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
                         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                         A.plan_qty,B.good_qty,BS.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                         from TK_Wrk_Man A 
                         inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                         inner join (select wo_code, sum(good_qty) as good_qty from TK_Wrk_Step where isend='Y' group by wo_code) B on A.wo_code=B.wo_code
                          inner join (select wo_code, sum(ng_qty)+sum(bad_qty) as ng_qty from TK_Wrk_Step group by wo_code) BS on A.wo_code=BS.wo_code
                         inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                         left  join TMateriel_Info M on A.materiel_code=M.partcode
                         left  join TUom U on M.uom_code=U.code
                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
                         and A.plan_qty>(B.good_qty+B.ng_qty+B.bad_qty)
                         )as A ";
                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and  DateDiff(dd,A.lm_date,getdate())<=15
                         )as A
                         ) as AA ";
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -287,7 +313,7 @@
            try
            {
                //获取采购订单跟踪列表
                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom ";
                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -337,7 +363,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate";
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -361,7 +387,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate";
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -481,7 +507,7 @@
                        left join TK_Wrk_Record T on S.wo_code=T.wo_code
                        left  join TMateriel_Info M on A.materiel_code=M.partcode
                        where A.saleOrderCode is not null and A.saleOrderCode<>'' 
                        and T.eqp_code=@lineCode and B.status<>'CLOSED'
                        and T.eqp_code=@lineCode and B.status<>'CLOSED' and  DateDiff(dd,B.lm_date,getdate())<=15
                        ) as AA
                        group by AA.saleOrderCode,AA.materiel_code,AA.partname";
                dynamicParams.Add("@lineCode", lineCode);
@@ -508,7 +534,19 @@
            try
            {
                //获取工单报工信息,报工数量>0  ä¸”工单状态为非关闭状态  
                sql = @"select row_number() over(order by A.wo_code,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
                //sql = @"select row_number() over(order by A.wo_code,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
                //        from TK_Wrk_Man A
                //        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                //        inner join(
                //          select wo_code,step_code,materiel_code,eqp_code, sum(good_qty) as  good_qty
                //          from TK_Wrk_Record where style='B' group by wo_code,step_code,materiel_code,eqp_code
                //          ) as S on A.wo_code=S.wo_code and A.materiel_code=S.materiel_code and B.step_code=S.step_code
                //        left join TStep T on B.step_code=T.stepcode
                //        left join TMateriel_Info M on A.materiel_code=M.partcode
                //        left join TEqpInfo E on S.eqp_code=E.code
                //        where   A.status<>'CLOSED'
                //        order by A.wo_code,B.seq";
                sql = @"select row_number() over(order by A.plan_startdate,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
                        from TK_Wrk_Man A
                        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                        inner join(
@@ -518,8 +556,8 @@
                        left join TStep T on B.step_code=T.stepcode
                        left join TMateriel_Info M on A.materiel_code=M.partcode
                        left join TEqpInfo E on S.eqp_code=E.code
                        where   A.status<>'CLOSED'
                        order by A.wo_code,B.seq";
                        where   A.status<>'CLOSED' and  DateDiff(dd,A.lm_date,getdate())<=15
                        order by A.plan_startdate,B.seq";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -688,6 +726,22 @@
            try
            {
                //富尔达车间质量数字化看板,不良明细(取质检工序,按产线统计)
                //sql = @"select row_number() over(order by MM.lm_date,MM.wo_code) as RowNum,MM.lm_date,A.eqp_code,E.name as eqp_name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty as report_qty,A.ng_qty,
                //        defect_name=( STUFF(( SELECT  ',' + B.name
                //                                  FROM  CSR_WorkRecord_Defect N
                //                                  inner join TDefect B on N.defect_code=B.code
                //                                  where record_id=MM.record_id
                //                                FOR
                //                                  XML PATH('')
                //                                ), 1, 1, '') )
                //        from CSR_WorkRecord_Defect as MM
                //        inner join TK_Wrk_Record A on MM.record_id=a.id
                //        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                //        inner join TStep T on MM.step_code=T.stepcode
                //        inner join TEqpInfo E on A.eqp_code=E.code
                //        inner join TMateriel_Info M on A.materiel_code=M.partcode
                //        where  MM.step_code=@StepCode and MM.style='B' and A.style='B' and A.ng_qty>0 and S.status<>'CLOSED'
                //        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty";
                sql = @"select row_number() over(order by MM.lm_date,MM.wo_code) as RowNum,MM.lm_date,A.eqp_code,E.name as eqp_name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty as report_qty,A.ng_qty,
                        defect_name=( STUFF(( SELECT  ',' + B.name
                                                  FROM  CSR_WorkRecord_Defect N
@@ -703,7 +757,9 @@
                        inner join TEqpInfo E on A.eqp_code=E.code
                        inner join TMateriel_Info M on A.materiel_code=M.partcode
                        where  MM.step_code=@StepCode and MM.style='B' and A.style='B' and A.ng_qty>0 and S.status<>'CLOSED' 
                        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty";
                        and  DateDiff(dd,MM.lm_date,getdate())<=15
                        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty
                        order by MM.lm_date desc";
                dynamicParams.Add("@StepCode", StepCode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
VueWebApi/DLL/DAL/LoginDAL.cs
@@ -28,7 +28,9 @@
        {
            //执行sql
            strProcName = "select *  from [dbo].[TUser] where usercode=@username and password=@password and is_delete='0'";
            strProcName = @"select *  from [dbo].[TUser] U
                            left join TGroup G on U.usergroup_code = G.group_code
                            where U.usercode=@username and U.password=@password and U.is_delete='0'";
            //创建参数
            listStr.Add(new SqlParameter("@username", username));
            listStr.Add(new SqlParameter("@password", password));
@@ -134,12 +136,13 @@
                }).ToList();
                for (int i = 0; i < data.Count; i++)
                {
                    sql = @"select distinct mu.right_code as code,mu.right_name as name,mu.right_seq,mu.is_delete as flag,imgurl
                    sql = @"select *  from(
                            select distinct mu.right_code as code,mu.right_name as name,mu.right_seq,mu.is_delete as flag,imgurl
                            from TRight mu
                            inner join TRoleRightRelation rl on mu.right_code=rl.right_code
                            inner join TUserRoleRelation ro on rl.role_code=ro.role_code
                            where mu.type=@usertype and ro.user_code=@usercode and mu.parent_id=@paent_id 
                            order by mu.right_seq, mu.right_code";
                            ) as AA order by  CAST(AA.right_seq AS DECIMAL) ASC,AA.code";
                    dynamicParams.Add("@usercode", usercode);
                    dynamicParams.Add("@usertype", usertype);
                    dynamicParams.Add("@paent_id", data[i].code);
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1,4 +1,5 @@
using Dapper;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -2373,13 +2374,15 @@
        }
        #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)
@@ -2399,7 +2402,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
@@ -2410,11 +2413,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
                    {
@@ -2445,47 +2481,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)
            {
@@ -2498,21 +2523,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,@step_code,@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 = "首检";
@@ -2526,20 +2554,48 @@
                    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
                sql = @"select ISNULL(IDENT_CURRENT('TStepCheckRecord')+1,1) as id";
                var dt = DapperHelper.selecttable(sql);
                for (int i = 0; i < json.Count; i++)
                list.Add(new
                {
                    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 } });
                    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
                    }
                });
                //写入检验记录子表
                for (int j = 0; j < arra.Count; j++)
                {
                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date)
                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            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);
@@ -2547,14 +2603,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;
                }
            }
VueWebApi/DLL/DAL/QualityManagementDAL.cs
@@ -1,4 +1,5 @@
using Dapper;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -685,13 +686,8 @@
                    search += "and A.check_result=@checkresult ";
                    dynamicParams.Add("@checkresult", checkresult);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var total = 0; //总条数(首检、巡检、完工检验)
                var sql = @"select A.id,A.wo_code,A.partcode,B.partname,B.partspec,A.step_code,S.stepname,A.checkstaned_code,T.name as checkstaned_name,A.check_user,
                            A.check_type,A.check_result,A.check_descr,A.check_qty,U.username as lm_user,A.lm_date   
                            from TStepCheckRecord A
@@ -699,7 +695,7 @@
                            left join TStep S on A.step_code=S.stepcode
                            left join TStepCheckStandard T on A.checkstaned_code=T.code
                            left join TUser U on A.check_user=U.usercode 
                            where " + search;
                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -724,16 +720,24 @@
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select A.checkitem_seq,A.checkitem_code,A.checkitem_name,A.checkitem_descr,A.check_result,U.username as lm_user,A.lm_date
                        from TStepCheckRecordSub A
                        left join TUser U on A.lm_user=U.usercode
                        where A.m_id=@id";
                dynamicParams.Add("@id", id);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
                //存储过程名
                sql = @"h_p_IFCLD_WuLiuCheckSubSelect";
                dynamicParams.Add("@checkid", id);
                DataTable dt = DapperHelper.selectProcedure(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "查询成功!";
                    mes.data = dt;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "无检验明细数据!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
@@ -793,6 +797,115 @@
                    search += "and A.check_result=@checkresult ";
                    dynamicParams.Add("@checkresult", checkresult);
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.wo_code
                            ELSE ''END AS '工单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partcode
                            ELSE ''END AS '产品编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partname
                            ELSE ''END AS '产品名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN M.partspec
                            ELSE ''END AS '规格型号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN S.stepname
                            ELSE ''END AS '工序名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.checkstaned_code
                            ELSE ''END AS '标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN T.name
                            ELSE ''END AS '标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN U.username
                            ELSE ''END AS '检验人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_typename
                            ELSE ''END AS '检验类型',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_result
                            ELSE ''END AS '检验结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_descr
                            ELSE ''END AS '检验描述',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.check_qty
                            END AS '样本数量',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.id ORDER BY B.id) = 1 THEN A.lm_date
                            END AS '检验时间',
                            B.checknum as æ£€éªŒä»¶æ¬¡,B.checkitem_seq as '检验项目序号',B.checkitem_code '检验项目编码',B.checkitem_name '检验项目名称',B.checkitem_descr '检验项目描述',B.check_result '检验项目结果',
                            C.standvalue as '标准值',C.uppervalue as '上限值',C.lowervalue as '下限值',B.check_value as '实测值'
                            from TStepCheckRecord A
                            left join TStepCheckRecordSub B on A.id=B.m_id
                            left join TMateriel_Info M on A.partcode=M.partcode
                            left join TStep S on A.step_code=S.stepcode
                            left join TStepCheckStandard T on A.checkstaned_code=T.code
                            left  join TStepCheckStandardSub C on A.checkstaned_code=C.stepstaned_code and B.checkitem_code=C.stepcheckitem_code
                            left join TUser U on A.check_user=U.usercode
                            where A.check_type in('FirstCheck','PatroCheck','EndCheck') " + 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
        #region[质检方案列表查询]
        public static ToMessage QualityInspectionSearch(string qualityinsptcode, string qualityinsptname, string status, string checktype, string sampltype, string suitobject, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (qualityinsptcode != "" && qualityinsptcode != null)
                {
                    search += "and AA.code like '%'+@qualityinsptcode+'%' ";
                    dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
                }
                if (qualityinsptname != "" && qualityinsptname != null)
                {
                    search += "and AA.name like '%'+@qualityinsptname+'%' ";
                    dynamicParams.Add("@qualityinsptname", qualityinsptname);
                }
                if (status != "" && status != null)
                {
                    search += "and AA.status=@status ";
                    dynamicParams.Add("@status", status);
                }
                if (checktype != "" && checktype != null)
                {
                    search += "and AA.checktype=@checktype ";
                    dynamicParams.Add("@checktype", checktype);
                }
                if (sampltype != "" && sampltype != null)
                {
                    search += "and AA.sampmethod=@sampltype ";
                    dynamicParams.Add("@sampltype", sampltype);
                }
                if (suitobject != "" && suitobject != null)
                {
                    search += "and AA.suitobject=@suitobject ";
                    dynamicParams.Add("@suitobject", suitobject);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
@@ -800,61 +913,273 @@
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.wo_code ORDER BY B.checkitem_code) = 1 THEN A.wo_code
                            ELSE ''END AS '工单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.partcode ORDER BY B.checkitem_code) = 1 THEN M.partcode
                            ELSE ''END AS '产品编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.partcode ORDER BY B.checkitem_code) = 1 THEN M.partname
                            ELSE ''END AS '产品名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.partcode ORDER BY B.checkitem_code) = 1 THEN M.partspec
                            ELSE ''END AS '规格型号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.step_code ORDER BY B.checkitem_code) = 1 THEN S.stepname
                            ELSE ''END AS '工序名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.checkstaned_code ORDER BY B.checkitem_code) = 1 THEN A.checkstaned_code
                            ELSE ''END AS '标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.checkstaned_code ORDER BY B.checkitem_code) = 1 THEN T.name
                            ELSE ''END AS '标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.check_user ORDER BY B.checkitem_code) = 1 THEN U.username
                            ELSE ''END AS '检验人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.check_typename ORDER BY B.checkitem_code) = 1 THEN A.check_typename
                            ELSE ''END AS '检验类型',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.check_result ORDER BY B.checkitem_code) = 1 THEN A.check_result
                            ELSE ''END AS '检验结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.check_descr ORDER BY B.checkitem_code) = 1 THEN A.check_descr
                            ELSE ''END AS '检验描述',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.check_qty ORDER BY B.checkitem_code) = 1 THEN A.check_qty
                            END AS '检验数量',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.lm_date ORDER BY B.checkitem_code) = 1 THEN A.lm_date
                            END AS '检验时间',
                            B.checkitem_seq as '检验项目序号',B.checkitem_code '检验项目编码',B.checkitem_name '检验项目名称',B.checkitem_descr '检验项目描述',B.check_result '检验项目结果'
                            from TStepCheckRecord A
                            left join TStepCheckRecordSub B on A.id=B.m_id
                            left join TMateriel_Info M on A.partcode=M.partcode
                            left join TStep S on A.step_code=S.stepcode
                            left join TStepCheckStandard T on A.checkstaned_code=T.code
                            left join TUser U on A.check_user=U.usercode
                var sql = @"select *  from(
                            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
                            where   PATINDEX('%;' + RTRIM(TMateriel_Info.partcode) + ';%',';' + A.suitpart + ';')>0
                            FOR XML PATH('')), 1, 1,'')
                            when A.suitobject='PY'
                            then
                            STUFF(( SELECT ';' + name
                            FROM T_Dict
                            where   PATINDEX('%;' + RTRIM(T_Dict.code) + ';%',';' + A.suitpart + ';')>0
                            FOR XML PATH('')), 1, 1,'')
                            end as suitpartname
                            from TStepCheckStandard A
                            left join TUser U on  A.lm_user=U.usercode
                            left join TStep S on A.stepcode=S.stepcode
                            ) as AA
                            where " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName ="Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "工序检验记录");
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = msg;
                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 QualityInspectionSeeEdit(string qualityinsptcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select A.stepcheckitem_seq,A.stepcheckitem_code,B.name as stepcheckitem_name,A.required,
                        A.numberjudge,A.unit,A.decimalnum,A.standvalue,A.uppervalue,A.lowervalue,A.stepcheckitem_desc
                        from TStepCheckStandardSub A
                        inner join TStepCheckItem B on A.stepcheckitem_code=B.code
                        where A.stepstaned_code=@qualityinsptcode";
                dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
                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
        #region[质检方案新增/编辑提交]
        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>();
            var dynamicParams = new DynamicParameters();
            try
            {
                string date = DateTime.Now.ToString(); //获取系统时间
                //获取质检列表检验项目数据
                JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(checkitem);
                list.Clear();
                switch (type)
                {
                    case "Add": //新增
                        //写入质检方案主表
                        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,
                            parm = new
                            {
                                code = qualityinsptcode,
                                name = qualityinsptname,
                                status = status,
                                checktype = checktype,
                                sampmethod = sampmethod,
                                sampscare = sampscare,
                                suitobject = suitobject,
                                suitpart = suitpart,
                                stepcode = stepcode,
                                descr = descr,
                                lm_user = username,
                                lm_date = date
                            }
                        });
                        //写入质检方案子表
                        for (int i = 0; i < arra.Count; i++)
                        {
                            sql = @"insert into  TStepCheckStandardSub(stepstaned_code,stepcheckitem_seq,stepcheckitem_code,required,numberjudge,unit,decimalnum,standvalue,uppervalue,lowervalue,stepcheckitem_desc,lm_user,lm_date)
                                values(@stepstaned_code,@stepcheckitem_seq,@stepcheckitem_code,@required,@numberjudge,@unit,@decimalnum,@standvalue,@uppervalue,@lowervalue,@stepcheckitem_desc,@lm_user,@lm_date)";
                            list.Add(new
                            {
                                str = sql,
                                parm = new
                                {
                                    stepstaned_code = qualityinsptcode,
                                    stepcheckitem_seq = Convert.ToInt32(arra[i]["stepcheckitem_seq"].ToString()),
                                    stepcheckitem_code = arra[i]["stepcheckitem_code"].ToString(),
                                    required = arra[i]["required"].ToString(),
                                    numberjudge = arra[i]["numberjudge"].ToString(),
                                    unit = arra[i]["unit"].ToString(),
                                    decimalnum = arra[i]["decimalnum"].ToString(),
                                    standvalue = arra[i]["standvalue"].ToString(),
                                    uppervalue = arra[i]["uppervalue"].ToString(),
                                    lowervalue = arra[i]["lowervalue"].ToString(),
                                    stepcheckitem_desc = arra[i]["stepcheckitem_desc"].ToString(),
                                    lm_user = username,
                                    lm_date = date
                                }
                            });
                        }
                        break;
                    case "Update"://修改
                        //判断是否生成检验记录(入厂检验(InCheck)  å‡ºåŽ‚æ£€éªŒ(OutCheck)  FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检))
                        sql = @"select *  from TStepCheckRecord where checkstaned_code=@qualityinsptcode and check_type=@checktype";
                        dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
                        dynamicParams.Add("@checktype", checktype);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0)
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "修改失败,当前质检方案已生成对应检验记录!";
                            mes.data = null;
                            return mes;
                        }
                        //删除质检方案子表
                        sql = @"delete from TStepCheckStandardSub where stepstaned_code=@code";
                        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,stepcode=@stepcode,descr=@descr
                                where code=@code";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                code = qualityinsptcode,
                                name = qualityinsptname,
                                status = status,
                                checktype = checktype,
                                sampmethod = sampmethod,
                                sampscare = sampscare,
                                suitobject = suitobject,
                                suitpart = suitpart,
                                stepcode = stepcode,
                                descr = descr,
                            }
                        });
                        //新增质检方案子表
                        for (int i = 0; i < arra.Count; i++)
                        {
                            sql = @"insert into  TStepCheckStandardSub(stepstaned_code,stepcheckitem_seq,stepcheckitem_code,required,numberjudge,unit,decimalnum,standvalue,uppervalue,lowervalue,stepcheckitem_desc,lm_user,lm_date)
                                values(@stepstaned_code,@stepcheckitem_seq,@stepcheckitem_code,@required,@numberjudge,@unit,@decimalnum,@standvalue,@uppervalue,@lowervalue,@stepcheckitem_desc,@lm_user,@lm_date)";
                            list.Add(new
                            {
                                str = sql,
                                parm = new
                                {
                                    stepstaned_code = qualityinsptcode,
                                    stepcheckitem_seq = Convert.ToInt32(arra[i]["stepcheckitem_seq"].ToString()),
                                    stepcheckitem_code = arra[i]["stepcheckitem_code"].ToString(),
                                    required = arra[i]["required"].ToString(),
                                    numberjudge = arra[i]["numberjudge"].ToString(),
                                    unit = arra[i]["unit"].ToString(),
                                    decimalnum = arra[i]["decimalnum"].ToString(),
                                    standvalue = arra[i]["standvalue"].ToString(),
                                    uppervalue = arra[i]["uppervalue"].ToString(),
                                    lowervalue = arra[i]["lowervalue"].ToString(),
                                    stepcheckitem_desc = arra[i]["stepcheckitem_desc"].ToString(),
                                    lm_user = username,
                                    lm_date = date
                                }
                            });
                        }
                        break;
                    default:
                        break;
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "操作失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[质检方案删除]
        public static ToMessage QualityInspectionDelete(string qualityinsptcode, string username)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断是否生成检验记录(入厂检验(InCheck)  å‡ºåŽ‚æ£€éªŒ(OutCheck)  FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检))
                sql = @"select *  from TStepCheckRecord where checkstaned_code=@qualityinsptcode";
                dynamicParams.Add("@qualityinsptcode", qualityinsptcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "删除失败,当前质检方案已生成对应检验记录!";
                    mes.data = null;
                    return mes;
                }
                //删除质检方案主表
                sql = @"delete TStepCheckStandard  where code=@code";
                list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
                //删除质检方案子表
                sql = @"delete TStepCheckStandardSub  where stepstaned_code=@code";
                list.Add(new { str = sql, parm = new { code = qualityinsptcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "质检方案删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "质检方案删除失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -1045,5 +1045,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/DLL/DAL/SystemSettingDAL.cs
@@ -155,6 +155,15 @@
        #endregion
        #region[生成系统条码(自定义)]
        public static ToMessage LabelBarCode(string rightcode, string partcode, string qty, string onelabqty)
        {
            mes = AppLableBarCode.EncodingSeach(rightcode, partcode, qty, onelabqty);
            return mes;
        }
        #endregion
        #region[车间公告列表]
        public static ToMessage SystemAnnouncementSearch(string wkspcode, string ancetitle, string ancecont, string cancel, string level, int startNum, int endNum, string prop, string order)
        {
VueWebApi/Logs/2023-05-30.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
 ã€æ—¶é—´ã€‘:2023-05-30 13:32:31,861
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:将截断字符串或二进制数据。
语句已终止。
引发异常路径:/api/AppProductionManagement/SavaMesOrderStepReport
引发异常的方法:OnError
引发异常源:.Net SqlClient Data Provider   åœ¨ System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   åœ¨ System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   åœ¨ System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   åœ¨ Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
   åœ¨ Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
   åœ¨ Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) ä½ç½® D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 457
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-30 13:34:50,570
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 9
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:将截断字符串或二进制数据。
语句已终止。
引发异常路径:/api/AppProductionManagement/SavaMesOrderStepReport
引发异常的方法:OnError
引发异常源:.Net SqlClient Data Provider   åœ¨ System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   åœ¨ System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   åœ¨ System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   åœ¨ Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
   åœ¨ Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
   åœ¨ Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) ä½ç½® D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 457
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2023-05-30 13:50:40,954
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 6
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:将截断字符串或二进制数据。
语句已终止。
引发异常路径:/api/AppProductionManagement/SavaMesOrderStepReport
引发异常的方法:OnError
引发异常源:.Net SqlClient Data Provider   åœ¨ System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   åœ¨ System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   åœ¨ System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   åœ¨ System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   åœ¨ System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   åœ¨ Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
   åœ¨ Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
   åœ¨ Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) ä½ç½® D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 457
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Models/AppLabCode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class AppLabCode
    {
        /// <summary>
        /// åŠŸèƒ½ç¼–ç 
        /// </summary>
        public string rightcode { get; set; }
        /// <summary>
        /// æ ‡ç­¾æ¡ç 
        /// </summary>
        public string labcode { get; set; }
        /// <summary>
        /// æ ‡ç­¾æ•°é‡
        /// </summary>
        public string labqty { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// </summary>
        public string partnumber { get; set; }
    }
}
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/Models/User.cs
@@ -14,5 +14,6 @@
        public string password { get; set; }
        public string usertype { get; set; }
        public string rediskey { get; set; }
        public string group_name { get; set; }
    }
}
VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>D:\网站发布\MES富尔达</_PublishTargetUrl>
    <History>True|2023-03-08T04:43:42.9598898Z;True|2023-03-06T18:51:13.2558827+08:00;True|2023-03-06T18:50:27.1759228+08:00;True|2023-03-06T17:51:38.0075626+08:00;True|2023-03-06T14:40:55.5044464+08:00;True|2023-03-04T16:07:14.5197891+08:00;True|2023-03-04T14:41:42.0976052+08:00;True|2023-03-03T16:02:52.7528225+08:00;True|2023-02-20T19:50:29.9610176+08:00;True|2022-12-02T09:48:15.8632783+08:00;True|2022-12-02T09:39:45.8161756+08:00;True|2022-12-02T08:40:39.6638743+08:00;True|2022-12-01T14:57:53.4186199+08:00;True|2022-11-30T15:59:10.4273430+08:00;True|2022-11-30T14:04:20.4425530+08:00;True|2022-11-30T14:03:51.8326823+08:00;True|2022-11-30T13:26:46.0316090+08:00;True|2022-11-29T08:57:17.3697109+08:00;True|2022-11-23T14:06:03.8602775+08:00;True|2022-11-21T15:13:10.4385853+08:00;True|2022-11-16T10:29:41.2258924+08:00;True|2022-11-16T09:54:23.4213778+08:00;</History>
    <History>True|2023-05-30T07:34:18.5399623Z;True|2023-05-30T15:20:27.4273476+08:00;True|2023-05-30T11:27:05.6033045+08:00;True|2023-05-30T11:08:12.5476054+08:00;True|2023-05-30T11:03:06.2723106+08:00;True|2023-05-30T10:17:53.1019520+08:00;True|2023-05-30T10:16:57.3703637+08:00;True|2023-05-29T15:48:15.9306443+08:00;True|2023-05-11T16:24:47.9829255+08:00;True|2023-05-04T14:27:04.1494078+08:00;True|2023-05-04T14:26:40.5417813+08:00;True|2023-05-04T13:10:10.7125008+08:00;True|2023-03-08T12:43:42.9598898+08:00;True|2023-03-06T18:51:13.2558827+08:00;True|2023-03-06T18:50:27.1759228+08:00;True|2023-03-06T17:51:38.0075626+08:00;True|2023-03-06T14:40:55.5044464+08:00;True|2023-03-04T16:07:14.5197891+08:00;True|2023-03-04T14:41:42.0976052+08:00;True|2023-03-03T16:02:52.7528225+08:00;True|2023-02-20T19:50:29.9610176+08:00;True|2022-12-02T09:48:15.8632783+08:00;True|2022-12-02T09:39:45.8161756+08:00;True|2022-12-02T08:40:39.6638743+08:00;True|2022-12-01T14:57:53.4186199+08:00;True|2022-11-30T15:59:10.4273430+08:00;True|2022-11-30T14:04:20.4425530+08:00;True|2022-11-30T14:03:51.8326823+08:00;True|2022-11-30T13:26:46.0316090+08:00;True|2022-11-29T08:57:17.3697109+08:00;True|2022-11-23T14:06:03.8602775+08:00;True|2022-11-21T15:13:10.4385853+08:00;True|2022-11-16T10:29:41.2258924+08:00;True|2022-11-16T09:54:23.4213778+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="Areas/HelpPage/HelpPage.css">
@@ -705,13 +705,13 @@
      <publishTime>12/24/2021 15:38:29</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>03/08/2023 12:43:37</publishTime>
      <publishTime>05/30/2023 15:34:13</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>03/08/2023 12:43:37</publishTime>
      <publishTime>05/30/2023 15:34:13</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>03/08/2023 12:43:37</publishTime>
      <publishTime>05/30/2023 15:34:13</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1074,7 +1074,7 @@
      <publishTime>06/16/2022 13:39:23</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>03/08/2023 12:43:42</publishTime>
      <publishTime>05/30/2023 15:34:17</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/Tools/AppLableBarCode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,183 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
    public class AppLableBarCode
    {
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        #region [获取规则编码]
        /// <summary>
        /// æ ¹æ®åŠŸèƒ½ç¼–ç èŽ·å–æœ€æ–°è§„åˆ™ç¼–ç 
        /// </summary>
        /// <param name="rightcode">功能编码</param>
        /// <param name="partcode">物料编码</param>
        /// <param name="qty">数量</param>
        /// <param name="onelabqty">单标签数量</param>
        /// <returns></returns>
        public static ToMessage EncodingSeach(string rightcode,string partcode, string qty, string onelabqty)
        {
            string sql, year="", month="", day="", fdate="", q="", cunm2 = "", Encode="", cunm = "";
            int digit2 = 0, value2 = 0, digit3 = 0, digitdiff = 0;
            bool stf;
            List<object> list = new List<object>();
            List<string> listdt = new List<string>();
            List<AppLabCode> lab = new List<AppLabCode>();
            var dynamicParams = new DynamicParameters();
            //获取标签个数:进一法
            decimal labcum = Math.Ceiling(decimal.Parse(qty) / decimal.Parse(onelabqty));
            try
            {
                sql = @"select prefix,filingdate,incbit,value from  T_CodeRules  where rightcode=@rightcode";
                dynamicParams.Add("@rightcode", rightcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    string prefix = data.Rows[0]["PREFIX"].ToString();  //固定字段
                    string filingdate = data.Rows[0]["FILINGDATE"].ToString();  //提交日期
                    int incbit = int.Parse(data.Rows[0]["INCBIT"].ToString());  //自增位数
                    string value = data.Rows[0]["VALUE"].ToString();  //流水号
                    decimal sumqty = 0;//定义累计单标签数量
                    if (int.Parse(value) >=0)
                    {
                        switch (filingdate)
                        {
                            case "年月日":
                                lab = Labcode(partcode,year, month, day, prefix, fdate, digit2, value2, digit3, digitdiff, q, cunm2, Encode, value, labcum, sumqty, onelabqty, rightcode, qty,out  cunm);
                                break;
                            case "年月":
                                lab = Labcode(partcode,year, month, day, prefix, fdate, digit2, value2, digit3, digitdiff, q, cunm2, Encode, value, labcum, sumqty, onelabqty, rightcode, qty, out cunm);
                                break;
                            case "å¹´":
                                lab = Labcode(partcode,year, month, day, prefix, fdate, digit2, value2, digit3, digitdiff, q, cunm2, Encode, value, labcum, sumqty, onelabqty, rightcode, qty, out cunm);
                                break;
                            default:
                                break;
                        }
                        //更新规则表位数及流水号
                        sql = @"update T_CodeRules set incbit=@incbit,value=@cunm2  where rightcode=@rightcode";
                        dynamicParams.Add("@incbit", cunm.Length);
                        dynamicParams.Add("@cunm2", cunm);
                        dynamicParams.Add("@rightcode", rightcode);
                        list.Add(new { str = sql, parm = dynamicParams });
                        stf = DapperHelper.DoTransaction(list);
                        if (stf)
                        {
                            mes.code = "200";
                            mes.Message = "成功!";
                            mes.data = lab;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "失败!";
                            mes.data = null;
                        }
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "未设置编码规则,生成单号失败,请设置编码为【" + rightcode + "】的编码规则!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[生成条码]
        /// <summary>
        /// ç”Ÿæˆæ¡ç 
        /// </summary>
        /// <param name="partcode">物料编码</param>
        /// <param name="year">å¹´</param>
        /// <param name="month">月</param>
        /// <param name="day">日</param>
        /// <param name="prefix">固定字段</param>
        /// <param name="fdate">å¹´(2位)+月(2位)+日(2位)</param>
        /// <param name="digit2">流水号长度</param>
        /// <param name="value2">自增流水号</param>
        /// <param name="digit3">自增流水号长度</param>
        /// <param name="digitdiff">位数差</param>
        /// <param name="q">补位(0)</param>
        /// <param name="cunm2">最终流水号(包含补位)</param>
        /// <param name="Encode">最终标签码(固定字段+规则+最终流水号)</param>
        /// <param name="value">初始查询最新流水号</param>
        /// <param name="labcum">标签个数</param>
        /// <param name="sumqty">累计单标签数量</param>
        /// <param name="onelabqty">单标签数量</param>
        /// <param name="rightcode">功能编码</param>
        /// <param name="qty">数量</param>
        /// <param name="cunm">输出最终流水号</param>
        /// <returns></returns>
        public static List<AppLabCode> Labcode(string partcode,string year,string month,string day,string prefix, string fdate,int digit2,int value2,int digit3,int digitdiff,string q,string cunm2,string Encode, string value, decimal labcum, decimal sumqty,string onelabqty,string rightcode,string qty,out string cunm)
        {
            List<AppLabCode> lab = new List<AppLabCode>();
            year = DateTime.Now.Year.ToString().Substring(2, 2);//获取年(2位)
            month = DateTime.Now.Month.ToString().PadLeft(2, '0');//获取月(2位)
            day = DateTime.Now.Day.ToString().PadLeft(2, '0');//获取日(2位)
            fdate = year + month + day;
            //获取查询流水号的位数
            digit2 = value.Length;//获取string类型位数
            for (int i = 1; i <= labcum; i++)
            {
                AppLabCode lb = new AppLabCode();
                lb.rightcode = rightcode;
                if (i == labcum)  //最后一张标签
                {
                    lb.labqty = (decimal.Parse(qty) - sumqty).ToString(); //单标签数量
                }
                else
                {
                    lb.labqty = onelabqty; //单标签数量
                    sumqty += decimal.Parse(onelabqty);
                }
                //流水号循环自增
                value2 = int.Parse(value) + i;
                //获取自增后流水号位数
                digit3 = value2.ToString().Length;
                //获取位数之差
                digitdiff = digit2 - digit3;
                //重新获取流水号位数
                digit2 = digit3;
                q = "";
                if (digitdiff < 0) //位数差为负数需要进补位
                {
                    cunm2 = value2.ToString();//最终流水号
                }
                else
                {
                    for (int j = 1; j <= digitdiff; j++)
                    {
                        q = q + "0";
                    }
                    cunm2 = q + value2.ToString();//最终流水号
                }
                Encode = prefix + fdate + cunm2; //最终编码
                lb.labcode = Encode;
                lb.partnumber = partcode;
                lab.Add(lb);
            }
            cunm = cunm2;
            return lab;
        }
        #endregion
    }
}
VueWebApi/Tools/ChannelActionFilterAttributeApp.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Web;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
    /// <summary>
    /// æ¸ é“过滤器
    /// </summary>
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
    public class ChannelActionFilterAttributeApp : ActionFilterAttribute
    {
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        /// <summary>
        /// è¯·æ±‚接口之前渠道过滤
        /// </summary>
        /// <param name="actionContext"></param>
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            try
            {
                var rediskey = HttpContext.Current.Request.Headers["rediskey"].ToString();
                var guid = HttpContext.Current.Request.Headers["guid"].ToString();
                base.OnActionExecuting(actionContext);
                //如果存在
                if (redis.Get<User>(rediskey, 1).userid.ToString() != "")
                {
                    //获取redis中当前用户信息
                    User r_loginUser = redis.Get<User>(rediskey, 1);
                    //如果session中的用户guid和redis中的用户guid匹配
                    if (r_loginUser.guid.Equals(guid))
                    {
                        //重置过期时间
                        redis.KeyExpire(rediskey, redis.secondsTimeOut);
                    }
                    else
                    {
                        mes.code = "303";
                        mes.Message = "登录已超时,请重新登录!";
                        actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(mes), Encoding.GetEncoding("UTF-8"), "application/json") };
                    }
                }
                else //如果redis登录用户中不存在当前用户
                {
                    mes.code = "303";
                    mes.Message = "登录已超时,请重新登录!";
                    actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(mes), Encoding.GetEncoding("UTF-8"), "application/json") };
                }
            }
            catch (Exception)
            {
                mes.code = "303";
                mes.Message = "登录已超时,请重新登录!";
                actionContext.Response = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(mes), Encoding.GetEncoding("UTF-8"), "application/json") };
            }
        }
    }
}
VueWebApi/VueWebApi.csproj
@@ -308,9 +308,22 @@
    <Compile Include="Areas\HelpPage\SampleGeneration\SampleDirection.cs" />
    <Compile Include="Areas\HelpPage\SampleGeneration\TextSample.cs" />
    <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
    <Compile Include="Controllers\AppAnalyticsController.cs" />
    <Compile Include="Controllers\AppPersonalController.cs" />
    <Compile Include="Controllers\AppProductionManagementController.cs" />
    <Compile Include="Controllers\AppQualityManagementController.cs" />
    <Compile Include="Controllers\BaseDateController.cs" />
    <Compile Include="Controllers\ReportManagerController.cs" />
    <Compile Include="Controllers\SendController.cs" />
    <Compile Include="DLL\BLL\AppAnalyticsBLL.cs" />
    <Compile Include="DLL\BLL\AppPersonalBLL.cs" />
    <Compile Include="DLL\BLL\AppQualityManagementBLL.cs" />
    <Compile Include="DLL\BLL\BaseDateBLL.cs" />
    <Compile Include="DLL\BLL\ReportManagerBLL.cs" />
    <Compile Include="DLL\DAL\AppAnalyticsDAL.cs" />
    <Compile Include="DLL\DAL\AppPersonalDAL.cs" />
    <Compile Include="DLL\DAL\AppQualityManagementDAL.cs" />
    <Compile Include="DLL\DAL\BaseDateDAL.cs" />
    <Compile Include="DLL\DAL\ReportManagerDAL.cs" />
    <Compile Include="Hubs\ChatHub.cs" />
    <Compile Include="Controllers\AppDeviceManageController.cs" />
@@ -365,6 +378,8 @@
    <Compile Include="Models\AlreadyScheduling.cs" />
    <Compile Include="Models\AnDnDate.cs" />
    <Compile Include="Models\AppDevicecCheck.cs" />
    <Compile Include="Models\AppLabCode.cs" />
    <Compile Include="Models\AppScheduleKanban.cs" />
    <Compile Include="Models\APSList.cs" />
    <Compile Include="Models\BomSub.cs" />
    <Compile Include="Models\CapacityPlanSect.cs" />
@@ -389,7 +404,9 @@
    <Compile Include="Models\Uom.cs" />
    <Compile Include="Models\User.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Tools\AppLableBarCode.cs" />
    <Compile Include="Tools\ChannelActionFilterAttribute.cs" />
    <Compile Include="Tools\ChannelActionFilterAttributeApp.cs" />
    <Compile Include="Tools\DALSkillCondition.cs" />
    <Compile Include="Tools\DapperHelper.cs" />
    <Compile Include="Tools\DataOperator.cs" />
VueWebApi/VueWebApi.csproj.user
@@ -10,7 +10,7 @@
    <UseGlobalApplicationHostFile />
    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
    <NameOfLastUsedPublishProfile>D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\Properties\PublishProfiles\FolderProfile1.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ProjectFiles</ProjectView>
    <ProjectView>ShowAllFiles</ProjectView>
    <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
    <Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
    <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
VueWebApi/bin/VueWebApi.dll
Binary files differ
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -506,6 +506,202 @@
            </summary>
            <param name="documentPath">The physical path to XML document.</param>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String)">
            <summary>
            App生产看板
            </summary>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <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个人计件工资
            </summary>
            <param name="compute">计算方式:末道计算、逐道计算</param>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStartSelectEqp(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥æ—¶èŽ·å–è®¾å¤‡ä¸‹æ‹‰åˆ—è¡¨
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
            </summary>
            <param name="usergroupcode">班组编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šäººå‘˜ä¸‹æ‹‰åˆ—表
            </summary>
            <param name="usercode">人员编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepSelectWX(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå‘æ–™/收料时获取外协下拉列表
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepSelectCause(System.String)">
            <summary>
            ç”Ÿäº§æŠ¥å·¥ï¼šæŠ¥å·¥/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepStart">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,开工提交
            </summary>
            <param name="obj">开工提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepReport">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,报工提交
            </summary>
            <param name="obj">报工提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepOut">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,发料提交
            </summary>
            <param name="obj">发料提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepIn">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,收料提交
            </summary>
            <param name="obj">收料提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckScanLabCode(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,扫描采购到货生成标签
            </summary>
            <param name="labcode">采购到货生成标签</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckItem(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckSave">
            <summary>
            å…¥åŽ‚æ£€éªŒ,提交
            </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>
            é‡‡è´­ä¾›æ–¹ä¿¡æ¯æŸ¥è¯¢
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.DepartMentSelect">
            <summary>
            éƒ¨é—¨ä¿¡æ¯æŸ¥è¯¢
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.StoreHouseSearch">
            <summary>
            ä»“库信息查询
            </summary>
            <returns>StoreHouseSearch</returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.WarehouseLocationSearch">
            <summary>
            åº“位信息查询
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.WarehouseLocationSearchStoreHouse(System.String)">
            <summary>
            åº“位查询仓库
            </summary>
            <param name="locationcode">库位编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.UnitSerch">
            <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.ReportManagerController.OutSourceReportSearch(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>
            å§”外报表记录查询
@@ -689,6 +885,38 @@
            <param name="defectname">缺陷名称</param>
            <param name="repairname">维修人员</param>
            <param name="repairdate">维修时间</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)">
@@ -2016,6 +2244,12 @@
            <param name="wkshopcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.AddMesOrderCodeSearch">
            <summary>
            MES工单新增、获取工单号
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.AddUpdateMesOrder(Newtonsoft.Json.Linq.JObject)">
            <summary>
            MES工单新增、编辑提交
@@ -2174,31 +2408,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)">
@@ -2782,6 +3010,43 @@
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆåˆ—表查询
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <param name="qualityinsptname">质检方案名称</param>
            <param name="status">有效状态</param>
            <param name="checktype">质检类型</param>
            <param name="sampltype">抽样方式</param>
            <param name="suitobject">适用对象</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.QualityManagementController.QualityInspectionSeeEdit(System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆæŸ¥çœ‹ç¼–辑
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionAddEditSave(Newtonsoft.Json.Linq.JObject)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆæ–°å¢ž/编辑提交
            </summary>
            <param name="obj">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionDelete(System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆåˆ é™¤
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.EncodingRules(System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç¼–码规则查询
@@ -2806,6 +3071,16 @@
            èŽ·å–è§„åˆ™ç”Ÿæˆçš„ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.LabelBarCode(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿæˆç³»ç»Ÿæ¡ç (自定义)
            </summary>
            <param name="rightcode">功能编码</param>
            <param name="partcode">物料编码</param>
            <param name="qty">数量</param>
            <param name="onelabqty">单标签数量</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementSearch(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2929,6 +3204,92 @@
            æ³¨å†ŒSession
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.rightcode">
            <summary>
            åŠŸèƒ½ç¼–ç 
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.labcode">
            <summary>
            æ ‡ç­¾æ¡ç 
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.labqty">
            <summary>
            æ ‡ç­¾æ•°é‡
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.partnumber">
            <summary>
            ç‰©æ–™ç¼–码
            </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="M:VueWebApi.Tools.AppLableBarCode.EncodingSeach(System.String,System.String,System.String,System.String)">
            <summary>
            æ ¹æ®åŠŸèƒ½ç¼–ç èŽ·å–æœ€æ–°è§„åˆ™ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <param name="partcode">物料编码</param>
            <param name="qty">数量</param>
            <param name="onelabqty">单标签数量</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.AppLableBarCode.Labcode(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.Decimal,System.Decimal,System.String,System.String,System.String,System.String@)">
            <summary>
            ç”Ÿæˆæ¡ç 
            </summary>
            <param name="partcode">物料编码</param>
            <param name="year">å¹´</param>
            <param name="month">月</param>
            <param name="day">日</param>
            <param name="prefix">固定字段</param>
            <param name="fdate">å¹´(2位)+月(2位)+日(2位)</param>
            <param name="digit2">流水号长度</param>
            <param name="value2">自增流水号</param>
            <param name="digit3">自增流水号长度</param>
            <param name="digitdiff">位数差</param>
            <param name="q">补位(0)</param>
            <param name="cunm2">最终流水号(包含补位)</param>
            <param name="Encode">最终标签码(固定字段+规则+最终流水号)</param>
            <param name="value">初始查询最新流水号</param>
            <param name="labcum">标签个数</param>
            <param name="sumqty">累计单标签数量</param>
            <param name="onelabqty">单标签数量</param>
            <param name="rightcode">功能编码</param>
            <param name="qty">数量</param>
            <param name="cunm">输出最终流水号</param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Tools.ChannelActionFilterAttribute">
            <summary>
            æ¸ é“过滤器
@@ -2940,6 +3301,17 @@
            </summary>
            <param name="actionContext"></param>
        </member>
        <member name="T:VueWebApi.Tools.ChannelActionFilterAttributeApp">
            <summary>
            æ¸ é“过滤器
            </summary>
        </member>
        <member name="M:VueWebApi.Tools.ChannelActionFilterAttributeApp.OnActionExecuting(System.Web.Http.Controllers.HttpActionContext)">
            <summary>
            è¯·æ±‚接口之前渠道过滤
            </summary>
            <param name="actionContext"></param>
        </member>
        <member name="M:VueWebApi.Tools.DALSkillCondition.ResultExcel(System.String,System.Data.DataTable)">
            <summary>
            ä¸‹è½½excel
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.dll
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -506,6 +506,202 @@
            </summary>
            <param name="documentPath">The physical path to XML document.</param>
        </member>
        <member name="M:VueWebApi.Controllers.AppAnalyticsController.ProductionKanban(System.String,System.String,System.String)">
            <summary>
            App生产看板
            </summary>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <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个人计件工资
            </summary>
            <param name="compute">计算方式:末道计算、逐道计算</param>
            <param name="usercode">登录人员</param>
            <param name="Ratetime">时间</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStart(System.String,System.String,System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
            </summary>
            <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
            <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepStartSelectEqp(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥æ—¶èŽ·å–è®¾å¤‡ä¸‹æ‹‰åˆ—è¡¨
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepReportSelectUserGroup">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæŠ¥å·¥æ—¶èŽ·å–ç”Ÿäº§ç­ç»„ä¸‹æ‹‰æ¡†
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderGroupSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
            </summary>
            <param name="usergroupcode">班组编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šäººå‘˜ä¸‹æ‹‰åˆ—表
            </summary>
            <param name="usercode">人员编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepSelectWX(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå‘æ–™/收料时获取外协下拉列表
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.MesOrderStepSelectCause(System.String)">
            <summary>
            ç”Ÿäº§æŠ¥å·¥ï¼šæŠ¥å·¥/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepStart">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,开工提交
            </summary>
            <param name="obj">开工提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepReport">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,报工提交
            </summary>
            <param name="obj">报工提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepOut">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,发料提交
            </summary>
            <param name="obj">发料提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppProductionManagementController.SavaMesOrderStepIn">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥,收料提交
            </summary>
            <param name="obj">收料提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckScanLabCode(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,扫描采购到货生成标签
            </summary>
            <param name="labcode">采购到货生成标签</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckItem(System.String)">
            <summary>
            å…¥åŽ‚æ£€éªŒ,根据选择的检验方案查找检验项目
            </summary>
            <param name="checkstandcode">检验方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.AppQualityManagementController.InFactoryCheckSave">
            <summary>
            å…¥åŽ‚æ£€éªŒ,提交
            </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>
            é‡‡è´­ä¾›æ–¹ä¿¡æ¯æŸ¥è¯¢
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.DepartMentSelect">
            <summary>
            éƒ¨é—¨ä¿¡æ¯æŸ¥è¯¢
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.StoreHouseSearch">
            <summary>
            ä»“库信息查询
            </summary>
            <returns>StoreHouseSearch</returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.WarehouseLocationSearch">
            <summary>
            åº“位信息查询
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.WarehouseLocationSearchStoreHouse(System.String)">
            <summary>
            åº“位查询仓库
            </summary>
            <param name="locationcode">库位编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BaseDateController.UnitSerch">
            <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.ReportManagerController.OutSourceReportSearch(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>
            å§”外报表记录查询
@@ -689,6 +885,38 @@
            <param name="defectname">缺陷名称</param>
            <param name="repairname">维修人员</param>
            <param name="repairdate">维修时间</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)">
@@ -2016,6 +2244,12 @@
            <param name="wkshopcode">车间编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.AddMesOrderCodeSearch">
            <summary>
            MES工单新增、获取工单号
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.AddUpdateMesOrder(Newtonsoft.Json.Linq.JObject)">
            <summary>
            MES工单新增、编辑提交
@@ -2174,31 +2408,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)">
@@ -2782,6 +3010,43 @@
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆåˆ—表查询
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <param name="qualityinsptname">质检方案名称</param>
            <param name="status">有效状态</param>
            <param name="checktype">质检类型</param>
            <param name="sampltype">抽样方式</param>
            <param name="suitobject">适用对象</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.QualityManagementController.QualityInspectionSeeEdit(System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆæŸ¥çœ‹ç¼–辑
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionAddEditSave(Newtonsoft.Json.Linq.JObject)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆæ–°å¢ž/编辑提交
            </summary>
            <param name="obj">提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.QualityManagementController.QualityInspectionDelete(System.String)">
            <summary>
            è´¨æ£€æ–¹æ¡ˆåˆ é™¤
            </summary>
            <param name="qualityinsptcode">质检方案编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.EncodingRules(System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç¼–码规则查询
@@ -2806,6 +3071,16 @@
            èŽ·å–è§„åˆ™ç”Ÿæˆçš„ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.LabelBarCode(System.String,System.String,System.String,System.String)">
            <summary>
            ç”Ÿæˆç³»ç»Ÿæ¡ç (自定义)
            </summary>
            <param name="rightcode">功能编码</param>
            <param name="partcode">物料编码</param>
            <param name="qty">数量</param>
            <param name="onelabqty">单标签数量</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementSearch(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
@@ -2929,6 +3204,92 @@
            æ³¨å†ŒSession
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.rightcode">
            <summary>
            åŠŸèƒ½ç¼–ç 
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.labcode">
            <summary>
            æ ‡ç­¾æ¡ç 
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.labqty">
            <summary>
            æ ‡ç­¾æ•°é‡
            </summary>
        </member>
        <member name="P:VueWebApi.Models.AppLabCode.partnumber">
            <summary>
            ç‰©æ–™ç¼–码
            </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="M:VueWebApi.Tools.AppLableBarCode.EncodingSeach(System.String,System.String,System.String,System.String)">
            <summary>
            æ ¹æ®åŠŸèƒ½ç¼–ç èŽ·å–æœ€æ–°è§„åˆ™ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <param name="partcode">物料编码</param>
            <param name="qty">数量</param>
            <param name="onelabqty">单标签数量</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.AppLableBarCode.Labcode(System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.String,System.String,System.String,System.String,System.Decimal,System.Decimal,System.String,System.String,System.String,System.String@)">
            <summary>
            ç”Ÿæˆæ¡ç 
            </summary>
            <param name="partcode">物料编码</param>
            <param name="year">å¹´</param>
            <param name="month">月</param>
            <param name="day">日</param>
            <param name="prefix">固定字段</param>
            <param name="fdate">å¹´(2位)+月(2位)+日(2位)</param>
            <param name="digit2">流水号长度</param>
            <param name="value2">自增流水号</param>
            <param name="digit3">自增流水号长度</param>
            <param name="digitdiff">位数差</param>
            <param name="q">补位(0)</param>
            <param name="cunm2">最终流水号(包含补位)</param>
            <param name="Encode">最终标签码(固定字段+规则+最终流水号)</param>
            <param name="value">初始查询最新流水号</param>
            <param name="labcum">标签个数</param>
            <param name="sumqty">累计单标签数量</param>
            <param name="onelabqty">单标签数量</param>
            <param name="rightcode">功能编码</param>
            <param name="qty">数量</param>
            <param name="cunm">输出最终流水号</param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Tools.ChannelActionFilterAttribute">
            <summary>
            æ¸ é“过滤器
@@ -2940,6 +3301,17 @@
            </summary>
            <param name="actionContext"></param>
        </member>
        <member name="T:VueWebApi.Tools.ChannelActionFilterAttributeApp">
            <summary>
            æ¸ é“过滤器
            </summary>
        </member>
        <member name="M:VueWebApi.Tools.ChannelActionFilterAttributeApp.OnActionExecuting(System.Web.Http.Controllers.HttpActionContext)">
            <summary>
            è¯·æ±‚接口之前渠道过滤
            </summary>
            <param name="actionContext"></param>
        </member>
        <member name="M:VueWebApi.Tools.DALSkillCondition.ResultExcel(System.String,System.Data.DataTable)">
            <summary>
            ä¸‹è½½excel
VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
84c4fdafb5a7ab59842e3e3e48ca01e11b43f156
ecd625ca9bc352246e3de4a380e092f4c64a44c5
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -845,7 +845,6 @@
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
D:\新凯迪MES\MES项目\MES富尔达\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
VueWebApi/obj/Release/VueWebApi.dll
Binary files differ
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ