yl
2022-08-23 0dd2c49c7123f177338985686fe5a0a00a851fbc
VueWebApi/Tools/ScanStartReport.cs
@@ -57,25 +57,24 @@
                    flwtype = data.Rows[0]["FLWTYPE"].ToString();//获取工序属性
                    isbott = data.Rows[0]["ISBOTT"].ToString();//首道工序
                    isend = data.Rows[0]["ISEND"].ToString();//末道工序
                    seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    rt.seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    //获取当前工序下道工序
                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                            left join  TStep T on A.step_code=T.stepcode
                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stepcode", stepcode);
                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                    var dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0) //有下道工序
                    {
                        rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//下道工序编码
                        rt.nextstepcode = dt.Rows[0]["STEPNAME"].ToString();//下道工序名称
                        rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//下道工序名称
                    }
                    if (isend == "Y")  //当前工序是末道工序
                    {
                        rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//当前工序编码
                        rt.nextstepcode = data.Rows[0]["STEPNAME"].ToString();//当前工序名称
                        rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//当前工序编码
                        rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//当前工序名称
                    }
                }
                else
@@ -105,9 +104,10 @@
                                var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                if (data1.Rows.Count > 0)
                                {
                                    string good_qty = data1.Rows[0]["GOOD_QTY"].ToString();//报工数量
                                    string ng_qty = data1.Rows[0]["NG_QTY"].ToString();// 不良数量
                                    decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (decimal.Parse(good_qty) + decimal.Parse(ng_qty)); //剩余可报工数量=任务数量-(报工数量+不良数量)
                                    decimal good_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //报工总数量
                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //不良数量
                                    decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (good_qty + ng_qty); //剩余可报工数量=任务数量-(报工数量+不良数量)
                                    if (kbqty <= 0)//无可报工数量
                                    {
                                        mes.code = "300";
@@ -120,8 +120,8 @@
                                    {
                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());            //任务数量
                                        rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());           //开工数量=任务数量
                                        rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - kbqty;  //未报数量=任务数量-已报数量
                                        rt.reportqty = decimal.Parse(good_qty) + decimal.Parse(ng_qty);             //已报数量=报工数量-不良数量
                                        rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - good_qty- ng_qty;  //未报数量=任务数量-已报数量-不良数量
                                        rt.reportqty = good_qty + ng_qty;             //已报数量=报工数量-不良数量
                                        mes.code = "200";
                                        mes.count = 1;
                                        mes.Message = "弹窗报工界面!";
@@ -158,9 +158,8 @@
                            sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                            dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                            dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                            dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                            var data0 = DapperHelper.selectdata(sql, dynamicParams);
                            if (data0.Rows.Count > 0)
@@ -179,19 +178,20 @@
                                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data2.Rows.Count > 0) //有报工记录
                                    {
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        {
                                            //查找上到工序报工记录
                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有报工
                                            {
                                                string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//上道报工数量
                                                string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//本道报工数量
                                                string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 本道不良数量
                                                decimal sybqty = decimal.Parse(sgood_qty) - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//本道剩余可报数量=上道报工数量-本道报工数量-本道不良数量
                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //上道报工总数量
                                                decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //本道不良总数量
                                                decimal sybqty = sgood_qty - good_qty - ng_qty;//本道剩余可报数量=上道报工总数量-本道报工总数量-本道不良总数量
                                                if (sybqty <= 0)
                                                {
                                                    mes.code = "300";
@@ -205,7 +205,7 @@
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
                                                    rt.startqty = sybqty;                                                //开工数量=本道剩余可报数量
                                                    rt.noreportqty = sybqty;                                             //未报数量=本道剩余可报数量
                                                    rt.reportqty = 0;                                                    //已报数量
                                                    rt.reportqty = good_qty + ng_qty;                                    //已报数量=本道报工总数量+本道报工总不良
                                                    mes.code = "200";
                                                    mes.count = 1;
                                                    mes.Message = "弹窗报工界面!";
@@ -221,19 +221,20 @@
                                                return mes;
                                            }
                                        }
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        {
                                            //查找上到工序收料记录
                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有收料
                                            {
                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//本道报工数量
                                                string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 本道不良数量
                                                decimal sybqty = sqty - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//本道剩余可报数量=上道收料数量-本道报工数量-本道不良数量
                                                decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //上道收料数量
                                                decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //本道不良总数量
                                                decimal sybqty = sqty - good_qty - ng_qty;//本道剩余可报数量=上道收料总数量-本道报工总数量-本道不良总数量
                                                if (sybqty <= 0)
                                                {
                                                    mes.code = "300";
@@ -247,7 +248,7 @@
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
                                                    rt.startqty = sybqty;                                                //开工数量=本道剩余可报数量
                                                    rt.noreportqty = sybqty;                                             //未报数量=本道剩余可报数量
                                                    rt.reportqty = 0;                                                    //已报数量
                                                    rt.reportqty = good_qty + ng_qty;                                    //已报数量=本道报工总数量+本道报工总不良
                                                    mes.code = "200";
                                                    mes.count = 1;
                                                    mes.Message = "弹窗报工界面!";
@@ -266,17 +267,17 @@
                                    }
                                    else  //本道无报工记录
                                    {
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                        {
                                            //查找上到工序报工记录
                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有报工
                                            {
                                                string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//上道报工数量
                                                decimal sybqty = decimal.Parse(sgood_qty);               //本道剩余可报数量=上道报工数量
                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                decimal sybqty = sgood_qty;                                      //本道剩余可报数量=上道报工数量
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
                                                rt.startqty = sybqty;                                                //开工数量=本道剩余可报数量
@@ -296,16 +297,16 @@
                                                return mes;
                                            }
                                        }
                                        if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                        {
                                            //查找上到工序收料记录
                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                            dynamicParams.Add("@ordercode", ordercode);
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data3.Rows.Count > 0) //上道有收料
                                            {
                                                decimal sqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                decimal sybqty = sqty;                   //本道剩余可报数量=上道收料数量
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //任务数量
@@ -330,12 +331,12 @@
                                }
                                else //无开工记录
                                {
                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //自制工序
                                    {
                                        //查找上到工序报工记录
                                        sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                        dynamicParams.Add("@ordercode", ordercode);
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data2.Rows.Count > 0) //上到工序有报工
                                        {
@@ -360,17 +361,17 @@
                                            return mes;
                                        }
                                    }
                                    if (data1.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //委外工序
                                    {
                                        //查找上道工序外协收料记录
                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                        dynamicParams.Add("@ordercode", ordercode);
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data2.Rows.Count > 0) //上道工序有收料
                                        {
                                            decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//收料数量
                                            decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 不良数量
                                            decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//收料数量
                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 不良数量
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.startqty = sqty;                                                  //开工数量=(上一道的收料数量)
@@ -471,32 +472,31 @@
                    flwtype = data.Rows[0]["FLWTYPE"].ToString();//获取工序属性
                    isbott = data.Rows[0]["ISBOTT"].ToString();//首道工序
                    isend = data.Rows[0]["ISEND"].ToString();//末道工序
                    seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    rt.seq = data.Rows[0]["SEQ"].ToString();//工序序号
                    //获取当前工序下道工序
                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
                            left join  TStep T on A.step_code=T.stepcode
                            where A.wo_code=ordercode and A.step_code=@stepcode and A.seq=@seq+1 ";
                            where A.wo_code=@ordercode and A.seq=@seq+1 ";
                    dynamicParams.Add("@ordercode", ordercode);
                    dynamicParams.Add("@stepcode", stepcode);
                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                    var dt = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt.Rows.Count > 0) //有下道工序
                    {
                        rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//下道工序编码
                        rt.nextstepcode = dt.Rows[0]["STEPNAME"].ToString();//下道工序名称
                        rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//下道工序名称
                    }
                    if (isend == "Y")  //当前工序是末道工序
                    {
                        rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//当前工序编码
                        rt.nextstepcode = data.Rows[0]["STEPNAME"].ToString();//当前工序名称
                        rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//当前工序编码
                        rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//当前工序名称
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "未找到当前工序的上道工序信息,请联系管理员核实!";
                    mes.Message = "当前扫码工序任务不存在!";
                    mes.data = null;
                    return mes;
                }
@@ -521,8 +521,8 @@
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)  //有发料记录
                                    {
                                        decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//发料数量
                                        decimal ng_qty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 不良数量
                                        decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //发料数量
                                        decimal ng_qty =data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 不良数量
                                        decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty;                                           //剩余可发数量
                                        if (kfqty <= 0)
                                        {
@@ -562,9 +562,8 @@
                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                    dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)
@@ -581,15 +580,15 @@
                                                //查找上到工序报工记录
                                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有报工
                                                {
                                                    string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//上道报工数量
                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 本道不良数量
                                                    decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 本道不良数量
                                                    decimal sybqty = decimal.Parse(sgood_qty) - sqty - ng_qty;//本道剩余可发数量=上道报工数量-本道发料数量-本道不良数量
                                                    decimal sybqty =sgood_qty - sqty - ng_qty;//本道剩余可发数量=上道报工数量-本道发料数量-本道不良数量
                                                    if (sybqty <= 0)
                                                    {
                                                        mes.code = "300";
@@ -625,13 +624,13 @@
                                                //查找上到工序收料记录
                                                sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有收料
                                                {
                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                    decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                    decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());// 本道不良数量
                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                    decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 本道不良数量
                                                    decimal sybqty = ssqty - sqty - ng_qty;//本道剩余可发数量=上道收料数量-本道发料数量-本道不良数量
                                                    if (sybqty <= 0)
@@ -672,13 +671,13 @@
                                                //查找上到工序报工记录
                                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有报工
                                                {
                                                    string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//上道报工数量
                                                    decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //本道报工总数量
                                                    decimal sybqty = decimal.Parse(sgood_qty);//本道剩余可发数量=上道报工数量
                                                    decimal sybqty = sgood_qty;//本道剩余可发数量=上道报工总数量
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                    rt.noreportqty = sybqty;                                             //未发数量=剩余可发数量
@@ -705,11 +704,11 @@
                                                //查找上到工序收料记录
                                                sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                                dynamicParams.Add("@ordercode", ordercode);
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEPNAME"].ToString());
                                                dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
                                                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                                                if (data3.Rows.Count > 0) //上道有收料
                                                {
                                                    decimal ssqty = decimal.Parse(data3.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//上道收料数量
                                                    decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//上道收料数量
                                                    decimal sybqty = ssqty;//本道剩余可发数量=上道收料数量
                                                    if (sybqty <= 0)
@@ -784,10 +783,10 @@
                                        var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                        if (data1.Rows.Count > 0) //有收料记录
                                        {
                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                            decimal sqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//本道收料数量
                                            decimal ng_qty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//本道不良数量
                                            decimal ksqty = fqty - sqty - ng_qty;                                                                                         //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                            decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//本道收料数量
                                            decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//本道不良数量
                                            decimal ksqty = fqty - sqty - ng_qty;                                                //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                            if (ksqty <= 0)
                                            {
                                                mes.code = "300";
@@ -801,7 +800,7 @@
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                rt.noreportqty = ksqty;                                              //未收数量=本道发料数量
                                                rt.reportqty = sqty + ng_qty;                                        //已收数量                                   
                                                rt.startqty = fqty;                                                  //收料数量=本道发料数量
                                                rt.startqty = ksqty;                                                  //收料数量=本道发料数量
                                                mes.code = "200";
                                                mes.count = 3;
@@ -812,7 +811,7 @@
                                        }
                                        else
                                        {
                                            decimal fqty = decimal.Parse(data0.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                            decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                            rt.noreportqty = fqty;                                               //未收数量=本道发料数量
@@ -840,9 +839,8 @@
                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
                                               left join TStep S on A.step_code=S.stepcode
                                               where M.wo_code=@wocode and A.step_code=@stepcode and A.seq=@seq-1";
                                               where M.wo_code=@wocode  and A.seq=@seq-1";
                                    dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                    dynamicParams.Add("@stepcode", data.Rows[0]["STEPCODE"].ToString());
                                    dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                    if (data0.Rows.Count > 0)
@@ -861,10 +859,10 @@
                                            var data2 = DapperHelper.selectdata(sql, dynamicParams);
                                            if (data2.Rows.Count > 0) //有收料记录
                                            {
                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                decimal sqty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("SQTY"))).Sum().ToString());//本道收料数量
                                                decimal ng_qty = decimal.Parse(data2.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("NG_QTY"))).Sum().ToString());//本道不良数量
                                                decimal ksqty = fqty - sqty - ng_qty;                                                                                         //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//本道发料数量
                                                decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//本道收料数量
                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//本道不良数量
                                                decimal ksqty = fqty - sqty - ng_qty;                                               //剩余可发数量=本道发料数量-本道收料数量-本道不良数量
                                                if (ksqty <= 0)
                                                {
                                                    mes.code = "300";
@@ -878,7 +876,7 @@
                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                    rt.noreportqty = ksqty;                                              //未收数量=本道发料数量
                                                    rt.reportqty = sqty + ng_qty;                                        //已收数量                                   
                                                    rt.startqty = fqty;                                                  //收料数量=本道发料数量
                                                    rt.startqty = ksqty;                                                  //收料数量=本道发料数量
                                                    mes.code = "200";
                                                    mes.count = 3;
@@ -888,7 +886,7 @@
                                            }
                                            else
                                            {
                                                decimal fqty = decimal.Parse(data1.AsEnumerable().Select(d => Convert.ToDouble(d.Field<Int32>("FQTY"))).Sum().ToString());//本道发料数量
                                                decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //本道发料数量
                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //任务数量
                                                rt.noreportqty = fqty;                                               //未收数量=本道发料数量