コード例 #1
0
        /// <summary>
        /// 编辑附件
        /// </summary>
        public void EditAttachment(com_attachment att, long userId)
        {
            var oldAtt = dal.FindNoDeleteById(att.id);

            if (oldAtt == null)
            {
                return;
            }
            att.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
            att.update_user_id = userId;
            dal.Update(att);
            OperLogBLL.OperLogUpdate <com_attachment>(att, oldAtt, att.id, userId, DicEnum.OPER_LOG_OBJ_CATE.ATTACHMENT, "");
            if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.TASK)
            {
                var task = new sdk_task_dal().FindNoDeleteById(att.object_id);
                if (task != null)
                {
                    #region 更新客户最后活动时间
                    crm_account thisAccount = new CompanyBLL().GetCompany(task.account_id);
                    if (thisAccount != null)
                    {
                        thisAccount.last_activity_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now); new CompanyBLL().EditAccount(thisAccount, userId);
                    }
                    #endregion
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 关联前的检查
        /// </summary>
        /// <param name="context"></param>
        private void CheckRelaTicket(HttpContext context)
        {
            var  ticketId      = context.Request.QueryString["ticket_id"];
            var  relaTicketId  = context.Request.QueryString["rela_ticket_ids"];
            bool isDiffCompany = false;
            bool isHasPro      = false;
            bool isSginInd     = false; // 是否关联事故
            // if (!string.IsNullOrEmpty(ticketId) && !string.IsNullOrEmpty(relaTicketId))
            var stDal = new sdk_task_dal();

            var relList    = stDal.GetTicketByIds(relaTicketId);
            var thisTicket = stDal.FindNoDeleteById(long.Parse(ticketId));

            if (relList != null && relList.Count > 0 && thisTicket != null)
            {
                if (relList.Any(_ => _.account_id != thisTicket.account_id))
                {
                    isDiffCompany = true;
                }
                if (relList.Any(_ => _.problem_ticket_id != null))
                {
                    isHasPro = true;
                }
                if (relList.Any(_ => _.ticket_type_id == (int)DTO.DicEnum.TICKET_TYPE.PROBLEM && stDal.GetProCount(_.id) != 0))
                {
                    isSginInd = true;
                }
            }
            context.Response.Write(new EMT.Tools.Serialize().SerializeJson(new { diffAcc = isDiffCompany, isHasPro = isHasPro, isSginInd = isSginInd, }));
        }
コード例 #3
0
        /// <summary>
        /// 返回工单的提醒信息---(返回客户告警,外包消息,变更管理消息)
        /// </summary>
        private void GetTicketAlert(HttpContext context)
        {
            var ticket_id = context.Request.QueryString["ticket_id"];

            if (!string.IsNullOrEmpty(ticket_id))
            {
                var thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(ticket_id));
                if (thisTicket != null)
                {
                    string accountAlert = "";   // 客户的新建 提醒信息
                    string outMasg      = "";   // 外包消息
                    string changeMsg    = "";   // 变更管理消息

                    var tickCreateAlert = new crm_account_alert_dal().FindAlert(thisTicket.account_id, DTO.DicEnum.ACCOUNT_ALERT_TYPE.NEW_TICKET_ALERT);
                    if (tickCreateAlert != null)
                    {
                        accountAlert += tickCreateAlert.alert_text + " ";
                    }

                    var tickDetailAlert = new crm_account_alert_dal().FindAlert(thisTicket.account_id, DTO.DicEnum.ACCOUNT_ALERT_TYPE.TICKET_DETAIL_ALERT);
                    if (tickDetailAlert != null)
                    {
                        accountAlert += tickDetailAlert.alert_text + " ";
                    }



                    context.Response.Write(new EMT.Tools.Serialize().SerializeJson(new { accountAlert = accountAlert, outMasg = outMasg, changeMsg = changeMsg }));
                }
            }
        }
コード例 #4
0
 protected List <ctt_contract_cost> noCicostList = null; // 没有配置项的项目产品
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         var id = Request.QueryString["id"];
         thisProject = new pro_project_dal().FindNoDeleteById(long.Parse(id));
         if (thisProject != null)
         {
             var taskList = new sdk_task_dal().GetProTask(thisProject.id);
             if (taskList != null && taskList.Count > 0)
             {
                 actTaskList = taskList.Where(_ => _.status_id != (int)DTO.DicEnum.TICKET_STATUS.DONE).ToList();
             }
             var costList = new ctt_contract_cost_dal().GetCostByProId(thisProject.id);
             if (costList != null && costList.Count > 0)
             {
                 noCicostList = costList.Where(_ => _.product_id == null).ToList();
             }
             if (!IsPostBack)
             {
                 // noTempId
                 noTempId.DataTextField  = "name";
                 noTempId.DataValueField = "id";
                 noTempId.DataSource     = new sys_notify_tmpl_dal().GetTempByEvent(DicEnum.NOTIFY_EVENT.PROJECT_COMPLETED);
                 noTempId.DataBind();
             }
         }
     }
     catch (Exception msg)
     {
         Response.End();
     }
 }
コード例 #5
0
ファイル: CompanyAjax.ashx.cs プロジェクト: evelh/Done
        /// <summary>
        /// 获取客户详情
        /// </summary>
        private void GetAccDetail(HttpContext context)
        {
            var accountId = context.Request.QueryString["account_id"];

            if (!string.IsNullOrEmpty(accountId))
            {
                var thisAcc = new CompanyBLL().GetCompany(long.Parse(accountId));
                if (thisAcc != null)
                {
                    // 返回客户Id,名称,地址信息
                    var    location   = new LocationBLL().GetLocationByAccountId(thisAcc.id);
                    string city       = "";
                    string provice    = "";
                    string quXian     = "";
                    string address1   = "";
                    string address2   = "";
                    string postalCode = "";
                    int    ticketNum  = 0; // 所有打开的工单的数量
                    int    monthNum   = 0; // 近三十天工单的数量
                    if (location != null)
                    {
                        var thisCity = new d_district_dal().FindById(location.city_id);
                        if (thisCity != null)
                        {
                            city = thisCity.name;
                        }
                        var thisprovice = new d_district_dal().FindById(location.province_id);
                        if (thisprovice != null)
                        {
                            provice = thisprovice.name;
                        }
                        if (location.district_id != null)
                        {
                            var thisquXian = new d_district_dal().FindById((long)location.district_id);
                            if (thisquXian != null)
                            {
                                quXian = thisquXian.name;
                            }
                        }
                        address1 = location.address;
                        address2 = location.additional_address;
                        if (!string.IsNullOrEmpty(location.postal_code))
                        {
                            postalCode = location.postal_code;
                        }
                    }

                    var ticketList = new sdk_task_dal().GetTicketByAccount(thisAcc.id);
                    if (ticketList != null && ticketList.Count > 0)
                    {
                        ticketNum = ticketList.Count;
                    }
                    context.Response.Write(new Tools.Serialize().SerializeJson(new { id = thisAcc.id, name = thisAcc.name, phone = thisAcc.phone, city = city, provice = provice, quXian = quXian, address1 = address1, address2 = address2, ticketNum = ticketNum, monthNum = monthNum, postalCode = postalCode }));
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// 根据编号 获取相应工单
        /// </summary>
        /// <param name="context"></param>
        private void GetTicketByNo(HttpContext context)
        {
            var no     = context.Request.QueryString["no"];
            var ticket = new sdk_task_dal().GetTicketByNo(no);

            if (ticket != null)
            {
                context.Response.Write(new EMT.Tools.Serialize().SerializeJson(ticket));
            }
        }
コード例 #7
0
        /// <summary>
        /// 检查选择的工单是否可以关联
        /// </summary>
        private void GetProCount(HttpContext context)
        {
            int result   = 0;
            var ticketId = context.Request.QueryString["ticket_id"];

            if (!string.IsNullOrEmpty(ticketId))
            {
                result = new sdk_task_dal().GetProCount(long.Parse(ticketId));
            }
            context.Response.Write(new EMT.Tools.Serialize().SerializeJson(result));
        }
コード例 #8
0
        /// <summary>
        /// 获取到工单相关的信息
        /// </summary>
        private void GetTicket(HttpContext context)
        {
            var ticketId = context.Request.QueryString["ticket_id"];

            if (!string.IsNullOrEmpty(ticketId))
            {
                var thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(ticketId));
                if (thisTicket != null)
                {
                    context.Response.Write(new EMT.Tools.Serialize().SerializeJson(thisTicket));
                }
            }
        }
コード例 #9
0
        /// <summary>
        /// 返回工单相关属性的值
        /// </summary>
        private void GetTicketProperty(HttpContext context)
        {
            var ticketId     = context.Request.QueryString["ticket_id"];
            var propertyName = context.Request.QueryString["property"];

            if (!string.IsNullOrEmpty(ticketId) && !string.IsNullOrEmpty(propertyName))
            {
                var thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(ticketId));
                if (thisTicket != null)
                {
                    context.Response.Write(BaseDAL <sdk_task> .GetObjectPropertyValue(thisTicket, propertyName));
                }
            }
        }
コード例 #10
0
        private void InitTickets()
        {
            sdk_task_dal.AddEdit += TicketAddEditEvent;
            sdk_task_dal.Changed += TicketChange;
            var tks = new sdk_task_dal().FindListBySql($"select * from sdk_task where (type_id={(int)DicEnum.TASK_TYPE.SERVICE_DESK_TICKET} or type_id={(int)DicEnum.TASK_TYPE.RECURRING_TICKET_MASTER}) and delete_time=0");

            lock (locker)
            {
                tickets = new Dictionary <long, sdk_task>();
                foreach (var tk in tks)
                {
                    tickets.Add(tk.id, tk);
                }
            }
        }
コード例 #11
0
        private List <DictionaryEntryDto> workflowLogCache;  // 工作流触发日志缓存(36小时内)

        // 判断定时时间触发执行
        private void EventTimer(object sender, System.Timers.ElapsedEventArgs e)
        {
            DateTime             crtTime    = DateTime.Now;
            long                 crtTimeTik = Tools.Date.DateHelper.ToUniversalTimeStamp(crtTime);
            sys_workflow_log_dal logDal     = new sys_workflow_log_dal();

            // 更新日志缓存
            if ((crtTime.Hour % 3 == 0 && crtTime.Minute == 0) || workflowLogCache == null)  // 3小时更新一次
            {
                workflowLogCache = logDal.GetLogListByTime(Tools.Date.DateHelper.ToUniversalTimeStamp(crtTime.AddHours(-36)));
            }


            sdk_task_dal taskDal = new sdk_task_dal();

            for (var i = tickets.Count - 1; i >= 0; i--)
            {
                if (tickets.ElementAt(i).Value == null)
                {
                    var ticket = taskDal.FindSignleBySql <sdk_task>($"select * from sdk_task where id={tickets.ElementAt(i).Key} and (type_id={(int)DicEnum.TASK_TYPE.SERVICE_DESK_TICKET} or type_id={(int)DicEnum.TASK_TYPE.RECURRING_TICKET_MASTER}) and delete_time=0");
                    if (ticket == null)
                    {
                        tickets.Remove(tickets.ElementAt(i).Key);
                    }
                    else
                    {
                        tickets[tickets.ElementAt(i).Key] = ticket;
                    }
                }
            }
            foreach (var wf in workflowList)
            {
                if (wf.workflow_object_id == (int)DicEnum.WORKFLOW_OBJECT.TICKET)
                {
                    lock (locker)
                    {
                        foreach (var tkt in tickets)
                        {
                            if (workflowLogCache.Exists(_ => _.val == wf.id.ToString() && _.show == tkt.Key.ToString()))
                            {
                                continue;
                            }
                            // TODO: 根据event名称判断事件及时间,event名称暂未配置
                        }
                    }
                }
            }
        }
コード例 #12
0
ファイル: WorkEntryBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 获取本批次工时的工时类型,并返回工时类型和第一个工时id
        /// </summary>
        /// <param name="batchId"></param>
        /// <param name="type">1:常规工时;2:休假请求;3:任务工时;4:工单工时</param>
        /// <param name="workEntryId"></param>
        /// <returns></returns>
        public bool GetWorkEntryType(long batchId, out int type, out long workEntryId)
        {
            workEntryId = 0;
            type        = 0;
            var workEntry = dal.FindSignleBySql <sdk_work_entry>($"select * from sdk_work_entry where batch_id={batchId} and delete_time=0");

            if (workEntry == null)
            {
                return(false);
            }

            workEntryId = workEntry.id;

            if (workEntry.timeoff_request_id != null)
            {
                type = 2;
                return(true);
            }

            if (workEntry.cost_code_id != null)
            {
                var regularTimeCodeList = GetTimeCostCodeList();
                if (regularTimeCodeList.Exists(_ => _.id == workEntry.cost_code_id.Value))
                {
                    type = 1;
                    return(true);
                }
            }

            var task = new sdk_task_dal().FindById(workEntry.task_id);

            if (task.type_id == (int)DicEnum.TASK_TYPE.PROJECT_TASK)
            {
                type = 3;
                return(true);
            }
            if (task.type_id == (int)DicEnum.TASK_TYPE.SERVICE_DESK_TICKET)
            {
                type = 4;
                return(true);
            }

            return(false);
        }
コード例 #13
0
        /// <summary>
        /// 获取联系人的详情信息
        /// </summary>
        private void GetContactDetail(HttpContext context)
        {
            var contatc_id = context.Request.QueryString["contact_id"];

            if (!string.IsNullOrEmpty(contatc_id))
            {
                var thisContact = new crm_contact_dal().FindNoDeleteById(long.Parse(contatc_id));
                if (thisContact != null)
                {
                    int ticketNum  = 0; // 所有打开的工单的数量
                    int monthNum   = 0; // 近三十天工单的数量
                    var ticketList = new sdk_task_dal().GetTicketByContact(thisContact.id);
                    if (ticketList != null && ticketList.Count > 0)
                    {
                        ticketNum = ticketList.Count;
                    }
                    context.Response.Write(new Tools.Serialize().SerializeJson(new { id = thisContact.id, name = thisContact.name, phone = thisContact.phone, ticketNum = ticketNum, monthNum = monthNum, }));
                }
            }
        }
コード例 #14
0
ファイル: ResourceAjax.ashx.cs プロジェクト: evelh/Done
        /// <summary>
        /// 校验员工在任务计划期间是否有审批通过的请假记录,有,则告警
        /// </summary>
        /// <param name="context"></param>
        /// <param name="task_id"></param>

        private void CheckResTimeOff(HttpContext context, long task_id)
        {
            var thisTask = new sdk_task_dal().FindNoDeleteById(task_id);

            if (thisTask != null && thisTask.owner_resource_id != null)
            {
                var timeList = new tst_timeoff_request_dal().GetListByTaskAndRes(thisTask.id, (long)thisTask.owner_resource_id);
                if (timeList != null && timeList.Count > 0)
                {
                    string timeInfo = "";
                    timeList.ForEach(_ => {
                        timeInfo += $"{Tools.Date.DateHelper.ConvertStringToDateTime(_.create_time).ToString("yyyy-MM-dd")} ({_.request_hours.ToString("#0.00")} 小时)" + ",";
                    });
                    if (!string.IsNullOrEmpty(timeInfo) && thisTask.estimated_end_time != null)
                    {
                        timeInfo = timeInfo.Substring(0, timeInfo.Length - 1);
                        context.Response.Write(new Tools.Serialize().SerializeJson(new { time = timeInfo, doneTime = Tools.Date.DateHelper.ConvertStringToDateTime((long)thisTask.estimated_end_time).ToString("yyyy-MM-dd") }));
                    }
                }
            }
        }
コード例 #15
0
        /// <summary>
        /// 校验工单负责人的时间 是否已经使用
        /// </summary>
        private void CheckTicketResTime(HttpContext context)
        {
            var ticketIds = context.Request.QueryString["ids"];

            if (!string.IsNullOrEmpty(ticketIds))
            {
                var tickList = new sdk_task_dal().GetTaskByIds(ticketIds);
                if (tickList != null && tickList.Count > 0)
                {
                    var start = DateTime.Parse(context.Request.QueryString["start"]);
                    var end   = DateTime.Parse(context.Request.QueryString["end"]);
                    var tbll  = new TicketBLL();
                    List <sys_resource> repearResList = new List <sys_resource>();
                    bool isHasRes = true;
                    if (!tickList.Any(_ => tbll.IsHasRes(_.id)))
                    {
                        // 代表选择工单无负责人
                        isHasRes = false;
                    }
                    else
                    {
                        var startLong = Tools.Date.DateHelper.ToUniversalTimeStamp(start);
                        var endLong   = Tools.Date.DateHelper.ToUniversalTimeStamp(end);
                        foreach (var ticket in tickList)
                        {
                            var resList = tbll.GetResNameByTime(ticket.id, startLong, endLong);
                            if (resList != null && resList.Count > 0)
                            {
                                repearResList.AddRange(resList);
                            }
                        }
                        if (repearResList != null && repearResList.Count > 0)
                        {
                            repearResList = repearResList.Distinct().ToList();
                        }
                    }
                    context.Response.Write(new EMT.Tools.Serialize().SerializeJson(new { hasRes = isHasRes, resList = repearResList }));
                }
            }
        }
コード例 #16
0
        /// <summary>
        /// 判断是工单还是任务
        /// </summary>
        private void IsTicket(HttpContext context)
        {
            var ticketId = context.Request.QueryString["ticket_id"];
            var isTicket = "0";

            if (!string.IsNullOrEmpty(ticketId))
            {
                var thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(ticketId));
                if (thisTicket != null)
                {
                    if (thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.PROJECT_ISSUE || thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.PROJECT_PHASE || thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.PROJECT_TASK)
                    {
                        isTicket = "2";
                    }
                    else if (thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.SERVICE_DESK_TICKET || thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.RECURRING_TICKET_MASTER || thisTicket.type_id == (int)DTO.DicEnum.TASK_TYPE.TASKFIRE_TICKET)
                    {
                        isTicket = "1";
                    }
                }
            }
            context.Response.Write(isTicket);
        }
