yl
2024-10-30 65a9633ebcf5cf4c0871d1c857a743ec7694c157
1.生产入库功能接口
2.生产入库单报表接口
已添加1个文件
已修改7个文件
818 ■■■■■ 文件已修改
VueWebCoreApi/Controllers/ReportManagerController.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Controllers/WorkOrderController.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Models/InventoryModel/StorageRecord.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Tools/DapperHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Controllers/ReportManagerController.cs
@@ -5,6 +5,8 @@
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.InventoryModel;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.Controllers
@@ -596,5 +598,89 @@
            return Json(mes);
        }
        #endregion
        #region[入库记录]
        /// <summary>
        /// å…¥åº“记录
        /// </summary>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <param name="hbillno">入库单号</param>
        /// <param name="sono">销售单号</param>
        /// <param name="mono">订单号</param>
        /// <param name="wocode">工单号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="stockcode">仓库编码</param>
        /// <param name="responddate">单据日期</param>
        /// <returns></returns>
        [Route(template: "StorageRecordSearch")]
        [HttpGet]
        public JsonResult StorageRecordSearch(int page, int rows, string prop, string order, string hbillno = null, string sono = null, string mono = null, string wocode = null, string partcode = null,string partname=null, string stockcode=null,string responddate=null)
        {
            string respondopendate = "";     //单据开始时间
            string respondclosedate = "";    //单据结束时间
            if (responddate != "" && responddate != null)
            {
                respondopendate = responddate.Split('~')[0].ToString();
                respondclosedate = responddate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.StorageRecordSearch(hbillno, sono, mono, wocode, partcode, partname, stockcode, respondopendate, respondclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[入库记录删除]
        /// <summary>
        /// å…¥åº“记录删除
        /// </summary>
        /// <param name="json">提交数据</param>
        /// <returns></returns>
        [Route(template: "DeleteStorageRecord")]
        [HttpPost]
        public JsonResult DeleteStorageRecord(List<StorageRecord> json)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = ReportManagerBLL.DeleteStorageRecord(json, us);
            return Json(mes);
        }
        #endregion
        #region[入库记录导出]
        /// <summary>
        /// å…¥åº“记录导出
        /// </summary>
        /// <param name="hbillno">入库单号</param>
        /// <param name="sono">销售单号</param>
        /// <param name="mono">订单号</param>
        /// <param name="wocode">工单号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="stockcode">仓库编码</param>
        /// <param name="responddate">单据日期</param>
        /// <returns></returns>
        [Route(template: "StorageRecordExcelSearch")]
        [HttpGet]
        public JsonResult StorageRecordExcelSearch(string hbillno = null, string sono = null, string mono = null, string wocode = null, string partcode = null,string partname=null, string stockcode = null, string responddate = null)
        {
            string respondopendate = "";     //单据开始时间
            string respondclosedate = "";    //单据结束时间
            if (responddate != "" && responddate != null)
            {
                respondopendate = responddate.Split('~')[0].ToString();
                respondclosedate = responddate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.StorageRecordExcelSearch(hbillno, sono, mono, wocode, partcode, partname, stockcode, respondopendate, respondclosedate);
            return Json(mes);
        }
        #endregion
    }
}
VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -833,9 +833,23 @@
        }
        #endregion
        #region[通易T8生产入库提交]
        #region[生产入库获取部门信息]
        /// <summary>
        /// é€šæ˜“T8生产入库提交
        /// ç”Ÿäº§å…¥åº“获取部门信息
        /// </summary>
        /// <returns></returns>
        [Route(template: "DeptSelectData")]
        [HttpGet]
        public JsonResult DeptSelectData()
        {
            mes = WorkOrderBLL.DeptSelectData();
            return Json(mes);
        }
        #endregion
        #region[通易T8生产入库提交-代码版]
        /// <summary>
        /// é€šæ˜“T8生产入库提交-代码版
        /// </summary>
        /// <param name="data">提交数据</param>
        /// <returns></returns>
