yl
2022-07-13 c63b40452aeaf1b46ef716da9f5dc9e8c2a843a6
生产开报工提交
已添加7个文件
已修改25个文件
1360 ■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/BasicSettingController.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ErpSyncMesController.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ProductionManagementController.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/BasicSettingBLL.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ErpSyncMesBLL.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ProductionManagementBLL.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/BasicSettingDAL.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ErpSyncMesDAL.cs 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductModelDAL.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ProductionManagementDAL.cs 163 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-07-09.TXT 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-07-11.TXT 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-07-13.TXT 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/ScanStartReportData.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/DapperHelper.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ScanStartReport.cs 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj.user 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/grf/外协收料标签.grf 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/Controllers/BasicSettingController.cs
@@ -171,12 +171,13 @@
            string Password = obj["Password"].ToString(); //密码
            string Enable = obj["Enable"].ToString(); //在职状态
            string StuOrg = obj["StuOrg"].ToString(); //选择组织编码
            string groupcode= obj["groupcode"].ToString(); //所属班组编码
            string wagetype = obj["wagetype"].ToString(); //工资类型
            string Mobile = obj["Mobile"].ToString(); //联系方式
            string Email = obj["Email"].ToString(); //电子邮箱
            string Operator = obj["Operator"].ToString(); //操作人员
            string OperType = obj["OperType"].ToString();  //操作类型
            mes = BasicSettingBLL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, StuOrg, wagetype, Mobile, Email, Operator, OperType);
            mes = BasicSettingBLL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, StuOrg, groupcode, wagetype, Mobile, Email, Operator, OperType);
            return TJson.toJson(mes);
        }
        #endregion
VueWebApi/Controllers/ErpSyncMesController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
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/ErpSyncMes")]
    [ControllerGroup("ERP基础数据同步", "在线接口")]
    public class ErpSyncMesController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        #region[制造模型:存货分类同步]
        /// <summary>
        /// åˆ¶é€ æ¨¡åž‹ï¼šå­˜è´§åˆ†ç±»åŒæ­¥
        /// </summary>
        /// <returns></returns>
        [Route(template: "SeaveSearchInventoryClass")]
        [HttpPost]
        public HttpResponseMessage SeaveSearchInventoryClass()
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ErpSyncMesBLL.SeaveSearchInventoryClass(username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[制造模型:存货档案同步]
        /// <summary>
        /// åˆ¶é€ æ¨¡åž‹ï¼šå­˜è´§æ¡£æ¡ˆåŒæ­¥
        /// </summary>
        /// <returns></returns>
        [Route(template: "SeaveSearchInventory")]
        [HttpPost]
        public HttpResponseMessage SeaveSearchInventory()
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ErpSyncMesBLL.SeaveSearchInventory(username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[物料管理:仓库库位同步]
        /// <summary>
        /// ç‰©æ–™ç®¡ç†ï¼šä»“库库位同步
        /// </summary>
        /// <returns></returns>
        [Route(template: "SeaveSearchWhareHouseLocation")]
        [HttpPost]
        public HttpResponseMessage SeaveSearchWhareHouseLocation()
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ErpSyncMesBLL.SeaveSearchWhareHouseLocation(username);
            return TJson.toJson(mes);
        }
        #endregion
        #region[基础设置:往来单位同步]
        [Route(template: "SeaveSearchPartner")]
        [HttpPost]
        public HttpResponseMessage SeaveSearchPartner()
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ErpSyncMesBLL.SeaveSearchPartner(username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/ProductionManagementController.cs
@@ -53,8 +53,8 @@
            }
            if (createdate != "" && createdate != null)
            {
                createstartdate = paydate.Split('~')[0].ToString();
                createenddate = paydate.Split('~')[1].ToString();
                createstartdate = createdate.Split('~')[0].ToString();
                createenddate = createdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
@@ -307,7 +307,7 @@
        /// <returns></returns>
        [Route(template: "MesOrderStepStart")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepStart(string OperType, string SelectType, string orderstepqrcode)
        public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null)
        {
            mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode);
            return TJson.toJson(mes);
@@ -345,7 +345,7 @@
        #region[生产开报工:根据生产班组查找人员列表]
        /// <summary>
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥æ—¶èŽ·å–è®¾å¤‡ä¸‹æ‹‰åˆ—è¡¨
        /// ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
        /// </summary>
        /// <param name="usergroupcode">班组编码</param>
        /// <returns></returns>
@@ -358,6 +358,36 @@
        }
        #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>
        /// ç”Ÿäº§æŠ¥å·¥ï¼šæŠ¥å·¥/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨
VueWebApi/DLL/BLL/BasicSettingBLL.cs
@@ -63,9 +63,9 @@
        #endregion
        #region[用户清单新增编辑]
        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName, string Password, string Enable, string LoginOrg, string wagetype, string Mobile, string Email, string Operator, string OperType)
        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName, string Password, string Enable, string LoginOrg,string groupcode, string wagetype, string Mobile, string Email, string Operator, string OperType)
        {
            return BasicSettingDAL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, LoginOrg, wagetype, Mobile, Email, Operator, OperType);
            return BasicSettingDAL.AddUpdateUser(UserId, UserCode, UserName, Password, Enable, LoginOrg, groupcode, wagetype, Mobile, Email, Operator, OperType);
        }
        #endregion
