Ejemplo n.º 1
0
        //主页请求的数据
        public JsonResult WorkListList(WorkListQuery query)
        {
            var totalcount = 0;

            query.CusMemberId = CookieOperate.AccountCookie.AccountId;
            var list = WorkListDBOperate.GetPagerList(query, out totalcount);
            PagerList <WorkList> pagerList = new PagerList <WorkList>();
            var status = CommonMethod.GetEnumItems <WorkListStatusEnum>();
            //var userList = CompanyUserDBOperate.GetUserByUserNames(string.Join(",", list.Select(a => a.Users)).Split(',').ToArray());
            var detailList = WorkListDetailDBOperate.GetList(list.Select(a => a.Guid).ToArray());

            list.ForEach(a =>
            {
                a.StatusTxt   = status.FirstOrDefault(b => b.Key == a.Status).Value;
                a.StatusClass = CommonMethod.GetWorkListStatusClass(a.Status);
                a.DetailList  = detailList.Where(b => b.WorkId == a.Guid).ToList();
                //if (string.IsNullOrEmpty(a.Users)) { return; }
                //var thisUserList = new List<CompanyUser>();
                //var thisUserArray = a.Users.Split(',').ToArray();
                //foreach (var item in thisUserArray)
                //{
                //    if (!string.IsNullOrEmpty(item))
                //        thisUserList.Add(userList.FirstOrDefault(b => b.UserName == item));
                //}
                //a.UserList = thisUserList;
            });
            pagerList.rows  = list;
            pagerList.total = totalcount;
            return(Json(pagerList));
        }
Ejemplo n.º 2
0
        public static bool ModifyDetail(List <WorkListDetail> list, string userId)
        {
            var insertList = new List <WorkListDetail>();
            var updateList = new List <WorkListDetail>();

            //var i = 0;
            foreach (var item in list)
            {
                //if (item.IsDeleted == 0) { i++; }
                var newModel = new WorkListDetail()
                {
                    WorkId    = item.WorkId,
                    Index     = item.Index,
                    Infos     = item.Infos,
                    IsDeleted = item.IsDeleted,
                    RoleCode  = item.RoleCode,
                    CreateBy  = userId,
                    ModifyBy  = userId
                };
                if (item.Id != 0)
                {
                    newModel.Id = item.Id; updateList.Add(newModel);
                }
                else
                {
                    insertList.Add(newModel);
                }
            }
            return(WorkListDBOperate.ModifyDetail(updateList, insertList));
        }
Ejemplo n.º 3
0
        public JsonResult GetWorkDetailById(int projectId)
        {
            var result = new ResultInfo <WorkList>();
            var model  = WorkListDBOperate.GetModelById(projectId);
            var detail = WorkListDetailDBOperate.GetList(new string[] { model.Guid });
            var guid   = detail.Select(a => a.Guid).ToArray();
            var items  = WorkListItemsDBOperate.GetList(guid);

            model.DetailList = detail;
            model.ItemList   = items;
            result.Data      = model;
            result.IsSuccess = true;
            return(Json(result));
        }
Ejemplo n.º 4
0
        public static bool AddWorkList(WorkList workList, List <WorkListEdit> list)
        {
            var detailList = new List <WorkListDetail>();
            var itemList   = new List <WorkListItems>();
            var index      = 1;

            foreach (var item in list)
            {
                var detail = new WorkListDetail()
                {
                    WorkId   = workList.Guid,
                    Index    = index,
                    Infos    = item.Name,
                    RoleCode = item.Role,
                    Guid     = Guid.NewGuid().ToString(),
                    CreateBy = workList.CreateBy,
                };
                var infos = item.Infos.Split('\n');
                foreach (var item1 in infos)
                {
                    if (string.IsNullOrEmpty(item1))
                    {
                        continue;
                    }
                    var itemDetail = new WorkListItems()
                    {
                        CompanyId   = workList.CompanyId,
                        CompanyName = workList.CompanyName,
                        ProjectId   = workList.ProjectId,
                        WorkId      = workList.Id,
                        Name        = item.Name,
                        Level       = 999,
                        Status      = ItemStatus.XuQiu.ToString(),
                        Infos       = item1,
                        DetailGuid  = detail.Guid,
                        CreateBy    = workList.CreateBy,
                    };
                    itemList.Add(itemDetail);
                }
                detailList.Add(detail);
                index++;
            }
            return(WorkListDBOperate.InsertWorkList(workList, detailList, itemList));
        }