コード例 #17
0
ファイル: TicketManage.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    Bind();  // 绑定页面下拉数据
                }
                CallBack = Request.QueryString["CallBack"];

                var accountId = Request.QueryString["account_id"];
                if (!string.IsNullOrEmpty(accountId))
                {
                    thisAccount = new CompanyBLL().GetCompany(long.Parse(accountId));
                }
                var contractId = Request.QueryString["contract_id"];
                if (!string.IsNullOrEmpty(contractId))
                {
                    thisContract = new ctt_contract_dal().FindNoDeleteById(long.Parse(contractId));
                }
                var insProId = Request.QueryString["insProId"];
                if (!string.IsNullOrEmpty(insProId))
                {
                    insPro = new crm_installed_product_dal().FindNoDeleteById(long.Parse(insProId));
                    if (insPro != null && insPro.account_id != null)
                    {
                        thisAccount = new CompanyBLL().GetCompany((long)insPro.account_id);
                    }
                }

                var taskId = Request.QueryString["id"];
                if (!string.IsNullOrEmpty(taskId))
                {
                    thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(taskId));
                    if (thisTicket != null)
                    {
                        thisBookMark = new IndexBLL().GetSingBook(Request.RawUrl, LoginUserId);
                        var isCopyString = Request.QueryString["isCopy"];
                        if (string.IsNullOrEmpty(isCopyString))
                        {
                            isAdd = false;
                        }
                        else
                        {
                            isCopy = true;
                        }
                        if (!IsPostBack)
                        {
                            cate_id.ClearSelection();
                            cate_id.SelectedValue             = thisTicket.cate_id.ToString();
                            this.ticket_type_id.SelectedValue = thisTicket.ticket_type_id.ToString();
                            this.status_id.SelectedValue      = thisTicket.status_id.ToString();
                            if (isCopy)
                            {
                                this.status_id.ClearSelection(); this.status_id.SelectedValue = ((int)DicEnum.TICKET_STATUS.NEW).ToString();
                            }
                            if (thisTicket.priority_type_id != null)
                            {
                                priority_type_id.SelectedValue = thisTicket.priority_type_id.ToString();
                            }
                            if (thisTicket.issue_type_id != null)
                            {
                                issue_type_id.SelectedValue = thisTicket.issue_type_id.ToString();
                            }
                            if (thisTicket.source_type_id != null)
                            {
                                source_type_id.SelectedValue = thisTicket.source_type_id.ToString();
                            }
                            if (thisTicket.issue_type_id != null)
                            {
                                issue_type_id.SelectedValue = thisTicket.issue_type_id.ToString();
                            }
                            if (thisTicket.sla_id != null)
                            {
                                sla_id.SelectedValue = thisTicket.sla_id.ToString();
                            }
                            if (thisTicket.department_id != null)
                            {
                                department_id.SelectedValue = thisTicket.department_id.ToString();
                            }
                        }
                        ticketUdfValueList = new UserDefinedFieldsBLL().GetUdfValue(DicEnum.UDF_CATE.TASK, thisTicket.id, tickUdfList);

                        thisAccount = new CompanyBLL().GetCompany(thisTicket.account_id);
                        if (thisTicket.contact_id != null)
                        {
                            thisContact = new crm_contact_dal().FindNoDeleteById((long)thisTicket.contact_id);
                        }

                        if (thisTicket.owner_resource_id != null && thisTicket.role_id != null)
                        {
                            var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)thisTicket.owner_resource_id, (long)thisTicket.role_id);
                            if (resDepList != null && resDepList.Count > 0)
                            {
                                proResDep = resDepList[0];
                                priRes    = new sys_resource_dal().FindNoDeleteById((long)thisTicket.owner_resource_id);
                            }
                        }

                        if (thisTicket.installed_product_id != null)
                        {
                            insPro = new crm_installed_product_dal().FindNoDeleteById((long)thisTicket.installed_product_id);
                        }

                        if (thisTicket.contract_id != null)
                        {
                            thisContract = new ctt_contract_dal().FindNoDeleteById((long)thisTicket.contract_id);
                        }

                        if (thisTicket.cost_code_id != null)
                        {
                            thisCostCode = new d_cost_code_dal().FindNoDeleteById((long)thisTicket.cost_code_id);
                        }
                        var otherResList = new sdk_task_resource_dal().GetTaskResByTaskId(thisTicket.id);
                        if (otherResList != null && otherResList.Count > 0)
                        {
                            foreach (var item in otherResList)
                            {
                                if (item.resource_id != null && item.role_id != null)
                                {
                                    var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)item.resource_id, (long)item.role_id);
                                    if (resDepList != null && resDepList.Count > 0)
                                    {
                                        ticketResIds += resDepList[0].id + ",";
                                    }
                                }
                            }

                            if (ticketResIds != "")
                            {
                                ticketResIds = ticketResIds.Substring(0, ticketResIds.Length - 1);
                            }
                        }

                        ticketCheckList = new sdk_task_checklist_dal().GetCheckByTask(thisTicket.id);
                        if (ticketCheckList != null && ticketCheckList.Count > 0)
                        {
                            ticketCheckList = ticketCheckList.OrderBy(_ => _.sort_order).ToList();
                        }
                        #region 时间轴显示相关 工单备注类型获取
                        var    slaValue     = new sdk_task_dal().GetSlaTime(thisTicket);
                        string slaTimeValue = "";
                        if (slaValue != null)
                        {
                            slaTimeValue = slaValue.ToString();
                        }
                        if (!string.IsNullOrEmpty(slaTimeValue))
                        {
                            if (slaTimeValue.Substring(0, 1) == "{")
                            {
                                slaDic = new EMT.Tools.Serialize().JsonToDictionary(slaTimeValue);
                            }
                        }
                        var actList = new d_general_dal().GetGeneralByTableId((int)GeneralTableEnum.ACTION_TYPE);
                        if (actList != null && actList.Count > 0)
                        {
                            ticketNoteTypeList = actList.Where(_ => _.ext2 == ((int)DicEnum.ACTIVITY_CATE.TASK_NOTE).ToString()).ToList();
                        }
                        #endregion
                        entryList = new sdk_work_entry_dal().GetList(thisTicket.id);
                    }
                }


                var ticket_type_id = Request.QueryString["ticket_type_id"];
                if (!string.IsNullOrEmpty(ticket_type_id))
                {
                    this.ticket_type_id.ClearSelection();
                    this.ticket_type_id.SelectedValue = ticket_type_id;
                }
            }
            catch (Exception msg)
            {
                Response.Write("<script>alert('" + msg.Message + "');window.close();</script>");
            }
        }
