yl
2023-05-30 925394b1b7f61a2c2a15fdaa0ecd0763214ccda1
VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -58,17 +58,30 @@
                {
                    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 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)";
                    //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 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)";
                    sql = @"select  AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname,
                          sum(AA.good_qty) as good_qty,sum(AA.ng_qty)+sum(AA.bad_qty) as ng_qty,sum(AA.bad_qty) as  bad_qty
                          from(
                          select  P.lm_date,E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,A.good_qty,A.ng_qty,A.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 and P.sourceid=E.id
                          where P.status<>'CLOSED' and P.status<>'NEW'
                          and P.wkshp_code in @shopcode and  DateDiff(dd,P.lm_date,getdate())<=15
                          ) as AA  group by AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname
                          order by AA.lm_date desc";
                    var data0 = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                
                    if (data0.Rows.Count > 0)
@@ -93,7 +106,7 @@
                            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.bad_qty as 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";
@@ -158,17 +171,30 @@
            try
            {
                //获取任务列表信息
                sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
                //sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
                //         select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
                //         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 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.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 ";
                sql = @"select *  from(
                         select A.*,ROW_NUMBER() OVER(ORDER BY A.lm_date desc) AS RowNum from(
                         select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
                         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                         A.plan_qty,B.good_qty,BS.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 (select wo_code, sum(good_qty) as good_qty from TK_Wrk_Step where isend='Y' group by wo_code) B on A.wo_code=B.wo_code
                          inner join (select wo_code, sum(ng_qty)+sum(bad_qty) as ng_qty from TK_Wrk_Step group by wo_code) BS on A.wo_code=BS.wo_code
                         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.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 ";
                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and  DateDiff(dd,A.lm_date,getdate())<=15
                         )as A
                         ) as AA ";
                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -287,7 +313,7 @@
            try
            {
                //获取采购订单跟踪列表
                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom ";
                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -337,7 +363,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate";
                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -361,7 +387,7 @@
            try
            {
                //获取仓库生产加工单待入库列表
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate";
                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate desc";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -462,15 +488,26 @@
            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";
                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 TK_Wrk_Record T on S.wo_code=T.wo_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'
                        and T.eqp_code=@lineCode and B.status<>'CLOSED' and  DateDiff(dd,B.lm_date,getdate())<=15
                        ) as AA
                        group by AA.saleOrderCode,AA.materiel_code,AA.partname";
                dynamicParams.Add("@lineCode", lineCode);
@@ -497,7 +534,19 @@
            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
                //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";
                sql = @"select row_number() over(order by A.plan_startdate,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(
@@ -507,8 +556,8 @@
                        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";
                        where   A.status<>'CLOSED' and  DateDiff(dd,A.lm_date,getdate())<=15
                        order by A.plan_startdate,B.seq";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -677,7 +726,23 @@
            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,
                //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";
                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
@@ -690,8 +755,11 @@
                        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,MM.step_code,T.stepname,A.good_qty,A.ng_qty";
                        and  DateDiff(dd,MM.lm_date,getdate())<=15
                        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
                        order by MM.lm_date desc";
                dynamicParams.Add("@StepCode", StepCode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";