Esempio n. 1
0
 /// <summary>
 /// 保存表单(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="entity">实体对象</param>
 /// <returns></returns>
 public void SaveForm(string keyValue, MatrixsafecheckEntity entity)
 {
     try
     {
         service.SaveForm(keyValue, entity);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public ActionResult SubmitForm(string keyValue, MatrixsafecheckEntity entity)
        {
            entity.ISOVER = 1;

            DataTable dt = new DataTable();

            if (keyValue == "" || keyValue == null)
            {
                dt = matrixsafecheckbll.GetInfoBySql("select id from bis_matrixsafecheck where checktime  = to_date('" + entity.CHECKTIME + "', 'yyyy-MM-dd HH24:mi:ss')  ");
            }
            else
            {
                dt = matrixsafecheckbll.GetInfoBySql("select id from bis_matrixsafecheck where checktime  =  to_date('" + entity.CHECKTIME + "', 'yyyy-MM-dd HH24:mi:ss')  and ID <> '" + keyValue + "' ");
            }
            if (dt.Rows.Count == 0)
            {
                matrixsafecheckbll.SaveForm(keyValue, entity);
                return(Success("操作成功。"));
            }
            else
            {
                return(Error("已存在相同时间的数据。"));
            }
        }
        public string ImportQuestion()
        {
            var user = OperatorProvider.Provider.Current();

            if (OperatorProvider.Provider.Current().IsSystem)
            {
                return("超级管理员无此操作权限");
            }
            string orgId        = OperatorProvider.Provider.Current().OrganizeId;//所属公司
            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;

                string where = "";
                if (user.RoleName.Contains("厂级"))
                {
                    where += "  a.ISROLE = '0' and a.CREATEUSERDEPTCODE ='" + user.DeptCode + "'";
                }
                else
                {
                    where += "  a.ISROLE = '1' and a.CREATEUSERDEPTCODE ='" + user.DeptCode + "'";
                }
                DataTable dtcontent = matrixsafecheckbll.GetInfoBySql("select ID, CODE,CONTENT from BIS_MATRIXCONTENT a where   " + where);
                if (dtcontent.Rows.Count == 0)
                {
                    return("请先设置检查内容");
                }
                DataTable dtdept = matrixsafecheckbll.GetInfoBySql("select ID, code,dept,deptname,deptcode from BIS_MATRIXDEPT a where   " + where);
                if (dtdept.Rows.Count == 0)
                {
                    return("请先设置检查部门");
                }
                DataTable dt = cells.ExportDataTable(1, 0, cells.MaxDataRow, cells.MaxColumn + 1, false);
                dt.Rows.RemoveAt(0);
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    //检查日期
                    string checktime = dt.Rows[i][0].ToString();
                    //检查内容
                    string checkcontent = dt.Rows[i][1].ToString();
                    //检查部门
                    string checkdept = dt.Rows[i][2].ToString();
                    //检查人员
                    string checkuser = dt.Rows[i][3].ToString();

                    //---****值存在空验证*****--

                    if (string.IsNullOrEmpty(checktime) && string.IsNullOrEmpty(checkcontent) && string.IsNullOrEmpty(checkdept) && string.IsNullOrEmpty(checkuser))
                    {
                        continue;
                    }
                    if (string.IsNullOrEmpty(checktime) || string.IsNullOrEmpty(checkcontent) || string.IsNullOrEmpty(checkdept))
                    {
                        falseMessage += "</br>" + "第" + (i + 2) + "行值存在空,未能导入.";
                        error++;
                        continue;
                    }



                    MatrixsafecheckEntity entir = new MatrixsafecheckEntity();
                    entir.ISOVER = 1;


                    // 检查时间
                    try
                    {
                        if (!string.IsNullOrEmpty(checktime))
                        {
                            // 检查时间
                            DataTable dtcount = matrixsafecheckbll.GetInfoBySql("select id from bis_matrixsafecheck where checktime  = to_date('" + DateTime.Parse(checktime).ToString("yyyy-MM-dd") + "', 'yyyy-MM-dd HH24:mi:ss')  ");

                            if (dtcount.Rows.Count > 0)
                            {
                                falseMessage += "</br>" + "第" + (i + 2) + "行检查时间已存在,未能导入.";
                                error++;
                                continue;
                            }
                            else
                            {
                                entir.CHECKTIME = DateTime.Parse(DateTime.Parse(checktime).ToString("yyyy-MM-dd"));
                            }
                        }
                    }
                    catch
                    {
                        falseMessage += "</br>" + "第" + (i + 2) + "行检查时间有误,未能导入.";
                        error++;
                        continue;
                    }

                    // 检查内容
                    entir.CONTENT = checkcontent;
                    if (!string.IsNullOrEmpty(checkcontent))
                    {
                        var conarr        = checkcontent.Split(',');
                        int contentresult = 0;

                        foreach (string continfo in conarr)
                        {
                            foreach (DataRow condr in dtcontent.Rows)
                            {
                                if (continfo == condr["CONTENT"].ToString())
                                {
                                    if (entir.CONTENTID == "" || entir.CONTENTID == null)
                                    {
                                        entir.CONTENTID  = condr["ID"].ToString();
                                        entir.CONTENTNUM = condr["CODE"].ToString();
                                    }
                                    else
                                    {
                                        entir.CONTENTID  += "," + condr["ID"].ToString();
                                        entir.CONTENTNUM += "," + condr["CODE"].ToString();
                                    }
                                    contentresult++;
                                    break;
                                }
                            }
                        }
                        if (contentresult != conarr.Length)
                        {
                            falseMessage += "</br>" + "第" + (i + 2) + "行检查内容有误,未能导入.";
                            error++;
                            continue;
                        }
                    }

                    // 检查部门
                    entir.CHECKDEPTNAME = checkdept;
                    if (!string.IsNullOrEmpty(checkdept))
                    {
                        var deptarr         = checkdept.Split(',');
                        int checkdeptresult = 0;

                        foreach (string deptinfo in deptarr)
                        {
                            foreach (DataRow deptdr in dtdept.Rows)
                            {
                                if (deptinfo == deptdr["DEPTNAME"].ToString())
                                {
                                    if (entir.CHECKDEPTSEL == "" || entir.CHECKDEPTSEL == null)
                                    {
                                        entir.CHECKDEPTSEL  = deptdr["ID"].ToString();
                                        entir.CHECKDEPT     = deptdr["DEPT"].ToString();
                                        entir.CHECKDEPTCODE = deptdr["DEPTCODE"].ToString();
                                        entir.CHECKDEPTNUM  = deptdr["CODE"].ToString();
                                    }
                                    else
                                    {
                                        entir.CHECKDEPTSEL  += "," + deptdr["ID"].ToString();
                                        entir.CHECKDEPT     += "," + deptdr["DEPT"].ToString();
                                        entir.CHECKDEPTCODE += "," + deptdr["DEPTCODE"].ToString();
                                        entir.CHECKDEPTNUM  += "," + deptdr["CODE"].ToString();
                                    }
                                    checkdeptresult++;
                                    break;
                                }
                            }
                        }
                        if (checkdeptresult != deptarr.Length)
                        {
                            falseMessage += "</br>" + "第" + (i + 2) + "行检查部门有误,未能导入.";
                            error++;
                            continue;
                        }
                    }

                    // 检查人员
                    entir.CHECKUSERNAME = checkuser;
                    if (!string.IsNullOrEmpty(checkuser))
                    {
                        var userarr         = checkuser.Split(',');
                        int checkuserresult = 0;
                        foreach (string userinfo in userarr)
                        {
                            DataTable userdt = matrixsafecheckbll.GetInfoBySql(" SELECT USERID,ACCOUNT,DEPARTMENTCODE,REALNAME FROM BASE_USER WHERE REALNAME = '" + userinfo + "' ");

                            if (userdt.Rows.Count == 0)
                            {
                                break;
                            }
                            else
                            {
                                if (entir.CHECKUSER == "" || entir.CHECKUSER == null)
                                {
                                    entir.CHECKUSER     = userdt.Rows[0]["USERID"].ToString();
                                    entir.CHECKUSERCODE = userdt.Rows[0]["ACCOUNT"].ToString();
                                    entir.CHECKUSERDEPT = userdt.Rows[0]["DEPARTMENTCODE"].ToString();
                                }
                                else
                                {
                                    entir.CHECKUSER     += "," + userdt.Rows[0]["USERID"].ToString();
                                    entir.CHECKUSERCODE += "," + userdt.Rows[0]["ACCOUNT"].ToString();
                                    entir.CHECKUSERDEPT  = userdt.Rows[0]["DEPARTMENTCODE"].ToString();
                                }
                                checkuserresult++;
                            }
                        }


                        if (checkuserresult != userarr.Length)
                        {
                            falseMessage += "</br>" + "第" + (i + 2) + "行检查人员有误,未能导入.";
                            error++;
                            continue;
                        }
                    }

                    try
                    {
                        entir.ID = Guid.NewGuid().ToString();
                        matrixsafecheckbll.SaveForm(entir.ID, entir);
                    }
                    catch
                    {
                        falseMessage += "</br>" + "第" + (i + 2) + "行保存失败,未能导入.";
                        error++;
                        continue;
                    }
                }


                count    = dt.Rows.Count - 1;
                message  = "共有" + count + "条记录,成功导入" + (count - error) + "条,失败" + error + "条";
                message += "</br>" + falseMessage;
            }
            return(message);
        }