コード例 #1
0
        /// <summary>
        /// 根据单位返回市县乡及各日期后的统计
        /// </summary>
        /// <param name="sw">参见模型</param>
        /// <returns>dt</returns>
        public static DataTable getDTByOrgNoToDate(OutRaiLCount_SW sw)
        {
            sw.DateBegin = sw.DateBegin + " 00:00:00";
            sw.DateEnd   = sw.DateEnd + " 23:59:59";
            StringBuilder sb = new StringBuilder();

            if (PublicCls.OrgIsShi(sw.TopORGNO))
            {
                sb.AppendFormat(" select count(substring(BYORGNO,1,6)+'000000000') as C,substring(BYORGNO,1,6)+'000000000' as BYORGNO,cast(CONVERT(varchar(100), sbtime, 111) as date) as SBDATE");
                sb.AppendFormat(" FROM T_IPSFR_ROUTERAIL_RAIL a  LEFT OUTER JOIN T_IPSFR_USER b ON a.HID = b.HID");
                sb.AppendFormat(" WHERE   (sbtime >= '{0}') AND (sbtime <= '{1}')", sw.DateBegin, sw.DateEnd);
                sb.AppendFormat(" group by  substring(BYORGNO,1,6)+'000000000',cast(CONVERT(varchar(100), sbtime, 111) as date)");
            }
            else if (PublicCls.OrgIsXian(sw.TopORGNO))
            {
                sb.AppendFormat(" select count(BYORGNO) as C, BYORGNO,cast(CONVERT(varchar(100), sbtime, 111) as date) as SBDATE");
                sb.AppendFormat(" FROM T_IPSFR_ROUTERAIL_RAIL a  LEFT OUTER JOIN T_IPSFR_USER b ON a.HID = b.HID");
                sb.AppendFormat(" WHERE   (sbtime >= '{0}') AND (sbtime <= '{1}')", sw.DateBegin, sw.DateEnd);
                sb.AppendFormat(" and   substring(BYORGNO,1,6)+'000000000'='{0}'", sw.TopORGNO);
                sb.AppendFormat(" group by  BYORGNO,cast(CONVERT(varchar(100), sbtime, 111) as date)");
            }
            else
            {
                sb.AppendFormat(" select count(a.HID) as C,a.HID as  BYORGNO,cast(CONVERT(varchar(100), sbtime, 111) as date) as SBDATE");
                sb.AppendFormat("  FROM T_IPSFR_ROUTERAIL_RAIL a  LEFT OUTER JOIN T_IPSFR_USER b ON a.HID = b.HID");
                sb.AppendFormat(" WHERE   (sbtime >= '{0}') AND (sbtime <= '{1}')", sw.DateBegin, sw.DateEnd);
                sb.AppendFormat(" and   BYORGNO='{0}'", sw.TopORGNO);
                sb.AppendFormat(" group by  a.HID,cast(CONVERT(varchar(100), sbtime, 111) as date)");
            }
            return(DataBaseClass.FullDataSet(sb.ToString()).Tables[0]);
        }