@@ -850,5 +864,23 @@
            return Json(mes);
        }
        #endregion
        #region[通易T8生产入库提交-存储过程版(适用同一台服务器,同一个数据库)]
        /// <summary>
        /// é€šæ˜“T8生产入库提交-存储过程版(适用同一台服务器,同一个数据库)
        /// </summary>
        /// <param name="data">提交数据</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseOrderSpSeave")]
        [HttpPost]
        public JsonResult ProductInHouseOrderSpSeave(InReptModel data)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            //var token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyY29kZSI6Ijk5OTkiLCJ1c2VybmFtZSI6Iuezu-e7n-euoeeQhuWRmCIsInN0b3JnX2NvZGUiOiIiLCJzdG9yZ19uYW1lIjoiIiwiaXNfc3lzdGVtX2FkbWluIjoiWSIsInJvbGVfY29kZSI6IiIsInJvbGVfZGF0YXBlcm1pc3Npb25zIjoiIiwidXNlcnR5cGUiOiJQQyIsInJlZGlza2V5IjoiTmV3TUVTTG9naW5Vc2VySURQQzk5OTkiLCJtZXNTZXR0aW5nIjoie1wicm91dGVcIjp0cnVlLFwiaXNPcmRlclwiOnRydWUsXCJkZXZpY2VcIjp0cnVlLFwidGVjaFwiOnRydWUsXCJ3b3JrT3JkZXJcIjp0cnVlLFwiZXZlcnlcIjpmYWxzZSxcImxhc3RcIjpmYWxzZX0iLCJ0aW1lb3V0IjoiMjAyNC0xMC0yNFQxMjozNTo1MC4zNDI1NzE2KzA4OjAwIn0.Nbc-1sXd4QLLsnj8wH9XC7iWEmP0wDG82gwLxIh94e4";
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.ProductInHouseOrderSpSeave(data, us);
            return Json(mes);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
