VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1,4 +1,5 @@
using Dapper;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -77,7 +78,7 @@
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id, A.status,A.wo,A.materiel_code as partcode,B.partname,B.partspec,A.qty,A.relse_qty,A.wkshp_code,C.org_name as wkshp_name,
                            A.stck_code,D.name as stck_name,A.planstartdate,A.planenddate,U.username as createuser,A.createdate
                            A.stck_code,D.name as stck_name,A.saleOrderDeliveryDate,A.planstartdate,A.planenddate,U.username as createuser,A.createdate
                            from TKimp_Ewo A
                            left join TMateriel_Info B on A.materiel_code=B.partcode
                            left join TOrganization C on A.wkshp_code=C.org_code
@@ -125,7 +126,8 @@
                    //获取最大单据号
                    if (i == 1)  //首单获取工单号
                    {
                        sql = @"select isnull(max(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code))),0)+1 as worknumb from TK_Wrk_Man where m_po=@erpordercode";
                        sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as worknumb
                                from TK_Wrk_Man where m_po=@erpordercode";
                        dynamicParams.Add("@erpordercode", erpordercode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString());
@@ -476,6 +478,33 @@
        }
        #endregion
        #region[MES工单新增、获取工单号]
        public static ToMessage AddMesOrderCodeSearch()
        {
            string sql = "";
            string wo_code = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取单据号
                sql = @"SELECT 'SGPO'+CONVERT(varchar(12) , getdate(), 112 )+'_'+cast(isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as varchar) as numct
                        FROM TK_Wrk_Man where wo_code like '%SGPO%'";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data.Rows[0]["numct"].ToString();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[MES工单新增、编辑提交]
        public static ToMessage AddUpdateMesOrder(string mesorderstus, string sourceorder, string ordertype, string mesordercode, string partcode, string mesqty, string routecode, string wkshopcode, string planstartdate, string planenddate, string orderlev, string username, string opertype)
        {
@@ -638,7 +667,7 @@
            try
            {
                //判断工单是否为未开始状态或者已派发状态(满足其中一种都可删除,否则不允许删除)
                sql = @"select *  from TK_Wrk_Man where wo_code=@wocode and status='NEW' or status='ALLO'";
                sql = @"select *  from TK_Wrk_Man where wo_code=@wocode and status in('NEW','ALLO')";
                dynamicParams.Add("@wocode", wocode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
@@ -759,7 +788,7 @@
                         left join TStep B on A.step_code=B.stepcode
                         left join TK_Wrk_Man M on A.wo_code=M.wo_code
                         left join TMateriel_Info P on M.materiel_code=P.partcode
                        where A.wo_code=@wo_code";
                        where A.wo_code=@wo_code order by A.seq";
                dynamicParams.Add("@wo_code", wo_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -1561,13 +1590,14 @@
        #endregion
        #region[生产开报工,报工提交]
        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, string ngqty, string badcode, string remarks, string username)
        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string eqpcode,string inbarcode, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, string ngqty, string badcode, string remarks, string username)
        {
            var sql = "";
            string[] arra = new string[] { };
            string[] arra1 = new string[] { };
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            var dynamicParamsTran = new DynamicParameters();
            try
            {
                string date = DateTime.Now.ToString(); //获取系统时间
@@ -1600,114 +1630,77 @@
                    mes.data = null;
                    return mes;
                }
                if (data.Rows.Count > 0)
                {
                    //获取主表最大ID
                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
                    var dt = DapperHelper.selecttable(sql);
                    //写入开报工记录表
                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date)
                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = username, lm_date = date } });
                    //写入子表
                    for (int i = 0; i < arra.Length; i++)
                    //存储过程名
                    sql = @"h_p_MES_ProductionReport_ZZ";
                    dynamicParamsTran.Add("@mesordercode", mesordercode);
                    dynamicParamsTran.Add("@partcode", partcode);
                    dynamicParamsTran.Add("@stepseq", stepseq);
                    dynamicParamsTran.Add("@stepcode", stepcode);
                    dynamicParamsTran.Add("@eqpcode", eqpcode);
                    dynamicParamsTran.Add("@inbarcode", inbarcode);
                    dynamicParamsTran.Add("@usergroupcode", usergroupcode);
                    dynamicParamsTran.Add("@reportuser", reportuser);
                    dynamicParamsTran.Add("@taskqty", taskqty);
                    dynamicParamsTran.Add("@startqty", startqty);
                    dynamicParamsTran.Add("@reportqty", reportqty);
                    dynamicParamsTran.Add("@ngqty", ngqty);
                    dynamicParamsTran.Add("@badcode", badcode);
                    dynamicParamsTran.Add("@remarks", remarks);
                    dynamicParamsTran.Add("@username", username);
                    bool a = DapperHelper.IsProcedure(sql, dynamicParamsTran);
                    if (a)
                    {
                        sql = @"insert into  TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,usergroup_code,ng_qty,style,lm_user,lm_date)
                                values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@usergroup_code,@ng_qty,@style,@lm_user,@lm_date)";
                        list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), eqp_code = eqpcode, report_person = arra[i], report_date = date, report_qty = reportqty, usergroup_code = usergroupcode, ng_qty = ngqty, style = "B", lm_user = username, lm_date = date } });
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作成功!";
                        mes.data = null;
                    }
                    if (badcode != "" && ngqty != "0")
                    else
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < arra1.Length; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date)
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                        }
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "操作失败!";
                        mes.data = null;
                    }
                    ////修改报工记录
                    //sql = @"update TK_Wrk_Record set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty,
                    //            lm_user=@username,lm_date=@CreateDate where wo_code=@mesordercode and step_code=@stepcode and style='B'";
                    //list.Add(new { str = sql, parm = new { reportqty = decimal.Parse(reportqty), ngqty = decimal.Parse(ngqty), mesordercode = mesordercode, stepcode = stepcode, username = username, CreateDate = date } });
                    ////写入子表
                    //for (int i = 0; i < arra.Length; i++)
                    //{
                    //    sql = @"insert into  TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,usergroup_code,ng_qty,style,lm_user,lm_date)
                    //            values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@usergroup_code,@ng_qty,@style,@lm_user,@lm_date)";
                    //    list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), eqp_code = eqpcode, report_person = arra[i], report_date = date, report_qty = reportqty, usergroup_code = usergroupcode, ng_qty = ngqty, style = "B", lm_user = username, lm_date = date } });
                    //}
                    //if (badcode != "" && ngqty != "0")
                    //{
                    //    //写入缺陷记录表
                    //    for (int i = 0; i < arra1.Length; i++)
                    //    {
                    //        sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,style,lm_user,lm_date)
                    //            values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@style,@lm_user,@lm_date)";
                    //        list.Add(new { str = sql, parm = new { record_id = int.Parse(data.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], style = "B", lm_user = username, lm_date = date } });
                    //    }
                    //}
                }
                else
                {
                    //获取主表最大ID
                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
                    var dt = DapperHelper.selecttable(sql);
                    //写入开报工记录表
                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date)
                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = username, lm_date = date } });
                    //写入子表
                    for (int i = 0; i < arra.Length; i++)
                    //存储过程名
                    sql = @"h_p_MES_ProductionReport_ZZ";
                    dynamicParamsTran.Add("@mesordercode", mesordercode);
                    dynamicParamsTran.Add("@partcode", partcode);
                    dynamicParamsTran.Add("@stepseq", stepseq);
                    dynamicParamsTran.Add("@stepcode", stepcode);
                    dynamicParamsTran.Add("@eqpcode", eqpcode);
                    dynamicParamsTran.Add("@inbarcode", inbarcode);
                    dynamicParamsTran.Add("@usergroupcode", usergroupcode);
                    dynamicParamsTran.Add("@reportuser", reportuser);
                    dynamicParamsTran.Add("@taskqty", taskqty);
                    dynamicParamsTran.Add("@startqty", startqty);
                    dynamicParamsTran.Add("@reportqty", reportqty);
                    dynamicParamsTran.Add("@ngqty", ngqty);
                    dynamicParamsTran.Add("@badcode", badcode);
                    dynamicParamsTran.Add("@remarks", remarks);
                    dynamicParamsTran.Add("@username", username);
                    bool a = DapperHelper.IsProcedure(sql, dynamicParamsTran);
                    if (a)
                    {
                        sql = @"insert into  TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,usergroup_code,ng_qty,style,lm_user,lm_date)
                                values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@usergroup_code,@ng_qty,@style,@lm_user,@lm_date)";
                        list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), eqp_code = eqpcode, report_person = arra[i], report_date = date, report_qty = reportqty, usergroup_code = usergroupcode, ng_qty = ngqty, style = "B", lm_user = username, lm_date = date } });
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作成功!";
                        mes.data = null;
                    }
                    if (badcode != "" && ngqty != "0")
                    else
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < arra1.Length; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date)
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "B", lm_user = username, lm_date = date } });
                        }
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "操作失败!";
                        mes.data = null;
                    }
                }
                //回写工单工序表合格数量、不良数量
                sql = @"update TK_Wrk_Step set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode and step_code=@stepcode";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, reportqty = reportqty, ngqty = ngqty } });
                //回写工单表合格数量、不良数量
                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, reportqty = reportqty, ngqty = ngqty } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "操作失败!";
                    mes.data = null;
                }
                }
            }
            catch (Exception e)
            {
@@ -1798,12 +1791,13 @@
        #endregion
        #region[生产开报工, 收料提交]
        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inuser, string taskqty, string sqty, string ngqty, string badcode, string remarks, string username)
        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode,string inbarcode, string inuser, string taskqty, string sqty, string ngqty, string badcode, string remarks, string username)
        {
            var sql = "";
            string[] arra1 = new string[] { };
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            var dynamicParamsTran = new DynamicParameters();
            try
            {
                string date = DateTime.Now.ToString(); //获取系统时间
@@ -1874,102 +1868,70 @@
                        return mes;
                    }
                    //获取主表最大ID
                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
                    var dt = DapperHelper.selecttable(sql);
                    //写入外协记录主表
                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date)
                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date)";
                    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_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 } });
                    if (badcode != "" && ngqty != "0")
                    //存储过程名
                    sql = @"h_p_MES_ProductionReport_WX";
                    dynamicParamsTran.Add("@mesordercode", mesordercode);
                    dynamicParamsTran.Add("@partcode", partcode);
                    dynamicParamsTran.Add("@stepseq", stepseq);
                    dynamicParamsTran.Add("@stepcode", stepcode);
                    dynamicParamsTran.Add("@wxcode", wxcode);
                    dynamicParamsTran.Add("@inbarcode", inbarcode);
                    dynamicParamsTran.Add("@inuser", inuser);
                    dynamicParamsTran.Add("@taskqty", taskqty);
                    dynamicParamsTran.Add("@sqty", sqty);
                    dynamicParamsTran.Add("@ngqty", ngqty);
                    dynamicParamsTran.Add("@badcode", badcode);
                    dynamicParamsTran.Add("@remarks", remarks);
                    dynamicParamsTran.Add("@username", username);
                    bool a = DapperHelper.IsProcedure(sql, dynamicParamsTran);
                    if (a)
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < arra1.Length; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date)
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                        }
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "操作失败!";
                        mes.data = null;
                    }
                    ////修改外协记录主表
                    //sql = @"update TK_Wrk_OutRecord set sqty=sqty+@sqty,ng_qty=ng_qty+@ngqty,lm_user=@username,lm_date=@CreateDate
                    //         where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code and style='S'";
                    //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_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date)
                    //            values(@m_id,@wx_code,@in_person,@in_time,@sqty,@ngqty,@style,@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 } });
                    //if (badcode != "" && ngqty != "0")
                    //{
                    //    //写入缺陷记录表
                    //    for (int i = 0; i < arra1.Length; i++)
                    //    {
                    //        sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,style,lm_user,lm_date)
                    //            values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@style,@lm_user,@lm_date)";
                    //        list.Add(new { str = sql, parm = new { record_id = int.Parse(data.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], style = "S", lm_user = username, lm_date = date } });
                    //    }
                    //}
                }
                else
                {
                    //获取主表最大ID
                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
                    var dt = DapperHelper.selecttable(sql);
                    //写入外协记录主表
                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date)
                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date)";
                    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_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 } });
                    if (badcode != "" && ngqty != "0")
                    //存储过程名
                    sql = @"h_p_MES_ProductionReport_WX";
                    dynamicParamsTran.Add("@mesordercode", mesordercode);
                    dynamicParamsTran.Add("@partcode", partcode);
                    dynamicParamsTran.Add("@stepseq", stepseq);
                    dynamicParamsTran.Add("@stepcode", stepcode);
                    dynamicParamsTran.Add("@wxcode", wxcode);
                    dynamicParamsTran.Add("@inbarcode", inbarcode);
                    dynamicParamsTran.Add("@inuser", inuser);
                    dynamicParamsTran.Add("@taskqty", taskqty);
                    dynamicParamsTran.Add("@sqty", sqty);
                    dynamicParamsTran.Add("@ngqty", ngqty);
                    dynamicParamsTran.Add("@badcode", badcode);
                    dynamicParamsTran.Add("@remarks", remarks);
                    dynamicParamsTran.Add("@username", username);
                    bool a = DapperHelper.IsProcedure(sql, dynamicParamsTran);
                    if (a)
                    {
                        //写入缺陷记录表
                        for (int i = 0; i < arra1.Length; i++)
                        {
                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date)
                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = ngqty, defect_code = arra1[i], remarks = remarks, style = "S", lm_user = username, lm_date = date } });
                        }
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "操作成功!";
                        mes.data = null;
                    }
                }
                //回写工单工序表合格数量、不良数量
                sql = @"update TK_Wrk_Step set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode and step_code=@stepcode";
                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, sqty = sqty, ngqty = ngqty } });
                //回写工单表合格数量、不良数量
                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, sqty = sqty, ngqty = ngqty } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "收成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "收料失败!";
                    mes.data = null;
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "操作失败!";
                        mes.data = null;
                    }
                }
            }
            catch (Exception e)