Ejemplo n.º 5
0
        public static bool ImportExcel(DataTable dt, CompanyUser user)
        {
            try
            {
                using (SqlBulkCopy sqlBC = new SqlBulkCopy(ConfigSetting.DataConnection))
                {
                    //一次批量的插入的数据量
                    sqlBC.BatchSize = dt.Rows.Count;
                    //超时之前操作完成所允许的秒数,如果超时则事务不会提交 ,数据将回滚,所有已复制的行都会从目标表中移除
                    sqlBC.BulkCopyTimeout = 1800;
                    //设置要批量写入的表
                    sqlBC.DestinationTableName = "WorkListItems";


                    DataTable newDt = new DataTable();

                    #region  赋值
                    var            objType    = typeof(WorkListItems);
                    PropertyInfo[] properties = objType.GetProperties();
                    string[]       outColName = new string[] { "Id", "ModifyDate", "CanEdit", "ModifyBy", "LevelName", "LevelClass", "StatusName", "StatusClass", "WorkName", "ProjectName" };
                    foreach (var item in properties)
                    {
                        var name = item.Name;
                        if (outColName.Contains(name))
                        {
                            continue;
                        }
                        newDt.Columns.Add(new DataColumn()
                        {
                            ColumnName = item.Name
                        });
                        sqlBC.ColumnMappings.Add(item.Name, item.Name);
                    }
                    var itemType   = CommonMethod.GetEnumItems <ItemType>();
                    var itemStatus = CommonMethod.GetEnumItems <ItemStatus>();
                    var userName   = new List <string>();
                    var workId     = new List <int>();
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        var type   = dt.Rows[i][6].ToString();
                        var status = dt.Rows[i][7].ToString();
                        KeyValuePair <string, string>?typeTxt   = itemType.FirstOrDefault(a => a.Value == type);
                        KeyValuePair <string, string>?statusTxt = itemStatus.FirstOrDefault(a => a.Value == status);
                        if (!typeTxt.HasValue ||
                            string.IsNullOrWhiteSpace(typeTxt.Value.Key) ||
                            !statusTxt.HasValue ||
                            string.IsNullOrWhiteSpace(statusTxt.Value.Key))
                        {
                            continue;
                        }
                        DataRow dr = newDt.NewRow();
                        dr["CompanyId"]   = user.CompanyId.ToString();
                        dr["CompanyName"] = user.CompanyName.ToString();
                        dr["ProjectId"]   = "";
                        dr["WorkId"]      = dt.Rows[i][0];
                        dr["Name"]        = dt.Rows[i][1];
                        dr["Infos"]       = dt.Rows[i][2];
                        dr["UserName"]    = dt.Rows[i][3].ToString() + ",";
                        dr["Level"]       = dt.Rows[i][4].ToString();
                        dr["DayCount"]    = dt.Rows[i][5].ToString();
                        dr["StartDate"]   = DateTime.Now;
                        dr["EndDate"]     = DateTime.Now.AddDays(CommonMethod.GetInt(dr["DayCount"]));

                        dr["Type"]   = typeTxt.Value.Key;
                        dr["Status"] = statusTxt.Value.Key;


                        dr["IsDeleted"]  = "0";
                        dr["CreateDate"] = DateTime.Now.ToString();
                        dr["CreateBy"]   = user.UserName;
                        newDt.Rows.Add(dr);
                        workId.Add(CommonMethod.GetInt(dt.Rows[i][0]));
                        userName.AddRange(dr["UserName"].ToString().Split(','));
                    }
                    #endregion

                    var companyList = CompanyUserDBOperate.GetUserByNames(userName.ToArray());
                    var workList    = WorkListDBOperate.GetListByIds(workId.ToArray());

                    for (int i = 0; i < newDt.Rows.Count; i++)
                    {
                        var usrName = newDt.Rows[i]["UserName"].ToString();
                        var usrs    = usrName.Split(',');
                        var ids     = string.Empty;
                        foreach (var item in usrs)
                        {
                            if (string.IsNullOrWhiteSpace(item))
                            {
                                continue;
                            }
                            ids += companyList.FirstOrDefault(a => a.Name == item).UserName + ",";
                        }
                        var wId = CommonMethod.GetInt(newDt.Rows[i]["WorkId"]);
                        newDt.Rows[i]["UserId"]    = ids;
                        newDt.Rows[i]["ProjectId"] = workList.FirstOrDefault(a => a.Id == wId).ProjectId;
                    }

                    //批量写入
                    if (newDt.Rows.Count != 0 && newDt != null)
                    {
                        sqlBC.WriteToServer(newDt);
                        newDt.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
                LogBussiness.AddLog("WorkItemsImport", "", ex.Message, LogLevel.Error);
                return(false);
            }
            return(true);
        }
Ejemplo n.º 6
0
 public static bool ImportExcel(DataTable dt, CompanyUser user, out string message)
 {
     message = string.Empty;
     try
     {
         var workName = dt.Columns[1].ColumnName.Trim();
         var work     = WorkListDBOperate.GetModelByName(workName);
         if (work == null)
         {
             message = "工单不存在,请先导入或创建工单"; return(false);
         }
         var addList    = new List <WorkListItems>();
         var detailName = new List <string>();
         for (int i = 1; i < dt.Rows.Count; i++)
         {
             var dr     = dt.Rows[i];
             var detail = dr[1].ToString();
             if (!detailName.Contains(detail))
             {
                 detailName.Add(detail);
             }
             var col = dr.ItemArray;
             //从第二列开始算
             for (int j = 2; j < col.Length; j++)
             {
                 var info = col[j].ToString();
                 if (string.IsNullOrEmpty(info))
                 {
                     continue;
                 }
                 var model = new WorkListItems()
                 {
                     CompanyId   = work.CompanyId,
                     CompanyName = work.CompanyName,
                     ProjectId   = work.ProjectId,
                     WorkId      = work.Id,
                     Name        = detail,
                     Level       = 999,
                     Status      = ItemStatus.XuQiu.ToString(),
                     DayCount    = 0,
                     CreateBy    = user.UserName,
                     CreateDate  = DateTime.Now,
                     IsDeleted   = 0,
                     Infos       = info,
                 };
                 addList.Add(model);
             }
         }
         var detailList   = WorkListDetailDBOperate.GetModelByNames(detailName.ToArray(), work.Guid);
         var flag         = true;
         var notExistList = new List <string>();
         addList.ForEach(a => {
             var myDetail = detailList.FirstOrDefault(b => b.Infos == a.Name);
             if (myDetail == null)
             {
                 flag = false; notExistList.Add(a.Name); return;
             }
             a.DetailId   = myDetail.Id;
             a.DetailGuid = myDetail.Guid;
         });
         if (!flag)
         {
             message = string.Format("[{0}]工单内容不存在,无法导入", string.Join(",", notExistList.Distinct()));
             return(false);
         }
         return(WorkListItemsDBOperate.AddWorkListItems(addList));
     }
     catch (Exception ex)
     {
         message = ex.Message;
     }
     return(false);
 }
Ejemplo n.º 7
0
 public static bool ImportExcel(DataTable dt, CompanyUser user, int projectId, string status, out string message)
 {
     message = string.Empty;
     try
     {
         //工单名称
         var workName = dt.Columns[1].ColumnName.Trim();
         var project  = ProjectManageDBOperate.GetModelById(projectId);
         if (project == null)
         {
             message = "项目编号有误,请核实"; return(false);
         }
         var guid = Guid.NewGuid().ToString();
         if (WorkListDBOperate.GetCountByName(workName) > 0)
         {
             message = "工单名称已存在,请重新编辑"; return(false);
         }
         WorkList work = new WorkList()
         {
             Name         = workName,
             CreateBy     = user.UserName,
             CreateDate   = DateTime.Now,
             Length       = 0,
             Status       = status,
             CompanyId    = user.CompanyId,
             CompanyName  = user.CompanyName,
             ProjectId    = projectId,
             ProjectName  = project.Name,
             CusCompanyId = project.CusCompanyId,
             CusMemberId  = project.CusMemberId,
             Guid         = guid,
         };
         var list = new List <WorkListDetail>();
         for (int i = 1; i < dt.Rows.Count; i++)
         {
             var dr     = dt.Rows[i];
             var detail = new WorkListDetail()
             {
                 Infos    = dr[1].ToString().Trim(),
                 RoleCode = dr[0].ToString(), //== "消费者" ? DetailRole.Customer.ToString() : DetailRole.Admin.ToString(),
                 CreateBy = user.UserName,
                 WorkId   = guid,
                 Index    = i,
                 Guid     = Guid.NewGuid().ToString()
             };
             if (string.IsNullOrEmpty(detail.Infos))
             {
                 continue;
             }
             else if (detail.Infos.Length > 100)
             {
                 message += (i + 2).ToString() + ",";
             }
             list.Add(detail);
         }
         if (!string.IsNullOrEmpty(message))
         {
             message = "数据第[" + message.Substring(0, message.Length - 1) + "]条内容字数超过100字";
             return(false);
         }
         return(WorkListDBOperate.Import(work, list, out message));
     }
     catch (Exception ex)
     {
         message = ex.Message;
     }
     return(false);
 }