Esempio n. 1
0
        public string SaveAricle(string JsonData, string userid)
        {
            var tran = Utility.Database.BeginDbTransaction();
            StringBuilder strSql = new StringBuilder();

            try
            {
                B_OA_Notice notice = JsonConvert.DeserializeObject<B_OA_Notice>(JsonData);

                //会议通知
                if (notice.isConferenceInform == false)
                {
                    notice.conferenceEndDate = null;
                }
                else
                {
                    if (notice.conferenceEndDate == "" || notice.conferenceEndDate == null)
                    {
                        strSql.Append("\n请输入会议时间");
                    }
                }
                //邮件送达
                if (notice.isSendEmail == false)
                {
                    notice.sendEmailToManId = "";
                    notice.sendEmailToManName = "";
                }
                else
                {
                    if (notice.sendEmailToManId == "" || notice.sendEmailToManId == null)
                    {
                        strSql.Append("\n请选择发件人");
                    }
                }
                //指定发布范围
                if (notice.publicRange == 0)
                {
                    notice.rangeCheckManId = "";
                    notice.rangeCheckManName = "";
                }
                else
                {
                    if (notice.rangeCheckManId == "" || notice.rangeCheckManId == null)
                    {
                        strSql.Append("\n请选择指定人员");
                    }
                }

                if (strSql.ToString().Length != 0)
                {
                    return Utility.JsonMsg(false, strSql.ToString()); //将对象转为json字符串并返回到客户端
                }

                if (notice.NewsId == null || notice.NewsId == "")
                {
                    notice.NewsId = ComClass.GetGuid();
                    notice.CreateTime = DateTime.Now.ToString();
                    notice.isSeeInDoor = false; //设置为已发布进入审核流程
                    Utility.Database.Insert(notice, tran);
                }
                else
                {
                    notice.Condition.Add("NewsId =" + notice.NewsId);
                    Utility.Database.Update(notice, tran);
                }

                var userInfor = ComClass.GetUserInfo(userid);

                //删除文章与目录关系表
                B_OA_Notice_FileType_R del_nf_R = new B_OA_Notice_FileType_R();
                del_nf_R.Condition.Add("noticeId = " + notice.NewsId);
                Utility.Database.Delete(del_nf_R, tran);
                //保存关系表
                string[] documenTypeArray = notice.documentTypeId.Split('/');
                for (int k = 0; k < documenTypeArray.Length; k++)
                {
                    B_OA_Notice_FileType_R nf_R = new B_OA_Notice_FileType_R();
                    nf_R.noticeId = notice.NewsId;
                    nf_R.fileTypeId = documenTypeArray[k];

                    Utility.Database.Insert(nf_R, tran);
                }

                //邮件送达
                if (notice.isSendEmail == true)
                {
                    string Mail_Id = ComClass.GetGuid();
                    //保存已发送
                    B_Email email = new B_Email();
                    email.Mail_ID = Mail_Id;
                    email.Mail_CreateData = DateTime.Now.ToString(); //发送时间
                    email.ID = Mail_Id; // +"_" + DateTime.Now.ToLocalTime().ToString();/ID主键
                    email.Mail_SendPersonId = userid; //发件人ID
                    email.Mail_SendPersonName = userInfor.CnName; //发件人姓名
                    email.Mail_Deleted = "0"; //是否已删除
                    email.Mail_deletedPerson = ""; //删除人
                    email.Mail_Type = "1"; //类型,0 未发送,草稿,1已发送
                    email.MailDocumentType = "fajian"; //的文件夹分类 默认是0收件箱
                    email.Mail_IsSee = "0"; //是否已被查看
                    email.markId = ""; //标签id
                    email.markName = ""; //标签名称
                    email.markColor = ""; //标签颜色
                    email.whosEmailId = userid; //邮件拥有者
                    email.Mail_SendDate = DateTime.Now.ToString(); //发送时间
                    email.emailRecieveDate = DateTime.Now.ToString(); //接收事件
                    email.isSaveSendBox = true; //保存发件
                    email.Mail_ReceivePersonId = notice.sendEmailToManId; //接收人ID
                    email.Mail_ReceivePersonName = notice.sendEmailToManName; //接收人名称
                    email.isImportant = true; //重要邮件
                    email.Mail_Title = "(来自文档中心)" + notice.NewsTitle; //标题
                    email.Mail_SendAttachment = notice.ShareAttachment; //附件
                    email.Mail_SendText = notice.NewsText; //内容
                    Utility.Database.Insert<B_Email>(email, tran);
                    //保存给发送方
                    string[] sendIdArray = email.Mail_ReceivePersonId.Split(';');
                    for (int i = 0; i < sendIdArray.Length - 1; i++)
                    {
                        B_Email sendEmail = new B_Email();
                        sendEmail.ID = email.ID + sendIdArray[i]; //主键
                        sendEmail.Mail_ID = email.Mail_ID; //关联ID
                        sendEmail.Mail_Title = email.Mail_Title; //主题
                        sendEmail.Mail_SendText = email.Mail_SendText; //发送内容
                        sendEmail.Mail_SendPersonId = email.Mail_SendPersonId; //发件人ID
                        var sendUserInfor = ComClass.GetUserInfo(sendEmail.Mail_SendPersonId);
                        sendEmail.Mail_SendPersonName = sendUserInfor.CnName; //发件人姓名
                        sendEmail.Mail_SendDate = email.Mail_SendDate; //发送时间
                        sendEmail.Mail_ReceivePersonId = sendIdArray[i]; //接收人ID
                        sendEmail.Mail_ReceivePersonName = email.Mail_ReceivePersonName;
                        sendEmail.Mail_SendAttachment = email.Mail_SendAttachment; //附件
                        sendEmail.Mail_Deleted = "0"; //是否删除0为未删除
                        sendEmail.Mail_Type = "1"; //邮件类别(1已发送0草稿)
                        sendEmail.Mail_CreateData = DateTime.Now.ToString(); //创建时间
                        sendEmail.Mail_IsSee = "0"; //是否已读0未读1已读
                        sendEmail.MailDocumentType = "shoujian"; //电子邮件文件夹类型
                        // sendEmail.isSaveSendBox = email.isSaveSendBox;//是否保存到发件箱
                        sendEmail.isImportant = email.isImportant; //是否是重要的邮件
                        sendEmail.isReadReceipt = email.isReadReceipt; //是否发送查看回执1发送回执0不回执
                        sendEmail.haveAttachment = email.haveAttachment; //是否有附件
                        sendEmail.CCId = email.CCId; //抄送人
                        sendEmail.CCName = email.CCName; //抄送人姓名
                        sendEmail.emailRecieveDate = DateTime.Now.ToString(); //收件时间
                        sendEmail.markId = ""; //标记ID
                        sendEmail.markName = ""; //标记名称
                        sendEmail.markColor = ""; //标记颜色
                        sendEmail.whosEmailId = sendIdArray[i]; //邮件拥有者
                        Utility.Database.Insert<B_Email>(sendEmail, tran);
                    }
                }

                //将指定人员查看存入关系表中
                if (notice.publicRange == 1)
                {
                    string rangeCheckManId = notice.rangeCheckManId;
                    string[] manIdArray = rangeCheckManId.Split(';');
                    //删除原数据
                    B_OA_Notice_AppointManSee manSee_Delete = new B_OA_Notice_AppointManSee();
                    manSee_Delete.Condition.Add("noticeid =" + notice.NewsId);
                    Utility.Database.Delete(manSee_Delete, tran);

                    for (var range = 0; range < manIdArray.Length - 1; range++)
                    {
                        B_OA_Notice_AppointManSee manSee = new B_OA_Notice_AppointManSee();
                        manSee.noticeid = notice.NewsId;
                        manSee.userid = manIdArray[range];
                        Utility.Database.Insert(manSee, tran);
                    }
                }

                Utility.Database.Commit(tran);
                return Utility.JsonMsg(true, "保存成功!"); //将对象转为json字符串并返回到客户端
            }
            catch (Exception ex)
            {
                Utility.Database.Rollback(tran);
                ComBase.Logger(ex); //写异常日志到本地文件夹
                return Utility.JsonMsg(false, ex.Message); //将对象转为json字符串并返回到客户端
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 保存到文档中心和文档中心审核意见表和文章关系表中
        /// </summary>
        /// <param name="tran"></param>
        /// <param name="caseid"></param>
        /// <param name="userid"></param>
        public void SaveToNotice(IDbTransaction tran, string caseid, string userid)
        {
            StringBuilder strSql = new StringBuilder();
            string DPName = "";//部门名称
            string DPID = "";//部门ID
            string CnName = "";//归档人姓名
            string saveFileName = "";//需要存档的文件夹名称
            string dir = "";
            string UserID = "";
            dir = AppDomain.CurrentDomain.BaseDirectory;//获取应用程序跟目录
            dir = dir.Replace("\\", "/");
            strSql.Clear();
            strSql.AppendFormat(@"select * from FX_AttachMent where CaseID='{0}'", caseid);
            DataSet ds = Utility.Database.ExcuteDataSet(strSql.ToString(), tran);
            if (ds.Tables[0].Rows.Count > 0)
            {
                string jsonData = JsonConvert.SerializeObject(ds.Tables[0]);
                List<FX_AttachMent> list_fx = (List<FX_AttachMent>)JsonConvert.DeserializeObject(jsonData, typeof(List<FX_AttachMent>));
                //将文件复制文档中心下的相应目录
                string path = dir + "attachment/documentCenter/";
                if (Directory.Exists(path) == false)//如果不存在就创建文件夹
                {
                    Directory.CreateDirectory(path);
                }

                for (int f = 0; f < list_fx.Count(); f++)
                {
                    string path1 = "";
                    string path2 = "";
                    path1 = dir + "附件目录/" + list_fx[f].FilePath;
                    string fileName = DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "_" + list_fx[f].FileName;
                    path2 = path + fileName;
                    //取出文件并保存到相应目录中
                    File.Copy(path1, path2, true);
                    saveFileName += "attachment/documentCenter/" + fileName;
                    if (f != (list_fx.Count() - 1))
                    {
                        saveFileName += "|";
                    }
                }
            }

            //取出用户相关信息
            var userInfo = ComClass.GetUserInfo(userid);
            DPID = userInfo.DPID;
            CnName = userInfo.CnName;
            UserID = userInfo.UserID;
            //查找部门ID
            FX_Department department = new FX_Department();
            department.Condition.Add("DPID=" + userInfo.DPID);
            FX_Department department_ad = Utility.Database.QueryList<FX_Department>(department, tran)[0];
            DPName = department_ad.DPName;
            //放入的文件类型ID
            B_OA_SendDoc sendDoc = new B_OA_SendDoc();
            sendDoc.Condition.Add("caseid=" + caseid);
            sendDoc = Utility.Database.QueryObject<B_OA_SendDoc>(sendDoc);

            //保存文档
            B_OA_Notice newNotice = new B_OA_Notice();
            //newNotice.NewsTitle = sendDoc.;//文档标题
            newNotice.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//现在时间
            newNotice.NewsTitle = sendDoc.wjbt;
            newNotice.documentTypeId = sendDoc.fwlxId;//文档类型id
            string documentTypeName = getFileTypeNameByFileTypeId(sendDoc.fwlxId, tran);
            newNotice.documentTypeName = documentTypeName;//所选树状图名称,从根节点到子节点
            newNotice.CreateMan = CnName;//创建人
            newNotice.CreaterId = userid;//创建人
            newNotice.AttachmentName = saveFileName;//保存文件路径
            newNotice.ShareAttachment = "0";//是否共享文件
            newNotice.isSeeInDoor = false;//是否在门户中查看
            newNotice.status = "checkThrough";//审核状态
            newNotice.caseid = sendDoc.caseid;
            newNotice.publicRange = 0;//非指定人查看
            newNotice.NewsId = ComClass.GetGuid();
            newNotice.publicRange = 0;//所有人查看
            newNotice.isReadRecord = true;//查看记录
            newNotice.isTextSuggetion = true;//可以发表意见
            newNotice.ChkMId = UserID + ";";
            newNotice.ChkM = CnName + ";";
            newNotice.Chkdate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//审核时间

            Utility.Database.Insert<B_OA_Notice>(newNotice, tran);

            //插入审核记录
            //取出审核人ID数组
            string[] checkManId = newNotice.ChkMId.Split(';');
            //插入审核表,用于文章修改后,或者新生成的文章审核
            for (int i = 0; i < checkManId.Length - 1; i++)
            {
                B_OA_Notice_Addvice addvice = new B_OA_Notice_Addvice();
                var user_check = ComClass.GetUserInfo(checkManId[i]);
                //审核人ID
                addvice.chkId = checkManId[i];
                //审核人姓名
                addvice.chkName = user_check.CnName;
                //审核状态为未审核
                addvice.statuType = "checkThrough";
                //审核状态名称
                addvice.statusName = "审核通过";
                //文章表外键
                addvice.noticeId = newNotice.NewsId;
                Utility.Database.Insert(addvice, tran);
            }

            //插入文章关系表
            B_OA_Notice_FileType_R fileType_r = new B_OA_Notice_FileType_R();
            fileType_r.noticeId = newNotice.NewsId;
            fileType_r.fileTypeId = sendDoc.fwlxId;
            Utility.Database.Insert(fileType_r, tran);
            //sendDoc.fwlxId;
        }
        public void SaveData(GetDataModel data, IDbTransaction tran, string caseId, string userid)
        {
            if (caseId != null) data.baseInfor_Notice.caseid = caseId;
            data.baseInfor_Notice.Condition.Add("caseid=" + caseId);
            B_OA_Notice en = Utility.Database.QueryObject<B_OA_Notice>(data.baseInfor_Notice);

            if (en == null)
            {
                //插入文章关系表
                B_OA_Notice_FileType_R fileType_R = new B_OA_Notice_FileType_R();
                fileType_R.noticeId = data.baseInfor_Notice.NewsId;
                fileType_R.fileTypeId = ComDocumentCenterOperate.GetFileTypeByFlayType("4", tran).FileTypeId;
                Utility.Database.Insert(fileType_R, tran);
                Utility.Database.Insert(data.baseInfor_Notice, tran);

                if (data.baseInfor_Notice.publicRange == 1)
                {
                    DataRowMap rm = new DataRowMap();
                    rm.TableName = "B_OA_Notice_Range_R";
                    rm.Fields.Add(new FieldInfo("newsId", data.baseInfor_Notice.NewsId));
                    rm.Fields.Add(new FieldInfo("userid", data.baseInfor_Notice.CreaterId));
                    Utility.Database.Insert(rm, tran);
                }
            }
            else
            {
                if (data.baseInfor_Notice.publicRange==1)
                {
                    DataRowMap rm_d = new DataRowMap();
                    rm_d.TableName = "B_OA_Notice_Range_R";
                    rm_d.Condition.Add("newsId =" + data.baseInfor_Notice.NewsId);
                    Utility.Database.Delete(rm_d, tran);

                    DataRowMap rm = new DataRowMap();
                    rm.TableName = "B_OA_Notice_Range_R";
                    rm.Fields.Add(new FieldInfo("newsId", data.baseInfor_Notice.NewsId));
                    rm.Fields.Add(new FieldInfo("userid", data.baseInfor_Notice.CreaterId));
                    Utility.Database.Insert(rm, tran);
                }
                Utility.Database.Update(data.baseInfor_Notice, tran);
            }
            //将指定人员查看存入关系表中
            if (data.baseInfor_Notice.publicRange == 1)
            {
                InserAppointManSee(data.baseInfor_Notice, tran);
            }
        }
        //保存到关系表中
        public void SaveFileType_R(B_OA_Notice notice, IDbTransaction tran)
        {
            //删除文章与目录关系表
            B_OA_Notice_FileType_R del_nf_R = new B_OA_Notice_FileType_R();
            del_nf_R.Condition.Add("noticeId = " + notice.NewsId);
            Utility.Database.Delete(del_nf_R, tran);
            //保存关系表
            string[] documenTypeArray = notice.documentTypeId.Split('/');
            for (int k = 0; k < documenTypeArray.Length; k++)
            {
                B_OA_Notice_FileType_R nf_R = new B_OA_Notice_FileType_R();
                nf_R.noticeId = notice.NewsId;
                nf_R.fileTypeId = documenTypeArray[k];

                Utility.Database.Insert(nf_R, tran);
            }
        }
        public void SaveData(GetDataModel data, IDbTransaction tran, string caseId, string userid)
        {
            if (caseId != null) data.baseInfor_Notice.caseid = caseId;
            data.baseInfor_Notice.Condition.Add("caseid=" + caseId);
            B_OA_Notice en = Utility.Database.QueryObject<B_OA_Notice>(data.baseInfor_Notice);

            if (en == null)
            {
                //插入文章关系表
                B_OA_Notice_FileType_R fileType_R = new B_OA_Notice_FileType_R();
                fileType_R.noticeId = data.baseInfor_Notice.NewsId;
                fileType_R.fileTypeId = ComDocumentCenterOperate.GetFileTypeByFlayType("4", tran).FileTypeId;
                Utility.Database.Insert(fileType_R, tran);

                Utility.Database.Insert(data.baseInfor_Notice, tran);
            }
            else
            {

                Utility.Database.Update(data.baseInfor_Notice, tran);
            }
            //将指定人员查看存入关系表中
            if (data.baseInfor_Notice.publicRange == 1)
            {
                InserAppointManSee(data.baseInfor_Notice, tran);
            }
        }