Exemple #1
0
 /// 工单记录导出数据查询
 /// <summary>
 /// 工单记录导出数据查询
 /// </summary>
 /// <param name="query"></param>
 /// <param name="order"></param>
 /// <returns></returns>
 public DataTable GetExportWorkOrderList(QueryWOrderV2DataInfo query, string order)
 {
     string where = GetWorkOrderListWhere(query);
     SqlParameter[] parmas = new SqlParameter[] {
         new SqlParameter("@where", SqlDbType.NVarChar, 2000)
         {
             Value = where
         }
     };
     return(SqlHelper.ExecuteDataset(CONNECTIONSTRINGS, CommandType.StoredProcedure, "P_WOrderInfo_Export", parmas).Tables[0]);
 }
Exemple #2
0
        private void WorkOrderBind()
        {
            QueryWOrderV2DataInfo query = BLL.Util.BindQuery <QueryWOrderV2DataInfo>(this.Context);

            query.CC_LoginID = userId;
            string    orderstring = "a.WorkOrderStatus ASC,a.CreateTime DESC";
            DataTable dt          = BLL.WOrderInfo.Instance.GetWorkOrderInfoForList(query, orderstring, PageCommon.Instance.PageIndex, PageSize, out totalCount);

            rptWorkOrderList.DataSource = dt;
            rptWorkOrderList.DataBind();
            litPagerDown.Text = BLL.PageCommon.Instance.LinkStringByPost(BLL.Util.GetUrl(), GroupLength, totalCount, PageSize, BLL.PageCommon.Instance.PageIndex, 1);
        }