コード例 #2
0
        /// <summary>
        /// 出围查询Json
        /// </summary>
        /// <returns></returns>
        public ActionResult getOutRaiLCountJson()
        {
            OutRaiLCount_SW sw = new OutRaiLCount_SW();

            sw.TopORGNO  = Request.Params["BYORGNO"];
            sw.DateBegin = Request.Params["TIMEBegin"];
            sw.DateEnd   = Request.Params["TIMEEnd"];
            var list = HUCheckCls.getOutRaiLCountModel(sw);

            StringBuilder sb   = new StringBuilder();
            DateTime      dt1  = Convert.ToDateTime(sw.DateBegin);
            DateTime      dt2  = Convert.ToDateTime(sw.DateEnd);
            int           days = ClsStr.getDateDiff(sw.DateBegin, sw.DateEnd) + 1;//日期包含天数

            sb.AppendFormat("<table cellpadding=\"0\" cellspacing=\"0\">");
            sb.AppendFormat("<thead>");
            sb.AppendFormat("    <tr>");
            sb.AppendFormat("        <th rowspan=\"2\">单位<br>(姓名)</th>");
            sb.AppendFormat("        <th rowspan=\"2\">出围合计</th>");
            sb.AppendFormat("        <th colspan=\"{1}\">{0}</th>", "日期(日)", days.ToString());
            sb.AppendFormat("    </tr>");
            sb.AppendFormat("    <tr>");
            for (DateTime tm = dt1; tm <= dt2; tm = tm.AddDays(1))
            {
                sb.AppendFormat("        <th>{0}</th>", tm.ToString("dd"));
            }
            sb.AppendFormat("    </tr>");
            sb.AppendFormat("</thead>");
            sb.AppendFormat("<tbody>");
            //var list = HUCheckCls.getCheckInModel(new HUCheckINCount_SW { DateBegin = arr[1], DateEnd = arr[2], ORGNO = arr[0], HUNM = arr[3] });
            int j = 0;

            foreach (var v in list)
            {
                string orgName = v.ORGName;
                string orgNo   = v.ORGNo;
                j++;
                if (j % 2 == 0)
                {
                    sb.AppendFormat("<tr>");
                }
                else
                {
                    sb.AppendFormat("<tr class='row1'>");
                }
                sb.AppendFormat("<td class=\"center\">{0}</td>", v.ORGName);
                sb.AppendFormat("<td class=\"center\">{0}</td>", v.Count);//总
                string[] arr1 = v.DayCountList.Split(',');
                for (int i = 0; i < days; i++)
                {
                    sb.AppendFormat("<td class=\"center\">{0}</td>", arr1[i]);
                }
                sb.AppendFormat("</tr>");
            }
            sb.AppendFormat("</tbody>");
            sb.AppendFormat("</table>");

            return(Content(JsonConvert.SerializeObject(new Message(true, sb.ToString(), "")), "text/html;charset=UTF-8"));
        }
コード例 #3
0
        /// <summary>
        /// 查询出围统计
        /// </summary>
        /// <param name="sw">参见OutRaiLCount_SW</param>
        /// <returns>参见OutRaiLDetail_Model</returns>
        public static IEnumerable <OutRaiLDetail_Model> getOutRaiLDetailModel(OutRaiLCount_SW sw)
        {
            var result = new List <OutRaiLDetail_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 dt = BaseDT.T_IPSFR_ROUTERAIL_RAIL.getDT(new OutRaiLCount_SW {
                DateBegin = sw.DateBegin, DateEnd = sw.DateEnd, orgNo = sw.orgNo, PhoneHname = sw.PhoneHname
            });



            //仅查出围DataRow[] dr = dtHRRealData.Select("PatrolLenError<=" + LengthError.ToString(), "SBDATE DESC");
            DataRow[] dr = dt.Select("", "HID,SBTIME DESC");

            for (int i = 0; i < dr.Length; i++)
            {
                OutRaiLDetail_Model m = new OutRaiLDetail_Model();
                string hid            = dr[i]["HID"].ToString();
                string orgNo          = dr[i]["BYORGNO"].ToString();
                m.HID     = hid;
                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.SwitTM(dr[i]["SBTIME"].ToString()); //日期
                m.X       = dr[i]["LONGITUDE"].ToString();                                   //经度
                m.Y       = dr[i]["LATITUDE"].ToString();                                    //纬度
                result.Add(m);
            }
            //dtHU.Clear();
            //dtHU.Dispose();
            dt.Clear();
            dt.Dispose();
            dtOrg.Clear();
            dtOrg.Dispose();
            return(result);
        }
コード例 #4
0
        /// <summary>
        /// 获取DataTable
        /// </summary>
        /// <param name="sw">参见模型</param>
        /// <returns>DataTable</returns>
        public static DataTable getDT(OutRaiLCount_SW sw)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendFormat(" SELECT   a.HID,a.LONGITUDE,a.LATITUDE,a.SBTIME,b.HNAME,b.PHONE,b.BYORGNO");
            sb.AppendFormat(" FROM T_IPSFR_ROUTERAIL_RAIL a  LEFT OUTER JOIN T_IPSFR_USER b ON a.HID = b.HID");
            sb.AppendFormat(" where 1=1");//护林员启用状态
            if (string.IsNullOrEmpty(sw.DateBegin) == false)
            {
                sb.AppendFormat(" and a.SBTIME >= '{0} 00:00:00'", sw.DateBegin);
            }
            if (string.IsNullOrEmpty(sw.DateEnd) == false)
            {
                sb.AppendFormat(" and a.SBTIME <= '{0} 23:59:59'", sw.DateEnd);
            }

            if (string.IsNullOrEmpty(sw.orgNo) == false)
            {
                if (PublicCls.OrgIsShi(sw.orgNo))
                {
                    sb.AppendFormat(" and left(b.BYORGNO,4)='{0}'", PublicCls.getShiIncOrgNo(sw.orgNo));
                }
                else if (PublicCls.OrgIsXian(sw.orgNo))
                {
                    sb.AppendFormat(" and left(b.BYORGNO,6)='{0}'", PublicCls.getXianIncOrgNo(sw.orgNo));
                }
                else
                {
                    sb.AppendFormat(" and b.BYORGNO='{0}'", PublicCls.getZhenIncOrgNo(sw.orgNo));
                }
            }
            if (string.IsNullOrEmpty(sw.PhoneHname) == false)
            {
                sb.AppendFormat(" AND (b.PHONE  like '%{0}%' or b.HNAME like '%{0}%')", ClsSql.EncodeSql(sw.PhoneHname));
            }

            //sb.AppendFormat(" order by a.HID,a.SBTIME desc");
            return(DataBaseClass.FullDataSet(sb.ToString()).Tables[0]);
        }