コード例 #18
0
ファイル: TicketManage.aspx.cs プロジェクト: evelh/Done
        /// <summary>
        ///  获取页面参数
        /// </summary>
        protected TicketManageDto GetParam()
        {
            // 为方便页面处理 owner_resource_id 存储的是 sys_resource_department 的id ,存储时需要转换
            long?owner_resource_id = null;
            long?role_id           = null;
            var  priResString      = Request.Form["owner_resource_id"];

            if (!string.IsNullOrEmpty(priResString))
            {
                var resDep = new sys_resource_department_dal().FindById(long.Parse(priResString));
                if (resDep != null)
                {
                    owner_resource_id = resDep.resource_id;
                    role_id           = resDep.role_id;
                }
            }
            TicketManageDto param      = new TicketManageDto();
            var             pageTicket = AssembleModel <sdk_task>();

            pageTicket.owner_resource_id = owner_resource_id;
            pageTicket.role_id           = role_id;
            var dueDate = Request.Form["DueDate"];
            var dueTime = Request.Form["DueTime"];

            if (!string.IsNullOrEmpty(dueTime) && !string.IsNullOrEmpty(dueDate))
            {
                var dueDateTime = dueDate + " " + dueTime; // 获取到截止时间
                var dueD        = DateTime.Parse(dueDateTime);
                pageTicket.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(dueD);
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('未获取到相关截止时间,请重新填写!');</script>");
                return(null);
            }
            #region 如果sla设置自动计算截止时间 ,保存时计算出工单的结束时间
            if (pageTicket.sla_id != null)
            {
                var thisSla = new d_sla_dal().FindNoDeleteById((long)pageTicket.sla_id);
                if (thisSla != null && thisSla.set_ticket_due_date == 1)
                {
                    if (pageTicket.sla_start_time == null)
                    {
                        pageTicket.sla_start_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);
                    }
                    var    slaValue     = new sdk_task_dal().GetSlaTime(pageTicket);
                    string slaTimeValue = "";
                    if (slaValue != null)
                    {
                        slaTimeValue = slaValue.ToString();
                    }
                    if (!string.IsNullOrEmpty(slaTimeValue) && slaTimeValue.Substring(0, 1) == "{")
                    {
                        var slaDic = new EMT.Tools.Serialize().JsonToDictionary(slaTimeValue);
                        if (slaDic != null && slaDic.Count > 0)
                        {
                            var duteDateDic = slaDic.FirstOrDefault(_ => _.Key == "截止时间");
                            if (!default(KeyValuePair <string, object>).Equals(duteDateDic))
                            {
                                var duteDate = DateTime.Parse(duteDateDic.Value.ToString());
                                pageTicket.estimated_end_time = Tools.Date.DateHelper.ToUniversalTimeStamp(duteDate);
                            }
                            var firstResponseDateDic = slaDic.FirstOrDefault(_ => _.Key == "响应时间");
                            if (!default(KeyValuePair <string, object>).Equals(firstResponseDateDic))
                            {
                                pageTicket.first_response_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(firstResponseDateDic.Value.ToString()));
                            }
                            var resoluTatgetDic = slaDic.FirstOrDefault(_ => _.Key == "解决时间");
                            if (!default(KeyValuePair <string, object>).Equals(resoluTatgetDic))
                            {
                                pageTicket.resolution_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(resoluTatgetDic.Value.ToString()));
                            }
                            var resoluPlanTatgetDic = slaDic.FirstOrDefault(_ => _.Key == "解决方案提供时间");
                            if (!default(KeyValuePair <string, object>).Equals(firstResponseDateDic))
                            {
                                pageTicket.resolution_plan_target_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(resoluPlanTatgetDic.Value.ToString()));
                            }
                        }
                    }
                }
            }
            #endregion

            if (isAdd)
            {
                pageTicket.type_id = (int)DTO.DicEnum.TASK_TYPE.SERVICE_DESK_TICKET;
                param.ticket       = pageTicket;
            }
            else
            {
                #region 获取页面相关值
                thisTicket.account_id           = pageTicket.account_id;
                thisTicket.contract_id          = pageTicket.contract_id;
                thisTicket.contact_id           = pageTicket.contact_id;
                thisTicket.status_id            = pageTicket.status_id;
                thisTicket.priority             = pageTicket.priority;
                thisTicket.issue_type_id        = pageTicket.issue_type_id;
                thisTicket.sub_issue_type_id    = pageTicket.sub_issue_type_id;
                thisTicket.source_type_id       = pageTicket.source_type_id;
                thisTicket.estimated_end_time   = pageTicket.estimated_end_time;
                thisTicket.estimated_hours      = pageTicket.estimated_hours;
                thisTicket.sla_id               = pageTicket.sla_id;
                thisTicket.department_id        = pageTicket.department_id;
                thisTicket.owner_resource_id    = pageTicket.owner_resource_id;
                thisTicket.role_id              = pageTicket.role_id;
                thisTicket.installed_product_id = pageTicket.installed_product_id;
                thisTicket.service_id           = pageTicket.service_id;
                thisTicket.cost_code_id         = pageTicket.cost_code_id;
                thisTicket.purchase_order_no    = pageTicket.purchase_order_no;
                thisTicket.cate_id              = pageTicket.cate_id;
                thisTicket.ticket_type_id       = pageTicket.ticket_type_id;
                thisTicket.title       = pageTicket.title;
                thisTicket.description = pageTicket.description;
                thisTicket.resolution  = pageTicket.resolution;

                thisTicket.sla_start_time              = pageTicket.sla_start_time;
                thisTicket.estimated_end_time          = pageTicket.estimated_end_time;
                thisTicket.first_response_target_time  = pageTicket.first_response_target_time;
                thisTicket.resolution_target_time      = pageTicket.resolution_target_time;
                thisTicket.resolution_plan_target_time = pageTicket.resolution_plan_target_time;
                #endregion
                param.ticket = thisTicket;
            }
            param.resDepIds = Request.Form["OtherResId"];
            var AddSoule = Request.Form["AddSoule"];
            if (AddSoule == "on")
            {
                param.isAppSlo = true;
            }
            param.completeReason = Request.Form["reason"];
            param.repeatReason   = Request.Form["RepeatReason"];
            #region 检查单相关
            var CheckListIds = Request.Form["CheckListIds"];  // 检查单Id
            if (!string.IsNullOrEmpty(CheckListIds))
            {
                List <CheckListDto> ckList = new List <CheckListDto>();
                var checkIdArr             = CheckListIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var checkId in checkIdArr)
                {
                    if (string.IsNullOrEmpty(Request.Form[checkId + "_item_name"]))  // 条目名称为空 不添加
                    {
                        continue;
                    }
                    var     is_complete = Request.Form[checkId + "_is_complete"];
                    var     is_import   = Request.Form[checkId + "_is_import"];
                    var     sortOrder   = Request.Form[checkId + "_sort_order"];
                    decimal?sort        = null;
                    if (!string.IsNullOrEmpty(sortOrder))
                    {
                        sort = decimal.Parse(sortOrder);
                    }
                    var thisCheck = new CheckListDto()
                    {
                        ckId       = long.Parse(checkId),
                        isComplete = is_complete == "on",
                        itemName   = Request.Form[checkId + "_item_name"],
                        isImport   = is_import == "on",
                        sortOrder  = sort,
                    };
                    ckList.Add(thisCheck);
                }
                param.ckList = ckList;
            }
            #endregion
            #region 工单自定义字段,页面暂无自定义
            if (tickUdfList != null && tickUdfList.Count > 0)
            {
                var list = new List <UserDefinedFieldValue>();
                foreach (var udf in tickUdfList)                            // 循环添加
                {
                    var new_udf = new UserDefinedFieldValue()
                    {
                        id    = udf.id,
                        value = string.IsNullOrEmpty(Request.Form[udf.id.ToString()]) ? null : Request.Form[udf.id.ToString()],
                    };
                    list.Add(new_udf);
                }
                if (isAdd)
                {
                    param.udfList = list;
                }
                else
                {
                    param.udfList = ticketUdfValueList;
                }
            }
            #endregion
            return(param);
        }
コード例 #19
0
ファイル: TicketModify.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var ticketIds = Request.QueryString["ticketIds"];
                var sdDal     = new sdk_task_dal();
                if (!string.IsNullOrEmpty(ticketIds))
                {
                    ticketList = sdDal.GetTicketByIds(ticketIds);
                }
                if (ticketList != null && ticketList.Count > 0)
                {
                    if (ticketList.Count == 1)
                    {
                        isSingle = true;
                    }
                    else
                    {
                        isSingle = false;
                    }
                    thisTicket = ticketList[0];
                }
                else
                {
                    Response.Write("<script>alert('未查询到相关工单信息!');window.close();</script>");
                    return;
                }
                var udfBLL = new UserDefinedFieldsBLL();
                if (thisTicket == null)
                {
                    Response.Write("<script>alert('未查询到相关工单信息!');window.close();</script>");
                }
                else
                {
                    thisAccount = new CompanyBLL().GetCompany(thisTicket.account_id);
                    thisUser    = new sys_resource_dal().FindNoDeleteById(LoginUserId);
                    #region 获取相关属性是否可以更改
                    if (ticketList.Any(_ => _.id != thisTicket.id))
                    {
                        isManyTitle = true;
                    }
                    else
                    {
                        isManyTitle = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id))
                    {
                        isManydesc = true;
                    }
                    else
                    {
                        isManydesc = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.department_id != thisTicket.department_id))
                    {
                        isManyDep = true;
                    }
                    else
                    {
                        isManyDep = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.issue_type_id != thisTicket.issue_type_id))
                    {
                        isManyissType = true;
                    }
                    else
                    {
                        isManyissType = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && (_.owner_resource_id != thisTicket.owner_resource_id && _.role_id != thisTicket.role_id)))
                    {
                        isManyPri = true;
                    }
                    else
                    {
                        isManyPri = false;
                        if (thisTicket.owner_resource_id != null && thisTicket.role_id != null)
                        {
                            thisPriRes = new sys_resource_dal().FindNoDeleteById((long)thisTicket.owner_resource_id);
                            thisRole   = new sys_role_dal().FindNoDeleteById((long)thisTicket.role_id);
                            var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)thisTicket.owner_resource_id, (long)thisTicket.role_id);
                            if (resDepList != null && resDepList.Count > 0)
                            {
                                proResDep = resDepList[0];
                            }
                        }
                    }

                    if (ticketList.Any(_ => _.id != thisTicket.id && _.cate_id != thisTicket.cate_id))
                    {
                        isManyTicketCate = true;
                    }
                    else
                    {
                        isManyTicketCate = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.estimated_hours != thisTicket.estimated_hours))
                    {
                        isManyEstHour = true;
                    }
                    else
                    {
                        isManyEstHour = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.estimated_end_time != thisTicket.estimated_end_time))
                    {
                        isManyDueTime = true;
                    }
                    else
                    {
                        isManyDueTime = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.account_id != thisTicket.account_id))
                    {
                        isManyAccount = true;
                    }
                    else
                    {
                        isManyAccount = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.contract_id != thisTicket.contract_id))
                    {
                        isManyContract = true;
                    }
                    else
                    {
                        isManyContract = false;
                        if (thisTicket.contract_id != null)
                        {
                            thisContract = new ctt_contract_dal().FindNoDeleteById((long)thisTicket.contract_id);
                        }
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.status_id != thisTicket.status_id))
                    {
                        isManyStatus = true;
                    }
                    else
                    {
                        isManyStatus = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.service_id != thisTicket.service_id))
                    {
                        isManySerivce = true;
                    }
                    else
                    {
                        isManySerivce = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.priority_type_id != thisTicket.priority_type_id))
                    {
                        isManyPrio = true;
                    }
                    else
                    {
                        isManyPrio = false;
                    }
                    if (ticketList.Any(_ => _.id != thisTicket.id && _.cost_code_id != thisTicket.cost_code_id))
                    {
                        isManyWork = true;
                    }
                    else
                    {
                        isManyWork = false;
                        if (thisTicket.cost_code_id != null)
                        {
                            thisWorkType = new d_cost_code_dal().FindNoDeleteById((long)thisTicket.cost_code_id);
                        }
                    }

                    if (ticketList.Any(_ => _.id != thisTicket.id && _.sub_issue_type_id != thisTicket.sub_issue_type_id))
                    {
                        isManySubIssType = true;
                    }
                    else
                    {
                        isManySubIssType = false;
                    }
                    // protected bool isManyStatus;
                    #endregion

                    udfValue = udfBLL.GetUdfValue(DicEnum.UDF_CATE.TASK, thisTicket.id, udfTaskPara);
                    if (udfTaskPara != null && udfTaskPara.Count > 0)
                    {
                        foreach (var udfTask in udfTaskPara)
                        {
                            var thisValue = "";
                            if (udfValue.FirstOrDefault(_ => _.id == udfTask.id) != null)
                            {
                                thisValue = udfValue.FirstOrDefault(_ => _.id == udfTask.id).value.ToString();
                            }
                            var count = new UserDefinedFieldsBLL().GetSameValueCount(DicEnum.UDF_CATE.TASK, ticketIds, udfTask.col_name, thisValue.ToString());
                            if (count > 1 && (!isSingle))
                            {
                                udfValue.FirstOrDefault(_ => _.id == udfTask.id).value = "多个值-保持不变";
                            }
                        }
                    }

                    var otherResList = new sdk_task_resource_dal().GetTaskResByTaskId(thisTicket.id);
                    if (otherResList != null && otherResList.Count > 0)
                    {
                        foreach (var item in otherResList)
                        {
                            if (item.resource_id != null && item.role_id != null)
                            {
                                var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)item.resource_id, (long)item.role_id);
                                if (resDepList != null && resDepList.Count > 0)
                                {
                                    ticketResIds += resDepList[0].id + ",";
                                }
                            }
                        }

                        if (ticketResIds != "")
                        {
                            ticketResIds = ticketResIds.Substring(0, ticketResIds.Length - 1);
                        }
                    }
                }

                if (IsPostBack)
                {
                    var stDal      = new sdk_task_dal();
                    var ticBll     = new TicketBLL();
                    var accBll     = new CompanyBLL();
                    var notiResIds = new System.Text.StringBuilder();
                    foreach (var tic in ticketList)
                    {
                        var ticket = stDal.FindNoDeleteById(tic.id);
                        if (ticket == null)
                        {
                            continue;
                        }
                        var user = UserInfoBLL.GetUserInfo(LoginUserId);

                        #region 获取相关参数

                        #region 标题,描述,队列,主负责人
                        var pageTitle = ticket.title;
                        if (!isManyTitle)
                        {
                            pageTitle = Request.Form["title"];
                        }
                        var pageDesc = ticket.description;
                        if (!isManydesc)
                        {
                            pageDesc = Request.Form["description"];
                        }

                        var pageDepIdString    = Request.Form["department_id"];
                        var pagePriResIdString = Request.Form["pri_res"];
                        if (string.IsNullOrEmpty(pageDepIdString) && string.IsNullOrEmpty(pagePriResIdString))
                        {
                            Response.Write("<script>alert('队列和主负责人请填写其中一项!');</script>");
                            return;
                        }
                        long?pageDepId;
                        if (!string.IsNullOrEmpty(pageDepIdString) && pageDepIdString != "0")
                        {
                            pageDepId = long.Parse(pageDepIdString);
                        }
                        else if (string.IsNullOrEmpty(pageDepIdString))
                        {
                            pageDepId = null;
                        }
                        else
                        {
                            pageDepId = ticket.department_id;
                        }

                        long?pagePriResId;
                        if (!string.IsNullOrEmpty(pagePriResIdString) && pagePriResIdString != "0")
                        {
                            pagePriResId = long.Parse(pagePriResIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePriResIdString))
                        {
                            pagePriResId = null;
                        }
                        else
                        {
                            pagePriResId = ticket.owner_resource_id;
                        }
                        #endregion

                        #region 种类,预估时间,到期时间,合同名称
                        var pageCateId       = ticket.cate_id;
                        var pageCateIdString = Request.Form["ticket_cate"];
                        if (!string.IsNullOrEmpty(pageCateIdString) && pageCateIdString != "0")
                        {
                            pageCateId = int.Parse(pageCateIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePriResIdString))
                        {
                            Response.Write("<script>alert('请选择工单种类!');</script>");
                            return;
                        }
                        else
                        {
                            pageCateId = ticket.cate_id;
                        }

                        var estHours     = ticket.estimated_hours;
                        var pageEstHours = Request.Form["est_hours"];
                        if (!string.IsNullOrEmpty(pageEstHours) && pageEstHours.Trim() != "多个值-保持不变")
                        {
                            estHours = decimal.Parse(pageEstHours);
                        }
                        var dueTime     = ticket.estimated_end_time;
                        var pageDueTime = Request.Form["due_time"];
                        if (!string.IsNullOrEmpty(pageDueTime) && pageDueTime.Trim() != "多个值-保持不变")
                        {
                            dueTime = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Parse(pageDueTime));
                        }
                        var contractName = ticket.contract_id;
                        var pageContract = Request.Form["contractName"];
                        if (!string.IsNullOrEmpty(pageContract) && pageContract != "0")
                        {
                            contractName = long.Parse(pageContract);
                        }
                        else if (string.IsNullOrEmpty(pageContract))
                        {
                            contractName = null;
                        }
                        #endregion

                        #region 状态,服务包,优先级,工作类型,问题类型,子问题类型
                        var pageStatusId        = ticket.status_id;
                        var pageStuatusIdString = Request.Form["statusId"];
                        if (!string.IsNullOrEmpty(pageStuatusIdString) && pageStuatusIdString != "0")
                        {
                            pageStatusId = int.Parse(pageStuatusIdString);
                        }
                        else if (string.IsNullOrEmpty(pageStuatusIdString))
                        {
                            Response.Write("<script>alert('请选择工单状态!');</script>");
                            return;
                        }

                        var pageServiceId       = ticket.service_id;
                        var pageServiceIdString = Request.Form["serviceId"];
                        if (!string.IsNullOrEmpty(pageServiceIdString) && pageServiceIdString != "0")
                        {
                            pageServiceId = int.Parse(pageServiceIdString);
                        }
                        else if (string.IsNullOrEmpty(pageServiceIdString))
                        {
                            pageServiceId = null;
                        }

                        var pagePrioId       = ticket.priority_type_id;
                        var pagePrioIdString = Request.Form["priorityId"];
                        if (!string.IsNullOrEmpty(pagePrioIdString) && pagePrioIdString != "0")
                        {
                            pagePrioId = int.Parse(pagePrioIdString);
                        }
                        else if (string.IsNullOrEmpty(pagePrioIdString))
                        {
                            Response.Write("<script>alert('请选择工单优先级!');</script>");
                            return;
                        }

                        var workTypeId     = ticket.cost_code_id;
                        var pageWorkTypeId = Request.Form["workTypeId"];
                        if (!string.IsNullOrEmpty(pageWorkTypeId) && pageWorkTypeId != "0")
                        {
                            workTypeId = long.Parse(pageWorkTypeId);
                        }
                        else if (string.IsNullOrEmpty(pageWorkTypeId))
                        {
                            contractName = null;
                        }

                        var pageIssId       = ticket.issue_type_id;
                        var pageIssIdString = Request.Form["IssueType"];
                        if (!string.IsNullOrEmpty(pageIssIdString) && pageIssIdString != "0")
                        {
                            pageIssId = int.Parse(pageIssIdString);
                        }
                        else if (string.IsNullOrEmpty(pageIssIdString))
                        {
                            Response.Write("<script>alert('请选择问题类型!');</script>");
                            return;
                        }

                        var pageSubIssId       = ticket.sub_issue_type_id;
                        var pageSubIssIdString = Request.Form["SubIssueType"];
                        if (!string.IsNullOrEmpty(pageSubIssIdString) && pageSubIssIdString != "0")
                        {
                            pageSubIssId = int.Parse(pageSubIssIdString);
                        }
                        else if (string.IsNullOrEmpty(pageSubIssIdString))
                        {
                            Response.Write("<script>alert('请选择子问题类型!');</script>");
                            return;
                        }
                        #endregion

                        #region 自定义字段相关
                        var thisUdfValue = udfBLL.GetUdfValue(DicEnum.UDF_CATE.TASK, tic.id, udfTaskPara);
                        if (udfTaskPara != null && udfTaskPara.Count > 0)
                        {
                            var list = new List <UserDefinedFieldValue>();
                            foreach (var udf in udfTaskPara)
                            {
                                var new_udf = new UserDefinedFieldValue()
                                {
                                    id = udf.id
                                };
                                var thisvv = Request.Form[udf.id.ToString()];
                                if (udf.data_type == (int)DicEnum.UDF_DATA_TYPE.LIST)
                                {
                                    if (thisvv == "0")
                                    {
                                        new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id) == null ? "" : thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                                    }
                                    else
                                    {
                                        new_udf.value = thisvv == "" ? null : thisvv;
                                    }
                                }
                                else
                                {
                                    if (thisvv == "多个值-保持不变")
                                    {
                                        new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id) == null ? "" : thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                                    }
                                    else
                                    {
                                        new_udf.value = thisvv == "" ? null : thisvv;
                                    }
                                }
                                list.Add(new_udf);
                            }
                            udfBLL.UpdateUdfValue(DicEnum.UDF_CATE.TASK, udfTaskPara, ticket.id, list, user, DicEnum.OPER_LOG_OBJ_CATE.PROJECT_TASK);
                        }
                        #endregion

                        #endregion

                        #region 修改工单
                        ticket.title         = pageTitle;
                        ticket.description   = pageDesc;
                        ticket.department_id = pageDepId;
                        long?roleId = null;
                        if (pagePriResId != null)
                        {
                            var resDep = new sys_resource_department_dal().FindById((long)pagePriResId);
                            if (resDep != null)
                            {
                                pagePriResId = resDep.resource_id;
                                roleId       = resDep.role_id;
                            }
                            else
                            {
                                pagePriResId = null;
                                roleId       = null;
                            }
                        }
                        ticket.owner_resource_id  = pagePriResId;
                        ticket.role_id            = roleId;
                        ticket.cate_id            = pageCateId;
                        ticket.estimated_hours    = estHours;
                        ticket.estimated_end_time = dueTime;
                        ticket.contract_id        = contractName;
                        ticket.status_id          = pageStatusId;
                        ticket.service_id         = pageServiceId;
                        ticket.priority_type_id   = pagePrioId;
                        ticket.cost_code_id       = workTypeId;
                        ticket.issue_type_id      = pageIssId;
                        ticket.sub_issue_type_id  = pageSubIssId;

                        ticBll.EditTicket(ticket, LoginUserId);
                        #endregion

                        #region 生成备注
                        ticBll.AddModifyTicketNote(ticket.id, LoginUserId);
                        #endregion


                        #region 单个工单时 修改其他员工相关
                        if (isSingle)
                        {
                            var OtherResId = Request.Form["OtherResId"];
                            ticBll.TicketResManage(ticket.id, OtherResId, LoginUserId);
                        }
                        #endregion

                        #region 获取需要发送邮件的员工的Id
                        if (CkPriRes.Checked && ticket.owner_resource_id != null)
                        {
                            notiResIds.Append(ticket.owner_resource_id + ",");
                        }
                        if (CKcreate.Checked)
                        {
                            notiResIds.Append(ticket.create_user_id + ",");
                        }
                        if (CKaccMan.Checked)
                        {
                            var thisAccount = accBll.GetCompany(ticket.account_id);
                            if (thisAccount != null && thisAccount.resource_id != null)
                            {
                                notiResIds.Append(thisAccount.resource_id + ",");
                            }
                        }
                        #endregion
                    }


                    #region 通知相关
                    if (CCMe.Checked)
                    {
                        notiResIds.Append(LoginUserId + ",");
                    }
                    var resIds = Request.Form["resIds"];
                    if (!string.IsNullOrEmpty(resIds))
                    {
                        notiResIds.Append(resIds + ",");
                    }
                    var notify_id = Request.Form["notify_id"];
                    if (!string.IsNullOrEmpty(notify_id) && notify_id != "0")
                    {
                    }
                    #endregion
                    ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功');self.opener.location.reload();window.close();</script>");
                }
            }
            catch (Exception msg)
            {
                Response.Write("<script>alert('" + msg.Message + "!');window.close();</script>");
            }
        }