VueWebApi/DLL/BLL/ErpSyncMesBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
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 ErpSyncMesBLL
    {
        #region[制造模型:存货分类同步]
        public static ToMessage SeaveSearchInventoryClass(string username)
        {
            return ErpSyncMesDAL.SeaveSearchInventoryClass(username);
        }
        #endregion
        #region[制造模型:存货档案同步]
        public static ToMessage SeaveSearchInventory(string username)
        {
            return ErpSyncMesDAL.SeaveSearchInventory(username);
        }
        #endregion
        #region[物料管理:仓库库位同步]
        public static ToMessage SeaveSearchWhareHouseLocation(string username)
        {
            return ErpSyncMesDAL.SeaveSearchWhareHouseLocation(username);
        }
        #endregion
        #region[基础设置:往来单位同步]
        public static ToMessage SeaveSearchPartner(string username)
        {
            return ErpSyncMesDAL.SeaveSearchPartner(username);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -134,6 +134,20 @@
        }
        #endregion
        #region[生产开报工:人员下拉列表]
        public static ToMessage MesOrderSelectUser(string usercode)
        {
            return ProductionManagementDAL.MesOrderSelectUser(usercode);
        }
        #endregion
        #region[生产开报工:发料/收料时获取外协下拉列表]
        public static ToMessage MesOrderStepSelectWX(string orderstepqrcode)
        {
            return ProductionManagementDAL.MesOrderStepSelectWX(orderstepqrcode);
        }
        #endregion
        #region[生产报工:报工/外协收料 èŽ·å–ä¸è‰¯åŽŸå› ä¸‹æ‹‰åˆ—è¡¨]
        public static ToMessage MesOrderStepSelectCause(string orderstepqrcode)
        {
VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -332,7 +332,7 @@
            {
                List<TreeDG> list = new List<TreeDG>();
                sql = @"select id,parent_id,org_code,org_name,description  
                      FROM TOrganization ";
                      FROM TOrganization where is_delete<>'1'";
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)   //这里是循环所有
                {
@@ -416,15 +416,15 @@
        #endregion
        #region[用户清单新增编辑]
        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName,string Password, string Enable, string StuOrg, string wagetype, string Mobile, string Email, string Operator, string OperType)
        public static ToMessage AddUpdateUser(string UserId, string UserCode, string UserName,string Password, string Enable, string StuOrg,string groupcode, string wagetype, string Mobile, string Email, string Operator, string OperType)
        {
            var dynamicParams = new DynamicParameters();
            try
            {
                if (OperType == "Add")
                {
                    var sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype)
                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype)";
                    var sql = @"insert into TUser(usercode,username,password,enable,mobile,lm_date,email,lm_user,stu_torgcode,wagetype,usergroup_code)
                            values(@UserCode,@UserName,@password,@Enable,@Mobile,@CreateDate,@Email,@Operator,@StuOrg,@wagetype,@groupcode)";
                    dynamicParams.Add("@UserCode", UserCode);
                    dynamicParams.Add("@UserName", UserName);
                    dynamicParams.Add("@password", Password);
@@ -435,6 +435,7 @@
                    dynamicParams.Add("@Operator", Operator);
                    dynamicParams.Add("@StuOrg", StuOrg);
                    dynamicParams.Add("@wagetype", wagetype);
                    dynamicParams.Add("@groupcode", groupcode);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
@@ -453,7 +454,7 @@
                }
                if (OperType == "Update")
                {
                    var sql = @"update TUser set username=@UserName,password=@password,enable=@Enable,mobile=@Mobile,lm_user=@Operator,email=@Email,stu_torgcode=@StuOrg,wagetype=@wagetype,lm_date=@CreateDate where id=@UserId";
                    var sql = @"update TUser set username=@UserName,password=@password,enable=@Enable,mobile=@Mobile,lm_user=@Operator,email=@Email,stu_torgcode=@StuOrg,wagetype=@wagetype,usergroup_code=@groupcode,lm_date=@CreateDate where id=@UserId";
                    dynamicParams.Add("@UserId", UserId);
                    dynamicParams.Add("@UserName", UserName);
                    dynamicParams.Add("@password", Password);
@@ -464,6 +465,7 @@
                    dynamicParams.Add("@Operator", Operator);
                    dynamicParams.Add("@StuOrg", StuOrg);
                    dynamicParams.Add("@wagetype", wagetype);
                    dynamicParams.Add("@groupcode", groupcode);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
VueWebApi/DLL/DAL/ErpSyncMesDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
using Dapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class ErpSyncMesDAL
    {
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        #region[制造模型:存货分类同步]
        public static ToMessage SeaveSearchInventoryClass(string username)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //存储过程名
                sql = @"h_p_IFCLD_ERPInventory_Class";
                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
                if (a)
                {
                    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 SeaveSearchInventory(string username)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //存储过程名
                sql = @"h_p_IFCLD_ERPInventory";
                dynamicParams.Add("@username", username);
                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
                if (a)
                {
                    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 SeaveSearchWhareHouseLocation(string username)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //存储过程名
                sql = @"h_p_IFCLD_ERPWhareHousesLocation";
                dynamicParams.Add("@username", username);
                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
                if (a)
                {
                    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 SeaveSearchPartner(string username)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //存储过程名
                sql = @"h_p_IFCLD_ERPPartner";
                dynamicParams.Add("@username", username);
                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
                if (a)
                {
                    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/ProductModelDAL.cs
@@ -872,15 +872,15 @@
                    //新增工艺路线表
                    sql = @"insert into TFlw_Rout(code,name,description,enable,lm_user,lm_date) values(@code,@name,@description,@enable,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, description = json.description, enable = json.enable, lm_user = username, lm_date = DateTime.Now.ToString() } });
                    string is_firststep = "N"; //是否首道工序
                    string is_laststep = "N"; //是否末道工序
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        string is_firststep = "N"; //是否首道工序
                        string is_laststep = "N"; //是否末道工序
                        if (json.Data.Rows[i]["SEQ"].ToString() == "1")  //是否首道工序
                        {
                            is_firststep = "Y";
                        }
                        if (Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()) == json.Data.Rows.Count) //是否末道工序
                        else if (Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()) == json.Data.Rows.Count) //是否末道工序
                        {
                            is_laststep = "Y";
                        }
VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -54,12 +54,12 @@
                if (paydatestartdate != "" && paydatestartdate != null)
                {
                    search += "and A.paydate between @paydatestartdate and @paydateenddate ";
                    dynamicParams.Add("@paydatestartdate", paydatestartdate);
                    dynamicParams.Add("@paydatestartdate", paydatestartdate+" 00:00:00");
                    dynamicParams.Add("@paydateenddate", paydateenddate + " 23:59:59");
                }
                if (createstartdate != "" && createstartdate != null)
                {
                    search += "and A.createdate between @paydatestartdate and @paydateenddate ";
                    search += "and A.createdate between @createstartdate and @createenddate ";
                    dynamicParams.Add("@createstartdate", createstartdate);
                    dynamicParams.Add("@createenddate", createenddate + " 23:59:59");
                }
@@ -494,7 +494,7 @@
                            from TFlw_Rtdt A
                            left join TStep B on A.step_code=B.stepcode
                            left join TFlw_Rout C on A.rout_code=C.code
                            where A.first_choke='Y' and A.rout_code=@routecode
                            where A.rout_code=@routecode
                            and B.is_delete<>'1' and C.enable='Y' and C.is_delete<>'1'";
                    list.Add(new
                    {
@@ -554,7 +554,7 @@
                            from TFlw_Rtdt A
                            left join TStep B on A.step_code=B.stepcode
                            left join TFlw_Rout C on A.rout_code=C.code
                            where A.first_choke='Y' and A.rout_code='R001'
                            where  A.rout_code=@routecode
                            and B.is_delete<>'1' and C.enable='Y' and C.is_delete<>'1'";
                    list.Add(new
                    {
@@ -567,6 +567,7 @@
                            planenddate = planenddate,
                            status = "ALLO",  //派发
                            username = username,
                            routecode= routecode,
                            CreateDate = DateTime.Now.ToString()
                        }
                    });
@@ -612,6 +613,8 @@
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    if (m_po != "" && m_po != null)
                    {
                    //查询生产订单表数据
                    sql = @"select *  from TKimp_Ewo where wo=@m_po";
                    dynamicParams.Add("@m_po", m_po);
@@ -628,6 +631,7 @@
                        //回写订单表状态及已下单数量
                        sql = @"update TKimp_Ewo set status='CREATING',relse_qty=relse_qty-@orderqty  where wo=@m_po";
                        list.Add(new { str = sql, parm = new { m_po = m_po, orderqty = decimal.Parse(orderqty) } });
                        }
                    }
                    //删除工单工序表
                    sql = @"delete TK_Wrk_Step  where wo_code=@wocode";
@@ -759,6 +763,11 @@
                    if (arra.Length == 1) //工单号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "请扫描工序二维码!";
                        mes.data = null;
                        return mes;
                    }
                    if (arra.Length == 2) //工单号+工序号二维码
                    {
@@ -766,12 +775,12 @@
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                    if (ordercode != "" && ordercode == null) //工单号不为空,工序号为空
                    if (ordercode != "" && ordercode != null) //工单号不为空,工序号为空
                    {
                        search += "and A.wo_code=@ordercode ";
                        dynamicParams.Add("@ordercode", ordercode);
                    }
                    if (ordercode != "" && ordercode != "") //工单号不为空,工序号不为空
                    if (ordercode != "" && stepcode != "") //工单号不为空,工序号不为空
                    {
                        search += "and A.wo_code=@ordercode ";
                        dynamicParams.Add("@ordercode", ordercode);
@@ -779,18 +788,18 @@
                        dynamicParams.Add("@stepcode", stepcode);
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "二维码信息为空!";
                    mes.data = null;
                    return mes;
                }
                //else
                //{
                //    mes.code = "300";
                //    mes.count = 0;
                //    mes.Message = "二维码信息为空!";
                //    mes.data = null;
                //    return mes;
                //}
                if (stepcode != "")
                {
                    //查找当前工序属性
                    sql = @"select *  from TStep where TStep where stepcode=@stepcode";
                    sql = @"select *  from TStep  where stepcode=@stepcode";
                    dynamicParams.Add("@stepcode", stepcode);
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0) 
@@ -859,18 +868,23 @@
                    if (arra.Length == 1) //工单号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "请扫描工序二维码!";
                        mes.data = null;
                        return mes;
                    }
                    if (arra.Length == 2) //工单号+工序号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                    if (ordercode != "" && ordercode == null) //工单号不为空,工序号为空
                    if (ordercode != "" && ordercode != null) //工单号不为空,工序号为空
                    {
                        search += "and A.wo_code=@ordercode ";
                        dynamicParams.Add("@ordercode", ordercode);
                    }
                    if (ordercode != "" && ordercode != "") //工单号不为空,工序号不为空
                    if (ordercode != "" && stepcode != "") //工单号不为空,工序号不为空
                    {
                        search += "and A.wo_code=@ordercode ";
                        dynamicParams.Add("@ordercode", ordercode);
@@ -878,18 +892,18 @@
                        dynamicParams.Add("@stepcode", stepcode);
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "二维码信息为空!";
                    mes.data = null;
                    return mes;
                }
                //else
                //{
                //    mes.code = "300";
                //    mes.count = 0;
                //    mes.Message = "二维码信息为空!";
                //    mes.data = null;
                //    return mes;
                //}
                if (stepcode != "")
                {
                    //查找当前工序属性
                    sql = @"select *  from TStep where TStep where stepcode=@stepcode";
                    sql = @"select *  from TStep  where stepcode=@stepcode";
                    dynamicParams.Add("@stepcode", stepcode);
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0)
@@ -959,7 +973,7 @@
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "二维码信息错误,请扫描工序任务卡或者报工打印标签!";
                        mes.Message = "请扫描工序条码!";
                        mes.data = null;
                        return mes;
                    }
@@ -1084,8 +1098,91 @@
            try
            {
                //班组获取人员列表
                sql = @"select usercode,username  from TUser where usergroup_code=@stepcode";
                sql = @"select usercode,username  from TUser where usergroup_code=@usergroupcode and is_delete<>'1'";
                dynamicParams.Add("@usergroupcode", usergroupcode);
                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 MesOrderSelectUser(string usercode)
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (usercode != "" && usercode != null) //工单号不为空,工序号为空
                {
                    search += "and usercode=@usercode ";
                    dynamicParams.Add("@usercode", usercode);
                }
                //班组获取人员列表
                sql = @"select usercode,username  from TUser where is_delete<>'1' "+search;
                dynamicParams.Add("@usercode", usercode);
                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 MesOrderStepSelectWX(string orderstepqrcode)
        {
            string sql = "";
            string ordercode = "";
            string stepcode = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (orderstepqrcode != "" && orderstepqrcode != null)
                {
                    string[] arra = orderstepqrcode.Split(';');
                    if (arra.Length == 1) //工单号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                    }
                    if (arra.Length == 2) //工单号+工序号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "二维码信息为空!";
                    mes.data = null;
                    return mes;
                }
                //获取外协下拉框
                sql = @"select C.code,C.name from TFlw_Rteqp A
                        left join TCustomer C on A.eqp_code=C.code
                        where A.step_code=@stepcode and A.style='W'";
                dynamicParams.Add("@stepcode", stepcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1346,7 +1443,7 @@
                string date = DateTime.Now.ToString(); //获取系统时间
                list.Clear();
                //判断是否有发料记录(有(同工单+工序+外协供方修改) æ— ï¼šæ–°å¢ž)
                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wxcode and style='F'";
                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='F'";
                dynamicParams.Add("@wo_code", mesordercode);
                dynamicParams.Add("@step_code", stepcode);
                dynamicParams.Add("@wx_code", wxcode);
@@ -1358,7 +1455,7 @@
                             where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, fqty = decimal.Parse(fqty), username = username, CreateDate = date } });
                    //写入子表
                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,out_person,out_time,fqty,syle,lm_user,lm_date)
                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,syle,lm_user,lm_date)
                                values(@m_id,@wx_code,@out_person,@out_time,@fqty,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = username, lm_date = date } });
                }