コード例 #5
0
        /// <summary>
        /// 考勤统计 Model
        /// </summary>
        /// <param name="sw">参见HUCheckINCount_SW</param>
        /// <returns>参见HUCheck_CheckInCount_Model</returns>getOutRaiLCountModel
        public static IEnumerable <OutRaiLCount_Model> getOutRaiLCountModel(OutRaiLCount_SW sw)
        {
            var result = new List <OutRaiLCount_Model>();

            if (string.IsNullOrEmpty(sw.DateBegin))//开始时间为空
            {
                return(result);
            }
            if (string.IsNullOrEmpty(sw.DateEnd))//结束时间为空
            {
                return(result);
            }
            if (string.IsNullOrEmpty(sw.TopORGNO))//组织机构编码
            {
                return(result);
            }

            DateTime dt1  = Convert.ToDateTime(sw.DateBegin);
            DateTime dt2  = Convert.ToDateTime(sw.DateEnd);
            int      days = ClsStr.getDateDiff(sw.DateBegin, sw.DateEnd) + 1;//日期包含天数

            DataTable dt = BaseDT.T_IPSFR_ROUTERAIL_RAIL.getDTByOrgNoToDate(new OutRaiLCount_SW {
                DateBegin = sw.DateBegin, DateEnd = sw.DateEnd, TopORGNO = sw.TopORGNO
            });

            DataTable dtHU = BaseDT.T_IPSFR_USER.getDTByOrgSum(new T_IPSFR_USER_SW {
                BYORGNO = sw.TopORGNO, ISENABLE = "1"
            });

            if (PublicCls.OrgIsZhen(sw.TopORGNO) == false) //市、县处理
            {                                              //只获取该市下面的县 县下面的乡
                T_SYS_ORGSW swOrg = new T_SYS_ORGSW();
                swOrg.SYSFLAG  = ConfigCls.getSystemFlag();
                swOrg.TopORGNO = sw.TopORGNO;

                if (PublicCls.OrgIsShi(sw.TopORGNO))
                {
                    swOrg.GetContyORGNOByCity = sw.TopORGNO;//获取所有县
                }
                if (PublicCls.OrgIsXian(sw.TopORGNO))
                {
                    swOrg.GetXZOrgNOByConty = sw.TopORGNO;//获取所有镇
                }
                DataTable dtOrg = BaseDT.T_SYS_ORG.getDT(swOrg);
                DataRow[] drOrg = dtOrg.Select("", "ORGNO");//取所有

                for (int i = 0; i < drOrg.Length; i++)
                {
                    OutRaiLCount_Model m = new OutRaiLCount_Model();


                    m.ORGName = drOrg[i]["ORGNAME"].ToString();
                    m.ORGNo   = drOrg[i]["ORGNO"].ToString();
                    string CHr = dt.Compute("sum(C)", "BYORGNO=" + m.ORGNo).ToString();//计算该单位下总数
                    CHr     = (string.IsNullOrEmpty(CHr) ? "0" : CHr);
                    m.Count = 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 SBDATE='" + tm1 + "'").ToString(); //计算该日期下数量
                        cList += (string.IsNullOrEmpty(tmp) ? "0" : tmp);                                                   //各日期以逗号分隔
                    }
                    m.DayCountList = cList;                                                                                 //日期考勤列表

                    result.Add(m);
                }
                dtOrg.Clear();
                dtOrg.Dispose();
            }
            else//显示乡的,乡的列出各个护林员
            {
                DataRow[] drOrg = dtHU.Select("", "");//取所有

                for (int i = 0; i < drOrg.Length; i++)
                {
                    OutRaiLCount_Model m = new OutRaiLCount_Model();


                    m.ORGName = drOrg[i]["hname"].ToString();
                    m.ORGNo   = drOrg[i]["hid"].ToString();
                    string CHr = dt.Compute("sum(C)", "BYORGNO=" + m.ORGNo).ToString();//计算该单位下总数
                    CHr     = (string.IsNullOrEmpty(CHr) ? "0" : CHr);
                    m.Count = 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 SBDATE='" + PublicClassLibrary.ClsSwitch.SwitDate(tm).ToString() + "'").ToString(); //计算该日期下人数
                        cList += (string.IsNullOrEmpty(tmp) ? "0" : tmp);                                                                                                    //各日期以逗号分隔
                    }
                    m.DayCountList = cList;                                                                                                                                  //日期列表
                    result.Add(m);
                }
            }
            dtHU.Clear();
            dtHU.Dispose();

            dt.Clear();
            dt.Dispose();

            if (1 == 1)
            {
                OutRaiLCount_Model m = new OutRaiLCount_Model();
                m.ORGName = "合计";
                string CHr = result.Sum(item => Convert.ToDecimal(item.Count)).ToString();//总数//计算该单位下总数
                CHr     = (string.IsNullOrEmpty(CHr) ? "0" : CHr);
                m.Count = CHr;
                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;
                result.Insert(0, m);
            }

            return(result);
        }