Exemple #3
0
        /// 按照查询条件查询(包含数据权限)
        /// <summary>
        /// 按照查询条件查询(包含数据权限)
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="order">排序</param>
        /// <param name="currentPage">页号,-1不分页</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="totalCount">总行数</param>
        /// <returns>集合</returns>
        public DataTable GetWorkOrderInfoForList(QueryWOrderV2DataInfo query, string order, int currentPage, int pageSize, out int totalCount)
        {
            string where = GetWorkOrderListWhere(query);
            string sqlstr = @"
                            SELECT 
                            a.*,
                            ISNULL(STUFF((SELECT ',' + RTRIM(UserID) + ':'+UserName FROM dbo.WOrderToAndCC 
                            WHERE ReceiverID =a.LastReceiverID  and PersonType=1 FOR XML PATH('')), 1, 1, ''), '') LastReceivers,
                            isnull(b.BusiTypeName,'--') BusiTypeName,
                            CONVERT(NVARCHAR(50),isnull(e.TagName+'/','-')+isnull(c.TagName,'-'))  TagName, 
                            d.CustCategoryID,
                            vuser.TrueName,
                            ISNULL(crmcust.CustName,'--') AS CRMCustName
                            YanFaFROM WOrderInfo a  
                            LEFT JOIN dbo.WOrderBusiType b ON a.BusinessType=b.RecID
                            LEFT JOIN dbo.WOrderTag c ON a.BusinessTag=c.RecID
                            LEFT JOIN dbo.WOrderTag e ON c.PID=e.RecID
                            LEFT JOIN dbo.CustBasicInfo d ON a.CBID=d.CustID
                            LEFT JOIN CRM2009.dbo.CustInfo crmcust ON a.CRMCustID=crmcust.CustID
                            INNER JOIN v_userinfo vuser ON a.CreateUserID=vuser.UserID
                            WHERE a.Status=0  " + where;

            DataSet ds;

            SqlParameter[] parameters =
            {
                new SqlParameter("@SQL",           SqlDbType.NVarChar, 4000),
                new SqlParameter("@Order",         SqlDbType.NVarChar,  200),
                new SqlParameter("@CurPage",       SqlDbType.Int,         4),
                new SqlParameter("@PageRows",      SqlDbType.Int,         4),
                new SqlParameter("@TotalRecorder", SqlDbType.Int, 4)
            };

            parameters[0].Value     = sqlstr;
            parameters[1].Value     = order;
            parameters[2].Value     = currentPage;
            parameters[3].Value     = pageSize;
            parameters[4].Direction = ParameterDirection.Output;

            ds         = SqlHelper.ExecuteDataset(CONNECTIONSTRINGS, CommandType.StoredProcedure, "P_Page", parameters);
            totalCount = (int)(parameters[4].Value);
            return(ds.Tables[0]);
        }
        private void WorkOrderExport()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            QueryWOrderV2DataInfo query = BLL.Util.BindQuery <QueryWOrderV2DataInfo>(this.Context);

            query.CC_LoginID = BLL.Util.GetLoginUserID();
            string    orderstring = " a.WorkOrderStatus ASC,a.CreateTime Desc ";
            DataTable dt          = BLL.WOrderInfo.Instance.GetExportWorkOrderList(query, orderstring);

            BLL.WOrderInfo.LogToLog4("[工单导出] 查询工单累计耗时:" + sw.Elapsed.ToString());
            //获取CRM的访问分类数据
            Dictionary <int, string> dictCrmVistType = BLL.WOrderInfo.Instance.GetCrmVistType();

            BLL.WOrderInfo.LogToLog4("[工单导出] 查询CRM的访问分类数据累计耗时:" + sw.Elapsed.ToString());
            //循环处理
            foreach (DataRow dr in dt.Rows)
            {
                dr["用户地区"] = GetAddress(CommonFunction.ObjectToString(dr["ProvinceID"]), CommonFunction.ObjectToString(dr["CityID"]), CommonFunction.ObjectToString(dr["CountyID"]));
                dr["工单状态"] = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.WorkOrderStatus), CommonFunction.ObjectToInteger(dr["WorkOrderStatus"], -1));
                dr["工单来源"] = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.WorkOrderDataSource), CommonFunction.ObjectToInteger(dr["DataSource"], -1));
                dr["工单类型"] = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.WOrderCategoryEnum), CommonFunction.ObjectToInteger(dr["CategoryID"], -1));
                dr["投诉级别"] = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.ComplaintLevelEnum), CommonFunction.ObjectToInteger(dr["ComplaintLevel"], -1));
                int visitType = CommonFunction.ObjectToInteger(dr["VisitType"]);
                if (dictCrmVistType.ContainsKey(visitType))
                {
                    dr["访问分类"] = dictCrmVistType[visitType];
                }
                else
                {
                    dr["访问分类"] = "--";
                }
                int isEstablish = CommonFunction.ObjectToInteger(dr["IsEstablish"], -1);
                if (isEstablish == 1)
                {
                    dr["是否接通"] = "是";
                }
                else if (isEstablish == 0)
                {
                    dr["是否接通"] = "否";
                }
                else
                {
                    dr["是否接通"] = "--";
                }
                dr["未接通原因"] = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.NotEstablishReason), CommonFunction.ObjectToInteger(dr["NotEstablishReason"], -1));

                if (CommonFunction.ObjectToInteger(dr["P2RecID"]) == CommonFunction.ObjectToInteger(dr["P3RecID"]))
                {
                    //当只有一条处理记录时
                    dr["最后处理人"]  = "";
                    dr["最后处理记录"] = "";
                    dr["最后处理时间"] = DBNull.Value;
                }

                int isReturnVisit = CommonFunction.ObjectToInteger(dr["IsReturnVisit"], -1);
                if (isReturnVisit == 0)
                {
                    dr["是否回访"] = "否";
                }
                else if (isReturnVisit == 1)
                {
                    dr["是否回访"] = "是";
                }
                else
                {
                    dr["是否回访"] = "--";
                }
            }
            //删除id列
            dt.Columns.Remove("ProvinceID");
            dt.Columns.Remove("CityID");
            dt.Columns.Remove("CountyID");
            dt.Columns.Remove("WorkOrderStatus");
            dt.Columns.Remove("DataSource");
            dt.Columns.Remove("CategoryID");
            dt.Columns.Remove("ComplaintLevel");
            dt.Columns.Remove("VisitType");
            dt.Columns.Remove("IsEstablish");
            dt.Columns.Remove("NotEstablishReason");
            dt.Columns.Remove("P3RecID");
            dt.Columns.Remove("P2RecID");
            dt.Columns.Remove("IsReturnVisit");
            BLL.WOrderInfo.LogToLog4("[工单导出] 循环处理累计耗时:" + sw.Elapsed.ToString());
            //导出
            BLL.Util.ExportToCSV("工单记录_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"), dt);
            sw.Stop();
            BLL.WOrderInfo.LogToLog4("[工单导出] 导出完成累计耗时:" + sw.Elapsed.ToString());
        }