@@ -1373,7 +1470,7 @@
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'F', fqty = fqty, lm_user = username, lm_date = date } });
                    //写入子表
                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date)
                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date)
                                values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = username, lm_date = date } });
                }
@@ -1443,7 +1540,7 @@
                             where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, sqty = decimal.Parse(sqty), ngqty = decimal.Parse(ngqty), username = username, CreateDate = date } });
                    //写入外协记录子表
                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,syle,lm_user,lm_date)
                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,syle,lm_user,lm_date)
                                values(@m_id,@wx_code,@in_person,@in_time,@sqty,@ngqty,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, in_person = inuser, in_time = date, sqty = sqty, ngqty = ngqty, style = 'S', lm_user = username, lm_date = date } });
@@ -1470,7 +1567,7 @@
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = username, lm_date = date } });
                    //写入外协记录子表
                    sql = @"insert into  TK_Wrk_RecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date)
                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date)
                                values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
VueWebApi/Logs/2022-07-09.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,146 @@
 ã€æ—¶é—´ã€‘:2022-07-09 13:34:34,602
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 14
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:在应使用条件的上下文(在 'where' é™„è¿‘)中指定了非布尔类型的表达式。
引发异常路径:/api/ProductionManagement/MesOrderStepSearch
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
   åœ¨ Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-07-09 13:37:08,317
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 18
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:在应使用条件的上下文(在 'where' é™„è¿‘)中指定了非布尔类型的表达式。
引发异常路径:/api/ProductionManagement/MesOrderStepSearch
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
   åœ¨ Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-07-09 14:14:19,651
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:列名 'wo' æ— æ•ˆã€‚
列名 'wo' æ— æ•ˆã€‚
引发异常路径:/api/ProductionManagement/MesOrderWxStepSearch
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.QueryMultipleImpl(IDbConnection cnn, CommandDefinition& command)
   åœ¨ Dapper.SqlMapper.QueryMultiple(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.GetPageList[T](String sql, Object parm, String orderBy, String sort, Int32 pageIndex, Int32 pageSize, Int32& total) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 160
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-07-09 14:23:02,463
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 15
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:列名 'ordercode' æ— æ•ˆã€‚
引发异常路径:/api/ProductionManagement/MesOrderStepStart
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
   åœ¨ Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-07-09 14:23:40,893
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 11
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:列名 'ordercode' æ— æ•ˆã€‚
引发异常路径:/api/ProductionManagement/MesOrderStepStart
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
   åœ¨ Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Logs/2022-07-11.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
 ã€æ—¶é—´ã€‘:2022-07-11 12:36:17,564
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 14
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:必须声明标量变量 "@paydatestartdate"。
必须声明标量变量 "@paydatestartdate"。
引发异常路径:/api/ProductionManagement/ErpOrderSearch
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.QueryMultipleImpl(IDbConnection cnn, CommandDefinition& command)
   åœ¨ Dapper.SqlMapper.QueryMultiple(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.GetPageList[T](String sql, Object parm, String orderBy, String sort, Int32 pageIndex, Int32 pageSize, Int32& total) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 160
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
 ã€æ—¶é—´ã€‘:2022-07-11 15:31:11,814
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 15
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:列名 'ordercode' æ— æ•ˆã€‚
引发异常路径:/api/ProductionManagement/MesOrderStepStart
引发异常的方法: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.SqlDataReader.TryConsumeMetaData()
   åœ¨ System.Data.SqlClient.SqlDataReader.get_MetaData()
   åœ¨ 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   åœ¨ System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   åœ¨ System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
   åœ¨ Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
   åœ¨ Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
   åœ¨ VueWebApi.Tools.DapperHelper.selectdata(String sql, Object parm) ä½ç½® D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 195
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Logs/2022-07-13.TXT
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
 ã€æ—¶é—´ã€‘:2022-07-13 17:03:05,799
 ã€çº§åˆ«ã€‘:ERROR
 ã€ç±»åã€‘:日志记录
 ã€çº¿ç¨‹ID】: 18
 ã€æ–‡ä»¶åœ°å€ã€‘:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs ç¬¬25行
 ã€æ—¥å¿—内容】:
消息类型:SqlException
消息内容:列名 'wx_code' æ— æ•ˆã€‚
列名 'out_person' æ— æ•ˆã€‚
列名 'out_time' æ— æ•ˆã€‚
列名 'fqty' æ— æ•ˆã€‚
引发异常路径:/api/ProductionManagement/SavaMesOrderStepOut
引发异常的方法: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\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 391
 ã€æ—¥è®°è¯¦ç»†ã€‘:
---------------------------------------------------------------------------------------------------------------
VueWebApi/Models/ScanStartReportData.cs
@@ -12,6 +12,7 @@
        public string partname { get; set; } //产品名称
        public string partspec { get; set; } //产品规格
        public string seq { get; set; } //当前工序序号
        public string stepcode { get; set; } //当前工序编码
        public string stepname { get; set; } //当前工序
        public string nextstepcode { get; set; } //下道工序编码
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -384,13 +384,13 @@
      <publishTime>11/28/2018 13:04:24</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>07/08/2022 13:39:31</publishTime>
      <publishTime>07/13/2022 17:46:02</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll.config">
      <publishTime>06/15/2022 15:31:43</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>07/08/2022 13:39:31</publishTime>
      <publishTime>07/13/2022 17:46:02</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>06/16/2022 14:26:01</publishTime>
@@ -900,7 +900,7 @@
      <publishTime>06/30/2022 17:10:44</publishTime>
    </File>
    <File Include="Grid/webapp-ws-tutorial.htm">
      <publishTime>07/07/2022 20:19:19</publishTime>
      <publishTime>07/08/2022 15:15:11</publishTime>
    </File>
    <File Include="index.html">
      <publishTime>06/30/2022 14:02:46</publishTime>
VueWebApi/Tools/DapperHelper.cs
@@ -276,6 +276,41 @@
        }
        /// <summary>
        /// Dapper执行存储过程返回datatable数据(带参数)
        /// </summary>
        /// <param name="sql">存储过程名</param>
        /// <param name="parm">参数</param>
        /// <returns></returns>
        public static bool IsProcedure(string sql, Object parm)
        {
            bool result;
            //sql语句
            using (IDbConnection conn = sqlConnection())
            {
                try
                {
                    DataTable table = new DataTable();
                    //var data = conn.ExecuteReader(sql, parm);
                    var res = conn.ExecuteReader(sql, parm, commandType: CommandType.StoredProcedure);//sql å­˜å‚¨è¿‡ç¨‹
                    result = true;
                }
                catch (Exception ex)
                {
                    //创建日志记录组件实例
                    LogHelper.WriteLog(ex);
                    result = false;
                    throw ex;
                }
                finally
                {
                    conn.Dispose();
                    conn.Close();
                }
                return result;
            }
        }
        /// <summary>
        /// Dapper查询返回数据条数
        /// </summary>
        /// <param name="sql"></param>
VueWebApi/Tools/ScanStartReport.cs
@@ -57,14 +57,13 @@
                    flwtype = data.Rows[0]["FLWTYPE"].ToString();//获取工序属性
                    isbott = data.Rows[0]["ISBOTT"].ToString();//首道工序
                    isend = data.Rows[0]["ISEND"].ToString();//末道工序
                    seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    rt.seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    //获取当前工序下道工序
                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                            left join  TStep T on A.step_code=T.stepcode
                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stepcode", stepcode);
                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                    var dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0) //有下道工序