コード例 #6
0
        /// <summary>
        /// 导出
        /// </summary>
        /// <returns></returns>
        public FileResult OutRaiLExportExcel()
        {
            OutRaiLCount_SW sw = new OutRaiLCount_SW();

            sw.TopORGNO  = Request.Params["BYORGNO"];
            sw.DateBegin = Request.Params["TIMEBegin"];
            sw.DateEnd   = Request.Params["TIMEEnd"];
            var list = HUCheckCls.getOutRaiLCountModel(sw);

            DateTime dt1  = Convert.ToDateTime(sw.DateBegin);
            DateTime dt2  = Convert.ToDateTime(sw.DateEnd);
            int      days = ClsStr.getDateDiff(sw.DateBegin, sw.DateEnd) + 1;//日期包含天数

            //vMenu.MENUNAME 页面/菜单名称
            NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
            //添加一个sheet
            NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1");
            sheet1.IsPrintGridlines = true; //打印时显示网格线
            sheet1.DisplayGridlines = true; //查看时显示网格线
            sheet1.SetColumnWidth(0, 30 * 256);
            sheet1.SetColumnWidth(1, 10 * 256);
            for (int i = 0; i < days; i++)
            {
                sheet1.SetColumnWidth(i + 2, 10 * 256);
            }
            IRow row = sheet1.CreateRow(0);

            row.CreateCell(0).SetCellValue("出围统计表");
            row.GetCell(0).CellStyle = getCellStyleTitle(book);
            row = sheet1.CreateRow(1);
            row.CreateCell(0).SetCellValue("单位/姓名");
            row.CreateCell(1).SetCellValue("出围合计");
            row.CreateCell(2).SetCellValue("日期(日)");
            row.GetCell(0).CellStyle = getCellStyleHead(book);
            row.GetCell(1).CellStyle = getCellStyleHead(book);
            row.GetCell(2).CellStyle = getCellStyleHead(book);
            row = sheet1.CreateRow(2);
            for (int i = 0; i < days; i++)
            {
                DateTime tm = dt1.AddDays(i);
                row.CreateCell(i + 2).SetCellValue(tm.ToString("dd"));
                row.GetCell(i + 2).CellStyle = getCellStyleHead(book);
            }
            sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, days + 1));
            sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(1, 1, 2, days - 2));
            sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(1, 2, 0, 0));
            sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(1, 2, 1, 1));
            int rowI = 0;

            foreach (var v in list)
            {
                row = sheet1.CreateRow(rowI + 3);

                row.CreateCell(0).SetCellValue(v.ORGName);
                row.CreateCell(1).SetCellValue(v.Count);
                string[] arr = v.DayCountList.Split(',');
                for (int i = 0; i < days; i++)
                {
                    row.CreateCell(i + 2).SetCellValue(arr[i]);
                }
                rowI++;
            }
            // 写入到客户端
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            string fileName = "出围统计表" + DateTime.Now.ToString("yyyy-MM-dd") + ".xls";

            return(File(ms, "application/vnd.ms-excel", fileName));
        }