Exemple #5
0
        /// 获取查询条件
        /// <summary>
        /// 获取查询条件
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        private string GetWorkOrderListWhere(QueryWOrderV2DataInfo query)
        {
            string where = string.Empty;

            if (query.BGID > 0)
            {
                where += " AND a.BGID=" + query.BGID;
            }
            if (!string.IsNullOrEmpty(query.BeginCreateTime))
            {
                where += " AND a.CreateTime>='" + SqlFilter(query.BeginCreateTime) + " 0:00:00'";
            }
            if (!string.IsNullOrEmpty(query.EndCreateTime))
            {
                where += "AND a.CreateTime<='" + SqlFilter(query.EndCreateTime) + " 23:59:59'";
            }
            if (query.BusiType > 0)
            {
                where += " AND a.BusinessType=" + query.BusiType;
            }
            if (!string.IsNullOrEmpty(query.ComplaintLevel))
            {
                where += " AND a.ComplaintLevel in  (" + SqlFilter(query.ComplaintLevel.Replace('-', ',')) + ") ";
            }
            if (!string.IsNullOrEmpty(query.Phone))
            {
                where += " AND a.Phone = '" + SqlFilter(query.Phone) + "'";
            }
            if (query.CreateUserID > 0)
            {
                where += " AND a.CreateUserID = " + query.CreateUserID;
            }
            if (!string.IsNullOrEmpty(query.CreateUserName) && query.CreateUserName.Trim() != "")
            {
                where += " AND vuser.TrueName LIKE '%" + query.CreateUserName.Trim() + "%'";
            }
            if (!string.IsNullOrEmpty(query.OrderID))
            {
                where += " AND a.OrderID = '" + SqlFilter(query.OrderID) + "'";
            }
            if (query.CategoryID > 0)
            {
                where += " AND a.CategoryID=" + query.CategoryID;
            }
            if (query.WorkOrderStatus > 0)
            {
                where += " AND a.WorkOrderStatus=" + query.WorkOrderStatus;
            }
            if (!string.IsNullOrEmpty(query.WorkOrderStatusList))
            {
                where += " AND a.WorkOrderStatus IN (" + Dal.Util.SqlFilterByInCondition(query.WorkOrderStatusList) + ")";
            }
            if (!string.IsNullOrEmpty(query.ReVisitStr))
            {
                where += " AND a.OrderID in ( SELECT OrderID FROM WOrderProcess WHERE ProcessType=" + (int)WOrderOperTypeEnum.L05_回访 + " AND IsReturnVisit IN (" + SqlFilter(query.ReVisitStr.Replace('-', ',')) + " ))";
            }
            if (!string.IsNullOrEmpty(query.MemberName) && query.MemberName.Trim() != "")
            {
                where += " AND d.CustCategoryID=" + (int)CustTypeEnum.T02_经销商 + " AND d.CustID IN (SELECT CustID FROM dbo.DealerInfo WHERE Name LIKE '%" + SqlFilter(query.MemberName.Trim()) + "%' AND Status=0)";
            }
            if (query.BigTagID > 0)
            {
                where += " AND c.PID=" + query.BigTagID;
            }
            if (query.TagID > 0)
            {
                where += " AND c.RecID=" + query.TagID;
            }
            //crm接口使用
            if (!string.IsNullOrEmpty(query.CRMCustID))
            {
                where += " AND a.CRMCustID='" + SqlFilter(query.CRMCustID) + "'";
            }
            if (!string.IsNullOrEmpty(query.CRMCustName) && query.CRMCustName.Trim() != "")
            {
                where += " AND crmcust.CustName LIKE '%" + SqlFilter(query.CRMCustName.Trim()) + "%'";
            }
            if (query.CRMCountyID > 0)
            {
                where += " AND crmcust.CountyID=" + query.CRMCountyID;
            }
            else if (query.CRMCityID > 0)
            {
                where += " AND crmcust.CityID=" + query.CRMCityID;
            }
            else if (query.CRMProvinceID > 0)
            {
                where += " AND crmcust.ProvinceID=" + query.CRMProvinceID;
            }
            if (!string.IsNullOrEmpty(query.ProcessUserName) && query.ProcessUserName.Trim() != "")
            {
                where += @" AND EXISTS (SELECT 1 FROM dbo.WOrderToAndCC 
                        WHERE ReceiverID=a.LastReceiverID AND PersonType=" + (int)WOrderPersonTypeEnum.P01_接收人 + @"
                        AND UserID IN (SELECT UserID FROM dbo.v_userinfo WHERE Status=0 AND TrueName LIKE '%" + SqlFilter(query.ProcessUserName.Trim()) + "%'))";
            }
            if (query.RightZN != null && !string.IsNullOrEmpty(query.RightZN.CRM_LoginDepartID))
            {
                where += " AND a.OrderID IN (SELECT OrderID FROM dbo.WOrderToAndCC WHERE PersonType=" + (int)WOrderPersonTypeEnum.P01_接收人
                         + " AND UserID IN ("
                         + "SELECT UserID FROM dbo.v_userinfo WHERE DepartID IN (SELECT id FROM Crm2009.[dbo].[f_GetChildDepartid]('" + SqlFilter(query.RightZN.CRM_LoginDepartID) + "'))"
                         + ")) ";
            }
            if (query.RightGR != null && query.RightGR.CRM_LoginID > 0 && !string.IsNullOrEmpty(query.RightGR.CRM_LoginDepartID))
            {
                where += GetRightGR(query.RightGR.CRM_LoginID, query.RightGR.CRM_LoginDepartID);
            }
            #region 数据权限判断
            if (query.CC_LoginID > 0)
            {
                string whereDataRight = "";
                whereDataRight = Dal.UserGroupDataRigth.Instance.GetSqlRightstrByOrderWhere("a", "BGID", "CreateUserID", query.CC_LoginID,
                                                                                            " a.OrderID IN (SELECT OrderID FROM dbo.WOrderToAndCC WHERE UserID ='" + query.CC_LoginID + "') ");
                where += whereDataRight;
            }
            #endregion

            return(where);
        }
 /// 工单记录导出数据查询
 /// <summary>
 /// 工单记录导出数据查询
 /// </summary>
 /// <param name="query"></param>
 /// <param name="order"></param>
 /// <returns></returns>
 public DataTable GetExportWorkOrderList(QueryWOrderV2DataInfo query, string order)
 {
     return(Dal.WOrderInfo.Instance.GetExportWorkOrderList(query, order));
 }
 /// 按照查询条件查询(包含数据权限)
 /// <summary>
 /// 按照查询条件查询(包含数据权限)
 /// </summary>
 /// <param name="query">查询条件</param>
 /// <param name="order">排序</param>
 /// <param name="currentPage">页号,-1不分页</param>
 /// <param name="pageSize">每页记录数</param>
 /// <param name="totalCount">总行数</param>
 /// <returns>集合</returns>
 public DataTable GetWorkOrderInfoForList(QueryWOrderV2DataInfo query, string order, int currentPage, int pageSize, out int totalCount)
 {
     return(Dal.WOrderInfo.Instance.GetWorkOrderInfoForList(query, order, currentPage, pageSize, out totalCount));
 }