コード例 #20
0
ファイル: ExpenseManage.aspx.cs プロジェクト: evelh/Done
        protected bool isFromReport             = false; // 是否从报表页面进行新增操作
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    PageDataBind();
                }
                isShowWorkType = new SysSettingBLL().GetValueById(SysSettingEnum.SDK_EXPENSE_SHOW_WORK_TYPE) == "1";// SDK_EXPENSE_SHOW_WORK_TYPE
                var seDal = new sdk_expense_dal();
                var stDal = new sdk_task_dal();
                var eId   = Request.QueryString["id"];
                if (!string.IsNullOrEmpty(eId))
                {
                    thisExpense = seDal.FindNoDeleteById(long.Parse(eId));
                    if (thisExpense != null)
                    {
                        if (thisExpense.approve_and_post_date != null || thisExpense.approve_and_post_user_id != null)
                        {
                            Response.Write("<script>alert('审批提交的费用不可以更改!')window.close();</script>");
                            Response.End();
                        }
                        if (!new TaskBLL().CanEditExpense(thisExpense.id))
                        {
                            Response.Write("<script>alert('相关报表状态已经更改,不可以进行编辑!');window.close();</script>");
                            Response.End();
                        }

                        isAdd = false;

                        if (!IsPostBack)
                        {
                            if (thisExpense.cost_code_id != null)
                            {
                                cost_code_id.SelectedValue = thisExpense.cost_code_id.ToString();
                            }
                            expense_cost_code_id.SelectedValue = thisExpense.expense_cost_code_id.ToString();
                            RDAddExiRep.Checked           = true;
                            isBillable.Checked            = thisExpense.is_billable == 1;
                            payment_type_id.SelectedValue = thisExpense.payment_type_id.ToString();
                            hasReceipt.Checked            = thisExpense.has_receipt == 1;
                            if (thisExpense.project_id != null)
                            {
                                rbAssProTask.Checked = true;
                            }
                            else
                            {
                                rbAssNone.Checked = true;
                            }
                        }

                        if (thisExpense.project_id != null)
                        {
                            thisProject = new pro_project_dal().FindNoDeleteById((long)thisExpense.project_id);
                        }
                        if (thisExpense.project_id != null && thisExpense.task_id != null)
                        {
                            thisTask = new sdk_task_dal().FindNoDeleteById((long)thisExpense.task_id);
                        }
                        if (thisExpense.project_id == null && thisExpense.task_id != null)
                        {
                            thisTicket = new sdk_task_dal().FindNoDeleteById((long)thisExpense.task_id);
                        }
                        thisAccount = new crm_account_dal().FindNoDeleteById(thisExpense.account_id);
                        thisExpRep  = new sdk_expense_report_dal().FindNoDeleteById(thisExpense.expense_report_id);
                    }
                }
                var task_id = Request.QueryString["task_id"];
                if (!string.IsNullOrEmpty(task_id))
                {
                    thisTask = stDal.FindNoDeleteById(long.Parse(task_id));
                    if (thisTask != null && thisTask.project_id != null)
                    {
                        thisProject = new pro_project_dal().FindNoDeleteById((long)thisTask.project_id);
                        if (thisProject != null)
                        {
                            thisAccount = new crm_account_dal().FindNoDeleteById(thisProject.account_id);
                        }
                    }
                }
                var project_id = Request.QueryString["project_id"];
                if (!string.IsNullOrEmpty(project_id))
                {
                    thisProject = new pro_project_dal().FindNoDeleteById(long.Parse(project_id));
                    if (thisProject != null)
                    {
                        thisAccount = new crm_account_dal().FindNoDeleteById(thisProject.account_id);
                    }
                }

                var report_id = Request.QueryString["report_id"];
                if (!string.IsNullOrEmpty(report_id))
                {
                    thisExpRep = new sdk_expense_report_dal().FindNoDeleteById(long.Parse(report_id));
                    if (thisExpRep != null)
                    {
                        isFromReport = true;
                        thisAccount  = new CompanyBLL().GetDefaultAccount();
                    }
                }

                var ticket_id = Request.QueryString["ticket_id"];
                if (!string.IsNullOrEmpty(ticket_id))
                {
                    thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(ticket_id));
                    if (thisTicket != null)
                    {
                        thisAccount = new CompanyBLL().GetCompany(thisTicket.account_id);
                    }
                }
            }
            catch (Exception msg)
            {
                Response.End();
            }
        }
コード例 #21
0
ファイル: TicketView.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var taskId = Request.QueryString["id"];
                if (!string.IsNullOrEmpty(taskId))
                {
                    thisTicket = new sdk_task_dal().FindNoDeleteById(long.Parse(taskId));
                    if (thisTicket != null)
                    {
                        isAdd              = false;
                        thisBookMark       = new IndexBLL().GetSingBook(Request.Url.LocalPath + "?id=" + taskId, LoginUserId);
                        ticketUdfValueList = new UserDefinedFieldsBLL().GetUdfValue(DicEnum.UDF_CATE.TASK, thisTicket.id, tickUdfList);
                        thisAccount        = new CompanyBLL().GetCompany(thisTicket.account_id);
                        if (thisTicket.contact_id != null)
                        {
                            thisContact = new crm_contact_dal().FindNoDeleteById((long)thisTicket.contact_id);
                        }
                        if (thisTicket.owner_resource_id != null && thisTicket.role_id != null)
                        {
                            var resDepList = new sys_resource_department_dal().GetResDepByResAndRole((long)thisTicket.owner_resource_id, (long)thisTicket.role_id);
                            if (resDepList != null && resDepList.Count > 0)
                            {
                                proResDep = resDepList[0];
                                priRes    = new sys_resource_dal().FindNoDeleteById((long)thisTicket.owner_resource_id);
                            }
                        }

                        if (thisTicket.installed_product_id != null)
                        {
                            insPro = new crm_installed_product_dal().FindNoDeleteById((long)thisTicket.installed_product_id);
                        }
                        if (thisTicket.contract_id != null)
                        {
                            thisContract = new ctt_contract_dal().FindNoDeleteById((long)thisTicket.contract_id);
                        }
                        if (thisTicket.cost_code_id != null)
                        {
                            thisCostCode = new d_cost_code_dal().FindNoDeleteById((long)thisTicket.cost_code_id);
                        }
                        ticketCheckList = new sdk_task_checklist_dal().GetCheckByTask(thisTicket.id);
                        if (ticketCheckList != null && ticketCheckList.Count > 0)
                        {
                            ticketCheckList = ticketCheckList.OrderBy(_ => _.sort_order).ToList();
                        }
                        entryList = new sdk_work_entry_dal().GetList(thisTicket.id);

                        var otherResList = new sdk_task_resource_dal().GetTaskResByTaskId(thisTicket.id);
                        if (otherResList != null && otherResList.Count > 0)
                        {
                            ticketResList = new List <sys_resource_department>();
                            var srdDal = new sys_resource_department_dal();
                            foreach (var resRole in otherResList)
                            {
                                if (resRole.resource_id == null || resRole.role_id == null)
                                {
                                    continue;
                                }
                                var thisResDep = srdDal.GetResDepByResAndRole((long)resRole.resource_id, (long)resRole.role_id);
                                if (thisResDep != null && thisResDep.Count > 0)
                                {
                                    ticketResList.Add(thisResDep[0]);
                                }
                            }
                        }

                        if (thisTicket.service_id != null)
                        {
                            thisService = new ivt_service_dal().FindNoDeleteById((long)thisTicket.service_id);
                            if (thisService == null)
                            {
                                thisServiceBun = new ivt_service_bundle_dal().FindNoDeleteById((long)thisTicket.service_id);
                            }
                        }
                        createRes = new sys_resource_dal().FindNoDeleteById(thisTicket.create_user_id);

                        var    slaValue     = new sdk_task_dal().GetSlaTime(thisTicket);
                        string slaTimeValue = "";
                        if (slaValue != null)
                        {
                            slaTimeValue = slaValue.ToString();
                        }
                        if (!string.IsNullOrEmpty(slaTimeValue))
                        {
                            if (slaTimeValue.Substring(0, 1) == "{")
                            {
                                slaDic = new EMT.Tools.Serialize().JsonToDictionary(slaTimeValue);
                            }
                        }
                        var actList = new d_general_dal().GetGeneralByTableId((int)GeneralTableEnum.ACTION_TYPE);
                        if (actList != null && actList.Count > 0)
                        {
                            ticketNoteTypeList = actList.Where(_ => _.ext2 == ((int)DicEnum.ACTIVITY_CATE.TASK_NOTE).ToString()).ToList();
                        }
                        ticketOther     = new sdk_task_other_dal().GetTicketOther(thisTicket.id);
                        ticketOtherList = new sdk_task_other_person_dal().GetTicketOther(thisTicket.id);
                    }
                }
                var ticketIds = Request.QueryString["ids"];
                if (!string.IsNullOrEmpty(ticketIds))
                {
                    pageTicketList = new sdk_task_dal().GetTicketByIds(ticketIds);
                }


                if (thisTicket == null)
                {
                    Response.Write("<script>alert('未查询到该工单信息!');window.close();</script>");
                    return;
                }
                var history = new sys_windows_history()
                {
                    title = "工单:" + thisTicket.no + ":" + thisTicket.title,
                    url   = Request.RawUrl,
                };
                new IndexBLL().BrowseHistory(history, LoginUserId);
            }
            catch (Exception msg)
            {
                Response.Write("<script>alert('" + msg.Message + "');window.close();</script>");
            }
        }
