| | |
| | | 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 = "查询成功!"; |
| | |
| | | #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 != "") //产线编码不为空 |
| | | { |
| | | List<ShopTopLeft> list = new List<ShopTopLeft>(); |
| | | //获取产线信息 |
| | | for (int i = 0; i < json.Count; i++) |
| | | 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 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) |
| | | { |
| | | 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) |
| | | for (int j = 0; j < data0.Rows.Count; j++) |
| | | { |
| | | line.lineworkcont=data.Rows[0]["CONT"].ToString(); //产线总单量 |
| | | line.children = new List<TreeOne>(); |
| | | //查询产线下工单信息 |
| | | sql = @"select distinct E.saleOrderCode,P.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname from TFlw_Rteqp A |
| | | inner join TFlw_Rtdt B on A.step_code=B.step_code |
| | | inner join TK_Wrk_Man P on B.rout_code=P.route_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 P.is_delete<>'1' and A.eqp_code=@linecode"; |
| | | 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>(); |
| | | 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 |
| | | //查新工单下工序信息 |
| | | 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"; |
| | | dynamicParams.Add("@linecode", 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();//不良数量 |
| | | TreeTwo linetwo = new TreeTwo(); |
| | | linetwo.stepseq = stepseq; |
| | | linetwo.stepcode = stepcode; |
| | | linetwo.stepname = stepname; |
| | | linetwo.planqty = planqty; |
| | | linetwo.goodqty = good_qty; |
| | | linetwo.ngqty = ng_qty; |
| | | 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; |
| | | return mes; |
| | | 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; |
| | | return mes; |
| | | list.Add(lineone); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.Message = "当前车间下无在生产任务!"; |
| | | mes.data = null; |
| | | } |
| | | } |
| | | else |
| | | else |
| | | { |
| | | mes.code = "300"; |
| | | mes.Message = "产线参数不能为空!"; |
| | | mes.Message = "车间参数不能为空!"; |
| | | mes.data = null; |
| | | } |
| | | } |
| | |
| | | mes.Message = e.Message; |
| | | mes.data = null; |
| | | } |
| | | mes.code = "200"; |
| | | mes.Message = "查询成功!"; |
| | | 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 |
| | | { |
| | | //获取任务列表信息 |
| | | 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 TKimp_Ewo E on A.m_po=E.wo |
| | | 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.is_delete<>'1' and B.isend='Y' |
| | | )as A "; |
| | | var data = DapperHelper.selecttable(sql); |
| | | 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 = "查询成功!"; |
| | | mes.data = data; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[大岛车间综合看板,右上top排行接口] |
| | | public static ToMessage LineSearchTopRightData() |
| | | #region[大岛车间综合看板,右上top排行接口,当日] |
| | | 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信息 |
| | | sql = @"select top 5 A.partname,isnull(sum(A.good_qty),0) as good_qty from( |
| | | select M.partname,A.good_qty from TK_Wrk_Record A |
| | | inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code |
| | | inner join TMateriel_Info M on A.materiel_code=M.partcode |
| | | where A.style='B' and S.isend='Y' |
| | | union all |
| | | select 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 |
| | | inner join TMateriel_Info M on A.materiel_code=M.partcode |
| | | where A.style='S' and S.isend='Y' |
| | | ) as A group by A.partname order by good_qty desc"; |
| | | sql = @"select top 5 A.org_name as wkshname,A.name as linename,A.partname,isnull(sum(A.good_qty),0) as good_qty from( |
| | | select W.org_name,E.name,M.partname,A.good_qty from TK_Wrk_Record A |
| | | inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code |
| | | inner join TMateriel_Info 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 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 |
| | | inner join TMateriel_Info M on A.materiel_code=M.partcode |
| | | 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.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[大岛车间综合看板,右下top排行接口,当前时间往前一周] |
| | | 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 |
| | | 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.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 PurchaseLeftTop() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | //获取本月采购订单数、本月采购进货单数、本月采购入库单数 |
| | | sql = @"select * from h_v_DDKanBan_PurchaseLeftTop "; |
| | | var data = DapperHelper.selecttable(sql); |
| | | mes.code = "200"; |
| | | mes.Message = "查询成功!"; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[大岛车间综合看板,右下top排行接口] |
| | | public static ToMessage LineSearchBottomRightData() |
| | | #region[采购订单跟踪管理看板,左下采购订单跟踪列表] |
| | | public static ToMessage PurchaseLeftBottom() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | //获取采购订单跟踪列表 |
| | | sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom order by voucherdate desc"; |
| | | 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[采购订单跟踪管理看板,右侧Top] |
| | | public static ToMessage PurchaseRight() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | //获取采购订单跟踪列表 |
| | | sql = @"select * from h_v_DDKanBan_PurchaseRight "; |
| | | 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[大岛仓库看板,左上产品待入库列表] |
| | | public static ToMessage WareHouseTopLeftData() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | //获取仓库生产加工单待入库列表 |
| | | sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate desc"; |
| | | 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[大岛仓库看板,左下产品待发货列表] |
| | | public static ToMessage WareHouseTopBottomData() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | //获取仓库生产加工单待入库列表 |
| | | sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate desc"; |
| | | 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 WareHouseRightTopData() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | sql = @"select * from h_v_DDKanBan_WareHouseRightTop"; |
| | | 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 WareHouseRightBottomData() |
| | | { |
| | | string sql = ""; |
| | | try |
| | | { |
| | | sql = @"select * from h_v_DDKanBan_WareHouseRightBottom"; |
| | | 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[车间看板公告] |
| | | public static ToMessage WkspReportNotice(string shopcode) |
| | | { |
| | | string sql = ""; |
| | | var dynamicParams = new DynamicParameters(); |
| | | try |
| | | { |
| | | //获取报工不良top5信息 |
| | | sql = @"select isnull(COUNT(checkitem_name),0) cont,checkitem_name from TStepCheckRecordSub |
| | | group by checkitem_name order by cont desc"; |
| | | 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"; |
| | | 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 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 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); |
| | | 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"; |
| | | 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( |
| | | 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' 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 = "查询成功!"; |
| | | 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"; |
| | | 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' |
| | | 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"; |
| | | mes.Message = "查询成功!"; |
| | | mes.data = data; |
| | |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | } |
| | | |