/// <summary> /// 查询漏检统计 /// </summary> /// <param name="sw">参见OmitCheckCount_SW</param> /// <returns>参见HUCheck_OmitCount_Model</returns> public static IEnumerable <HUCheck_OmitCount_Model> getOmitCheckModel1(OmitCheckCount_SW sw) { var result = new List <HUCheck_OmitCount_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, HNAME = sw.PhoneHname, HID = sw.HID }); //获取具体巡检情况 DataTable dtPatrol = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getDT( new T_IPSFR_ROUTERAIL_PATROL_SW { DateBegin = sw.DateBegin, DateEnd = sw.DateEnd, orgNo = sw.ORGNO, PhoneHname = sw.PhoneHname, HID = sw.HID }); DateTime dt1 = Convert.ToDateTime(sw.DateBegin); DateTime dt2 = Convert.ToDateTime(sw.DateEnd); DataRow[] drOrg = dtOrg.Select("", "ORGNO"); //取所有 int days = ClsStr.getDateDiff(sw.DateBegin, sw.DateEnd) + 1; //日期包含天数 for (int i = 0; i < drOrg.Length; i++) { HUCheck_OmitCount_Model m = new HUCheck_OmitCount_Model(); string orgNo = drOrg[i]["ORGNO"].ToString(); m.ORGNo = orgNo; string orgName = BaseDT.T_SYS_ORG.getName(dtOrg, orgNo); m.ORGName = orgName; //巡检与漏检 string CCHr = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getCountByOrgNo(dtPatrol, orgNo, "").ToString(); if (CCHr != "0") { string Chr0 = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getCountByOrgNo(dtPatrol, orgNo, "1").ToString(); string Chr1 = ClsStr.getDiff(CCHr, Chr0).ToString("F0"); string Chr2 = ClsStr.getPercent(Chr0, CCHr).ToString("F0"); m.OmitCount0 = CCHr; //总 m.OmitCount1 = Chr0; //完成 m.OmitCount2 = Chr1; //未完成 m.OmitCount3 = Chr2 + "%"; //完成率 } result.Add(m); } if (PublicCls.OrgIsZhen(sw.ORGNO)) //显示所有护林员 { DataRow[] drHU = dtHU.Select("", ""); for (int k = 0; k < drHU.Length; k++)//循环护林员 { HUCheck_OmitCount_Model m = new HUCheck_OmitCount_Model(); string HID = dtHU.Rows[k]["HID"].ToString(); m.HID = HID; m.ORGName = dtHU.Rows[k]["HNAME"].ToString();//护林员姓名与机构名称共用一个 string CCHr1 = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getCountByHID(dtPatrol, HID, "").ToString(); if (CCHr1 != "0") { string Chr0 = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getCountByHID(dtPatrol, HID, "1").ToString(); string Chr1 = ClsStr.getDiff(CCHr1, Chr0).ToString("F0"); string Chr2 = ClsStr.getPercent(Chr0, CCHr1).ToString("F0"); m.OmitCount0 = CCHr1; //总 m.OmitCount1 = Chr0; //完成 m.OmitCount2 = Chr1; //未完成 m.OmitCount3 = Chr2 + "%"; //完成率 } result.Add(m); } } dtHU.Clear(); dtHU.Dispose(); dtPatrol.Clear(); dtPatrol.Dispose(); dtOrg.Clear(); dtOrg.Dispose(); return(result); }
/// <summary> /// 漏检统计 Model /// </summary> /// <param name="sw"></param> /// <returns></returns> public static IEnumerable <HUCheck_OmitCount_Model> getOmitCheckModel(OmitCheckCount_SW sw) { var result = new List <HUCheck_OmitCount_Model>(); if (string.IsNullOrEmpty(sw.DateBegin))//开始时间为空 { return(result); } if (string.IsNullOrEmpty(sw.DateEnd))//结束时间为空 { return(result); } if (string.IsNullOrEmpty(sw.ORGNO))//组织机构编码 { return(result); } DateTime dt1 = Convert.ToDateTime(sw.DateBegin); DateTime dt2 = Convert.ToDateTime(sw.DateEnd); int days = ClsStr.getDateDiff(sw.DateBegin, sw.DateEnd) + 1;//日期包含天数 //根据机构编码获取下属组织机构 注意:这个函数含本级及所有下级的 //DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(new T_SYS_ORGSW { TopORGNO = sw.ORGNO }); DataTable dt = BaseDT.T_IPSFR_ROUTERAIL_PATROL.getDTByOrgNoToDate(new PatrolRouteStat_SW { DateBegin = sw.DateBegin, DateEnd = sw.DateEnd, TopORGNO = sw.ORGNO }); DataTable dtHU = BaseDT.T_IPSFR_USER.getDTByOrgSum(new T_IPSFR_USER_SW { BYORGNO = sw.ORGNO, ISENABLE = "1" }); if (PublicCls.OrgIsZhen(sw.ORGNO) == false)//市、县处理 { //只获取该市下面的县 县下面的乡 T_SYS_ORGSW swOrg = new T_SYS_ORGSW(); swOrg.SYSFLAG = ConfigCls.getSystemFlag(); swOrg.TopORGNO = sw.ORGNO; if (PublicCls.OrgIsShi(sw.ORGNO)) { swOrg.GetContyORGNOByCity = sw.ORGNO;//获取所有县 } if (PublicCls.OrgIsXian(sw.ORGNO)) { swOrg.GetXZOrgNOByConty = sw.ORGNO;//获取所有镇 } DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(swOrg); DataRow[] drOrg = dtOrg.Select("", "ORGNO");//取所有 for (int i = 0; i < drOrg.Length; i++) { HUCheck_OmitCount_Model m = new HUCheck_OmitCount_Model(); m.ORGName = drOrg[i]["ORGNAME"].ToString(); m.ORGNo = drOrg[i]["ORGNO"].ToString(); string CHr = dtHU.Compute("sum(C)", "BYORGNO=" + m.ORGNo).ToString(); //计算该单位下总人数 CHr = (string.IsNullOrEmpty(CHr) ? "0" : CHr); m.HUCount = CHr; //考勤人数 string cList = ""; for (DateTime tm = dt1; tm <= dt2; tm = tm.AddDays(1)) { string tm1 = PublicClassLibrary.ClsSwitch.SwitDate(tm).ToString(); if (string.IsNullOrEmpty(cList) == false) { cList += ","; } string tmp = dt.Compute("sum(C)", "BYORGNO='" + m.ORGNo + "' and ROUTEDATE='" + tm1 + "'").ToString(); //计算该日期下人数 cList += (string.IsNullOrEmpty(tmp) ? "0" : tmp); //各日期以逗号分隔 } m.DayCountList = cList; //日期考勤列表 if (CHr != "0") { CHr = (int.Parse(CHr) * days).ToString(); string Chr0 = dt.Compute("sum(C)", "BYORGNO='" + m.ORGNo + "'").ToString(); Chr0 = (string.IsNullOrEmpty(Chr0) ? "0" : Chr0);; // BaseDT.T_IPS_REALDATATEMPORARY.getCountByOrgNo(dtHRRealData, orgNo).ToString(); string Chr1 = ClsStr.getDiff(CHr, Chr0).ToString("F0"); Chr1 = (string.IsNullOrEmpty(Chr1) ? "0" : Chr1); string Chr2 = ClsStr.getPercent(Chr0, CHr).ToString("F0"); Chr2 = (string.IsNullOrEmpty(Chr2) ? "0" : Chr2); m.OmitCount0 = Chr0; //总 m.OmitCount1 = Chr0; //完成 m.OmitCount2 = Chr1; //完成 m.OmitCount3 = Chr2 + "%"; //完成率 } result.Add(m); } dtOrg.Clear(); dtOrg.Dispose(); } else//显示乡的,乡的列出各个护林员 { DataRow[] drOrg = dtHU.Select("", "");//取所有 for (int i = 0; i < drOrg.Length; i++) { HUCheck_OmitCount_Model m = new HUCheck_OmitCount_Model(); m.ORGName = drOrg[i]["hname"].ToString(); m.ORGNo = drOrg[i]["hid"].ToString(); string CHr = "1"; // dtHU.Compute("BYORGNO=" + m.ORGNo, "").ToString();//计算该单位下总人数 m.HUCount = (string.IsNullOrEmpty(CHr) ? "0" : CHr); //考勤人数 string cList = ""; for (DateTime tm = dt1; tm <= dt2; tm = tm.AddDays(1)) { if (string.IsNullOrEmpty(cList) == false) { cList += ","; } string tmp = dt.Compute("sum(C)", "BYORGNO='" + m.ORGNo + "' and ROUTEDATE='" + PublicClassLibrary.ClsSwitch.SwitDate(tm).ToString() + "'").ToString(); //计算该日期下人数 cList += (string.IsNullOrEmpty(tmp) ? "0" : tmp); //各日期以逗号分隔 } m.DayCountList = cList; //日期考勤列表 if (CHr != "0") { CHr = (int.Parse(CHr) * days).ToString(); string Chr0 = dt.Compute("sum(C)", "BYORGNO='" + m.ORGNo + "'").ToString(); Chr0 = (string.IsNullOrEmpty(Chr0) ? "0" : Chr0);; // BaseDT.T_IPS_REALDATATEMPORARY.getCountByOrgNo(dtHRRealData, orgNo).ToString(); string Chr1 = ClsStr.getDiff(CHr, Chr0).ToString("F0"); Chr1 = (string.IsNullOrEmpty(Chr1) ? "0" : Chr1); string Chr2 = ClsStr.getPercent(Chr0, CHr).ToString("F0"); Chr2 = (string.IsNullOrEmpty(Chr2) ? "0" : Chr2); m.OmitCount0 = CHr; //总 m.OmitCount1 = Chr0; //完成 m.OmitCount2 = Chr1; //完成 m.OmitCount3 = Chr2 + "%"; //完成率 } result.Add(m); } } dtHU.Clear(); dtHU.Dispose(); //根据机构编码获取所有护林员信息 // DataTable dtHU = BaseDT.T_IPSFR_USER.getDT(new T_IPSFR_USER_SW { BYORGNO = sw.ORGNO, ISENABLE = "1" }); dt.Clear(); dt.Dispose(); if (1 == 1) { HUCheck_OmitCount_Model m = new HUCheck_OmitCount_Model(); m.ORGName = "合计"; string HUCount = result.Sum(item => Convert.ToDecimal(item.HUCount)).ToString();//总数 string CHr = result.Sum(item => Convert.ToDecimal(item.OmitCount0)).ToString(); string Chr0 = result.Sum(item => Convert.ToDecimal(item.OmitCount1)).ToString(); string Chr1 = result.Sum(item => Convert.ToDecimal(item.OmitCount2)).ToString(); //string OmitCount2 = result.Sum(item => Convert.ToDecimal(item.OmitCount2)).ToString(); m.HUCount = (string.IsNullOrEmpty(HUCount) ? "0" : HUCount); m.OmitCount0 = CHr; //总 m.OmitCount1 = Chr0; //完成 m.OmitCount2 = Chr1; //未完成 m.OmitCount3 = ClsStr.getPercent(m.OmitCount1, m.OmitCount0).ToString("F0") + "%"; //完成率 int[] arrI = new int[days]; foreach (var v in result) { string[] a = v.DayCountList.Split(',');//组合列表 for (int i = 0; i < days; i++) { if (string.IsNullOrEmpty(arrI[i].ToString())) { arrI[i] = 0; } arrI[i] += int.Parse(a[i]); } } string cList = ""; for (int i = 0; i < days; i++) { if (string.IsNullOrEmpty(cList) == false) { cList += ","; } cList += arrI[i]; } m.DayCountList = cList; //m.LineCount2 = ClsStr.getPercent(LineCount0, LineCount).ToString("F0") + "%"; //m.PointCount = PointCount; //m.PointCount0 = PointCount0; //m.PointCount1 = result.Sum(item => Convert.ToDecimal(item.PointCount1)).ToString(); result.Insert(0, m); } return(result); }