@@ -3,6 +3,8 @@
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.DLL.DAL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.InventoryModel;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.DLL.BLL
@@ -134,5 +136,27 @@
            return ReportManagerDAL.AnDonReportSumExcelSearch(wkshopcode, eqpcode, calltypecode, callopendate, callclosedate, respondopendate, respondclosedate);
        }
        #endregion
        #region[入库记录]
        public static ToMessage StorageRecordSearch(string hbillno, string sono, string mono, string wocode, string partcode,string partname, string stockcode, string respondopendate, string respondclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.StorageRecordSearch(hbillno,sono,mono,wocode,partcode, partname,stockcode, respondopendate,respondclosedate,startNum,endNum,prop,order);
        }
        #endregion
        #region[入库记录删除]
        public static ToMessage DeleteStorageRecord(List<StorageRecord> json, User us)
        {
            return ReportManagerDAL.DeleteStorageRecord(json,us);
        }
        #endregion
        #region[入库记录导出]
        public static ToMessage StorageRecordExcelSearch(string hbillno, string sono, string mono, string wocode, string partcode,string partname, string stockcode, string respondopendate, string respondclosedate)
        {
            return ReportManagerDAL.StorageRecordExcelSearch(hbillno, sono, mono, wocode, partcode, partname, stockcode, respondopendate, respondclosedate);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -269,11 +269,25 @@
        }
        #endregion
        #region[通易T8生产入库提交]
        #region[生产入库获取部门信息]
        public static ToMessage DeptSelectData()
        {
            return WorkOrderDAL.DeptSelectData();
        }
        #endregion
        #region[通易T8生产入库提交-代码版]
        public static ToMessage ProductInHouseOrderSeave(InReptModel data, User us)
        {
            return WorkOrderDAL.ProductInHouseOrderSeave(data, us);
        }
        #endregion
        #region[通易T8生产入库提交-存储过程版(适用同一台服务器,同一个数据库)]
        public static ToMessage ProductInHouseOrderSpSeave(InReptModel data, User us)
        {
            return WorkOrderDAL.ProductInHouseOrderSpSeave(data, us);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
@@ -5,6 +5,8 @@
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.InventoryModel;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.DLL.DAL
@@ -20,7 +22,7 @@
        #region[生产进度报表]
        public static ToMessage ProductionScheduleReportSearch(string wkshopcode, string status,string socode, string wocode, string partcode, string partname, string partspec, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        public static ToMessage ProductionScheduleReportSearch(string wkshopcode, string status, string socode, string wocode, string partcode, string partname, string partspec, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -118,7 +120,7 @@
        #endregion
        #region[生产进度报表导出]
        public static ToMessage ProductionScheduleReportExcelSearch(string wkshopcode, string status,string socode, string wocode,string partcode, string partname, string partspec, string opendate, string closedate)
        public static ToMessage ProductionScheduleReportExcelSearch(string wkshopcode, string status, string socode, string wocode, string partcode, string partname, string partspec, string opendate, string closedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -222,7 +224,7 @@
        #region[班组工资报表记录查询]
        public static ToMessage GroupSalaryReportSearch(string compute,string wkshopcode,string socode, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
        public static ToMessage GroupSalaryReportSearch(string compute, string wkshopcode, string socode, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -233,7 +235,7 @@
                    search += "and P.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                if (wkshopcode != "" && wkshopcode != null)
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and K.wkshp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
@@ -353,7 +355,7 @@
        #endregion
        #region[班组工资报表记录导出]
        public static ToMessage GroupSalaryReportExcelSearch(string compute,string wkshopcode,string socode, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
        public static ToMessage GroupSalaryReportExcelSearch(string compute, string wkshopcode, string socode, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -455,7 +457,7 @@
        #region[人员工资明细报表]
        public static ToMessage PeopleSalaryReportSearch(string compute,string wkshopcode,string socode, string wocode, string partcode, string partname, string partspec,string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        public static ToMessage PeopleSalaryReportSearch(string compute, string wkshopcode, string socode, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -578,7 +580,7 @@
        #endregion
        #region[人员工资明细报表导出]
        public static ToMessage PeopleSalaryReportSearch(string compute,string wkshopcode,string socode, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
        public static ToMessage PeopleSalaryReportSearch(string compute, string wkshopcode, string socode, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -1382,11 +1384,6 @@
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
@@ -1468,11 +1465,6 @@
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
@@ -1542,11 +1534,6 @@
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
@@ -1610,11 +1597,6 @@
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
@@ -1645,5 +1627,309 @@
            return mes;
        }
        #endregion
        #region[入库记录]
        public static ToMessage StorageRecordSearch(string hbillno, string sono, string mono, string wocode, string partcode, string partname, string stockcode, string respondopendate, string respondclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (hbillno != "" && hbillno != null)
                {
                    search += "and AA.hbillno like '%'+@hbillno+'%' ";
                    dynamicParams.Add("@hbillno", hbillno);
                }
                if (sono != "" && sono != null)
                {
                    search += "and AA.salecode like '%'+@sono+'%' ";
                    dynamicParams.Add("@sono", sono);
                }
                if (mono != "" && mono != null)
                {
                    search += "and AA.mo_no like '%'+@mono+'%' ";
                    dynamicParams.Add("@mono", mono);
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wocode like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode  like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname  like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (stockcode != "" && stockcode != null)
                {
                    search += "and AA.stockcode=@stockcode ";
                    dynamicParams.Add("@stockcode", stockcode);
                }
                if (respondopendate != "" && respondopendate != null)
                {
                    search += "and AA.hbdate between @respondopendate and @respondclosedate ";
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *  from(
                           select A.hbillno,A.hbdate,B.salecode,B.mo_no,B.wocode,B.partcode,P.partname,P.partspec,M.wkshp_code,T.torg_name as wkshp_name,B.stockcode,S.name as stockname,
                           B.qty,B.inbarcode,R.step_code,E.stepname,R.style,A.create_user,A.create_date
                           from TK_WMS_Inwh_Main A
                           inner join TK_WMS_Inwh_Sub B on A.hbillno=B.hbillno
                           inner join TK_Wrk_Record R on B.inbarcode=R.inbarcode
                           left join  TK_Wrk_Man M on B.wocode=M.wo_code
                           left join  TMateriel_Info P on B.partcode=P.partcode
                           left join  TSecStck S on B.stockcode=S.code
                           left join  TStep E on R.step_code=E.stepcode
                           left join  TOrganization T on M.wkshp_code=T.torg_code
                           union all
                           select A.hbillno,A.hbdate,B.salecode,B.mo_no,B.wocode,B.partcode,P.partname,P.partspec,M.wkshp_code,T.torg_name as wkshp_name,B.stockcode,S.name as stockname,
                           B.qty,B.inbarcode,O.step_code,E.stepname,O.style,A.create_user,A.create_date
                           from TK_WMS_Inwh_Main A
                           inner join TK_WMS_Inwh_Sub B on A.hbillno=B.hbillno
                           inner join TK_Wrk_OutRecord O on B.inbarcode=O.inbarcode
                           left join  TK_Wrk_Man M on B.wocode=M.wo_code
                           left join  TMateriel_Info P on B.partcode=P.partcode
                           left join  TSecStck S on B.stockcode=S.code
                           left join  TStep E on O.step_code=E.stepcode
                           left join  TOrganization T on M.wkshp_code=T.torg_code
                           ) as AA where 1=1 " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[入库记录删除]
        public static ToMessage DeleteStorageRecord(List<StorageRecord> json, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                // ä½¿ç”¨LINQ的lambda表达式根据hbillno分组并统计每个组的条数
                var groupedRecords = json.GroupBy(r => r.hbillno).Select(g => new{hbillno = g.Key,count = g.Count()}).ToList();
                for (int i = 0; i < groupedRecords.Count; i++)
                {
                    //查询入库单子表的数据条数
                    sql = @"select *  from TK_WMS_Inwh_Sub where hbillno=@hbillno";
                    dynamicParams.Add("@hbillno", groupedRecords[i].hbillno);
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    //子表有对应入库单号数据且数据条数等于提交的入库条数
                    if (data.Rows.Count > 0 && data.Rows.Count == groupedRecords[i].count)
                    {
                        //删除入库单主表
                        sql = @"delete  TK_WMS_Inwh_Main  where hbillno=@hbillno";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                hbillno = groupedRecords[i].hbillno.ToString()
                            }
                        });
                    }
                }
                for (int i = 0; i < json.Count; i++)
                {
                    //删除入库单子表
                    sql = @"delete  TK_WMS_Inwh_Sub  where hbillno=@hbillno  and inbarcode=@inbarcode";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbillno = json[i].hbillno.ToString(),
                            inbarcode = json[i].inbarcode.ToString()
                        }
                    });
                    if (json[i].style == "B")
                    {
                        //自制报工记录表入库数量
                        sql = @"update TK_Wrk_Record set inhouseqty=inhouseqty-@qty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                qty = json[i].qty.ToString(),
                                inbarcode = json[i].inbarcode.ToString()
                            }
                        });
                    }
                    if (json[i].style == "S")
                    {
                        //外协收料记录表入库数量
                        sql = @"update TK_Wrk_OutRecord set inhouseqty=inhouseqty-@qty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                qty = json[i].qty.ToString(),
                                inbarcode = json[i].inbarcode.ToString()
                            }
                        });
                    }
                    //清除工序任务表累计入库数量
                    sql = @"update TK_Wrk_Step set inhouseqty=inhouseqty-@qty where wo_code=@wocode and step_code=@stepcode and isend='Y'";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            qty = json[i].qty.ToString(),
                            wocode = json[i].wocode.ToString(),
                            stepcode = json[i].step_code.ToString()
                        }
                    });
                }
                bool aa = DapperHelper.DoTransaction(list);
                LogHelper.WriteLogData(aa.ToString());
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "删除了入库单:"+ string.Join(",", json.Select(r => $"{r.hbillno},{r.inbarcode}")), us.usertype);
                    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 StorageRecordExcelSearch(string hbillno, string sono, string mono, string wocode, string partcode, string partname, string stockcode, string respondopendate, string respondclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (hbillno != "" && hbillno != null)
                {
                    search += "and AA.hbillno like '%'+@hbillno+'%' ";
                    dynamicParams.Add("@hbillno", hbillno);
                }
                if (sono != "" && sono != null)
                {
                    search += "and AA.salecode like '%'+@sono+'%' ";
                    dynamicParams.Add("@sono", sono);
                }
                if (mono != "" && mono != null)
                {
                    search += "and AA.mo_no like '%'+@mono+'%' ";
                    dynamicParams.Add("@mono", mono);
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wocode like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode  like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname  like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (stockcode != "" && stockcode != null)
                {
                    search += "and AA.stockcode=@stockcode ";
                    dynamicParams.Add("@stockcode", stockcode);
                }
                if (respondopendate != "" && respondopendate != null)
                {
                    search += "and A.hbdate between @respondopendate and @respondclosedate ";
                    dynamicParams.Add("@respondopendate", respondopendate + " 00:00:00");
                    dynamicParams.Add("@respondclosedate", respondclosedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select AA.hbillno as å…¥åº“单号,AA.hbdate as å•据日期,AA.salecode as é”€å”®å•号,AA.mo_no as è®¢å•号,AA.wocode as å·¥å•号,AA.partcode as äº§å“ç¼–码,AA.partname as äº§å“åç§°,
                            AA.partspec as äº§å“è§„æ ¼,AA.wkshp_code as è½¦é—´ç¼–码,AA.torg_name as è½¦é—´åç§°,AA.stockcode as ä»“库编码,AA.stockname as ä»“库名称, AA.qty as å…¥åº“数量,
                            AA.step_code as å·¥åºç¼–码,AA.stepname as å·¥åºåç§°,AA.create_user as åˆ›å»ºäººå‘˜,AA.create_date as åˆ›å»ºæ—¶é—´
                           from(
                           select A.hbillno,A.hbdate,B.salecode,B.mo_no,B.wocode,B.partcode,P.partname,P.partspec,M.wkshp_code,T.torg_name,B.stockcode,S.name as stockname,
                           B.qty,B.inbarcode,R.step_code,E.stepname,R.style,A.create_user,A.create_date
                           from TK_WMS_Inwh_Main A
                           inner join TK_WMS_Inwh_Sub B on A.hbillno=B.hbillno
                           inner join TK_Wrk_Record R on B.inbarcode=R.inbarcode
                           left join  TK_Wrk_Man M on B.wocode=M.wo_code
                           left join  TMateriel_Info P on B.partcode=P.partcode
                           left join  TSecStck S on B.stockcode=S.code
                           left join  TStep E on R.step_code=E.stepcode
                           left join  TOrganization T on M.wkshp_code=T.torg_code
                           union all
                           select A.hbillno,A.hbdate,B.salecode,B.mo_no,B.wocode,B.partcode,P.partname,P.partspec,M.wkshp_code,T.torg_name as wkshp_name,B.stockcode,S.name as stockname,
                           B.qty,B.inbarcode,O.step_code,E.stepname,O.style,A.create_user,A.create_date
                           from TK_WMS_Inwh_Main A
                           inner join TK_WMS_Inwh_Sub B on A.hbillno=B.hbillno
                           inner join TK_Wrk_OutRecord O on B.inbarcode=O.inbarcode
                           left join  TK_Wrk_Man M on B.wocode=M.wo_code
                           left join  TMateriel_Info P on B.partcode=P.partcode
                           left join  TSecStck S on B.stockcode=S.code
                           left join  TStep E on O.step_code=E.stepcode
                           left join  TOrganization T on M.wkshp_code=T.torg_code
                           ) as AA where 1=1 " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "入库记录报表");
                mes.code = "200";
                mes.message = "查询成功!";
                mes.count = total;
                mes.data = msg;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -130,7 +130,7 @@
        #endregion
        #region[ERP订单下达]
        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode,string deptcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string paystartdate, string payenddate, string clerkuser, User us)
        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string deptcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string paystartdate, string payenddate, string clerkuser, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
@@ -212,7 +212,7 @@
                                wo_code = wo,
                                wotype = "PO",
                                status = "NEW",
                                dept_code=deptcode,
                                dept_code = deptcode,
                                wkshp_code = wkshopcode,
                                plan_qty = cdqty,
                                stck_code = warehousecode,
@@ -330,7 +330,7 @@
                                wo_code = wo,
                                wotype = "PO",
                                status = "NEW",
                                dept_code=model.deptcode,
                                dept_code = model.deptcode,
                                wkshp_code = model.wkshopcode,
                                plan_qty = decimal.Parse(model.erpqty),  //订单数量
                                stck_code = model.warehousecode,
@@ -1573,12 +1573,15 @@
                }
                //根据条件查询工单工序任务(自制工序)
                sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date
                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date,
                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                        from TK_Wrk_Step A
                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
                        left join TMateriel_Info M on B.materiel_code=M.partcode
                        left join TStep S on A.step_code=S.stepcode
                        left join TOrganization T on B.wkshp_code=T.torg_code
                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
                        left join TSecStck K on M.idwarehouse=K.code
                        where A.status in('ALLO','START') and S.flwtype='Z'  " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -1677,12 +1680,15 @@
                sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,
                        (select isnull(sum(fqty),0) as fqty   from TK_Wrk_OutRecord where wo_code=A.wo_code and step_code=A.step_code and style='F') as fqty,
                        A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
                        A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                        from TK_Wrk_Step A
                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
                        left join TMateriel_Info M on B.materiel_code=M.partcode
                        left join TStep S on A.step_code=S.stepcode
                        left join TOrganization T on B.wkshp_code=T.torg_code
                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
                        left join TSecStck K on M.idwarehouse=K.code
                        where A.status in('ALLO','START') and S.flwtype='W'  " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -1927,7 +1933,7 @@
                        else //不按序收发料
                        {
                            mes = ScanStartReport.NoWXEncodingSeach(SelectType, wocode, stepcode);
                        }
                        }
                        break;
                    default:
                        break;
@@ -3386,7 +3392,7 @@
                                    }
                                }
                            }
                        }
                        }
                    }
                }
                else //不按序