コード例 #22
0
ファイル: TaskModify.aspx.cs プロジェクト: evelh/Done
        protected void save_Click(object sender, EventArgs e)
        {
            var stDal        = new sdk_task_dal();
            var ids          = Request.QueryString["taskIds"];
            var thisTaskList = stDal.GetTaskByIds(ids, $" and type_id in ({(int)DicEnum.TASK_TYPE.PROJECT_TASK},{(int)DicEnum.TASK_TYPE.PROJECT_ISSUE})");

            if (thisTaskList != null && thisTaskList.Count > 0)
            {
                var pageTitle           = Request.Form["title"];
                var pageStatu           = Request.Form["status_id"];
                var pagePriority        = Request.Form["priority"];
                var displayIsChange     = noChange.Checked;
                var pageEstimated_hours = Request.Form["estimated_hours"];
                var pageDepa            = Request.Form["department_id"];
                var pageRes             = Request.Form["owner_resource_id"];
                var user   = UserInfoBLL.GetUserInfo(GetLoginUserId());
                var ctaDal = new v_task_all_dal();
                foreach (var thisTask in thisTaskList)
                {
                    if (pageTitle != "多个值-保持不变")
                    {
                        if (!string.IsNullOrEmpty(pageTitle))
                        {
                            thisTask.title = pageTitle;
                        }
                    }
                    if (pageStatu != "0")
                    {
                        thisTask.status_id = int.Parse(pageStatu);
                    }
                    if (!string.IsNullOrEmpty(pagePriority))
                    {
                        thisTask.priority = int.Parse(pagePriority);
                    }
                    if (!displayIsChange)  // 代表页面上选择进行更改
                    {
                        if (DisplayInCapNone.Checked)
                        {
                            thisTask.is_visible_in_client_portal = 0;
                        }
                        else
                        {
                            thisTask.is_visible_in_client_portal = 1;
                            if (DisplayInCapYes.Checked)
                            {
                                thisTask.can_client_portal_user_complete_task = 1;
                            }
                            else if (DisplayInCapYesNoComplete.Checked)
                            {
                                thisTask.can_client_portal_user_complete_task = 0;
                            }
                        }
                    }
                    if (!typeNoChange.Checked)
                    {
                        if (TaskTypeFixedWork.Checked)
                        {
                            thisTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXWORK;
                        }
                        else if (TaskTypeFixedDuration.Checked)
                        {
                            thisTask.estimated_type_id = (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXDURATION;
                        }
                    }
                    if (!string.IsNullOrEmpty(pageEstimated_hours))
                    {
                        thisTask.estimated_hours = decimal.Parse(pageEstimated_hours);
                        var vTask = ctaDal.FindById(thisTask.id);
                        if (vTask != null)
                        {
                            thisTask.projected_variance = (vTask.worked_hours == null ? 0 : (decimal)vTask.worked_hours) - (thisTask.estimated_hours + (vTask.change_Order_Hours == null ? 0 : (decimal)vTask.change_Order_Hours)) + (vTask.remain_hours == null ? 0 : (decimal)vTask.remain_hours);
                        }
                    }
                    if (pageDepa != "0")
                    {
                        if (!string.IsNullOrEmpty(pageDepa))
                        {
                            thisTask.department_id = int.Parse(pageDepa);
                        }
                        else
                        {
                            thisTask.department_id = null;
                        }
                    }
                    if (pageRes != "0")
                    {
                        if (!string.IsNullOrEmpty(pageRes))
                        {
                            thisTask.owner_resource_id = long.Parse(pageRes);
                        }
                        else
                        {
                            thisTask.owner_resource_id = null;
                        }
                    }
                    OperLogBLL.OperLogUpdate <sdk_task>(thisTask, stDal.FindNoDeleteById(thisTask.id), thisTask.id, GetLoginUserId(), OPER_LOG_OBJ_CATE.PROJECT_TASK, "修改task");
                    stDal.Update(thisTask);
                    var thisUdfValue = udfBLL.GetUdfValue(UDF_CATE.TASK, thisTask.id, udfTaskPara);
                    if (udfTaskPara != null && udfTaskPara.Count > 0)                      // 首先判断是否有自定义信息
                    {
                        var list = new List <UserDefinedFieldValue>();
                        foreach (var udf in udfTaskPara)                            // 循环添加
                        {
                            var new_udf = new UserDefinedFieldValue();
                            // if(udf.data_type != (int)EMT.DoneNOW.DTO.DicEnum.UDF_DATA_TYPE.LIST) // todo,根据类型去取值
                            new_udf.id = udf.id;
                            var thisvv = Request.Form[udf.id.ToString()];
                            if (thisvv == "多个值-保持不变")
                            {
                                new_udf.value = thisUdfValue.FirstOrDefault(_ => _.id == udf.id).value;
                            }
                            else
                            {
                                new_udf.value = thisvv == "" ? null : thisvv;
                            }
                            list.Add(new_udf);
                        }
                        udfBLL.UpdateUdfValue(UDF_CATE.TASK, udfTaskPara, thisTask.id, list, user, OPER_LOG_OBJ_CATE.PROJECT_TASK);
                    }
                }
            }
            ClientScript.RegisterStartupScript(this.GetType(), "提示信息", "<script>alert('保存成功!');window.close();self.opener.location.reload();</script>");
        }
コード例 #23
0
ファイル: ResourceAjax.ashx.cs プロジェクト: evelh/Done
        /// <summary>
        /// 检查员工的可用性
        /// </summary>
        private void CheckResAvailability(HttpContext context)
        {
            // 在同一项目下校验
            try
            {
                var project_id      = context.Request.QueryString["project_id"];
                var resId           = context.Request.QueryString["res_id"];
                var startTime       = context.Request.QueryString["startTime"];       // 开始时间
                var endTime         = context.Request.QueryString["endTime"];
                var days            = context.Request.QueryString["days"];            // 持续时间
                var thisTaskRpeHour = context.Request.QueryString["thisTaskRpeHour"]; // 这个员工在这个任务中的日工作时间
                if (!string.IsNullOrEmpty(project_id) && !string.IsNullOrEmpty(resId) && !string.IsNullOrEmpty(startTime) && !string.IsNullOrEmpty(endTime) && !string.IsNullOrEmpty(thisTaskRpeHour))
                {
                    var project   = new pro_project_dal().FindNoDeleteById(long.Parse(project_id));
                    var taskList  = new sdk_task_dal().GetListByProAndRes(long.Parse(project_id), long.Parse(resId));
                    int readDays  = 0;
                    var startDate = DateTime.Parse(startTime);
                    var endDate   = DateTime.Parse(endTime);
                    if (!string.IsNullOrEmpty(days))
                    {
                        readDays = int.Parse(days);
                        endDate  = new BLL.TaskBLL().RetrunMaxTime(project.id, startDate, readDays);
                    }
                    else
                    {
                        readDays = new BLL.TaskBLL().GetDayByTime(Tools.Date.DateHelper.ToUniversalTimeStamp(startDate), Tools.Date.DateHelper.ToUniversalTimeStamp(endDate), long.Parse(project_id));
                    }
                    if (readDays != 0)
                    {
                        // 员工在这个项目中应该工作的时长
                        var totalHours = readDays * (decimal)project.resource_daily_hours;

                        if (taskList != null && taskList.Count > 0)
                        {
                            var startDateLong = Tools.Date.DateHelper.ToUniversalTimeStamp(startDate);
                            var thisList      = taskList.Where(_ => (_.type_id == (int)DTO.DicEnum.TASK_TYPE.PROJECT_ISSUE || _.type_id == (int)DTO.DicEnum.TASK_TYPE.PROJECT_TASK) && (_.estimated_begin_time <Tools.Date.DateHelper.ToUniversalTimeStamp(endDate) && _.estimated_end_time> startDateLong)).ToList();
                            if (thisList != null && thisList.Count > 0)
                            {
                                // 员工在这些天中已经分配的时长
                                var taskTotalHours = thisList.Sum(_ => {
                                    var thisDays = (decimal)_.hours_per_resource * GetDiffDays(startDate, endDate, Tools.Date.DateHelper.ConvertStringToDateTime((long)_.estimated_begin_time), Tools.Date.DateHelper.ConvertStringToDateTime((long)_.estimated_end_time), project.id);
                                    if (thisDays == 0 || _.hours_per_resource == null)
                                    {
                                        return(0);
                                    }
                                    else
                                    {
                                        // 计算员工平均工作时长
                                        TimeSpan ts1 = new TimeSpan(Tools.Date.DateHelper.ConvertStringToDateTime((long)_.estimated_begin_time).Ticks);
                                        TimeSpan ts2 = new TimeSpan(Tools.Date.DateHelper.ConvertStringToDateTime((long)_.estimated_end_time).Ticks);
                                        var allDays  = ts1.Subtract(ts2).Duration().Days;
                                        return(((decimal)_.hours_per_resource / allDays) * thisDays);
                                    }
                                });
                                // 员工的剩余时长
                                var shengyuHours = totalHours - taskTotalHours;
                                var preHours     = decimal.Parse(thisTaskRpeHour);
                                var result       = shengyuHours > preHours;
                                context.Response.Write(new { result = result, reason = shengyuHours.ToString("#0.00") });
                            }
                        }
                    }
                    //pageTask.estimated_duration = ts.Days + 1;
                }
            }
            catch (Exception)
            {
            }
        }
コード例 #24
0
ファイル: TicketNote.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            thisUser = new sys_resource_dal().FindNoDeleteById(GetLoginUserId());
            var caDal  = new com_activity_dal();
            var stDal  = new sdk_task_dal();
            var ppDal  = new pro_project_dal();
            var accDal = new crm_account_dal();
            var ccDal  = new ctt_contract_dal();
            var id     = Request.QueryString["id"];

            if (!string.IsNullOrEmpty(id))
            {
                thisNote = caDal.FindNoDeleteById(long.Parse(id));
                if (thisNote != null)
                {
                    isAdd = false;

                    thisNoteAtt = new com_attachment_dal().GetAttListByOid(thisNote.id);

                    thisTicket = stDal.FindNoDeleteById(thisNote.object_id);
                    if (thisTicket != null)
                    {
                        object_id = thisTicket.id;
                    }
                    else
                    {
                        thisProject = ppDal.FindNoDeleteById(thisNote.object_id);
                        if (thisProject != null)
                        {
                            object_id   = thisProject.id;
                            thisAccount = accDal.FindNoDeleteById(thisProject.account_id);
                        }
                        else
                        {
                            thisContract = ccDal.FindNoDeleteById(thisNote.object_id);
                            if (thisContract != null)
                            {
                                object_id   = thisContract.id;
                                thisAccount = accDal.FindNoDeleteById(thisContract.account_id);
                            }
                        }
                    }
                }
            }

            var ticketId = Request.QueryString["ticket_id"];

            if (!string.IsNullOrEmpty(ticketId))
            {
                thisTicket = stDal.FindNoDeleteById(long.Parse(ticketId));
            }
            if (thisTicket != null)
            {
                object_id = thisTicket.id;
                if (thisTicket.type_id == (int)DicEnum.TASK_TYPE.PROJECT_PHASE)
                {
                    // isPhase = true;
                }
                if (thisTicket.contact_id != null)
                {
                    thisContact = new crm_contact_dal().FindNoDeleteById((long)thisTicket.contact_id);
                }
                thisAccount    = accDal.FindNoDeleteById(thisTicket.account_id);
                ticket_creator = new sys_resource_dal().FindNoDeleteById(thisTicket.create_user_id);
                if (!IsPostBack)
                {
                    //status_id.SelectedValue = thisTicket.status_id.ToString();
                }

                if (thisTicket.project_id != null)
                {
                    thisProject = ppDal.FindNoDeleteById((long)thisTicket.project_id);
                    if (thisProject != null && thisAccount != null)
                    {
                        thisAccount = accDal.FindNoDeleteById(thisProject.account_id);
                    }
                }
            }
            if (thisAccount == null)
            {
                Response.End();
            }
            else
            {
                if (thisAccount.resource_id != null)
                {
                    thisAccManger = new sys_resource_dal().FindNoDeleteById((long)thisAccount.resource_id);
                }
            }

            if (!IsPostBack)
            {
                publish_type_id.DataTextField  = "name";
                publish_type_id.DataValueField = "id";
                var pushList = new d_general_dal().GetGeneralByTableId((int)GeneralTableEnum.NOTE_PUBLISH_TYPE);
                if (pushList != null && pushList.Count > 0)
                {
                    pushList = pushList.Where(_ => _.ext2 == ((int)DicEnum.ACTIVITY_CATE.TICKET_NOTE).ToString()).ToList();
                }
                publish_type_id.DataSource = pushList;
                publish_type_id.DataBind();

                status_id.DataTextField  = "show";
                status_id.DataValueField = "val";
                status_id.DataSource     = dic.FirstOrDefault(_ => _.Key == "ticket_status").Value;
                status_id.DataBind();
                if (thisTicket != null)
                {
                    status_id.SelectedValue = thisTicket.status_id.ToString();
                }

                action_type_id.DataTextField  = "name";
                action_type_id.DataValueField = "id";
                var actList = new d_general_dal().GetGeneralByTableId((int)GeneralTableEnum.ACTION_TYPE);
                actList = actList.Where(_ => _.ext2 == ((int)DicEnum.ACTIVITY_CATE.TASK_NOTE).ToString()).ToList();
                action_type_id.DataSource = actList;
                action_type_id.DataBind();


                if (thisNote != null)
                {
                    if (!IsPostBack)
                    {
                        if (thisNote.publish_type_id != null)
                        {
                            publish_type_id.SelectedValue = thisNote.publish_type_id.ToString();
                        }
                        action_type_id.SelectedValue = thisNote.action_type_id.ToString();
                    }
                }
                //else
                //{
                //    if (isContract)
                //    {
                //        publish_type_id.SelectedValue = ((int)DicEnum.NOTE_PUBLISH_TYPE.CONTRACT_INTERNA_USER).ToString();
                //    }
                //}

                var tempList = new sys_notify_tmpl_dal().GetTempByEvent(DicEnum.NOTIFY_EVENT.NONE);
                notify_id.DataTextField  = "name";
                notify_id.DataValueField = "id";
                notify_id.DataSource     = tempList;
                notify_id.DataBind();
            }
        }
