yl
2022-12-02 1a87a3bd6b3a85f7c7274f56a28a95135b351fbe
VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -20,22 +20,16 @@
        public static List<SqlParameter> listStr = new List<SqlParameter>(); //定义全局参数集合
        public static SqlParameter[] parameters; //定义全局SqlParameter参数数组
        #region[大岛车间综合看板,生产车间查找产线接口]
        public static ToMessage ShopSearchLine(string shopcode)
        #region[大岛车间综合看板,获取生产车间]
        public static ToMessage ShopSearch()
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (shopcode != "" && shopcode != null) //车间编码不为空
                {
                    search += "where wksp_code=@shopcode ";
                    dynamicParams.Add("@shopcode", shopcode);
                }
                //车间编码获取产线信息
                sql = @"select code ,name from TEqpInfo " + search;
                //获取车间信息
                sql = @"select org_code ,org_name from TOrganization where is_delete='0' and description='W'";
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -53,118 +47,91 @@
        #endregion
        #region[大岛车间综合看板,左上产线加工任务接口]
        public static ToMessage LineSearchTopLeftData(List<ObjectData> json)
        public static ToMessage LineSearchTopLeftData(string shopcode)
        {
            string sql = "";
            string search = "";
            List<ShopTopLeft> list = new List<ShopTopLeft>();
            var dynamicParams = new DynamicParameters();
            try
            {
                if (json == null || json.Count>0) //产线编码不为空
                if (shopcode != null || shopcode != "") //产线编码不为空
                {
                    //获取产线信息
                    for (int i = 0; i < json.Count; i++)
                    {
                        ShopTopLeft line = new ShopTopLeft();
                        line.linecode = json[i].code;
                        line.linename = json[i].name;
                        //获取产线下开工总单量
                        sql = @"select COUNT(*) cont  from(
                                select distinct B.rout_code,M.wo_code  from TFlw_Rteqp  A
                                inner join TFlw_Rtdt B on A.step_code=B.step_code
                                inner join TK_Wrk_Man M on B.rout_code=M.route_code
                                where M.status<>'CLOSED'  and M.is_delete<>'1' and A.eqp_code=@linecode) as A";
                        dynamicParams.Add("@linecode", json[i].code);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0 && decimal.Parse(data.Rows[0]["CONT"].ToString())>0)
                        {
                            line.lineworkcont=data.Rows[0]["CONT"].ToString(); //产线总单量
                            line.children = new List<TreeOne>();
                            //查询产线下已开工的加工单信息
                            sql = @"select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname   from TK_Wrk_Record A
                    string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
                    //查询产线下已开工的加工单信息
                    sql = @"select *  from (
                                    select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,S.good_qty,S.ng_qty,S.bad_qty   from TK_Wrk_Record A
                                    inner join TK_Wrk_Man P on A.wo_code=P.wo_code
                                    left join TMateriel_Info M on P.materiel_code=M.partcode
                                    left join TUom T on M.uom_code=T.code 
                                    left join TKimp_Ewo E on P.m_po=E.wo
                                    where P.status<>'CLOSED' and P.status<>'NEW' and A.eqp_code=@linecode and A.style='S' and A.step_seq='1'";
                            dynamicParams.Add("@linecode", json[i].code);
                            var data0 = DapperHelper.selectdata(sql, dynamicParams);
                            if (data0.Rows.Count > 0)
                            {
                                for (int j = 0; j < data0.Rows.Count; j++)
                                {
                                    string saleOrderCode = data0.Rows[j]["SALEORDERCODE"].ToString();//销售订单号
                                    string wo_code = data0.Rows[j]["WO_CODE"].ToString();//工单号
                                    string plan_qty = data0.Rows[j]["PLAN_QTY"].ToString();//任务数量
                                    string partcode = data0.Rows[j]["PARTCODE"].ToString();//产品编码
                                    string partname = data0.Rows[j]["PARTNAME"].ToString();//产品名称
                                    string partspec = data0.Rows[j]["PARTSPEC"].ToString();//产品规格
                                    string uomname = data0.Rows[j]["UOMNAME"].ToString();//单位名称
                                    TreeOne lineone = new TreeOne();
                                    lineone.saleordercode = saleOrderCode;
                                    lineone.workcode = wo_code;
                                    lineone.qty = plan_qty;
                                    lineone.partnumber = partcode;
                                    lineone.partname = partname;
                                    lineone.partspec = partspec;
                                    lineone.uom = uomname;
                                    line.children.Add(lineone);
                                    lineone.children = new List<TreeTwo>();
                                    left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
                                    left join (
                                      select wo_code,sum(good_qty) as good_qty,sum(ng_qty) as ng_qty,sum(bad_qty) as bad_qty  from TK_Wrk_Step where isend='Y' group by wo_code
                                    ) S on P.wo_code=S.wo_code
                                    where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'
                                    ) as AA where AA.plan_qty>(AA.good_qty+aa.bad_qty+AA.ng_qty)";
                    var data0 = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                    if (data0.Rows.Count > 0)
                    {
                        for (int j = 0; j < data0.Rows.Count; j++)
                        {
                            string saleOrderCode = data0.Rows[j]["SALEORDERCODE"].ToString();//销售订单号
                            string wo_code = data0.Rows[j]["WO_CODE"].ToString();//工单号
                            string plan_qty = data0.Rows[j]["PLAN_QTY"].ToString();//任务数量
                            string partcode = data0.Rows[j]["PARTCODE"].ToString();//产品编码
                            string partname = data0.Rows[j]["PARTNAME"].ToString();//产品名称
                            string partspec = data0.Rows[j]["PARTSPEC"].ToString();//产品规格
                            string uomname = data0.Rows[j]["UOMNAME"].ToString();//单位名称
                            ShopTopLeft lineone = new ShopTopLeft();
                            lineone.saleordercode = saleOrderCode;
                            lineone.workcode = wo_code;
                            lineone.qty = plan_qty;
                            lineone.partnumber = partcode;
                            lineone.partname = partname;
                            lineone.partspec = partspec;
                            lineone.uom = uomname;
                            lineone.children = new List<TreeTwo>();
                                    //查新工单下工序信息
                                    sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty,A.status
                            //查新工单下工序信息
                            sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty,A.status
                                            from TK_Wrk_Step A
                                            left join TStep T on A.step_code=T.stepcode
                                            where A.wo_code=@wo_code";
                                    dynamicParams.Add("@wo_code", wo_code);
                                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                    for (int k = 0; k < data1.Rows.Count; k++)
                                    {
                                        string stepseq= data1.Rows[k]["SEQ"].ToString();//工序序号
                                        string stepcode = data1.Rows[k]["STEPCODE"].ToString();//工序编码
                                        string stepname = data1.Rows[k]["STEPNAME"].ToString();//工序名称
                                        string planqty = data1.Rows[k]["PLAN_QTY"].ToString();//任务数量
                                        string good_qty = data1.Rows[k]["GOOD_QTY"].ToString();//报工数量
                                        string ng_qty = data1.Rows[k]["NG_QTY"].ToString();//不良数量
                                        string status = data1.Rows[k]["STATUS"].ToString();//状态
                                        TreeTwo linetwo = new TreeTwo();
                                        linetwo.stepseq = stepseq;
                                        linetwo.stepcode = stepcode;
                                        linetwo.stepname = stepname;
                                        linetwo.planqty = planqty;
                                        linetwo.goodqty = good_qty;
                                        linetwo.ngqty = ng_qty;
                                        linetwo.status = status;
                                        lineone.children.Add(linetwo);
                                    }
                                }
                                list.Add(line);
                            }
                            else
                            dynamicParams.Add("@wo_code", wo_code);
                            var data1 = DapperHelper.selectdata(sql, dynamicParams);
                            for (int k = 0; k < data1.Rows.Count; k++)
                            {
                                mes.code = "300";
                                mes.Message = "当前产线下无在生产任务!";
                                mes.data = null;
                                list.Add(line);
                                continue;
                                string stepseq = data1.Rows[k]["SEQ"].ToString();//工序序号
                                string stepcode = data1.Rows[k]["STEPCODE"].ToString();//工序编码
                                string stepname = data1.Rows[k]["STEPNAME"].ToString();//工序名称
                                string planqty = data1.Rows[k]["PLAN_QTY"].ToString();//任务数量
                                string good_qty = data1.Rows[k]["GOOD_QTY"].ToString();//报工数量
                                string ng_qty = data1.Rows[k]["NG_QTY"].ToString();//不良数量
                                string status = data1.Rows[k]["STATUS"].ToString();//状态
                                TreeTwo linetwo = new TreeTwo();
                                linetwo.stepseq = stepseq;
                                linetwo.stepcode = stepcode;
                                linetwo.stepname = stepname;
                                linetwo.planqty = planqty;
                                linetwo.goodqty = good_qty;
                                linetwo.ngqty = ng_qty;
                                linetwo.status = status;
                                lineone.children.Add(linetwo);
                            }
                        }
                        else
                        {
                            mes.code = "300";
                            mes.Message = "当前产线下无在生产任务!";
                            mes.data = null;
                            list.Add(line);
                            continue;
                            list.Add(lineone);
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "当前车间下无在生产任务!";
                        mes.data = null;
                    }
                }
                else
                else
                {
                    mes.code = "300";
                    mes.Message = "产线参数不能为空!";
                    mes.Message = "车间参数不能为空!";
                    mes.data = null;
                }
            }
@@ -180,12 +147,14 @@
            mes.data = list;
            return mes;
        }
        #endregion\
        #endregion
        #region[大岛车间综合看板,左下列表接口]
        public static ToMessage LineSearchBottomLeftData()
        public static ToMessage LineSearchBottomLeftData(string shopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
            try
            {
                //获取任务列表信息
@@ -194,12 +163,13 @@
                         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                         from TK_Wrk_Man A 
                         inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                         inner join TKimp_Ewo E on A.m_po=E.wo
                         inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                         left  join TMateriel_Info M on A.materiel_code=M.partcode
                         left  join TUom U on M.uom_code=U.code
                         where A.status<>'CLOSED' and A.is_delete<>'1' and B.isend='Y'
                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
                         and A.plan_qty>(B.good_qty+B.ng_qty+B.bad_qty)
                         )as A ";
                var data = DapperHelper.selecttable(sql);
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
@@ -216,10 +186,11 @@
        #endregion
        #region[大岛车间综合看板,右上top排行接口,当日]
        public static ToMessage LineSearchTopRightData()
        public static ToMessage LineSearchTopRightData(string shopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
            try
            {
                //获取产品报工top5信息
@@ -229,7 +200,7 @@
                        inner join TMateriel_Info M on A.materiel_code=M.partcode
                        inner  join TEqpInfo E on A.eqp_code=E.code
                        inner  join TOrganization W on E.wksp_code=W.org_code and W.description='W'
                        where A.style='B' and S.isend='Y' and datediff(day,GETDATE(),A.lm_date)=0
                        where A.style='B' and S.isend='Y' and W.org_code in @shopcode and datediff(day,GETDATE(),A.lm_date)=0
                        union all
                        select C.name as linename,'' as wkshname,M.partname,A.sqty as good_qty  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
@@ -237,7 +208,7 @@
                        inner  join TCustomer C on A.wx_code=C.code and C.btype='WX'
                        where A.style='S' and S.isend='Y' and datediff(day,GETDATE(),A.lm_date)=0
                        ) as A group by A.org_name,A.name,A.partname order by good_qty desc";
                var data = DapperHelper.selecttable(sql);
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
@@ -254,19 +225,21 @@
        #endregion
        #region[大岛车间综合看板,右下top排行接口,当前时间往前一周]
        public static ToMessage LineSearchBottomRightData()
        public static ToMessage LineSearchBottomRightData(string shopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
            try
            {
                //获取报工不良top5信息
                sql = @"select isnull(COUNT(B.name),0) cont,B.name   
                        from CSR_WorkRecord_Defect A
                        inner join TDefect B on A.defect_code=B.code
                        where DateDiff(dd,A.lm_date,getdate())<=7
                        inner join TK_Wrk_Man M on A.wo_code=M.wo_code
                        where DateDiff(dd,A.lm_date,getdate())<=7 and M.wkshp_code in @shopcode
                        group by B.name order by cont desc";
                var data = DapperHelper.selecttable(sql);
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
@@ -364,7 +337,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft";
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -388,7 +361,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom";
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -450,5 +423,292 @@
            return mes;
        }
        #endregion
        #region[车间看板公告]
        public static ToMessage WkspReportNotice(string shopcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string分割转string[]
                //获取车间公告信息
                sql = @"select contents  from TSystemAnnouncement
                       where wksp_code in @shopcode";
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                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 WkshpLineData(string lineCode)
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取产线销售订单报工信息,报工数量>0  且工单状态为非关闭状态  且工序为末道工序 (--and (S.good_qty+S.ng_qty+S.bad_qty)<S.plan_qty)
                sql = @"select AA.saleOrderCode,AA.materiel_code,AA.partname,sum(AA.good_qty) as good_qty   from (
                        select distinct A.saleOrderCode,A.materiel_code,M.partname,isnull(S.good_qty,0) as good_qty
                        from TKimp_Ewo A
                        left join TK_Wrk_Man B on A.wo=B.m_po and A.materiel_code=B.materiel_code
                        left join TK_Wrk_Step S on B.wo_code=S.wo_code and S.isend='Y'
                        left join TFlw_Rteqp R on S.step_code=R.step_code
                        left  join TMateriel_Info M on A.materiel_code=M.partcode
                        where A.saleOrderCode is not null and A.saleOrderCode<>''
                        and R.eqp_code=@lineCode and B.status<>'CLOSED'
                        ) as AA
                        group by AA.saleOrderCode,AA.materiel_code,AA.partname";
                dynamicParams.Add("@lineCode", lineCode);
                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 WkshpContentData()
        {
            string sql = "";
            try
            {
                //获取工单报工信息,报工数量>0  且工单状态为非关闭状态
                sql = @"select row_number() over(order by A.wo_code,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
                        from TK_Wrk_Man A
                        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
                        inner join(
                          select wo_code,step_code,materiel_code,eqp_code, sum(good_qty) as  good_qty
                          from TK_Wrk_Record where style='B' group by wo_code,step_code,materiel_code,eqp_code
                          ) as S on A.wo_code=S.wo_code and A.materiel_code=S.materiel_code and B.step_code=S.step_code
                        left join TStep T on B.step_code=T.stepcode
                        left join TMateriel_Info M on A.materiel_code=M.partcode
                        left join TEqpInfo E on S.eqp_code=E.code
                        where   A.status<>'CLOSED'
                        order by A.wo_code,B.seq";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[富尔达车间质量数字化看板,top5不良]
        public static ToMessage BadTop5(string StepCode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //富尔达车间质量数字化看板,top5不良(取质检工序)
                sql = @"select T.name,count(*) as cont   from CSR_WorkRecord_Defect A
                        inner join TDefect T on A.defect_code=T.code
                        where step_code=@StepCode and datediff(day,GETDATE(),A.lm_date)=0
                        group by T.name order by cont desc";
                dynamicParams.Add("@StepCode", StepCode);
                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 BadWeek(string StepCode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //富尔达车间质量数字化看板,周不良趋势(取质检工序当前时间往前一周)
                sql = @"select
                        case when datepart(weekday,a.click_date)=2 then '周一'
                        when datepart(weekday,a.click_date)=3 then '周二'
                        when datepart(weekday,a.click_date)=3 then '周二'
                        when datepart(weekday,a.click_date)=4 then '周三'
                        when datepart(weekday,a.click_date)=5 then '周四'
                        when datepart(weekday,a.click_date)=6 then '周五'
                        when datepart(weekday,a.click_date)=7 then '周六'
                        when datepart(weekday,a.click_date)=1 then '周日' end as click_date,
                        ISNULL(b.count,0) as count
                        from (
                        SELECT convert(varchar(10),getdate()-6,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate()-5,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate()-4,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate()-3,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate()-2,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate()-1,120) as click_date
                        union all
                        SELECT convert(varchar(10),getdate(),120) as click_date
                        ) a left join (
                        select convert(varchar(10),lm_date,120) as datetime, count(*) as count
                        from CSR_WorkRecord_Defect where step_code=@StepCode
                        group by convert(varchar(10),lm_date,120)
                        ) b on a.click_date = b.datetime;";
                dynamicParams.Add("@StepCode", StepCode);
                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 BadDayDistriBute(string StepCode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //富尔达车间质量数字化看板,日不良分布(取质检工序,按产线统计)
                sql = @"select A.eqp_code,E.name as eqp_name,count(*) as cont   from TK_Wrk_Record A
                        inner join CSR_WorkRecord_Defect B on A.id=B.record_id
                        left  join TEqpInfo E on A.eqp_code=E.code
                        where B.step_code=@StepCode and datediff(day,GETDATE(),B.lm_date)=0
                        group by A.eqp_code,E.name order by cont desc";
                dynamicParams.Add("@StepCode", StepCode);
                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 BadWeekDistriBute(string StepCode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //富尔达车间质量数字化看板,周不良分布(取质检工序,按产线统计)
                sql = @"select A.eqp_code,E.name as eqp_name,count(*) as cont   from TK_Wrk_Record A
                        inner join CSR_WorkRecord_Defect B on A.id=B.record_id
                        left  join TEqpInfo E on A.eqp_code=E.code
                        where B.step_code=@StepCode and  DateDiff(dd,B.lm_date,getdate())<=7
                        group by A.eqp_code,E.name order by cont desc";
                dynamicParams.Add("@StepCode", StepCode);
                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 BadContManger(string StepCode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //富尔达车间质量数字化看板,不良明细(取质检工序,按产线统计)
                sql = @"select row_number() over(order by MM.lm_date,MM.wo_code) as RowNum,MM.lm_date,A.eqp_code,E.name as eqp_name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty as report_qty,A.ng_qty,
                        defect_name=( STUFF(( SELECT  ',' + B.name
                                                  FROM  CSR_WorkRecord_Defect N
                                            inner join TDefect B on N.defect_code=B.code
                                            where record_id=MM.record_id
                                                FOR
                                                  XML PATH('')
                                                ), 1, 1, '') )
                        from CSR_WorkRecord_Defect as MM
                        inner join TK_Wrk_Record A on MM.record_id=a.id
                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
                        inner join TStep T on MM.step_code=T.stepcode
                        inner join TEqpInfo E on A.eqp_code=E.code
                        inner join TMateriel_Info M on A.materiel_code=M.partcode
                        where  MM.step_code=@StepCode and MM.style='B' and A.style='B' and A.ng_qty>0 and S.status<>'CLOSED'
                        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty";
                dynamicParams.Add("@StepCode", StepCode);
                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
    }
}
}