@@ -3394,10 +3400,10 @@
                    //控制逻辑:当前工序报工调整-> (本道工序当前调整合格数+本道工序非当前报工合格总数)<下道工序报工总数(合格+不良+报废)   ==不能小于下道报工总数
                    list.Clear();
                    //判断当前工序是自制工序还是外协工序
                    if (json[0].flw_type.ToString() == "Z")
                    if (json[0].flw_type.ToString() == "Z")
                    {
                       //查询当前报工工序非此次报工:总报工数量、总不良数量、总工废数量、总料废数量
                        //查询当前报工工序非此次报工:总报工数量、总不良数量、总工废数量、总料废数量
                        sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty   
                                from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
                        dynamicParams.Add("@wo_code", json[0].wo_code);
@@ -3419,7 +3425,7 @@
                            return mes;
                        }
                    }
                    if (json[0].flw_type.ToString() == "W")
                    if (json[0].flw_type.ToString() == "W")
                    {
                        //获取当前工序、供应商对应的总发料数量
                        sql = @"select isnull(sum(fqty),0) as fqty
@@ -3441,7 +3447,7 @@
                        decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString());  //当前末道工序非本次报工总数
                        decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString());  //当前末道工序非本次报工工废总数
                        decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString());  //当前末道工序非本次报工料废总数
                       //获取当前末道工序收料总数量:本次修改收料数量+本次修改不良数量+本次修改工废数量+本次修改报工料废数量+当前工序非本次收料总数+当前工序非本次不良总数+当前工序非本次工废总数+当前工序非本次料废总数
                                                                                                                    //获取当前末道工序收料总数量:本次修改收料数量+本次修改不良数量+本次修改工废数量+本次修改报工料废数量+当前工序非本次收料总数+当前工序非本次不良总数+当前工序非本次工废总数+当前工序非本次料废总数
                        decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
                        //判断当前工序供应商收料总数>当前工序供应商对应发料数量
                        if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