@@ -2623,14 +2585,14 @@
            {
                if (type == "Add")
                {
                    var sql = @"insert into TWkm_capac_plan(wkshop, eqp_typecode, wkshift_code, enable, lm_user, lm_time,classtype)
                            values(@wkshop,@eqp_typecode,@wkshift_code,@enable,@lm_user,@lm_time,@classtype)";
                    var sql = @"insert into TWkm_capac_plan(wkshop, eqp_typecode, wkshift_code, enable, lm_user, lm_date,classtype)
                            values(@wkshop,@eqp_typecode,@wkshift_code,@enable,@lm_user,@lm_date,@classtype)";
                    dynamicParams.Add("@wkshop", wkshopcode);
                    dynamicParams.Add("@eqp_typecode", capunitcode);
                    dynamicParams.Add("@wkshift_code", capsetupcode);
                    dynamicParams.Add("@enable", "Y");
                    dynamicParams.Add("@lm_user", username);
                    dynamicParams.Add("@lm_time", DateTime.Now.ToString());
                    dynamicParams.Add("@lm_date", DateTime.Now.ToString());
                    dynamicParams.Add("@classtype", captplantype);
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
@@ -2694,10 +2656,10 @@
                sql = @"select CONVERT(varchar(100), wkdate, 23) DataTime,wkshift_code   from TWkm_capac_plan_sub where m_id=@captplanid";
                dynamicParams.Add("@captplanid", captplanid);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    string DataTime = dt.Rows[i]["DataTime"].ToString();//日期
                    string key = dt.Rows[i]["wkshift_code"].ToString(); //方案编码
                    string DataTime = data.Rows[i]["DataTime"].ToString();//日期
                    string key = data.Rows[i]["wkshift_code"].ToString(); //方案编码
                    CapaPlan cmp = new CapaPlan();
                    cmp.name = DataTime;
                    cmp.key = key;
@@ -2735,11 +2697,11 @@
                dynamicParams.Add("@captplanid", captplanid);
                dynamicParams.Add("@datetime", datetime);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < dt.Rows.Count; i++)
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    string code = dt.Rows[i]["code"].ToString();//方案编码
                    string name = dt.Rows[i]["name"].ToString();//方案名称
                    string flag = dt.Rows[i]["flag"].ToString();   //选中方案标识
                    string code = data.Rows[i]["code"].ToString();//方案编码
                    string name = data.Rows[i]["name"].ToString();//方案名称
                    string flag = data.Rows[i]["flag"].ToString();   //选中方案标识
                    CapacityPlanSect cmp = new CapacityPlanSect();
                    cmp.CapCode = code;
                    cmp.CapName = name;
@@ -2748,7 +2710,7 @@
                    string sql1 = @"select wktme1_start,wktme2_start,wktme3_start,wktme4_start,wktme5_start  from TBas_wkshift_info where code=@code";
                    dynamicParams.Add("@code", code);
                    var db = DapperHelper.selectdata(sql, dynamicParams);
                    var db = DapperHelper.selectdata(sql1, dynamicParams);
                    for (int j = 0; j < db.Columns.Count; j++) //时间段
                    {
@@ -2862,11 +2824,10 @@
                    List<CapaPlan> list4 = ids1.Except(ids).ToList(); //表示ids1中哪些值是ids中所不存在的;
                    list4 = list3.Union(list4).ToList();
                    //查找关键工序设备、工位群组的所有设备
                    string sql3 = @"select *  from(
                                  select distinct A.code,A.name  from TEqpInfo A
                    string sql3 = @"select distinct A.code,A.name  from TEqpInfo A
                                  left join TFlw_Rteqp B on A.code=B.eqp_code
                                  left join TFlw_Rtdt D on B.step_code=D.step_code                 
                                  where A.wksp_code=@wkshopcode  and D.first_choke='Y'  order by A.code)";
                                  where A.wksp_code=@wkshopcode  and D.first_choke='Y'  order by A.code";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                    var dt3 = DapperHelper.selectdata(sql3, dynamicParams);
                    if (list4.Count > 0)  //如果日期有变动
@@ -2902,7 +2863,7 @@
                        }
                    }
                    //更新排产生产资源主表
                    sql = @"update gn_wkm_capac_plan set wkshift_code=@wkshift_code,classtype=@classtype,lm_user=@lm_user,lm_time=@lm_time  where id=@id";
                    sql = @"update TWkm_capac_plan set wkshift_code=@wkshift_code,classtype=@classtype,lm_user=@lm_user,lm_date=@lm_time  where id=@id";
                    list.Add(new
                    {
                        str = sql,
@@ -2928,7 +2889,7 @@
                    //循环写入排产生产资源子表
                    for (int i = 0; i < objs.Count; i++)
                    {
                        sql = @"insert into TWkm_capac_plan_sub(m_id,wkdate,wkshift_code) values()";
                        sql = @"insert into TWkm_capac_plan_sub(m_id,wkdate,wkshift_code) values(@m_id,@wkdate,@wkshift_code)";
                        list.Add(new
                        {
                            str = sql,
@@ -3446,5 +3407,449 @@
        }
        #endregion
        #region[生产入库条码补打]
        public static ToMessage ProductInHouseLabCode(string ordercode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取末道工序报工条码数据
                sql = @"select *   from(
                        select A.inbarcode,A.wo_code,P.partcode,P.partname,P.partspec,
                        A.good_qty,U.username,A.lm_date
                        from  TK_Wrk_Record A
                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                        inner join TMateriel_Info P on A.materiel_code=P.partcode
                        inner join TUser U on A.lm_user=U.usercode
                        where A.style='B' and S.isend='Y' and A.good_qty>0 and A.inbarcode<>''
                        union all
                        select A.inbarcode,A.wo_code,P.partcode,P.partname,P.partspec,
                        A.sqty as sqty,U.username,A.lm_date
                        from  TK_Wrk_OutRecord A
                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                        inner join TMateriel_Info P on A.materiel_code=P.partcode
                        inner join TUser U on A.lm_user=U.usercode
                        where A.style='S' and S.isend='Y' and A.sqty>0 and A.inbarcode<>''
                        ) as AA where AA.wo_code=@ordercode";
                dynamicParams.Add("@ordercode", ordercode);
                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 ProductInHouseWkshopOrder(string ordertype, string wkshopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (ordertype == "Y") //有源单
                {
                    sql = @"select distinct AA.ordercode  from (
                        select  A.m_po as ordercode
                        from TK_Wrk_Man A
                        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                        inner join TK_Wrk_Record S on B.wo_code=S.wo_code and B.step_code=S.step_code
                        where S.style='B' and S.inbarcode<>'' and B.isend='Y' and A.m_po<>''  and S.good_qty>0 and S.good_qty>isnull(S.inhouseqty,0) and A.wkshp_code=@wkshopcode
                        union all
                        select  A.m_po as ordercode
                        from TK_Wrk_Man A
                        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                        inner join TK_Wrk_OutRecord S on B.wo_code=S.wo_code and B.step_code=S.step_code
                        where S.style='S' and S.inbarcode<>'' and B.isend='Y' and A.m_po<>''  and S.sqty>0 and S.sqty>isnull(S.inhouseqty,0) and A.wkshp_code=@wkshopcode
                        ) as AA";
                }
                if (ordertype == "N")
                {
                    sql = @"select distinct AA.ordercode  from (
                            select  A.wo_code as ordercode
                            from TK_Wrk_Man A
                            inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                            inner join TK_Wrk_Record S on B.wo_code=S.wo_code and B.step_code=S.step_code
                            where S.style='B' and S.inbarcode<>'' and B.isend='Y' and A.m_po=''  and S.good_qty>0 and S.good_qty>isnull(S.inhouseqty,0) and A.wkshp_code=@wkshopcode
                            union all
                            select  A.wo_code as ordercode
                            from TK_Wrk_Man A
                            inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                            inner join TK_Wrk_OutRecord S on B.wo_code=S.wo_code and B.step_code=S.step_code
                            where S.style='S' and S.inbarcode<>'' and B.isend='Y' and A.m_po=''  and S.sqty>0 and S.sqty>isnull(S.inhouseqty,0) and A.wkshp_code=@wkshopcode
                            ) as AA";
                }
                dynamicParams.Add("@wkshopcode", wkshopcode);
                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 ProductInHouseOrderSearch(string wkshopcode, string erpordercode, string mesordercode, string partcode, string partname, string partspec, string startorderdate, string endorderdate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and AA.wkshp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                if (erpordercode != "" && erpordercode != null)
                {
                    search += "and AA.m_po like '%'+@erpordercode+'%' ";
                    dynamicParams.Add("@erpordercode", erpordercode);
                }
                if (mesordercode != "" && mesordercode != null)
                {
                    search += "and AA.wo_code like '%'+@mesordercode+'%' ";
                    dynamicParams.Add("@mesordercode", mesordercode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (startorderdate != "" && startorderdate != null)
                {
                    search += "and AA.lm_date between @startorderdate and @endorderdate ";
                    dynamicParams.Add("@opencheckdate", startorderdate + " 00:00:00");
                    dynamicParams.Add("@endorderdate", endorderdate + " 23:59:59");
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *   from(
                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                            A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
                            E.saleOrderqty,E.qty,M.plan_qty,A.good_qty,isnull(A.inhouseqty,0) as inhouseqty,A.good_qty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style
                            from  TK_Wrk_Record A
                            inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                            inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                            inner join TMateriel_Info P on M.materiel_code=P.partcode
                            left join TKimp_Ewo E on M.sourceid=E.id
                            left join T_Sec_Stck K on E.stck_code=K.code
                            where A.style='B' and A.inbarcode<>'' and S.isend='Y' and A.good_qty>0
                            union all
                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                            A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
                            E.saleOrderqty,E.qty,M.plan_qty,A.sqty as sqty,isnull(A.inhouseqty,0) as inhouseqty,A.sqty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style
                            from  TK_Wrk_OutRecord A
                            inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                            inner join TK_Wrk_Man M on S.wo_code=M.wo_code
                            inner join TMateriel_Info P on M.materiel_code=P.partcode
                            left join TKimp_Ewo E on M.sourceid=E.id
                            left join T_Sec_Stck K on E.stck_code=K.code
                            where A.style='S' and A.inbarcode<>'' and S.isend='Y' and A.sqty>0
                            ) as AA  where AA.good_qty>AA.inhouseqty " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                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 ProductInHouseOrderCodeSearch(string rightcode)
        {
            try
            {
                mes = SeachEncodeJob.EncodingSeach(rightcode);
                return mes;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[生产入库提交]
        public static ToMessage ProductInHouseOrderSeave(string username, JObject obj)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            var dynamicParams1 = new DynamicParameters();
            try
            {
                string sub = obj["sub"].ToString();//明细
                string subsum = obj["subsum"].ToString();//汇总
                //获取报工明细
                JArray sub_arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(sub);
                //获取汇总
                JArray subsum_arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(subsum);
                //回写报工记录主表、工单工序表已入库数量、写入MES库存表
                for (int i = 0; i < sub_arra.Count; i++)
                {
                    if (sub_arra[i]["style"].ToString() == "B")
                    {
                        //回写报工记录主表的入库数量
                        sql = @"update TK_Wrk_Record set inhouseqty=inhouseqty+@stinhouseqty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                stinhouseqty = decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
                                inbarcode = sub_arra[i]["inbarcode"].ToString()
                            }
                        });
                    }
                    if (sub_arra[i]["style"].ToString() == "S")
                    {
                        //回写外协收料记录主表的入库数量
                        sql = @"update TK_Wrk_OutRecord set inhouseqty=inhouseqty+@stinhouseqty where inbarcode=@inbarcode";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                stinhouseqty = decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
                                inbarcode = sub_arra[i]["inbarcode"].ToString()
                            }
                        });
                    }
                    //回写工单工序表末道工序已入库数量
                    sql = @"update TK_Wrk_Step set inhouseqty=inhouseqty+@stinhouseqty where wo_code=@wo_code and step_code=@step_code and isend='Y'";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            stinhouseqty = decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
                            wo_code = sub_arra[i]["wo_code"].ToString(),
                            step_code = sub_arra[i]["step_code"].ToString()
                        }
                    });
                    //写入MES库存表
                    sql = @"insert into TK_WMS_Stock(hbillno,labcode,materiel_code,storehouse_code,qty,lm_user,lm_date)
                        values(@hbillno,@labcode,@materiel_code,@storehouse_code,@qty,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbillno = obj["head"]["hbillno"].ToString(),
                            labcode = sub_arra[i]["inbarcode"].ToString(),
                            materiel_code = sub_arra[i]["partcode"].ToString(),
                            storehouse_code = sub_arra[i]["stockcode"].ToString(),
                            qty = decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
                            lm_user = username,
                            lm_date = DateTime.Now.ToString()
                        }
                    });
                }
                //写MES入库记录主表
                sql = @"insert into TK_WMS_Inwh_Main(docu_typecode,hbillno,hsoucenillnoid,hsoucenillno,saleorderid,saleordercode,status,wkshpcode,lm_user,lm_date)
                        values(@docu_typecode,@hbillno,@hsoucenillnoid,@hsoucenillno,@saleorderid,@saleordercode,@status,@wkshpcode,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        docu_typecode = "1202",
                        hbillno = obj["head"]["hbillno"].ToString(),
                        hsoucenillnoid = obj["head"]["sourceVoucherId"].ToString(),
                        hsoucenillno = obj["head"]["sourceVoucherCode"].ToString(),
                        saleorderid = obj["head"]["saleOrderId"].ToString(),
                        saleordercode = obj["head"]["saleOrderCode"].ToString(),
                        status = "NEW",
                        wkshpcode = obj["head"]["wkshpcode"].ToString(),
                        lm_user = username,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //获取ERP入库表sql
                //DataTable dt = DapperHelper.lissql("h_p_MesInErpProductWareHous");
                //写入ERP入库记录主表
                //sql = @"" + dt.Rows[0]["cname"].ToString() + "";
                //list.Add(new
                //{
                //    str = sql,
                //    parm = new
                //    {
                //        code = obj["head"]["hbillno"].ToString(),
                //        sourceVoucherId = obj["head"]["sourceVoucherId"].ToString(),
                //        sourceVoucherCode = obj["head"]["sourceVoucherCode"].ToString(),
                //        saleOrderId = obj["head"]["saleOrderId"].ToString(),
                //        saleOrderCode = obj["head"]["saleOrderCode"].ToString(),
                //        rdDirectionFlag = obj["head"]["rdDirectionFlag"].ToString(),
                //        makerid = obj["head"]["makerid"].ToString(),
                //        maker = obj["head"]["maker"].ToString(),
                //        accountingyear = obj["head"]["accountingyear"].ToString(),
                //        VoucherYear = obj["head"]["VoucherYear"].ToString(),
                //        VoucherPeriod = obj["head"]["VoucherPeriod"].ToString(),
                //        ManufactureOrderCode = obj["head"]["ManufactureOrderCode"].ToString(),
                //        idbusitype = obj["head"]["idbusitype"].ToString(),
                //        iddepartment = obj["head"]["iddepartment"].ToString(),
                //        idrdstyle = obj["head"]["idrdstyle"].ToString(),
                //        idwarehouse = obj["head"]["idwarehouse"].ToString(),
                //        voucherState = obj["head"]["voucherState"].ToString(),
                //        idvouchertype = obj["head"]["idvouchertype"].ToString(),
                //        voucherdate = obj["head"]["voucherdate"].ToString(),
                //        madedate = obj["head"]["madedate"].ToString(),
                //        createdtime = obj["head"]["createdtime"].ToString(),
                //        DataSource = obj["head"]["DataSource"].ToString(),
                //        idsourcevouchertype= obj["head"]["idsourcevouchertype"].ToString()
                //    }
                //});
                //写入ERP、MES入库记录子表
                for (int j = 0; j < subsum_arra.Count; j++)
                {
                    //写入ERP入库记录子表
                    //sql = @"" + dt.Rows[1]["cname"].ToString() + "";
                    //list.Add(new
                    //{
                    //    str = sql,
                    //    parm = new
                    //    {
                    //        code = subsum_arra[j]["code"].ToString(),
                    //        arrivalQuantity = subsum_arra[j]["arrivalQuantity"].ToString(),
                    //        quantity = subsum_arra[j]["quantity"].ToString(),
                    //        compositionQuantity = subsum_arra[j]["compositionQuantity"].ToString(),
                    //        baseQuantity = subsum_arra[j]["baseQuantity"].ToString(),
                    //        sourceVoucherId = subsum_arra[j]["sourceVoucherId"].ToString(),
                    //        sourceVoucherCode = subsum_arra[j]["sourceVoucherCode"].ToString(),
                    //        sourceVoucherDetailId = subsum_arra[j]["sourceVoucherDetailId"].ToString(),
                    //        idsourcevouchertype = subsum_arra[j]["idsourcevouchertype"].ToString(),
                    //        saleOrderId = subsum_arra[j]["saleOrderId"].ToString(),
                    //        saleOrderCode = subsum_arra[j]["saleOrderCode"].ToString(),
                    //        saleOrderDetailId = subsum_arra[j]["saleOrderDetailId"].ToString(),
                    //        ManufactureOrderId = subsum_arra[j]["ManufactureOrderId"].ToString(),
                    //        ManufactureOrderCode = subsum_arra[j]["ManufactureOrderCode"].ToString(),
                    //        ManufactureOrderDetailId = subsum_arra[j]["ManufactureOrderDetailId"].ToString(),
                    //        idbusiTypeByMergedFlow = subsum_arra[j]["idbusiTypeByMergedFlow"].ToString(),
                    //        idinventory = subsum_arra[j]["idinventory"].ToString(),
                    //        idbaseunit = subsum_arra[j]["idbaseunit"].ToString(),
                    //        idunit = subsum_arra[j]["idunit"].ToString(),
                    //        idwarehouse = subsum_arra[j]["idwarehouse"].ToString(),
                    //        SourceVoucherIdByMergedFlow = subsum_arra[j]["SourceVoucherIdByMergedFlow"].ToString(),
                    //        SourceVoucherCodeByMergedFlow = subsum_arra[j]["SourceVoucherCodeByMergedFlow"].ToString(),
                    //        SourceVoucherDetailIdByMergedFlow = subsum_arra[j]["SourceVoucherDetailIdByMergedFlow"].ToString(),
                    //        idsourceVoucherTypeByMergedFlow = subsum_arra[j]["idsourceVoucherTypeByMergedFlow"].ToString(),
                    //        createdtime = subsum_arra[j]["createdtime"].ToString(),
                    //        DataSource = subsum_arra[j]["DataSource"].ToString()
                    //    }
                    //});
                    //写入ERP现存量查询表
                    //sql = @"" + dt.Rows[2]["cname"].ToString() + "";
                    //list.Add(new
                    //{
                    //    str = sql,
                    //    parm = new
                    //    {
                    //        idinventory = subsum_arra[j]["idinventory"].ToString(),
                    //        idwarehouse = subsum_arra[j]["idwarehouse"].ToString(),
                    //        propertyName = "ProductForReceive",
                    //        baseQuantity= subsum_arra[j]["quantity"].ToString(),
                    //        IdMarketingOrgan="1",
                    //        idbaseunit= subsum_arra[j]["idbaseunit"].ToString(),
                    //        updated= DateTime.Now.ToString(),
                    //        isCarriedForwardOut ="0",
                    //        isCarriedForwardIn = "0"
                    //    }
                    //});
                    //写入MES入库记录子表
                    sql = @"insert into TK_WMS_Inwh_Sub(hbillno,rownumber,materiel_code,storehouse_code,qty)
                        values(@hbillno,@rownumber,@materiel_code,@storehouse_code,@qty)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbillno = obj["head"]["hbillno"].ToString(),
                            rownumber = subsum_arra[j]["rownumber"].ToString(),
                            materiel_code = subsum_arra[j]["materiel_code"].ToString(),
                            storehouse_code = subsum_arra[j]["warehouse"].ToString(),
                            qty = decimal.Parse(subsum_arra[j]["quantity"].ToString())
                        }
                    });
                }
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(obj["head"]["rightcode"].ToString(), obj["head"]["incbit"].ToString());
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "操作失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}