yl
2022-12-02 accb803beb9c54b283b5b2f8bf8e0d8937b80c7a
VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -147,7 +147,7 @@
            mes.data = list;
            return mes;
        }
        #endregion\
        #endregion
        #region[大岛车间综合看板,左下列表接口]
        public static ToMessage LineSearchBottomLeftData(string shopcode)
@@ -462,15 +462,17 @@
            try
            {
                //获取产线销售订单报工信息,报工数量>0  且工单状态为非关闭状态  且工序为末道工序 (--and (S.good_qty+S.ng_qty+S.bad_qty)<S.plan_qty)
                sql = @"select A.saleOrderCode,A.materiel_code,M.partname,
                        isnull(sum(S.good_qty),0) as good_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
                        inner join TK_Wrk_Man B on A.wo=B.m_po
                        inner join TK_Wrk_Step S on B.wo_code=S.wo_code
                        inner join TFlw_Rteqp R on S.step_code=R.step_code
                        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 S.good_qty>0  and S.isend='Y' and R.eqp_code=@lineCode and B.status<>'CLOSED'
                        group by A.saleOrderCode,A.materiel_code,M.partname";
                        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";
@@ -495,10 +497,16 @@
            try
            {
                //获取工单报工信息,报工数量>0  且工单状态为非关闭状态  
                sql = @"select A.wo_code,M.partname,B.seq,T.stepname,B.plan_qty,B.good_qty,B.ng_qty,B.bad_qty  from TK_Wrk_Man A
                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
                        left join TMateriel_Info M on A.materiel_code=M.partcode
                        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);
@@ -517,6 +525,189 @@
        }
        #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,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
                        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,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
    }
}