コード例 #25
0
        /// <summary>
        /// 新增附件
        /// </summary>
        /// <param name="objType">对象类型</param>
        /// <param name="objId">对象id</param>
        /// <param name="typeId">附件类型</param>
        /// <param name="title">附件名</param>
        /// <param name="attLink">附件内容</param>
        /// <param name="fileName">上传的文件名</param>
        /// <param name="fileSaveName">文件保存服务器的名称</param>
        /// <param name="contentType">文件类型</param>
        /// <param name="size">文件大小</param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool AddAttachment(int objType, long objId, int typeId, string title, string attLink, string fileName, string fileSaveName, string contentType, int size, long userId, string pubTypeId = "")
        {
            com_attachment att = new com_attachment();


            att.object_type_id = objType;
            att.object_id      = objId;

            // 备注和附件的下级备注和附件不能再添加附件
            if (objType == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES)
            {
                var note = new com_activity_dal().FindById(objId);
                if (note.object_type_id == (int)DicEnum.OBJECT_TYPE.NOTES)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES;
                    att.object_id      = note.object_id;
                }
                else if (note.object_type_id == (int)DicEnum.OBJECT_TYPE.ATTACHMENT)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT;
                    att.object_id      = note.object_id;
                }
            }
            else if (objType == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT)
            {
                var attachment = dal.FindById(objId);
                if (attachment.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES;
                    att.object_id      = attachment.object_id;
                }
                else if (attachment.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT;
                    att.object_id      = attachment.object_id;
                }
            }
            else if (objType == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.LABOUR)
            {
                var labour = new sdk_work_entry_dal().FindById(objId);
                if (labour.parent_id != null)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.LABOUR;
                    att.object_id      = (long)labour.parent_id;
                }
                else if (labour.parent_attachment_id != null)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT;
                    att.object_id      = (long)labour.parent_attachment_id;
                }
                else if (labour.parent_note_id != null)
                {
                    att.object_type_id = (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES;
                    att.object_id      = (long)labour.parent_note_id;
                }
            }

            if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.ATTACHMENT)
            {
                var attachment = dal.FindById(att.object_id);
                att.account_id = attachment.account_id;
                att.parent_id  = attachment.id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.NOTES)
            {
                var note = new com_activity_dal().FindById(att.object_id);
                att.account_id = note.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.OPPORTUNITY)
            {
                var opp = new crm_opportunity_dal().FindById(att.object_id);
                att.account_id = opp.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.SALES_ORDER)
            {
                var so  = new crm_sales_order_dal().FindById(att.object_id);
                var opp = new crm_opportunity_dal().FindById(so.opportunity_id);
                att.account_id = opp.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.CONTRACT)
            {
                var contract = new ctt_contract_dal().FindById(att.object_id);
                att.account_id = contract.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.COMPANY)
            {
                att.account_id = att.object_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.PROJECT)
            {
                var project = new pro_project_dal().FindNoDeleteById(att.object_id);
                att.account_id = project.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.EXPENSE_REPORT)
            {
                // 从报表添加附件 - 默认使用声联(oid=0) 的客户
                var defaultAccount = new CompanyBLL().GetDefaultAccount();
                att.account_id = defaultAccount.id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.TASK)
            {
                var task = new sdk_task_dal().FindNoDeleteById(att.object_id);
                if (task != null)
                {
                    att.account_id = task.account_id;
                    #region 更新客户最后活动时间
                    crm_account thisAccount = new CompanyBLL().GetCompany(task.account_id);
                    if (thisAccount != null)
                    {
                        thisAccount.last_activity_time = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now); new CompanyBLL().EditAccount(thisAccount, userId);
                    }
                    #endregion
                }
                if (!string.IsNullOrEmpty(pubTypeId))
                {
                    att.publish_type_id = int.Parse(pubTypeId);
                }
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.LABOUR)
            {
                var labour = new sdk_work_entry_dal().FindNoDeleteById(att.object_id);
                if (labour == null)
                {
                    return(false);
                }
                var ticket = new sdk_task_dal().FindNoDeleteById(labour.task_id);
                if (ticket == null)
                {
                    return(false);
                }
                att.account_id = ticket.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.KNOWLEDGE)
            {
                var thisArt = new sdk_kb_article_dal().FindNoDeleteById(att.object_id);
                if (thisArt == null)
                {
                    return(false);
                }
                att.account_id = thisArt.account_id;
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.RESOURCE)
            {
            }
            else if (att.object_type_id == (int)DicEnum.ATTACHMENT_OBJECT_TYPE.CONFIGITEM)
            {
                crm_installed_product insPro = new crm_installed_product_dal().FindNoDeleteById(att.object_id);
                if (insPro == null)
                {
                    return(false);
                }
                att.account_id = insPro.account_id;
            }
            else
            {
                return(false);
            }

            att.id             = dal.GetNextIdCom();
            att.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
            att.create_user_id = userId;
            att.update_time    = att.create_time;
            att.update_user_id = userId;
            att.title          = title;
            att.type_id        = typeId;
            if (typeId == (int)DicEnum.ATTACHMENT_TYPE.FILE_LINK ||
                typeId == (int)DicEnum.ATTACHMENT_TYPE.FOLDER_LINK)
            {
                att.uncpath  = attLink;
                att.filename = @"file://" + attLink;
            }
            else if (typeId == (int)DicEnum.ATTACHMENT_TYPE.URL)
            {
                if (attLink.IndexOf(@"http://") == 0)
                {
                    attLink      = attLink.Remove(0, 7);
                    att.urlpath  = attLink;
                    att.filename = @"http://" + attLink;
                }
                else if (attLink.IndexOf(@"https://") == 0)
                {
                    attLink      = attLink.Remove(0, 8);
                    att.urlpath  = attLink;
                    att.filename = @"https://" + attLink;
                }
                else
                {
                    att.urlpath  = attLink;
                    att.filename = @"http://" + attLink;
                }
            }
            else if (typeId == (int)DicEnum.ATTACHMENT_TYPE.ATTACHMENT)
            {
                att.href         = fileSaveName;
                att.filename     = fileName;
                att.sizeinbyte   = size;
                att.content_type = contentType;
            }
            else
            {
                return(false);
            }

            dal.Insert(att);
            OperLogBLL.OperLogAdd <com_attachment>(att, att.id, userId, DicEnum.OPER_LOG_OBJ_CATE.ATTACHMENT, "新增附件");
            return(true);
        }
コード例 #26
0
ファイル: InventoryProductBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 配送
        /// </summary>
        /// <param name="costPdtIds">成本产品id</param>
        /// <param name="isEditSaleOrder">是否修改销售订单状态</param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public string PurchaseShip(string costPdtIds, bool isEditSaleOrder, long userId)
        {
            ctt_contract_cost_product_dal cstPdtDal = new ctt_contract_cost_product_dal();
            var pdtList = cstPdtDal.FindListBySql <ctt_contract_cost_product>($"select * from ctt_contract_cost_product where id in({costPdtIds})");

            if (pdtList == null || pdtList.Count == 0)
            {
                return("");
            }

            foreach (var pdt in pdtList)
            {
                if (pdt.status_id != (int)DicEnum.CONTRACT_COST_PRODUCT_STATUS.PENDING_DISTRIBUTION)
                {
                    return("状态为“待配送”的成本产品才能配送");
                }
            }

            ctt_contract_cost_dal        costDal     = new ctt_contract_cost_dal();
            ivt_transfer_dal             tsfDal      = new ivt_transfer_dal();
            ctt_contract_dal             cttDal      = new ctt_contract_dal();
            pro_project_dal              proDal      = new pro_project_dal();
            sdk_task_dal                 tskDal      = new sdk_task_dal();
            ivt_warehouse_product_sn_dal lctPdtSnDal = new ivt_warehouse_product_sn_dal();
            ivt_transfer_sn_dal          tsfSnDal    = new ivt_transfer_sn_dal();

            foreach (var pdt in pdtList)
            {
                var pdtOld = cstPdtDal.FindById(pdt.id);
                pdt.status_id      = (int)DicEnum.CONTRACT_COST_PRODUCT_STATUS.DISTRIBUTION;
                pdt.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                pdt.shipping_time  = pdt.update_time;
                pdt.update_user_id = userId;
                cstPdtDal.Update(pdt);
                OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ctt_contract_cost_product>(pdtOld, pdt), pdt.id, userId, DicEnum.OPER_LOG_OBJ_CATE.CTT_CONTRACT_COST_PRODUCT, "成本产品配送");

                var cost = costDal.FindById(pdt.contract_cost_id);
                var cnt  = dal.FindSignleBySql <int>($"select count(0) from ctt_contract_cost_product where contract_cost_id={pdt.contract_cost_id} and status_id<>{(int)DicEnum.CONTRACT_COST_PRODUCT_STATUS.DISTRIBUTION} and delete_time=0");
                if (cnt == 0)   // 产品全部已配送,修改成本状态
                {
                    var costOld = costDal.FindById(pdt.contract_cost_id);
                    cost.status_id      = (int)DicEnum.COST_STATUS.ALREADY_DELIVERED;
                    cost.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    cost.update_user_id = userId;
                    costDal.Update(cost);
                    OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ctt_contract_cost>(costOld, cost), cost.id, userId, DicEnum.OPER_LOG_OBJ_CATE.CONTRACT_COST, "修改成本状态已配送");
                }

                ivt_transfer transfer = new ivt_transfer();
                transfer.id                = tsfDal.GetNextIdCom();
                transfer.create_time       = Tools.Date.DateHelper.ToUniversalTimeStamp();
                transfer.create_user_id    = userId;
                transfer.update_time       = transfer.create_time;
                transfer.update_user_id    = userId;
                transfer.product_id        = (long)cost.product_id;
                transfer.type_id           = (int)DicEnum.INVENTORY_TRANSFER_TYPE.PROJECT;
                transfer.from_warehouse_id = (long)pdt.warehouse_id;
                transfer.quantity          = pdt.quantity;
                if (cost.contract_id != null)
                {
                    transfer.to_account_id = cttDal.FindById((long)cost.contract_id).account_id;
                }
                else if (cost.project_id != null)
                {
                    transfer.to_account_id = proDal.FindById((long)cost.project_id).account_id;
                }
                else if (cost.task_id != null)
                {
                    transfer.to_account_id = tskDal.FindById((long)cost.task_id).account_id;
                }
                transfer.to_contract_id = cost.contract_id;
                transfer.to_project_id  = cost.project_id;
                transfer.to_task_id     = cost.task_id;
                tsfDal.Insert(transfer);
                OperLogBLL.OperLogAdd <ivt_transfer>(transfer, transfer.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_TRANSFER, "产品配送转移库存");

                // 保存库存数修改
                var lctPdt = dal.FindSignleBySql <ivt_warehouse_product>($"select * from ivt_warehouse_product where product_id={cost.product_id} and warehouse_id={(long)pdt.warehouse_id} and delete_time=0");
                if (lctPdt != null)
                {
                    var lctPdtOld = dal.FindById(lctPdt.id);
                    lctPdt.quantity       = lctPdt.quantity - pdt.quantity;
                    lctPdt.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    lctPdt.update_user_id = userId;
                    dal.Update(lctPdt);
                    OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ivt_warehouse_product>(lctPdtOld, lctPdt), lctPdt.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM, "修改库存产品库存数");

                    var sns = costDal.FindListBySql <string>($"select sn from ctt_contract_cost_product_sn where contract_cost_product_id={pdt.id} and delete_time=0");
                    if (sns == null || sns.Count == 0)
                    {
                        continue;
                    }

                    foreach (var sn in sns)
                    {
                        var lctPdtSn = lctPdtSnDal.FindSignleBySql <ivt_warehouse_product_sn>($"select * from ivt_warehouse_product_sn where sn='{sn}' and warehouse_product_id={lctPdt.id}");
                        lctPdtSn.delete_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                        lctPdtSn.delete_user_id = userId;
                        lctPdtSnDal.Update(lctPdtSn);
                        OperLogBLL.OperLogDelete <ivt_warehouse_product_sn>(lctPdtSn, lctPdtSn.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_SN, "配送产品删除库存产品串号");

                        ivt_transfer_sn tsfSn = new ivt_transfer_sn();
                        tsfSn.id             = tsfSnDal.GetNextIdCom();
                        tsfSn.sn             = sn;
                        tsfSn.transfer_id    = transfer.id;
                        tsfSn.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                        tsfSn.create_user_id = userId;
                        tsfSn.update_time    = tsfSn.create_time;
                        tsfSn.update_user_id = userId;
                        tsfSnDal.Insert(tsfSn);
                        OperLogBLL.OperLogAdd <ivt_transfer_sn>(tsfSn, tsfSn.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_TRANSFER_SN, "配送产品新增转移产品串号");
                    }
                }
            }

            return("");
        }
