示例#1
0
        public JsonResult DoImport()
        {
            var    success  = true;
            var    message  = "保存成功!";
            var    user     = OperatorProvider.Provider.Current();
            string deptid   = this.Request["deptid"];
            string deptcode = this.Request["deptcode"];

            if (this.Request.Files.Count > 0)
            {
                try
                {
                    var book   = new Workbook(this.Request.Files[0].InputStream);
                    var sheet  = book.Worksheets[0];
                    var result = new List <RiskFactorSetEntity>();
                    var items  = new List <RiskFactorSetEntity>();

                    for (int i = 2; i <= sheet.Cells.MaxDataRow; i++)
                    {
                        var riskFactorSetEntity = new RiskFactorSetEntity();
                        riskFactorSetEntity.Content = sheet.Cells[i, 0].StringValue;
                        if (string.IsNullOrEmpty(riskFactorSetEntity.Content.Trim()))
                        {
                            throw new ArgumentException("第" + (i + 1) + "行,危险因素不能为空");
                        }
                        //riskFactorSetEntity.DeptId = deptid;
                        riskFactorSetEntity.measures = new List <MeasureSetEntity>();
                        for (int j = 1; j <= sheet.Cells.MaxDataColumn; j++)
                        {
                            if (!string.IsNullOrEmpty(sheet.Cells[i, j].StringValue))
                            {
                                var measure = new MeasureSetEntity()
                                {
                                    Content = sheet.Cells[i, j].StringValue
                                };
                                riskFactorSetEntity.measures.Add(measure);
                            }
                        }
                        result.Add(riskFactorSetEntity);

                        int measuresNum = riskFactorSetEntity.measures.Where(x => x.Content.Trim().Length > 0).Count();
                        if (measuresNum < 1)
                        {
                            throw new ArgumentException("第" + (i + 1) + "行,防范措施至少填写一项");
                        }
                    }

                    var ary = deptid.Split(',');
                    foreach (var item in ary)
                    {
                        foreach (var item1 in result)
                        {
                            var rk = new RiskFactorSetEntity()
                            {
                                Content  = item1.Content,
                                DeptId   = item,
                                measures = new List <MeasureSetEntity>()
                            };
                            foreach (var item2 in item1.measures)
                            {
                                rk.measures.Add(new MeasureSetEntity()
                                {
                                    Content = item2.Content
                                });
                            }
                            items.Add(rk);
                        }
                    }

                    foreach (var item in items)
                    {
                        riskFactorSetBLL.SaveForm(item);
                    }
                }
                catch (CellsException e)
                {
                    success = false;
                    message = "请选择正确的导入文件";
                }
                catch (Exception e)
                {
                    success = false;
                    message = e.Message;
                }
            }

            return(Json(new AjaxResult()
            {
                type = success ? ResultType.success : ResultType.error, message = message
            }));
        }
示例#2
0
 /// <summary>
 /// 新增一条防范措施
 /// </summary>
 /// <param name="entity"></param>
 public void Insert(MeasureSetEntity entity)
 {
     service.Insert(entity);
 }
示例#3
0
        /// <summary>
        /// 保存危险因素及防范措施
        /// </summary>
        /// <param name="entity"></param>
        public void SaveForm(RiskFactorSetEntity entity)
        {
            var res = DbFactory.Base().BeginTrans();

            try
            {
                Repository <RiskFactorSetEntity> resRiskFactorSet = new Repository <RiskFactorSetEntity>(DbFactory.Base());
                //当前班组下,此危险因素是否存在
                RiskFactorSetEntity riskFactorSetEntity = null;
                if (!string.IsNullOrEmpty(entity.ID))
                {
                    riskFactorSetEntity = resRiskFactorSet.FindEntity(x => x.ID == entity.ID);
                }
                else
                {
                    riskFactorSetEntity = resRiskFactorSet.FindEntity(x => x.Content == entity.Content && x.DeptId == entity.DeptId);
                }
                if (riskFactorSetEntity == null)
                {
                    //新增
                    entity.Create();
                    res.Insert(entity);

                    //防范措施处理
                    if (entity.measures != null && entity.measures.Count > 0)
                    {
                        for (int i = 0; i < entity.measures.Count; i++)
                        {
                            var m = entity.measures[i];
                            m.ID           = Guid.NewGuid().ToString();
                            m.CreateDate   = DateTime.Now;
                            m.RiskFactorId = entity.ID;
                            m.Sort         = i;
                            res.Insert(m);
                        }
                    }
                }
                else
                {
                    //编辑
                    riskFactorSetEntity.Modify(riskFactorSetEntity.ID);
                    riskFactorSetEntity.Content  = entity.Content;
                    riskFactorSetEntity.DeptId   = entity.DeptId;
                    riskFactorSetEntity.DeptName = entity.DeptName;
                    this.BaseRepository().Update(riskFactorSetEntity);

                    //如果有需要删除的防范措施
                    if (entity.measureids != null && entity.measureids.Count > 0)
                    {
                        foreach (string measureid in entity.measureids)
                        {
                            res.Delete <MeasureSetEntity>(measureid);
                        }
                    }
                    //防范措施处理
                    if (entity.measures != null && entity.measures.Count > 0)
                    {
                        var sort = 0;
                        //取防范措施个数
                        Repository <MeasureSetEntity> measureSet = new Repository <MeasureSetEntity>(DbFactory.Base());
                        var ss = measureSet.IQueryable().Where(t => t.RiskFactorId == riskFactorSetEntity.ID).ToList();
                        if (ss.Count > 0)
                        {
                            sort = ss.Max(x => x.Sort).Value;
                        }

                        for (int i = 0; i < entity.measures.Count; i++)
                        {
                            var m = entity.measures[i];
                            if (string.IsNullOrEmpty(m.ID))
                            {
                                sort++;
                                m.ID           = Guid.NewGuid().ToString();
                                m.CreateDate   = DateTime.Now;
                                m.RiskFactorId = riskFactorSetEntity.ID;
                                m.Sort         = sort;
                                res.Insert(m);
                            }
                            else
                            {
                                MeasureSetEntity measureSetEntity = measureSet.FindEntity(m.ID);
                                measureSetEntity.Content = m.Content;
                                res.Update(measureSetEntity);
                            }
                        }

                        var removed = ss.Where(x => !entity.measures.Any(y => y.ID == x.ID)).ToList();
                        measureSet.Delete(removed);
                    }
                    else
                    {
                        //如果防范措施为0,且keyValue不是空,则说明是编辑时,删除了所有的防范措施,这时危险因素也删除
                        if (!string.IsNullOrEmpty(entity.ID))
                        {
                            res.Delete <RiskFactorSetEntity>(entity.ID);
                        }
                    }
                }
                res.Commit();
            }
            catch (Exception ex)
            {
                res.Rollback();
                throw ex;
            }
        }