Beispiel #1
0
        /// <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);
        }