コード例 #27
0
ファイル: TaskModify.aspx.cs プロジェクト: evelh/Done
        protected void Page_Load(object sender, EventArgs e)
        {
            // 批量修改
            // 1。多个任务 2.单个任务
            try
            {
                var stDal = new sdk_task_dal();
                var ppDal = new pro_project_dal();
                var ids   = Request.QueryString["taskIds"];
                if (!string.IsNullOrEmpty(ids))
                {
                    idList = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    if (idList.Count() == 1)
                    {
                        var thisTask = stDal.FindNoDeleteById(long.Parse(idList[0]));
                        if (thisTask != null)
                        {
                            if (!IsPostBack)
                            {
                                thisProject   = ppDal.FindNoDeleteById((long)thisTask.project_id);
                                titleValue    = thisTask.title;
                                statuValue    = thisTask.status_id;
                                priorityValue = thisTask.priority;
                                estHoursValue = thisTask.estimated_hours;
                                depValue      = thisTask.department_id;
                                // workTypeValue = thisTask.
                                priResValue = thisTask.owner_resource_id;
                                if (thisTask.is_visible_in_client_portal == 1)
                                {
                                    if (thisTask.can_client_portal_user_complete_task == 1)
                                    {
                                        DisplayInCapYes.Checked = true;
                                    }
                                    else
                                    {
                                        DisplayInCapYesNoComplete.Checked = true;
                                    }
                                }
                                else
                                {
                                    DisplayInCapNone.Checked = true;
                                }
                            }
                            udfValue = new UserDefinedFieldsBLL().GetUdfValue(UDF_CATE.TASK, thisTask.id, udfTaskPara);
                            taskList.Add(thisTask);
                        }
                    }
                    else if (idList.Count() > 1)
                    {
                        taskList = stDal.GetTaskByIds(ids, $" and type_id in ({(int)DicEnum.TASK_TYPE.PROJECT_TASK},{(int)DicEnum.TASK_TYPE.PROJECT_ISSUE})");
                        if (taskList != null && taskList.Count > 0)
                        {
                            thisProject = ppDal.FindNoDeleteById((long)taskList[0].project_id);
                            var firstTask = taskList[0];
                            taskList.Remove(firstTask);
                            if (!IsPostBack)
                            {
                                udfValue = udfBLL.GetUdfValue(UDF_CATE.TASK, firstTask.id, udfTaskPara);

                                if (udfTaskPara != null && udfTaskPara.Count > 0)
                                {
                                    foreach (var udfTask in udfTaskPara)
                                    {
                                        var thisValue = "";
                                        if (udfValue.FirstOrDefault(_ => _.id == udfTask.id) != null)
                                        {
                                            thisValue = udfValue.FirstOrDefault(_ => _.id == udfTask.id).value.ToString();
                                        }
                                        var count = udfBLL.GetSameValueCount(UDF_CATE.TASK, ids, udfTask.col_name, thisValue.ToString());
                                        if (count > 1)
                                        {
                                            udfValue.FirstOrDefault(_ => _.id == udfTask.id).value = "多个值-保持不变";
                                        }
                                        else
                                        {
                                        }
                                    }
                                }

                                if (taskList.Any(_ => _.title != firstTask.title))
                                {
                                    titleValue = "多个值-保持不变";
                                }
                                else
                                {
                                    titleValue = firstTask.title;
                                }
                                if (taskList.Any(_ => _.status_id != firstTask.status_id))
                                {
                                    statuValue = 0;
                                }
                                else
                                {
                                    statuValue = firstTask.status_id;
                                }
                                if (taskList.Any(_ => _.priority != firstTask.priority))
                                {
                                    priorityValue = null;
                                }
                                else
                                {
                                    priorityValue = firstTask.priority;
                                }
                                #region 在页面上的显示设置
                                if (firstTask.is_visible_in_client_portal == 1)
                                {
                                    if (taskList.Any(_ => _.is_visible_in_client_portal != firstTask.is_visible_in_client_portal))
                                    {
                                        displayWayValue = "1";
                                    }
                                    else
                                    {
                                        if (firstTask.can_client_portal_user_complete_task == 1)
                                        {
                                            if (taskList.Any(_ => _.can_client_portal_user_complete_task != firstTask.can_client_portal_user_complete_task))
                                            {
                                                displayWayValue = "1";
                                            }
                                            else
                                            {
                                                DisplayInCapYes.Checked = true;
                                            }
                                        }
                                        else
                                        {
                                            if (taskList.Any(_ => _.can_client_portal_user_complete_task != firstTask.can_client_portal_user_complete_task))
                                            {
                                                displayWayValue = "1";
                                            }
                                            else
                                            {
                                                DisplayInCapYesNoComplete.Checked = true;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    if (taskList.Any(_ => _.is_visible_in_client_portal != firstTask.is_visible_in_client_portal))
                                    {
                                        displayWayValue = "1";
                                    }
                                    else
                                    {
                                        DisplayInCapNone.Checked = true;
                                    }
                                }
                                if (!string.IsNullOrEmpty(displayWayValue))
                                {
                                    noChange.Checked = true;
                                }

                                #endregion

                                #region 固定工作,固定时间的设置
                                if (taskList.Any(_ => _.estimated_type_id != firstTask.estimated_type_id))
                                {
                                    fixTypeValue         = "1";
                                    typeNoChange.Checked = true;
                                }
                                else
                                {
                                    if (firstTask.estimated_type_id == (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXWORK)
                                    {
                                        TaskTypeFixedWork.Checked = true;
                                    }
                                    else if (firstTask.estimated_type_id == (int)DicEnum.TIME_ENTRY_METHOD_TYPE.FIXDURATION)
                                    {
                                        TaskTypeFixedDuration.Checked = true;
                                    }
                                }
                                #endregion

                                if (taskList.Any(_ => _.estimated_hours != firstTask.estimated_hours))
                                {
                                    estHoursValue = null;
                                }
                                else
                                {
                                    estHoursValue = firstTask.estimated_hours;
                                }
                                if (taskList.Any(_ => _.department_id != firstTask.department_id))
                                {
                                    depValue = null;
                                }
                                else
                                {
                                    depValue = firstTask.department_id;
                                }

                                if (taskList.Any(_ => _.owner_resource_id != firstTask.owner_resource_id))
                                {
                                    priResValue = 0;
                                }
                                else
                                {
                                    priResValue = firstTask.owner_resource_id;
                                }
                            }
                        }
                    }

                    if (!IsPostBack)
                    {
                        ThisPageDataBind();
                    }


                    if (statuValue == 0)
                    {
                        status_id.Items.Insert(0, new ListItem()
                        {
                            Value = "0", Text = "多个选择-保持不变", Selected = true
                        });
                    }
                    else
                    {
                        status_id.SelectedValue = statuValue.ToString();
                    }
                    if (depValue == null)
                    {
                        department_id.ClearSelection();
                        department_id.Items.Insert(0, new ListItem()
                        {
                            Value = "0", Text = "多个选择-保持不变", Selected = true
                        });
                    }
                    else
                    {
                        department_id.ClearSelection();
                        department_id.SelectedValue = depValue.ToString();
                    }
                }
                else
                {
                    Response.End();
                }
            }
            catch (Exception)
            {
                Response.End();
            }
        }
コード例 #28
0
ファイル: InventoryProductBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 取消配送
        /// </summary>
        /// <param name="costPdtIds">成本产品id</param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public string PurchaseUnShip(string costPdtIds, long userId)
        {
            ctt_contract_cost_product_dal cstPdtDal = new ctt_contract_cost_product_dal();
            var pdtList = cstPdtDal.FindListBySql <ctt_contract_cost_product>($"select * from ctt_contract_cost_product where id in({costPdtIds})");

            if (pdtList == null || pdtList.Count == 0)
            {
                return("");
            }

            ctt_contract_cost_dal        costDal     = new ctt_contract_cost_dal();
            ivt_transfer_dal             tsfDal      = new ivt_transfer_dal();
            ctt_contract_dal             cttDal      = new ctt_contract_dal();
            pro_project_dal              proDal      = new pro_project_dal();
            sdk_task_dal                 tskDal      = new sdk_task_dal();
            ivt_warehouse_product_sn_dal lctPdtSnDal = new ivt_warehouse_product_sn_dal();
            ivt_transfer_sn_dal          tsfSnDal    = new ivt_transfer_sn_dal();

            foreach (var pdt in pdtList)
            {
                // 修改成本产品状态
                var pdtOld = cstPdtDal.FindById(pdt.id);
                pdt.status_id      = (int)DicEnum.CONTRACT_COST_PRODUCT_STATUS.PENDING_DISTRIBUTION;
                pdt.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                pdt.shipping_time  = null;
                pdt.update_user_id = userId;
                cstPdtDal.Update(pdt);
                OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ctt_contract_cost_product>(pdtOld, pdt), pdt.id, userId, DicEnum.OPER_LOG_OBJ_CATE.CTT_CONTRACT_COST_PRODUCT, "成本产品配送");

                // 修改成本状态
                var cost = costDal.FindById(pdt.contract_cost_id);
                if (cost.status_id == (int)DicEnum.COST_STATUS.ALREADY_DELIVERED)
                {
                    var costOld = costDal.FindById(pdt.contract_cost_id);
                    cost.status_id      = (int)DicEnum.COST_STATUS.PENDING_DELIVERY;
                    cost.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    cost.update_user_id = userId;
                    costDal.Update(cost);
                    OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ctt_contract_cost>(costOld, cost), cost.id, userId, DicEnum.OPER_LOG_OBJ_CATE.CONTRACT_COST, "取消配送修改成本状态");
                }

                // 新建库存转移信息
                ivt_transfer tsf = new ivt_transfer();
                tsf.id             = tsfDal.GetNextIdCom();
                tsf.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                tsf.update_user_id = userId;
                tsf.create_time    = tsf.update_time;
                tsf.create_user_id = userId;
                tsf.type_id        = (int)DicEnum.INVENTORY_TRANSFER_TYPE.PROJECT;
                tsf.product_id     = (long)cost.product_id;
                tsf.quantity       = 0 - pdt.quantity;
                if (cost.contract_id != null)
                {
                    tsf.to_account_id = cttDal.FindById((long)cost.contract_id).account_id;
                }
                else if (cost.project_id != null)
                {
                    tsf.to_account_id = proDal.FindById((long)cost.project_id).account_id;
                }
                else if (cost.task_id != null)
                {
                    tsf.to_account_id = tskDal.FindById((long)cost.task_id).account_id;
                }
                tsf.to_contract_id    = cost.contract_id;
                tsf.to_project_id     = cost.project_id;
                tsf.to_task_id        = cost.task_id;
                tsf.from_warehouse_id = (long)pdt.warehouse_id;
                tsfDal.Insert(tsf);
                OperLogBLL.OperLogAdd <ivt_transfer>(tsf, tsf.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_TRANSFER, "取消配送新建库存转移");


                // 保存库存数修改
                var lctPdt = dal.FindSignleBySql <ivt_warehouse_product>($"select * from ivt_warehouse_product where product_id={cost.product_id} and warehouse_id={(long)pdt.warehouse_id} and delete_time=0");
                if (lctPdt != null)
                {
                    var lctPdtOld = dal.FindById(lctPdt.id);
                    lctPdt.quantity       = lctPdt.quantity + pdt.quantity;
                    lctPdt.update_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    lctPdt.update_user_id = userId;
                    dal.Update(lctPdt);
                    OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <ivt_warehouse_product>(lctPdtOld, lctPdt), lctPdt.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM, "修改库存产品库存数");

                    var sns = costDal.FindListBySql <string>($"select sn from ctt_contract_cost_product_sn where contract_cost_product_id={pdt.id} and delete_time=0");
                    if (sns == null || sns.Count == 0)
                    {
                        continue;
                    }

                    foreach (var sn in sns)
                    {
                        ivt_warehouse_product_sn lctPdtSn = new ivt_warehouse_product_sn();
                        lctPdtSn.id                   = lctPdtSnDal.GetNextIdCom();
                        lctPdtSn.create_time          = Tools.Date.DateHelper.ToUniversalTimeStamp();
                        lctPdtSn.create_user_id       = userId;
                        lctPdtSn.update_time          = lctPdtSn.create_time;
                        lctPdtSn.update_user_id       = userId;
                        lctPdtSn.warehouse_product_id = lctPdt.id;
                        lctPdtSn.sn                   = sn;
                        lctPdtSnDal.Insert(lctPdtSn);
                        OperLogBLL.OperLogAdd <ivt_warehouse_product_sn>(lctPdtSn, lctPdtSn.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_SN, "取消配送产品新增库存产品串号");

                        ivt_transfer_sn tsfSn = new ivt_transfer_sn();
                        tsfSn.id             = tsfSnDal.GetNextIdCom();
                        tsfSn.sn             = sn;
                        tsfSn.transfer_id    = tsf.id;
                        tsfSn.create_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                        tsfSn.create_user_id = userId;
                        tsfSn.update_time    = tsfSn.create_time;
                        tsfSn.update_user_id = userId;
                        tsfSnDal.Insert(tsfSn);
                        OperLogBLL.OperLogAdd <ivt_transfer_sn>(tsfSn, tsfSn.id, userId, DicEnum.OPER_LOG_OBJ_CATE.INVENTORY_ITEM_TRANSFER_SN, "取消配送产品新增转移产品串号");
                    }
                }
            }

            return("");
        }
コード例 #29
0
ファイル: KnowledgeBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 知识库关联工单相关管理
        /// </summary>
        public void KnowTicketManage(long artId, string ticketIds, long userId)
        {
            var oldArt = _dal.FindNoDeleteById(artId);

            if (oldArt == null)
            {
                return;
            }
            var stDal       = new sdk_task_dal();
            var skatDal     = new sdk_kb_article_ticket_dal();
            var oldTickList = skatDal.GetArtTicket(artId);
            var timeNow     = Tools.Date.DateHelper.ToUniversalTimeStamp(DateTime.Now);

            if (oldTickList != null && oldTickList.Count > 0)
            {
                if (!string.IsNullOrEmpty(ticketIds))
                {
                    var ticketArr = ticketIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var ticketId in ticketArr)
                    {
                        var thisTicket = stDal.FindNoDeleteById(long.Parse(ticketId));
                        if (thisTicket == null)
                        {
                            continue;
                        }
                        var artTicket = oldTickList.FirstOrDefault(_ => _.kb_article_id == artId && _.task_id.ToString() == ticketId);
                        if (artTicket != null)
                        {
                            oldTickList.Remove(artTicket);
                        }
                        else
                        {
                            artTicket = new sdk_kb_article_ticket()
                            {
                                id             = skatDal.GetNextIdCom(),
                                create_time    = timeNow,
                                create_user_id = userId,
                                update_time    = timeNow,
                                update_user_id = userId,
                                kb_article_id  = artId,
                                task_id        = thisTicket.id,
                                task_no        = thisTicket.no,
                            };
                            skatDal.Insert(artTicket);
                            OperLogBLL.OperLogAdd <sdk_kb_article_ticket>(artTicket, artTicket.id, userId, OPER_LOG_OBJ_CATE.SDK_KONWLEDGE_TICKET, "新增知识库关联工单");
                        }
                    }
                }
                oldTickList.ForEach(_ => {
                    skatDal.SoftDelete(_, userId);
                    OperLogBLL.OperLogDelete <sdk_kb_article_ticket>(_, _.id, userId, OPER_LOG_OBJ_CATE.SDK_KONWLEDGE_TICKET, "删除知识库关联工单");
                });
            }
            else
            {
                if (!string.IsNullOrEmpty(ticketIds))
                {
                    var ticketArr = ticketIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var ticketId in ticketArr)
                    {
                        var thisTicket = stDal.FindNoDeleteById(long.Parse(ticketId));
                        if (thisTicket == null)
                        {
                            continue;
                        }
                        var artTicket = new sdk_kb_article_ticket()
                        {
                            id             = skatDal.GetNextIdCom(),
                            create_time    = timeNow,
                            create_user_id = userId,
                            update_time    = timeNow,
                            update_user_id = userId,
                            kb_article_id  = artId,
                            task_id        = thisTicket.id,
                            task_no        = thisTicket.no,
                        };
                        skatDal.Insert(artTicket);
                        OperLogBLL.OperLogAdd <sdk_kb_article_ticket>(artTicket, artTicket.id, userId, OPER_LOG_OBJ_CATE.SDK_KONWLEDGE_TICKET, "新增知识库关联工单");
                    }
                }
            }
        }