@@ -158,9 +157,8 @@
                            sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                            dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                            dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                            dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                            var data0 = DapperHelper.selectdata(sql, dynamicParams);
                            if (data0.Rows.Count > 0)
@@ -179,12 +177,12 @@
                                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data2.Rows.Count > 0) //有报工记录
                                    {
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        {
                                            //查找上到工序报工记录
                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有报工
                                            {
@@ -221,16 +219,16 @@
                                                return mes;
                                            }
                                        }
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        {
                                            //查找上到工序收料记录
                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有收料
                                            {
                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //上道收料数量
                                                string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//本道报工数量
                                                string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// æœ¬é“不良数量
                                                decimal sybqty = sqty - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//本道剩余可报数量=上道收料数量-本道报工数量-本道不良数量
@@ -266,12 +264,12 @@
                                    }
                                    else  //本道无报工记录
                                    {
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        {
                                            //查找上到工序报工记录
                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有报工
                                            {
@@ -296,16 +294,16 @@
                                                return mes;
                                            }
                                        }
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        {
                                            //查找上到工序收料记录
                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有收料
                                            {
                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                decimal sybqty = sqty;                   //本道剩余可报数量=上道收料数量
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -330,12 +328,12 @@
                                }
                                else //无开工记录
                                {
                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                    {
                                        //查找上到工序报工记录
                                        sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                        dynamicParams.Add("@ordercode", ordercode);
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data2.Rows.Count > 0) //上到工序有报工
                                        {
@@ -360,17 +358,17 @@
                                            return mes;
                                        }
                                    }
                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                    {
                                        //查找上道工序外协收料记录
                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                        dynamicParams.Add("@ordercode", ordercode);
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data2.Rows.Count > 0) //上道工序有收料
                                        {
                                            decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//收料数量
                                            decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// ä¸è‰¯æ•°é‡
                                            decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//收料数量
                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// ä¸è‰¯æ•°é‡
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.startqty = sqty;                                                  //开工数量=(上一道的收料数量)
@@ -471,14 +469,13 @@
                    flwtype = data.Rows[0]["FLWTYPE"].ToString();//获取工序属性
                    isbott = data.Rows[0]["ISBOTT"].ToString();//首道工序
                    isend = data.Rows[0]["ISEND"].ToString();//末道工序
                    seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    rt.seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    //获取当前工序下道工序
                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                            left join  TStep T on A.step_code=T.stepcode
                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stepcode", stepcode);
                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                    var dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0) //有下道工序
@@ -496,7 +493,7 @@
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "未找到当前工序的上道工序信息,请联系管理员核实!";
                    mes.Message = "当前扫码工序任务不存在!";
                    mes.data = null;
                    return mes;
                }
@@ -521,8 +518,8 @@
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)  //有发料记录
                                    {
                                        decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//发料数量
                                        decimal ng_qty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// ä¸è‰¯æ•°é‡
                                        decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //发料数量
                                        decimal ng_qty =data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// ä¸è‰¯æ•°é‡
                                        decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty;                                           //剩余可发数量
                                        if (kfqty <= 0)
                                        {
@@ -562,9 +559,8 @@
                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                    dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)
@@ -581,13 +577,13 @@
                                                //查找上到工序报工记录
                                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有报工
                                                {
                                                    string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//上道报工数量
                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// æœ¬é“不良数量
                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// æœ¬é“不良数量
                                                    decimal sybqty = decimal.Parse(sgood_qty) - sqty - ng_qty;//本道剩余可发数量=上道报工数量-本道发料数量-本道不良数量
                                                    if (sybqty <= 0)
@@ -625,13 +621,13 @@
                                                //查找上到工序收料记录
                                                sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有收料
                                                {
                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// æœ¬é“不良数量
                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// æœ¬é“不良数量
                                                    decimal sybqty = ssqty - sqty - ng_qty;//本道剩余可发数量=上道收料数量-本道发料数量-本道不良数量
                                                    if (sybqty <= 0)
@@ -672,7 +668,7 @@
                                                //查找上到工序报工记录
                                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有报工
                                                {
@@ -705,11 +701,11 @@
                                                //查找上到工序收料记录
                                                sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有收料
                                                {
                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                    decimal sybqty = ssqty;//本道剩余可发数量=上道收料数量
                                                    if (sybqty <= 0)
@@ -784,9 +780,9 @@
                                        var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data1.Rows.Count > 0) //有收料记录
                                        {
                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                            decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//本道收料数量
                                            decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//本道不良数量
                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                            decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//本道收料数量
                                            decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//本道不良数量
                                            decimal ksqty = fqty - sqty - ng_qty;                                                                                         //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                            if (ksqty <= 0)
                                            {
@@ -812,7 +808,7 @@
                                        }
                                        else
                                        {
                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.noreportqty = fqty;                                               //未收数量=本道发料数量
@@ -840,9 +836,8 @@
                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                    dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)
@@ -861,9 +856,9 @@
                                            var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data2.Rows.Count > 0) //有收料记录
                                            {
                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//本道收料数量
                                                decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//本道不良数量
                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//本道收料数量
                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//本道不良数量
                                                decimal ksqty = fqty - sqty - ng_qty;                                                                                         //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                                if (ksqty <= 0)
                                                {
@@ -888,7 +883,7 @@
                                            }
                                            else
                                            {
                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<Int32>("FQTY")).Sum();//本道发料数量
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                rt.noreportqty = fqty;                                               //未收数量=本道发料数量
VueWebApi/VueWebApi.csproj
@@ -259,6 +259,7 @@
    <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
    <Compile Include="Controllers\BasicSettingController.cs" />
    <Compile Include="Controllers\DeviceManagerController.cs" />
    <Compile Include="Controllers\ErpSyncMesController.cs" />
    <Compile Include="Controllers\GridReportController.cs" />
    <Compile Include="Controllers\ImportExcelController.cs" />
    <Compile Include="Controllers\LoginController.cs" />
@@ -269,6 +270,7 @@
    <Compile Include="Controllers\ValuesController.cs" />
    <Compile Include="DLL\BLL\BasicSettingBLL.cs" />
    <Compile Include="DLL\BLL\DeviceManagerBLL.cs" />
    <Compile Include="DLL\BLL\ErpSyncMesBLL.cs" />
    <Compile Include="DLL\BLL\ExcelCheckBLL.cs" />
    <Compile Include="DLL\BLL\GridReportBLL.cs" />
    <Compile Include="DLL\BLL\LoginBLL.cs" />
@@ -279,6 +281,7 @@
    <Compile Include="DLL\BLL\UserDataBLL.cs" />
    <Compile Include="DLL\DAL\BasicSettingDAL.cs" />
    <Compile Include="DLL\DAL\DeviceManagerDAL.cs" />
    <Compile Include="DLL\DAL\ErpSyncMesDAL.cs" />
    <Compile Include="DLL\DAL\ExcelCheckDAL.cs" />
    <Compile Include="DLL\DAL\GridReportDAL.cs" />
    <Compile Include="DLL\DAL\LoginDAL.cs" />
@@ -367,6 +370,7 @@
    <Content Include="grf\产品流传单A5.grf" />
    <Content Include="grf\报工产出标签.grf" />
    <Content Include="grf\报工打印标签.grf" />
    <Content Include="grf\外协收料标签.grf" />
    <None Include="Scripts\jquery-3.4.1.intellisense.js" />
    <Content Include="Scripts\jquery-3.4.1.js" />
    <Content Include="Scripts\jquery-3.4.1.min.js" />
VueWebApi/VueWebApi.csproj.user
@@ -10,9 +10,9 @@
    <UseGlobalApplicationHostFile />
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <NameOfLastUsedPublishProfile>D:\新凯迪MES\VueWebApi\VueWebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ProjectFiles</ProjectView>
    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
    <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
    <ProjectView>ShowAllFiles</ProjectView>
    <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
    <Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
    <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
    <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
    <WebStackScaffolding_IsPartialViewSelected>True</WebStackScaffolding_IsPartialViewSelected>
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -865,6 +865,24 @@
            <param name="devicecode">设备编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchInventoryClass">
            <summary>
            åˆ¶é€ æ¨¡åž‹ï¼šå­˜è´§åˆ†ç±»åŒæ­¥
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchInventory">
            <summary>
            åˆ¶é€ æ¨¡åž‹ï¼šå­˜è´§æ¡£æ¡ˆåŒæ­¥
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ErpSyncMesController.SeaveSearchWhareHouseLocation">
            <summary>
            ç‰©æ–™ç®¡ç†ï¼šä»“库库位同步
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.GridReportController.MesOrderPrintSearch(System.String,System.String)">
            <summary>
            MES工单打印
@@ -1179,9 +1197,23 @@
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderGroupSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå¼€å·¥æ—¶èŽ·å–è®¾å¤‡ä¸‹æ‹‰åˆ—è¡¨
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šæ ¹æ®ç”Ÿäº§ç­ç»„查找人员列表
            </summary>
            <param name="usergroupcode">班组编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderSelectUser(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šäººå‘˜ä¸‹æ‹‰åˆ—表
            </summary>
            <param name="usercode">人员编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSelectWX(System.String)">
            <summary>
            ç”Ÿäº§å¼€æŠ¥å·¥ï¼šå‘æ–™/收料时获取外协下拉列表
            </summary>
            <param name="orderstepqrcode">扫描二维码信息</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSelectCause(System.String)">
@@ -1616,6 +1648,14 @@
            <param name="parm">参数</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.IsProcedure(System.String,System.Object)">
            <summary>
            Dapper执行存储过程返回datatable数据(带参数)
            </summary>
            <param name="sql">存储过程名</param>
            <param name="parm">参数</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.selectcount(System.String,System.Object)">
            <summary>
            Dapper查询返回数据条数
VueWebApi/grf/ÍâЭÊÕÁϱêÇ©.grf
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,310 @@
{
    "Version":"6.8.2.2",
    "Title":"你的报表标题",
    "PrintAsDesignPaper":false,
    "Font":{
        "Name":"宋体",
        "Size":52500,
        "Weight":400,
        "Charset":134
    },
    "WatermarkAlignment":"BottomRight",
    "Printer":{
        "Size":256,
        "Width":4,
        "Height":7.5,
        "Oriention":"Landscape",
        "LeftMargin":0.1,
        "TopMargin":0,
        "RightMargin":0.1,
        "BottomMargin":0
    },
    "DetailGrid":{
        "CenterView":true,
        "Border":{
            "Pen":{
                "Width":1.5
            }
        },
        "Recordset":{
            "Field":[
                {
                    "Name":"工单编号",
                    "DBFieldName":"wo_code"
                },
                {
                    "Name":"产品编码",
                    "DBFieldName":"partcode"
                },
                {
                    "Name":"产品名称",
                    "DBFieldName":"partname"
                },
                {
                    "Name":"下道工序",
                    "DBFieldName":"next_stepname"
                },
                {
                    "Name":"数量",
                    "DBFieldName":"qty"
                },
                {
                    "Name":"二维码",
                    "DBFieldName":"qrcode"
                }
            ]
        },
        "ColumnContent":{
            "Height":0,
            "AdjustRowHeight":false
        },
        "ColumnTitle":{
            "Height":0,
            "RepeatStyle":"OnPage"
        }
    },
    "Parameter":[
        {
            "Name":"Parameter1"
        },
        {
            "Name":"Parameter2"
        }
    ],
    "ReportHeader":[
        {
            "Name":"ReportHeader1",
            "Height":3.20146,
            "Control":[
                {
                    "Type":"Line",
                    "Name":"Line1",
                    "Left":0.211667,
                    "Top":0.105833,
                    "Width":6.91333
                },
                {
                    "Type":"Line",
                    "Name":"Line2",
                    "Left":0.21,
                    "Top":3.09563,
                    "Width":6.90729
                },
                {
                    "Type":"Line",
                    "Name":"Line3",
                    "Left":0.2,
                    "Top":0.105833,
                    "Height":2.99
                },
                {
                    "Type":"Line",
                    "Name":"Line4",
                    "Left":7.1,
                    "Top":0.105833,
                    "Height":2.98979
                },
                {
                    "Type":"Line",
                    "Name":"Line5",
                    "Left":2.40771,
                    "Top":0.105833,
                    "Height":2.98979
                },
                {
                    "Type":"Barcode",
                    "Name":"Barcode1",
                    "Left":0.423333,
                    "Top":0.291042,
                    "Width":1.82563,
                    "Height":1.66688,
                    "BarcodeType":"QRCode",
                    "CaptionPosition":"None",
                    "Text":"[#二维码#]"
                },
                {
                    "Type":"Line",
                    "Name":"Line6",
                    "Left":2.40771,
                    "Top":0.873125,
                    "Width":4.68229
                },
                {
                    "Type":"Line",
                    "Name":"Line7",
                    "Left":2.40771,
                    "Top":1.64042,
                    "Width":4.68229
                },
                {
                    "Type":"Line",
                    "Name":"Line8",
                    "Left":0.21,
                    "Top":2.38125,
                    "Width":6.88
                },
                {
                    "Type":"StaticBox",
                    "Name":"StaticBox1",
                    "Left":0.396875,
                    "Top":2.51354,
                    "Width":1.00542,
                    "Height":0.423333,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"数量:"
                },
                {
                    "Type":"MemoBox",
                    "Name":"MemoBox1",
                    "Left":1.34938,
                    "Top":2.51354,
                    "Width":0.978958,
                    "Height":0.4,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"[#数量#]"
                },
                {
                    "Type":"StaticBox",
                    "Name":"StaticBox2",
                    "Left":2.51,
                    "Top":0.185208,
                    "Width":1.69333,
                    "Height":0.635,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"工单编号:"
                },
                {
                    "Type":"MemoBox",
                    "Name":"MemoBox2",
                    "Left":4.20688,
                    "Top":0.185208,
                    "Width":2.75,
                    "Height":0.66,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"[#工单编号#]"
                },
                {
                    "Type":"StaticBox",
                    "Name":"StaticBox3",
                    "Left":2.51,
                    "Top":0.9525,
                    "Width":1.69333,
                    "Height":0.635,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"产品编码:"
                },
                {
                    "Type":"MemoBox",
                    "Name":"MemoBox3",
                    "Left":4.23333,
                    "Top":0.9525,
                    "Width":2.75,
                    "Height":0.66,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"[#产品编码#]"
                },
                {
                    "Type":"StaticBox",
                    "Name":"StaticBox4",
                    "Left":2.54,
                    "Top":1.71979,
                    "Width":1.69,
                    "Height":0.58,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"产品名称:"
                },
                {
                    "Type":"MemoBox",
                    "Name":"MemoBox4",
                    "Left":4.25979,
                    "Top":1.71979,
                    "Width":2.75167,
                    "Height":0.582083,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"[#产品名称#]"
                },
                {
                    "Type":"StaticBox",
                    "Name":"StaticBox5",
                    "Left":2.56646,
                    "Top":2.48708,
                    "Width":1.69333,
                    "Height":0.529167,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"下道工序:"
                },
                {
                    "Type":"MemoBox",
                    "Name":"MemoBox5",
                    "Left":4.28625,
                    "Top":2.48708,
                    "Width":2.75,
                    "Height":0.53,
                    "PaddingTop":0,
                    "Font":{
                        "Name":"宋体",
                        "Size":90000,
                        "Weight":400,
                        "Charset":134
                    },
                    "Text":"[#下道工序#]"
                }
            ],
            "RepeatOnPage":true
        }
    ]
}
VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Debug/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
24cdde91ac8c6d255eb178d7de969e3b6dcc461c
125a795aa5c2462dc5d311a148e283020224013c
VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
@@ -159,4 +159,3 @@
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CopyComplete
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.dll
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.AssemblyReference.cache
VueWebApi/obj/Debug/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/Grid/webapp-ws-tutorial.htm
@@ -58,8 +58,7 @@
        function ws_ajax_preview() {
            //参数具体说明请参考帮助文档中的“WEB报表(B/S报表)->WEB报表客户端->启动参数说明”部分
            var args = {
                /*report: urlAddRandomNo("../grf/产品流传单A5.grf"),*/
                report: urlAddRandomNo("https://121.196.36.24:8001/grf/产品流传单A5.grf"),
                report: urlAddRandomNo("../grf/产品流传单A5.grf"),
                data:
                {
                    "recordset": [
@@ -143,115 +142,11 @@
        }
    </script>
    <p><a href='javascript:ws_ajax_export_xls();'>导出Excel(AJAX)</a>通过AJAX方式获取报表模板与报表数据</p>
    <script language="javascript" type="text/javascript">
        function ws_ajax_export_xls() {
            var args = {
                type: "xls",
                report: urlAddRandomNo("../grf/1a.grf"),
                data: "../data/DataCenter.ashx?data=Customer",
                reportid: "1a" //这个参数不是必须的,只是用于回发消息标识报表身份
            };
            webapp_ws_ajax_run(args);
        }
    </script>
    <h3>自定义打印参数</h3>
    <p> <a href='javascript:print_arguments();'>自定义打印参数</a>:指定打印机,设置逐份打印与打印份数。</p>
    <script language="javascript" type="text/javascript">
        function print_arguments() {
            var args = {
                type: "print",   //如果是要进行打印,将 type è®¾ç½®ä¸º print
                report: urlAddRandomNo("../grf/1a.grf"),
                data: "../data/DataCenter.ashx?data=Customer",
                PrinterName: "Microsoft Print to PDF", //指定要输出的打印机名称
                Collate: false,  //不按逐份方式打印
                Copies: 5        //共打印5份
            }
            webapp_ws_ajax_run(args);
        }
    </script>
    
    <p> <a href='javascript:export_xls_custom();'>自定义导出Excel</a>:设置合适的选项参数,将数据导出为连续的表格,页眉页脚不导出,不显示导出参数对话框等。</p>
    <script language="javascript" type="text/javascript">
        function export_xls_custom() {
            var args = {
                report:urlAddRandomNo("../grf/1a.grf"),
                data: "../data/DataCenter.ashx?data=Customer",
                type: "xls",
                ExportPageBreak: false,
                ExportPageHeaderFooter: false,
                SameAsPrint: false,
                showOptionDlg: false,  //指定不显示导出选项对话框
                filename: "d:\\temp\\gridreport.xls", //指定导出的文件路径与文件名
                //open: false  //指定导出后不自动打开文件
            }
            webapp_ws_ajax_run(args);
        }
    </script>
    <h3>更多应用方式</h3>
    <p><a href='javascript:ws_data_from_string();'>打印预览(报表数据来自字符串)</a>:通过WebSocket直接将网页中的字符串数据传递给WEB报表客户端。</p>
    <script language="javascript" type="text/javascript">
        function ws_data_from_string() {
            var args = {
                type: "preview", //设置不同的属性可以执行不同的任务,如:preview print pdf xls csv txt rtf img grd
                report: urlAddRandomNo("../grf/1a.grf"),
                //实际应用中,data应该为程序中通过各种途径获取到的数据,最后要将数据转换为报表需要的XML或JSON格式的字符串数据
                data:"<xml>" +
                    "<row><CustomerID>HUNGC</CustomerID><CompanyName>五金机械</CompanyName><ContactName>苏先生</ContactName><ContactTitle>销售代表</ContactTitle></row>" +
                    "<row><CustomerID>CENTC</CustomerID><CompanyName>三捷实业</CompanyName><ContactName>王先生</ContactName><ContactTitle>市场经理</ContactTitle></row>" +
                    "<row><CustomerID>CACTU</CustomerID><CompanyName>威航货运</CompanyName><ContactName>刘先生</ContactName><ContactTitle>销售代理</ContactTitle></row>" +
                    "</xml>",
                    reportid: "ws_data_from_string" //这个参数不是必须的,只是用于回发消息标识报表身份
                };
            webapp_ws_ajax_run(args);
        }
    </script>
    <p><a href='javascript:ws_data_from_object();'>打印预览(报表数据来自JSON对象)</a>:通过WebSocket直接将网页中的JSON对象数据传递给WEB报表客户端。</p>
    <script language="javascript" type="text/javascript">
        function ws_data_from_object() {
            var args = {
                type: "preview", //设置不同的属性可以执行不同的任务,如:preview print pdf xls csv txt rtf img grd
                report: urlAddRandomNo("../grf/1a.grf"),
                //实际应用中,data应该为程序中通过各种途径获取到的数据,最后要将数据转换为报表需要的XML或JSON格式的字符串数据
                data:
                {
                    "recordset": [
                        {
                            "CustomerID": "ALFKI",
                            "CompanyName": "三川实业有限公司",
                            "ContactName": "刘小姐",
                            "Address": "大崇明路 50 å·",
                            "City": "天津",
                            "Region": "华北",
                            "PostalCode": "343567",
                            "Phone": "(030) 30074321"
                        },
                        {
                            "CustomerID": "ANATR",
                            "CompanyName": "东南实业",
                            "ContactName": "王先生",
                            "Address": "承德西路 80 å·",
                            "City": "天津",
                            "Region": "华北",
                            "PostalCode": "234575",
                            "Phone": "(030) 35554729"
                        }
                    ]
                },
                reportid: "ws_data_from_object" //这个参数不是必须的,只是用于回发消息标识报表身份
            };
            webapp_ws_ajax_run(args);
        }
    </script>
</body>
</html>
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
f6225c264d26e4a01256c6511852917a12739a76
f4cc57ce654eabbfabfa8274d88d8d88dfe841c3
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