예제 #1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, SafetyMeshEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #2
0
 public ActionResult SaveForm(string keyValue, SafetyMeshEntity entity)
 {
     try
     {
         SafetyMeshbll.SaveForm(keyValue, entity);
         return(Success("操作成功。"));
     }
     catch (Exception ex)
     {
         return(Error(ex.Message));
     }
 }
예제 #3
0
        public string ImportData()
        {
            var    user         = OperatorProvider.Provider.Current();//所属公司
            int    error        = 0;
            string message      = "请选择格式正确的文件再导入!";
            string falseMessage = "";
            int    count        = HttpContext.Request.Files.Count;

            if (count > 0)
            {
                HttpPostedFileBase file = HttpContext.Request.Files[0];
                if (string.IsNullOrEmpty(file.FileName))
                {
                    return(message);
                }
                if (!(file.FileName.Substring(file.FileName.IndexOf('.')).Contains("xls") || file.FileName.Substring(file.FileName.IndexOf('.')).Contains("xlsx")))
                {
                    return(message);
                }
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + System.IO.Path.GetExtension(file.FileName);
                file.SaveAs(Server.MapPath("~/Resource/temp/" + fileName));
                Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook();
                wb.Open(Server.MapPath("~/Resource/temp/" + fileName));
                Aspose.Cells.Cells cells = wb.Worksheets[0].Cells;
                DataTable          dt    = cells.ExportDataTable(0, 0, cells.MaxDataRow + 1, cells.MaxColumn + 1, true);

                string orgid = OperatorProvider.Provider.Current().OrganizeId;
                int    order = 2;
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    SafetyMeshEntity item = new SafetyMeshEntity();
                    order++;
                    #region 网格名称
                    string MeshName = dt.Rows[i][0].ToString();
                    if (!string.IsNullOrEmpty(MeshName))
                    {
                        item.MeshName = MeshName;
                    }
                    else
                    {
                        falseMessage += string.Format(@"第{0}行导入失败,网格名称不能为空!</br>", order);
                        error++;
                        continue;
                    }
                    #endregion

                    #region 关联区域
                    string District = dt.Rows[i][1].ToString();
                    bool   flag     = false;
                    if (!string.IsNullOrEmpty(District))
                    {
                        string   DistrictIdStr = "";
                        string   DistrictStr   = "";
                        string[] districtArr   = District.Split(',');

                        foreach (string district in districtArr)
                        {
                            var disItem = new DistrictBLL().GetListForCon(x => x.DistrictName == district.Trim() && x.OrganizeId == orgid).FirstOrDefault();
                            if (disItem != null)
                            {
                                DistrictIdStr += disItem.DistrictID + ",";
                                DistrictStr   += district.Trim() + ",";
                            }
                            else
                            {
                                falseMessage += string.Format(@"第{0}行导入失败,关联区域[" + district + "]不存在!</br>", order);
                                error++;
                                flag = true;
                                continue;
                            }
                        }
                        item.DistrictId = DistrictIdStr.TrimEnd(',');
                        item.District   = DistrictStr.TrimEnd(',');
                    }
                    if (flag)
                    {
                        continue;
                    }
                    #endregion

                    #region  级网格名称
                    string Superior = dt.Rows[i][2].ToString();
                    if (!string.IsNullOrEmpty(Superior))
                    {
                        var disItem = SafetyMeshbll.GetListForCon(x => x.MeshName == Superior.Trim() && x.CreateUserOrgCode == user.OrganizeCode).FirstOrDefault();
                        if (disItem != null)
                        {
                            item.SuperiorId   = disItem.Id;
                            item.SuperiorName = disItem.MeshName;
                            if (disItem.MeshRank == "1")
                            {
                                item.MeshRank = "2";
                            }
                            if (disItem.MeshRank == "2")
                            {
                                item.MeshRank = "3";
                            }
                            if (disItem.MeshRank == "3")
                            {
                                item.MeshRank = "4";
                            }
                            if (disItem.MeshRank == "4")
                            {
                                falseMessage += string.Format(@"第{0}行导入失败,上级网格名称[" + Superior + "]为微级网格!</br>", order);
                                error++;
                                continue;
                            }
                            var  list = SafetyMeshbll.GetListForCon(x => x.MeshName == item.MeshName && x.SuperiorId == item.SuperiorId && x.CreateUserOrgCode == user.OrganizeCode).ToList();
                            bool IsOk = list.Count() == 0 ? true : false;
                            if (!IsOk)
                            {
                                falseMessage += string.Format(@"第{0}行导入失败,网格名称[" + item.MeshName + "]在[" + item.SuperiorName + "]下级存在重名!</br>", order);
                                error++;
                                continue;
                            }
                        }
                        else
                        {
                            falseMessage += string.Format(@"第{0}行导入失败,上级网格名称[" + Superior + "]不存在!</br>", order);
                            error++;
                            continue;
                        }
                    }
                    else
                    {
                        item.MeshRank = "1";
                        var  list = SafetyMeshbll.GetListForCon(x => x.MeshName == item.MeshName && x.MeshRank == "1" && x.CreateUserOrgCode == user.OrganizeCode).ToList();
                        bool IsOk = list.Count() == 0 ? true : false;
                        if (!IsOk)
                        {
                            falseMessage += string.Format(@"第{0}行导入失败,网格名称[" + item.MeshName + "]存在重名!</br>", order);
                            error++;
                            continue;
                        }
                    }
                    #endregion

                    #region 责任人
                    string DutyUser = dt.Rows[i][3].ToString();
                    if (!string.IsNullOrEmpty(DutyUser))
                    {
                        string   DutyUserIdStr = "";
                        string   DutyUserStr   = "";
                        string[] userArr       = DutyUser.Split(',');
                        foreach (string useritem in userArr)
                        {
                            if (!string.IsNullOrEmpty(useritem.Trim()))
                            {
                                string[] Arr = useritem.Split('/');
                                if (Arr.Count() == 1)
                                {
                                    var userList = new UserBLL().GetListForCon(x => x.RealName == useritem.Trim() && x.OrganizeId == orgid).ToList();
                                    if (userList.Count == 1)
                                    {
                                        var userEntity = userList.FirstOrDefault();
                                        DutyUserIdStr += userEntity.UserId + ",";
                                        DutyUserStr   += useritem.Trim() + ",";
                                    }
                                    else if (userList.Count > 1)
                                    {
                                        falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]重名,请按格式[姓名/账号]重新填写!</br>", order);
                                        error++;
                                        flag = true;
                                        break;
                                    }
                                    else
                                    {
                                        falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]不存在!</br>", order);
                                        error++;
                                        flag = true;
                                        break;
                                    }
                                }
                                else if (Arr.Count() == 2)
                                {
                                    string name        = Arr[0].Trim();
                                    string account     = Arr[1].Trim();
                                    var    userEntity2 = new UserBLL().GetListForCon(x => x.RealName == name && x.Account == account && x.OrganizeId == orgid).FirstOrDefault();
                                    if (userEntity2 != null)
                                    {
                                        DutyUserIdStr += userEntity2.UserId + ",";
                                        DutyUserStr   += userEntity2.RealName + ",";
                                    }
                                    else
                                    {
                                        falseMessage += string.Format(@"第{0}行导入失败,责任人[" + Arr[0].Trim() + "]帐号[" + Arr[1].Trim() + "]不存在!</br>", order);
                                        error++;
                                        flag = true;
                                        break;
                                    }
                                }
                                else
                                {
                                    falseMessage += string.Format(@"第{0}行导入失败,责任人[" + useritem + "]输入格式有误!</br>", order);
                                    error++;
                                    flag = true;
                                    break;
                                }
                            }
                        }
                        item.DutyUserId = DutyUserIdStr.TrimEnd(',');
                        item.DutyUser   = DutyUserStr.TrimEnd(',');
                    }
                    else
                    {
                        falseMessage += string.Format(@"第{0}行导入失败,责任人不能为空!</br>", order);
                        error++;
                        flag = true;
                        break;
                    }
                    if (flag)
                    {
                        continue;
                    }
                    #endregion

                    #region 联系电话
                    string DutyTel = dt.Rows[i][4].ToString();
                    if (!string.IsNullOrEmpty(DutyTel))
                    {
                        item.DutyTel = DutyTel;
                    }
                    #endregion

                    #region 排序
                    string SortCode = dt.Rows[i][5].ToString();
                    int    tempSortCode;
                    if (!string.IsNullOrEmpty(SortCode))
                    {
                        if (int.TryParse(SortCode, out tempSortCode))
                        {
                            item.SortCode = tempSortCode;
                        }
                        else
                        {
                            falseMessage += string.Format(@"第{0}行导入失败,网格排序必须为数字!</br>", order);
                            error++;
                            continue;
                        }
                    }
                    #endregion

                    #region 工作职责
                    string WorkJob = dt.Rows[i][6].ToString();
                    if (!string.IsNullOrEmpty(WorkJob))
                    {
                        item.WorkJob = WorkJob;
                    }
                    #endregion
                    try
                    {
                        SafetyMeshbll.SaveForm("", item);
                    }
                    catch
                    {
                        error++;
                    }
                }
                count    = dt.Rows.Count - 1;
                message  = "共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条";
                message += "</br>" + falseMessage;
            }
            return(message);
        }