/// <summary> /// 查询怠工统计 /// </summary> /// <param name="sw">参见SabotageCount_SW</param> /// <returns>参见SabotageDetail_Model</returns> public static IEnumerable <SabotageDetail_Model> getSabotageDetailModel(SabotageCount_SW sw) { var result = new List <SabotageDetail_Model>(); if (string.IsNullOrEmpty(sw.DateBegin))//开始时间为空 { return(result); } if (string.IsNullOrEmpty(sw.DateEnd))//结束时间为空 { return(result); } if (string.IsNullOrEmpty(sw.ORGNO))//组织机构编码 { return(result); } //根据机构编码获取下属组织机构 注意:这个函数含本级及所有下级的 DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(new T_SYS_ORGSW { TopORGNO = sw.ORGNO }); DataTable dtHU = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW { ISENABLE = "1", BYORGNO = sw.ORGNO, PhoneHname = sw.PhoneHname }); //获取护林员每日巡检信息 DataTable dtHRRealData = BaseDT.T_IPS_REALDATATEMPORARY.getHRAndRealDataDT(new T_IPS_REALDATATEMPORARYSW { DateBegin = sw.DateBegin, DateEnd = sw.DateEnd, ORGNO = sw.ORGNO, PhoneHname = sw.PhoneHname }); float LengthError = ConfigCls.getPatrolLengthError() / 1000;//巡检距离误差 //仅查怠工DataRow[] dr = dtHRRealData.Select("PatrolLenError<=" + LengthError.ToString(), "SBDATE DESC"); DataRow[] dr = dtHRRealData.Select("", "HID,SBDATE DESC"); for (int i = 0; i < dr.Length; i++) { SabotageDetail_Model m = new SabotageDetail_Model(); string hid = dr[i]["HID"].ToString(); m.HID = hid; string orgNo = dr[i]["BYORGNO"].ToString(); m.ORGNo = orgNo; m.ORGName = BaseDT.T_SYS_ORG.getName(dtOrg, orgNo); m.HNAME = dr[i]["HNAME"].ToString(); //护林员姓名 m.PHONE = dr[i]["PHONE"].ToString(); //电话 m.Date = PublicClassLibrary.ClsSwitch.SwitDate(dr[i]["SBDATE"].ToString()); //日期 m.Count0 = Convert.ToDouble(dr[i]["PATROLLENGTH"].ToString()).ToString("F2"); //应巡长度 m.Count1 = Convert.ToDouble(dr[i]["RealPATROLLENGTH"].ToString()).ToString("F2"); //实巡长度 m.CountPer = ClsStr.getPercent(dr[i]["RealPATROLLENGTH"].ToString(), dr[i]["PATROLLENGTH"].ToString()); //string wcl1 = wcl.ToString("F0"); //if (wcl <= 100) // wcl1 = "<font color=red>" + wcl1 + "</font>"; //m.CountPer = wcl1; result.Add(m); } dtHRRealData.Clear(); dtHRRealData.Dispose(); dtHU.Clear(); dtHU.Dispose(); dtOrg.Clear(); dtOrg.Dispose(); return(result); }