コード例 #30
0
ファイル: IndexBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 获取查询的数量
        /// </summary>
        public Dictionary <string, int> GetIndexSearchCount(long userId)
        {
            Dictionary <string, int> dic = new Dictionary <string, int>();
            var _dal = new sdk_task_dal();

            #region  务台相关数量
            var actCount     = _dal.GetTicketCount($"  and status_id <> {(int)DicEnum.TICKET_STATUS.DONE} and (owner_resource_id = {userId}||EXISTS(SELECT 1 from sdk_task_resource r where r.task_id = t.id and r.resource_id={userId}))");
            var overRecCount = _dal.GetTicketCount($"  and status_id <> {(int)DicEnum.TICKET_STATUS.DONE} and estimated_end_time<(unix_timestamp(now()) *1000) and (owner_resource_id = {userId}||EXISTS(SELECT 1 from sdk_task_resource r where r.task_id = t.id and r.resource_id={userId}))");
            var myRecCount   = _dal.GetTicketCount($" and t.create_user_id = {userId}");
            //var completeRecCount = _dal.GetTicketCount(" and status_id = " + (int)DicEnum.TICKET_STATUS.DONE + $" and (owner_resource_id = {userId}||EXISTS(SELECT 1 from sdk_task_resource r where r.task_id = t.id and r.resource_id={userId}))");
            var myTaskTicketCount = _dal.GetCount($"select COUNT(1) from sdk_task t where delete_time = 0 and (t.owner_resource_id={userId} or EXISTS(select 1 from sdk_task_resource where delete_time=0 and task_id=t.id  and resource_id={userId})) ");
            var callCount         = Convert.ToInt32(_dal.GetSingle($"select COUNT(1) from (select a.*, round((a.start_time-a.canceled_time)/1000/3600,2)dist_hours,(select z.priority_type_id from  sdk_service_call_task y,sdk_task z where  y.task_id=z.id and y.service_call_id=a.id limit 1)priority_type_id from sdk_service_call a where delete_time=0)t where 1=1     and EXISTS (select 1 from sdk_service_call_task y,sdk_service_call_task_resource z where z.delete_time=0 and y.delete_time=0 and  z.service_call_task_id=y.id and y.service_call_id=t.id and z.resource_id={userId}) order by  t.start_time desc"));
            dic.Add("activeTicket", actCount);
            dic.Add("overTicket", overRecCount);
            dic.Add("myTicket", myRecCount);
            //dic.Add("completeTicket", completeRecCount);
            dic.Add("myTaskTicket", myTaskTicketCount);
            dic.Add("myCall", callCount);
            #endregion

            #region CRM相关数量
            var myAccountCount = Convert.ToInt32(_dal.GetSingle(@"select count(1)  from crm_account a 
join crm_account_ext e on a.id = e.parent_id
where a.delete_time = 0
  and(
(a.type_id in(14, 18) and(
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 51) = 970 or
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 51) = 971 and(1 = 0 or a.resource_id = " + userId + @"  or exists(select 1 from crm_account_team where account_id = a.id and resource_id = " + userId + @")  or exists(select 1 from sys_resource_territory where delete_time = 0 and territory_id = a.territory_id and resource_id = " + userId + @")) or
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 51) = 972 and(1 = 0 or a.resource_id = " + userId + @"  or exists(select 1 from crm_account_team where account_id = a.id and resource_id = " + userId + @"))
 )) or
(a.type_id in(19, 20) and(
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 52) = 977
)) OR
(a.type_id in(15, 16, 17) and(
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 53) = 970 or
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 53) = 971 and(1 = 0 or a.resource_id = " + userId + @"  or exists(select 1 from crm_account_team where account_id = a.id and resource_id = " + userId + @")  or exists(select 1 from sys_resource_territory where delete_time = 0 and territory_id = a.territory_id and resource_id = " + userId + @")) or
(select limit_type_value_id FROM v_user_limit where user_id = " + userId + @" and limit_Id = 53) = 972 and(1 = 0 or a.resource_id = " + userId + @"  or exists(select 1 from crm_account_team where account_id = a.id and resource_id = " + userId + @"))
))  
)  and a.resource_id in(" + userId + ")"));


            var myOpportunityCount = Convert.ToInt32(_dal.GetSingle(@"select count(1)  from crm_opportunity o
join crm_account a on o.account_id = a.id
left join (select * from crm_quote where delete_time=0 and is_primary_quote=1) q on o.id = q.opportunity_id where o.delete_time=0  and (
( a.type_id in(14,18) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
 )) or 
( a.type_id in(19,20) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=52)=977  
)) OR 
( a.type_id in(15,16,17) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =1 and limit_Id=53)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
))  
)  and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=57)=974 or
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=57)=975 and (1=0 or o.resource_id=" + userId + @" )
)        and o.resource_id in(" + userId + @") order by  o.name "));


            var mySaleCount = Convert.ToInt32(_dal.GetSingle(@"select count(1) FROM crm_sales_order s 
LEFT JOIN  crm_opportunity o
on o.id = s.opportunity_id 
left JOIN (select * from crm_quote where is_primary_quote=1 )q on o.id = q.opportunity_id 
left join crm_account a on q.account_id = a.id where s.delete_time=0  and (
( a.type_id in(14,18) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select " + userId + @" from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @"))
 )) or 
( a.type_id in(19,20) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=52)=977 
)) OR 
( a.type_id in(15,16,17) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
))  
)  and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=61)=974 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=61)=975 and (1=0 or s.owner_resource_id=" + userId + @" )
)        and s.owner_resource_id in(" + userId + @")"));

            var myContactCount = Convert.ToInt32(_dal.GetSingle(@"select COUNT(1) from crm_contact c 
join crm_contact_ext e on c.id = e.parent_id 
join crm_account a on c.account_id = a.id 
  and (
( a.type_id in(14,18) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @"))
 )) or 
( a.type_id in(19,20) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=52)=977  
)) OR 
( a.type_id in(15,16,17) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
))  
)            and (a.resource_id =" + userId + ")"));

            var myQuoteCount = Convert.ToInt32(_dal.GetSingle(@"select count(1) from crm_quote q
JOIN crm_opportunity o on q.opportunity_id=o.id
join crm_account a on o.account_id = a.id
LEFT JOIN (select quote_id,sum(unit_price*quantity) total_revenue from crm_quote_item GROUP BY quote_id)i on q.id=i.quote_id where q.delete_time=0  and (
( a.type_id in(14,18) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=970 or
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=51)=972 and  (1=0 or a.resource_id=1  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
 )) or 
( a.type_id in(19,20) and (
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=52)=977  
)) OR 
( a.type_id in(15,16,17) and (-- 领导者、潜在客户、终止合作权限53
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=970 or 
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=971 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")  or exists(select 1 from sys_resource_territory where delete_time=0 and territory_id=a.territory_id and resource_id=" + userId + @")) or
(select limit_type_value_id FROM v_user_limit where user_id =" + userId + @" and limit_Id=53)=972 and  (1=0 or a.resource_id=" + userId + @"  or exists(select 1 from crm_account_team where account_id=a.id and resource_id=" + userId + @")) 
))  
)  and (
(select limit_type_value_id FROM v_user_limit where user_id =1 and limit_Id=57)=974 or 
(select limit_type_value_id FROM v_user_limit where user_id =1 and limit_Id=57)=975 and (1=0 or o.resource_id=" + userId + @" )
)        and o.resource_id in(" + userId + @")"));
            var myNoteCount  = Convert.ToInt32(_dal.GetSingle($"select COUNT(1) from com_activity t join crm_account a on t.account_id = a.id where t.delete_time = 0  and cate_id in(31)  and t.resource_id in({userId})"));
            var myTodoCount  = Convert.ToInt32(_dal.GetSingle($"select count(1) from com_activity t where t.delete_time = 0 and(t.cate_id in(30) or t.cate_id in(31) and t.status_id is not null) and t.resource_id in({userId}) "));
            dic.Add("MyAccount", myAccountCount);
            dic.Add("MyOpportunity", myOpportunityCount);
            dic.Add("MySale", mySaleCount);
            dic.Add("MyContact", myContactCount);
            dic.Add("MyQuote", myQuoteCount);
            dic.Add("MyNote", myNoteCount);
            dic.Add("MyTodo", myTodoCount);
            #endregion

            #region 工时表相关数量
            var requestCount = Convert.ToInt32(_dal.GetSingle($"select COUNT(1) from tst_timeoff_request t where delete_time=0 and t.resource_id in({userId}) and  status_id={(int)DicEnum.TIMEOFF_REQUEST_STATUS.COMMIT}"));
            dic.Add("RequestCount", myTodoCount);
            #endregion

            #region 等待我审批相关数量
            var waitLabourCount  = Convert.ToInt32(_dal.GetSingle($"select count(1) from sdk_work_entry_report t join sys_resource r on t.resource_id=r.id where t.delete_time=0 and t.status_id={(int)DicEnum.WORK_ENTRY_REPORT_STATUS.WAITING_FOR_APPROVAL}  "));
            var waitRequestCount = Convert.ToInt32(_dal.GetSingle($"select COUNT(1) from tst_timeoff_request t join sys_resource r on t.resource_id=r.id where t.delete_time=0 and t.status_id={(int)DicEnum.TIMEOFF_REQUEST_STATUS.COMMIT}"));
            var waitExpenseCount = Convert.ToInt32(_dal.GetSingle($"select count(1)  from sdk_expense_report t where t.delete_time=0  and t.status_id={(int)DicEnum.EXPENSE_REPORT_STATUS.WAITING_FOR_APPROVAL}"));
            var waitChangeCount  = Convert.ToInt32(_dal.GetSingle($"select COUNT(1) from sdk_task t where   t.type_id in(1809) and t.delete_time = 0 and  t.ticket_type_id=129    and exists(select 1 from sdk_task_other_person where task_id=t.id and delete_time=0 and approve_status_id ={(int)DicEnum.CHANGE_APPROVE_STATUS_PERSON.WAIT}) and exists(select 1 from sdk_task_other_person where task_id=t.id and delete_time=0 and resource_id ={userId} ) "));
            dic.Add("waitLabour", waitLabourCount);
            dic.Add("waitRequest", waitRequestCount);
            dic.Add("waitExpense", waitExpenseCount);
            dic.Add("waitChange", waitChangeCount);
            #endregion

            #region 其他相关数量

            #endregion
            return(dic);
        }