@@ -3489,7 +3495,7 @@
                            str = sql,
                            parm = new
                            {
                                step_price=decimal.Parse(json[0].unprice),
                                step_price = decimal.Parse(json[0].unprice),
                                good_qty = decimal.Parse(json[0].report_dvalue),
                                ng_qty = this_ng_dvalue,
                                laborbad_qty = this_laborbad_dvalue,
@@ -3592,7 +3598,7 @@
                            str = sql,
                            parm = new
                            {
                                step_price=decimal.Parse(json[0].unprice),
                                step_price = decimal.Parse(json[0].unprice),
                                good_qty = decimal.Parse(json[0].report_dvalue),
                                ng_qty = this_ng_dvalue,
                                laborbad_qty = this_laborbad_dvalue,
@@ -4085,10 +4091,231 @@
        }
        #endregion
        #region[通易T8生产入库提交]
        #region[生产入库获取部门信息]
        public static ToMessage DeptSelectData()
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                sql = @"select * from h_v_TFDepent";
                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[通易T8生产入库提交-代码版]
        public static ToMessage ProductInHouseOrderSeave(InReptModel data, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //查询入库单是否已存在
                sql = @"select *  from srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in1] where sheet_no=@hbillno";
                dynamicParams.Add("@hbillno", data.TableData[0].Rows[0]["hbillno"].ToString());
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "入库单号已存在!";
                    mes.data = null;
                    return mes;
                }
                //写入入库单主表(MES)
                sql = @"insert into TK_WMS_Inwh_Main(docu_typecode,hbillno,hbdate,deptno,storehouse_code,status,remark,create_user,create_date)
                        values(@docu_typecode,@hbillno,@hbdate,@deptno,@storehouse_code,@status,@remark,@create_user,@create_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        docu_typecode = "WI",
                        hbillno = data.TableData[0].Rows[0]["hbillno"].ToString(),
                        hbdate = data.TableData[0].Rows[0]["hbdate"].ToString(),
                        deptno = data.TableData[0].Rows[0]["deptno"].ToString(),
                        storehouse_code = data.TableData[0].Rows[0]["storehouse_code"].ToString(),
                        status = data.TableData[0].Rows[0]["status"].ToString(),
                        remark = data.TableData[0].Rows[0]["remark"].ToString(),
                        create_user = data.TableData[0].Rows[0]["create_user"].ToString(),
                        create_date = data.TableData[0].Rows[0]["create_date"].ToString()
                    }
                });
                //写入入库单主表(T8)
                sql = @"insert into srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in1](sheet_type,sheet_no,sheet_sta,sheet_date,dept_no,st_no,sheet_amt,check_sta,create_date,create_user,add_flag)
                        values(@sheet_type,@sheet_no,@sheet_sta,@sheet_date,@dept_no,@st_no,@sheet_amt,@check_sta,@create_date,@create_user,@add_flag)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        sheet_type = "WI",
                        sheet_no = data.TableData[0].Rows[0]["hbillno"].ToString(),
                        sheet_sta = data.TableData[0].Rows[0]["status"].ToString(),
                        sheet_date = data.TableData[0].Rows[0]["hbdate"].ToString(),
                        dept_no = data.TableData[0].Rows[0]["deptno"].ToString(),
                        st_no = data.TableData[0].Rows[0]["storehouse_code"].ToString(),
                        sheet_amt = "0",
                        check_sta = "0",
                        create_date = data.TableData[0].Rows[0]["create_date"].ToString(),
                        create_user = data.TableData[0].Rows[0]["create_user"].ToString(),
                        add_flag = "1"
                    }
                });
                for (int i = 0; i < data.TableData[1].Rows.Count; i++)
                {
                    if (data.TableData[1].Rows[i]["style"].ToString() == "B")
                    {
                        //条件满足时执行的操作(回写报工记录主表的入库数量)
                        sql = @"update TK_Wrk_Record set inhouseqty=inhouseqty+@qty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                qty = data.TableData[1].Rows[i]["qty"].ToString(),
                                inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString()
                            }
                        });
                    }
                    if (data.TableData[1].Rows[i]["style"].ToString() == "S")
                    {
                        //条件满足时执行的操作(回写外协收料记录主表的入库数量)
                        sql = @"update TK_Wrk_OutRecord set inhouseqty=inhouseqty+@qty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                qty = data.TableData[1].Rows[i]["qty"].ToString(),
                                inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString()
                            }
                        });
                    }
                    //回写工单工序表末道工序已入库数量
                    sql = @"update TK_Wrk_Step set inhouseqty=inhouseqty+@qty where wo_code=@wocode and step_code=@stepcode and isend='Y'";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            qty = data.TableData[1].Rows[i]["qty"].ToString(),
                            wocode = data.TableData[1].Rows[i]["wocode"].ToString(),
                            stepcode = data.TableData[1].Rows[i]["stepcode"].ToString()
                        }
                    });
                    //写入入库单子表(MES)
                    sql = @"insert into TK_WMS_Inwh_Sub (hbillno,rownumber,inbarcode,mo_id,mo_no,wocode,partcode,unitcode,unit_rate,stockcode,qty,price,saleid,salecode,status,style)
                           values(@hbillno,@rownumber,@inbarcode,@mo_id,@mo_no,@wocode,@partcode,@unitcode,@unit_rate,@stockcode,@qty,@price,@saleid,@salecode,@status,@style)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbillno = data.TableData[1].Rows[i]["hbillno"].ToString(),
                            rownumber = data.TableData[1].Rows[i]["rownumber"].ToString(),
                            inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString(),
                            mo_id = data.TableData[1].Rows[i]["mo_id"].ToString(),
                            mo_no = data.TableData[1].Rows[i]["mo_no"].ToString(),
                            wocode = data.TableData[1].Rows[i]["wocode"].ToString(),
                            partcode = data.TableData[1].Rows[i]["partcode"].ToString(),
                            unitcode = data.TableData[1].Rows[i]["unitcode"].ToString(),
                            unit_rate = data.TableData[1].Rows[i]["unit_rate"].ToString(),
                            stockcode = data.TableData[1].Rows[i]["stockcode"].ToString(),
                            qty = data.TableData[1].Rows[i]["qty"].ToString(),
                            price = data.TableData[1].Rows[i]["price"].ToString(),
                            saleid = data.TableData[1].Rows[i]["saleid"].ToString(),
                            salecode = data.TableData[1].Rows[i]["salecode"].ToString(),
                            status = data.TableData[1].Rows[i]["status"].ToString(),
                            style = data.TableData[1].Rows[i]["style"].ToString()
                        }
                    });
                    //写入入库单子表(T8)
                    sql = @"insert into srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in2] (sheet_no,sheet_id,goods_no,unit_no,unit_rate,st_no,sheet_qty,mo_no,mo_id,sheet_pri,ord_no,ord_id,sheet_sta,add_flag)
                           values(@sheet_no,@sheet_id,@goods_no,@unit_no,@unit_rate,@st_no,@sheet_qty,@mo_no,@mo_id,@sheet_pri,@ord_no,@ord_id,@sheet_sta,@add_flag)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            sheet_no = data.TableData[1].Rows[i]["hbillno"].ToString(),
                            sheet_id = data.TableData[1].Rows[i]["rownumber"].ToString(),
                            goods_no = data.TableData[1].Rows[i]["partcode"].ToString(),
                            unit_no = data.TableData[1].Rows[i]["unitcode"].ToString(),
                            unit_rate = "1",
                            st_no = data.TableData[1].Rows[i]["stockcode"].ToString(),
                            sheet_qty = data.TableData[1].Rows[i]["qty"].ToString(),
                            mo_no = data.TableData[1].Rows[i]["mo_no"].ToString(),
                            mo_id = data.TableData[1].Rows[i]["mo_id"].ToString(),
                            sheet_pri = "1",
                            ord_no = data.TableData[1].Rows[i]["salecode"].ToString(),
                            ord_id = data.TableData[1].Rows[i]["saleid"].ToString(),
                            sheet_sta = data.TableData[1].Rows[i]["status"].ToString(),
                            add_flag = "1"
                        }
                    });
                }
                //更新入库单流水号
                sql = @" update TCodeRules set value = @incbit, incbit = LEN(CAST(@incbit AS VARCHAR))  where menucode = @rightcode";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        incbit = data.incbit,
                        rightcode = data.rightcode
                    }
                });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "入库单保存", "入库单号:" + data.TableData[0].Rows[0]["hbillno"].ToString(), us.usertype);
                    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[通易T8生产入库提交-存储过程版(适用同一台服务器,同一个数据库)]
        public static ToMessage ProductInHouseOrderSpSeave(InReptModel data, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
VueWebCoreApi/Models/InventoryModel/StorageRecord.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace VueWebCoreApi.Models.InventoryModel
{
    public class StorageRecord
    {
        /// <summary>
        /// å…¥åº“单号
        /// </summary>
        public string hbillno { get; set; }
        /// <summary>
        /// é”€å”®å•号
        /// </summary>
        public string salecode { get; set; }
        /// <summary>
        /// è®¢å•号
        /// </summary>
        public string mo_no { get; set; }
        /// <summary>
        /// å·¥å•号
        /// </summary>
        public string wocode { get; set; }
        /// <summary>
        /// äº§å“ç¼–码
        /// </summary>
        public string partcode { get; set; }
        /// <summary>
        /// å…¥åº“数量
        /// </summary>
        public string qty { get; set; }
        /// <summary>
        /// è½¦é—´ç¼–码
        /// </summary>
        public string wkshop_code { get; set; }
        /// <summary>
        /// ä»“库编码
        /// </summary>
        public string stockcode { get; set; }
        /// <summary>
        /// æ¡ç 
        /// </summary>
        public string inbarcode { get; set; }
        /// <summary>
        /// å·¥åºç¼–码
        /// </summary>
        public string step_code { get; set; }
        /// <summary>
        /// æŠ¥å·¥ç±»åž‹(B:自制/S外协)
        /// </summary>
        public string style { get; set; }
    }
}
VueWebCoreApi/Tools/DapperHelper.cs
@@ -519,7 +519,7 @@
            {
                try
                {
                    DataTable table = new DataTable();
                    //DataTable table = new DataTable();
                    //var data = conn.ExecuteReader(sql, parm);
                    var res = conn.ExecuteReader(sql, parm, commandType: CommandType.StoredProcedure);//sql å­˜å‚¨è¿‡ç¨‹ 
                    result = true;
@@ -648,7 +648,7 @@
            using (IDbConnection conn = sqlConnection())
            {
                try
                {
                {
                    tranction = conn.BeginTransaction();
                    for (int i = 0; i < sqlList.Count; i++)
                    {