Example #1
0
        protected override void BeforeUpdate()
        {
            base.BeforeUpdate();
            HashSet <string> hasSet = new HashSet <string>();

            foreach (DataRow curRow in this.DataSet.Tables[1].Rows)
            {
                if (curRow.RowState == DataRowState.Deleted)
                {
                    continue;
                }
                DataRow[] subRows = curRow.GetChildRows("AXPPERMISSIONGROUPDETAIL_AXPOPERATEPOWER", DataRowVersion.Current);
                int       mark    = 0;
                foreach (DataRow subRow in subRows)
                {
                    if (LibSysUtils.ToBoolean(subRow["CANUSE"]))
                    {
                        mark += LibSysUtils.ToInt32(subRow["OPERATEPOWERID"]);
                    }
                }
                curRow["OPERATEMARK"] = mark;
                string progId = LibSysUtils.ToString(curRow["PROGID"]);
                if (hasSet.Contains(progId))
                {
                    this.ManagerMessage.AddMessage(LibMessageKind.Error, string.Format("行{0}的功能标识重复", curRow["ROWNO"]));
                }
                else
                {
                    hasSet.Add(progId);
                }
            }
        }
Example #2
0
        protected override void BeforeUpdate()
        {
            base.BeforeUpdate();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            #region 检查部门下的同一人员是否担任了重复的职务
            HashSet <string> hasSet = new HashSet <string>();
            foreach (DataRow curRow in this.DataSet.Tables[1].Rows)
            {
                if (curRow.RowState == DataRowState.Deleted)
                {
                    continue;
                }
                string duty_PersonID = string.Format("{0}_{1}", LibSysUtils.ToString(curRow["DUTYID"]), LibSysUtils.ToString(curRow["PERSONID"]));
                if (hasSet.Contains(duty_PersonID))
                {
                    this.ManagerMessage.AddMessage(LibMessageKind.Error, string.Format("岗位任职行{0}的任职岗位与人员已存在。", curRow["ROWNO"]));
                }
                else
                {
                    hasSet.Add(duty_PersonID);
                }
            }
            #endregion
        }
Example #3
0
        protected override void AfterUpdate()
        {
            base.AfterUpdate();
            if (!this.ManagerMessage.IsThrow)
            {
                if (EnvProvider.Default.ScheduleTaskOpened)
                {
                    DataRow         masterRow = this.DataSet.Tables[0].Rows[0];
                    string          taskId    = LibSysUtils.ToString(masterRow["TASKID"]);
                    LibBusinessTask task      = null;
                    PostAccountWay  way       = PostAccountHelper.GetPostAccountWay(PostAccountState.Release, masterRow);
                    switch (way)
                    {
                    case PostAccountWay.Diff:
                        string oldTaskId = LibSysUtils.ToString(masterRow["TASKID", DataRowVersion.Original]);
                        LibBusinessTaskCache.Default.RemoveCacheItem(oldTaskId);
                        LibScheduleTaskHost.Default.DeleteTask(oldTaskId);
                        task = AddTask();
                        LibScheduleTaskHost.Default.AddTask(task);
                        break;

                    case PostAccountWay.Positive:
                        task = AddTask();
                        LibScheduleTaskHost.Default.AddTask(task);
                        break;

                    case PostAccountWay.Reverse:
                        LibBusinessTaskCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["TASKID"]));
                        LibScheduleTaskHost.Default.DeleteTask(taskId);
                        break;
                    }
                }
            }
        }
Example #4
0
        /// <summary>
        /// 构造跨站点调用的临时登录
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public LibHandle GetCrossCallHandle(string userId)
        {
            if (string.IsNullOrEmpty(userId))
            {
                return(null);
            }
            LibHandle     handle     = new LibHandle(LibHandeleType.CrossSiteCall, userId, "");
            SqlBuilder    builder    = new SqlBuilder("axp.User");
            string        sql        = builder.GetQuerySql(0, "A.PERSONID,A.PERSONNAME,A.ROLEID,A.WALLPAPER,A.WALLPAPERSTRETCH", string.Format("A.USERID={0} And A.ISUSE=1", LibStringBuilder.GetQuotString(userId)));
            LibDataAccess dataAccess = new LibDataAccess();
            bool          exist      = false;

            using (IDataReader reader = dataAccess.ExecuteDataReader(sql))
            {
                if (reader.Read())
                {
                    handle.PersonId   = LibSysUtils.ToString(reader[0]);
                    handle.PersonName = LibSysUtils.ToString(reader[1]);
                    handle.RoleId     = LibSysUtils.ToString(reader[2]);
                    exist             = true;
                }
            }
            if (exist)
            {
                this.Set(handle.Handle, handle);
                return(handle);
            }
            else
            {
                return(null);
            }
        }
Example #5
0
        private static Boolean SetWorkProcessInfo(string billNo)
        {
            Boolean     ret         = false;
            ProduceData produceData = LibProduceCache.Default.GetProduceData(billNo);

            if (produceData != null)
            {
                foreach (DataRow curRow in produceData.WorkOrder.Tables[3].Rows)
                {
                    ret = true;
                    DataRow parentRow = produceData.WorkOrder.Tables[2].Rows.Find(new object[] { curRow["BILLNO"], curRow["PARENTROWID"] });
                    if (!LibSysUtils.ToBoolean(parentRow["NEEDGATHER"]))
                    {
                        continue;
                    }
                    string workstationId = LibSysUtils.ToString(curRow["WORKSTATIONID"]);
                    if (!_ProductScheduling.WsRelWorkOrder.ContainsKey(workstationId))
                    {
                        _ProductScheduling.WsRelWorkOrder.Add(workstationId, new List <string>()
                        {
                            billNo
                        });
                    }
                    if (!_ProductScheduling.WsRelWorkOrder[workstationId].Contains(billNo))
                    {
                        _ProductScheduling.WsRelWorkOrder[workstationId].Add(billNo);
                    }
                    if (produceData.FirstWorkProcessNo.Contains(LibSysUtils.ToInt32(parentRow["WORKPROCESSNO"])) && !_ProductScheduling.FirstWs.Contains(workstationId))
                    {
                        _ProductScheduling.FirstWs.Add(workstationId);
                    }
                }
            }
            return(ret);
        }
Example #6
0
        /// <summary>
        /// 获取用户可访问的站点
        /// </summary>
        /// <param name="userHandle"></param>
        /// <returns></returns>
        public List <LinkSiteInfo> GetLinkSites(string userHandle)
        {
            // 判断userHandle存不存在
            LibHandle handle = LibHandleCache.Default.GetCurrentHandle(userHandle);

            if (handle == null)
            {
                throw new Exception("用户句柄无效");
            }
            List <LinkSiteInfo> linkSiteInfoList = new List <LinkSiteInfo>();
            string        sql        = string.Format("select B.SITEID, B.SITENAME, B.SHORTNAME, B.SITEURL, B.SVCURL, B.ISSLAVE,B.ISSENDTO from AXPUSERSITE A join AXPLINKSITE B on A.SITEID = B.SITEID where A.USERID = {0}", LibStringBuilder.GetQuotString(handle.UserId));
            LibDataAccess dataAccess = new LibDataAccess();

            using (IDataReader reader = dataAccess.ExecuteDataReader(sql))
            {
                while (reader.Read())
                {
                    var siteInfo = new LinkSiteInfo()
                    {
                        SiteId    = LibSysUtils.ToString(reader["SITEID"]),
                        SiteName  = LibSysUtils.ToString(reader["SITENAME"]),
                        ShortName = LibSysUtils.ToString(reader["SHORTNAME"]),
                        SiteUrl   = LibSysUtils.ToString(reader["SITEURL"]),
                        SvcUrl    = LibSysUtils.ToString(reader["SVCURL"]),
                        IsSlave   = LibSysUtils.ToBoolean(reader["ISSLAVE"]),
                        IsSendTo  = LibSysUtils.ToBoolean(reader["ISSENDTO"]),
                    };
                    linkSiteInfoList.Add(siteInfo);
                }
            }
            return(linkSiteInfoList);
        }
Example #7
0
        public SetPwdResult SetPassword(string handle, string oldPwd, string newPwd)
        {
            SetPwdResult result    = new SetPwdResult();
            LibHandle    libHandle = LibHandleCache.Default.GetCurrentHandle(handle) as LibHandle;

            if (libHandle == null)
            {
                throw new Exception("用户句柄无效。");
            }
            string sql = string.Format("select USERID from AXPUSER where USERID={0} and USERPASSWORD={1}",
                                       LibStringBuilder.GetQuotString(libHandle.UserId), LibStringBuilder.GetQuotString(oldPwd));
            LibDataAccess dataAccess = new LibDataAccess();
            string        userId     = LibSysUtils.ToString(dataAccess.ExecuteScalar(sql));

            if (string.IsNullOrEmpty(userId))
            {
                result.Msg     = "输入的旧密码与系统不匹配。";
                result.Success = false;
            }
            else
            {
                dataAccess.ExecuteNonQuery(string.Format("update AXPUSER set USERPASSWORD={2} where USERID={0} and USERPASSWORD={1}",
                                                         LibStringBuilder.GetQuotString(libHandle.UserId), LibStringBuilder.GetQuotString(oldPwd),
                                                         LibStringBuilder.GetQuotString(newPwd)));
                result.Success = true;
            }
            return(result);
        }
Example #8
0
        /// <summary>
        /// 根据部门标识和关键词,查找部门任职表中的岗位信息,返回IdName形式的数组供前端展示选择
        /// Zhangkj 20170323
        /// </summary>
        /// <param name="deptId"></param>
        /// <param name="queryKey"></param>
        /// <returns></returns>
        public IList <FuzzyResult> SearchDutyIdNameFromDept(string deptId, string queryKey)
        {
            List <FuzzyResult> list = new List <FuzzyResult>();

            try
            {
                if (string.IsNullOrEmpty(deptId))
                {
                    return(list);
                }
                string querySql = string.Format("Select distinct A.DUTYID,B.DUTYNAME from COMDEPTDUTYPERSON A left join COMDUTY B on A.DUTYID = B.DUTYID " +
                                                " where A.DEPTID = {0} and ( A.DUTYID like {1} or B.DUTYNAME like {1} ) ", LibStringBuilder.GetQuotString(deptId),
                                                LibStringBuilder.GetQuotString(string.Format("%{0}%", queryKey))
                                                );
                int count = 0;
                using (IDataReader reader = this.DataAccess.ExecuteDataReader(querySql))
                {
                    while (reader.Read())
                    {
                        list.Add(new FuzzyResult(LibSysUtils.ToString(reader[0]), LibSysUtils.ToString(reader[1])));
                        count++;
                        if (count == 30)
                        {
                            break;
                        }
                    }
                }
            }
            catch (Exception exp)
            {
                // to do Log
            }
            return(list);
        }
Example #9
0
        protected override void AfterDelete()
        {
            base.AfterDelete();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            LibPermissionGroupCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["PERMISSIONGROUPID"]));
        }
Example #10
0
 protected override void AfterCommintData()
 {
     base.AfterCommintData();
     if (!this.ManagerMessage.IsThrow)
     {
         List <AxCRL.Core.Mail.LibMailParam> list = new List <AxCRL.Core.Mail.LibMailParam>();
         foreach (DataRow curRow in this.DataSet.Tables[0].Rows)
         {
             if (curRow.RowState == DataRowState.Modified)
             {
                 if (LibSysUtils.ToBoolean(curRow["ISUSE"]) && !LibSysUtils.ToBoolean(curRow["ISUSE", DataRowVersion.Original]))
                 {
                     AxCRL.Core.Mail.LibMailParam param = new AxCRL.Core.Mail.LibMailParam();
                     param.Content  = string.Format("您的账号 {0} 已开通。", curRow["USERID"]);
                     param.MailKind = AxCRL.Core.Mail.LibMailKind.Info;
                     param.Subject  = "智慧工厂账号开通";
                     param.To       = new List <string>()
                     {
                         LibSysUtils.ToString(curRow["PERSONID"])
                     };
                     list.Add(param);
                 }
             }
         }
         if (list.Count > 0)
         {
             ThreadPool.QueueUserWorkItem(LibMailHelper.SendMail, list);
         }
     }
 }
Example #11
0
 protected override void AfterDelete()
 {
     base.AfterDelete();
     if (this.isDeleteSubs)
     {
         //删除文件夹目录。sql中的表单记录操作可以回滚,磁盘上的文件目录和文档操作统一处理,失败了也不用回滚。
         DataRow masterRow = this.DataSet.Tables[0].Rows[0];
         if (masterRow == null)
         {
             return;
         }
         string dirId = LibSysUtils.ToString(masterRow["DIRID"]);
         //DirLinkAddress dirLink = new DirLinkAddress(dirId, this.DataAccess);
         if (dirLink.DirSavePath == string.Empty)
         {
             return;
         }
         //先定位到文档库根路径
         //string path = Path.Combine(EnvProvider.Default.DocumentsPath, (LibSysUtils.ToInt32(masterRow["DIRTYPE"]) == 0 ? "" : "my"));//根据是否为私有类型在路径下增加my
         string path = DMCommonMethod.GetDMRootPath((DirTypeEnum)LibSysUtils.ToInt32(masterRow["DIRTYPE"]));
         path = Path.Combine(path, dirLink.DirSavePath);
         try
         {
             if (Directory.Exists(path))
             {
                 Directory.Delete(path, true);//删除目录文件夹及其子目录文件夹、文件等。
             }
         }
         catch (Exception exp)
         {
             //对于删除文档目录在磁盘上的文件夹的动作,因为文件系统的删除无法回滚,不再向上抛出异常(以免触发本级事务回滚),仅记录异常信息,以便后续手动清理
             DMCommonMethod.WriteLog("DeleteDirectory", string.Format("DirID:{0}\r\nPath:{1}\r\nError:{2}", dirId, path, exp.ToString()));
         }
     }
 }
Example #12
0
        /// <summary>
        /// 验证验证码是否正确
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        private static Result VerifyCode(string userId, string code)
        {
            Result res = new Result();

            try
            {
                string        sql      = string.Format("SELECT VERIFYCODE FROM AXPVERIFYCODE WHERE USERID={0}", LibStringBuilder.GetQuotString(userId));
                LibDataAccess access   = new LibDataAccess();
                string        realCode = LibSysUtils.ToString(access.ExecuteScalar(sql));
                if (realCode == string.Empty)
                {
                    res.ReturnValue = false;
                    res.Message     = "该帐号没有对应的验证码";
                    return(res);
                }

                if (code != null && code.Equals(realCode))
                {
                    res.ReturnValue = true;
                    return(res);
                }
                else
                {
                    res.ReturnValue = false;
                    res.Message     = "验证码错误";
                    return(res);
                }
            }
            catch (Exception ex)
            {
                res.ReturnValue = false;
                res.Message     = "注册失败!" + ex.Message;
                return(res);
            }
        }
Example #13
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static Result Login(UserInfo info)
        {
            Result res = new Result();

            try
            {
                LibDataAccess access = new LibDataAccess();
                SystemService server = new SystemService();
                if (APPCache.CacheDic.ContainsKey(info.CodeId))
                {
                    if (string.Equals(APPCache.CacheDic[info.CodeId], info.Code, StringComparison.CurrentCultureIgnoreCase))
                    {
                        LoginInfo loginInfo = server.Login(info.UserId, info.Password, false);
                        LibHandle handle    = LibHandleCache.Default.IsExistsHandle(LibHandeleType.PC, info.UserId);
                        if (loginInfo.PersonId == null)
                        {
                            res.ReturnValue = false;
                            res.Message     = "登录失败!";
                        }
                        else if (handle == null)
                        {
                            res.ReturnValue = false;
                            res.Message     = "请重新登录!";
                        }
                        else
                        {
                            string sql = string.Format("SELECT B.PHONENO,B.MAIL FROM AXPUSER A LEFT JOIN COMPERSON B ON B.PERSONID=A.PERSONID WHERE A.USERID={0}", LibStringBuilder.GetQuotString(info.UserId));
                            using (IDataReader reader = access.ExecuteDataReader(sql))
                            {
                                if (reader.Read())
                                {
                                    //loginInfo.UserPhone = LibSysUtils.ToString(reader["PHONENO"]);
                                    loginInfo.UserEMail = LibSysUtils.ToString(reader["MAIL"]);
                                }
                            }
                            loginInfo.Handle = handle.Handle;
                            res.Info         = loginInfo;
                            res.ReturnValue  = true;
                            APPCache.RemoveAPPCache(info.CodeId);
                        }
                    }
                    else
                    {
                        res.Message     = "验证码错误!";
                        res.ReturnValue = false;
                    }
                }
                else
                {
                    res.Message     = "验证码失效!";
                    res.ReturnValue = false;
                }
            }
            catch (Exception ex)
            {
                res.Message     = ex.Message;
                res.ReturnValue = false;
            }
            return(res);
        }
Example #14
0
        protected override void AfterDelete()
        {
            base.AfterDelete();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            LibApproveFlowCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["PROGID"]), LibSysUtils.ToBoolean(masterRow["ISAPPROVEROW"]));
        }
Example #15
0
        /// <summary>
        /// 获取文档所在的目录Id和文档的文件夹名称(仅文档自身的文件夹名称)
        /// </summary>
        /// <param name="docId"></param>
        /// <param name="docDirName">文档的文件夹名称,仅文档自身的文件夹名称</param>
        /// <param name="maxModifyVerId">最大修订号</param>
        /// <returns></returns>
        protected string GetDirId(string docId, out string docDirName, out int maxModifyVerId, out string docType, out string docName, out bool isDocLocked)
        {
            string dirId = string.Empty;

            docDirName     = string.Empty;
            maxModifyVerId = 1;
            docType        = string.Empty;
            docName        = string.Empty;
            isDocLocked    = true;

            string  sql = string.Format("select A.DIRID,A.SAVEPATH,A.DOCTYPE,A.DOCNAME,A.LOCKSTATE,(select max(DOCMODIFYID) from DMDOCMODIFYHISTORY where DOCID='{0}') as MaxDOCMODIFYID from DMDOCUMENT A where A.DOCID = '{0}'", docId);
            DataSet ds  = this.DataAccess.ExecuteDataSet(sql);

            if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
            {
                return(string.Empty);
            }
            DataRow row = ds.Tables[0].Rows[0];

            dirId          = LibSysUtils.ToString(row["DIRID"]);
            docDirName     = LibSysUtils.ToString(row["SAVEPATH"]);
            maxModifyVerId = LibSysUtils.ToInt32(row["MaxDOCMODIFYID"]);
            docType        = LibSysUtils.ToString(row["DOCTYPE"]);
            docName        = LibSysUtils.ToString(row["DOCNAME"]);
            docName        = docName.EndsWith(docType) ? docName.Substring(0, docName.Length - docType.Length) : docName;

            int lockState = LibSysUtils.ToInt32(row["LOCKSTATE"]);

            isDocLocked = lockState == 1;

            return(dirId);
        }
Example #16
0
 public ActionResult Bill(string progId, int funType)
 {
     this.ViewBag.ProgId   = LibSysUtils.ToString(progId);
     this.ViewBag.FunType  = funType;
     this.ViewBag.VclClass = string.Format("{0}Vcl", this.ViewBag.ProgId.Replace(".", string.Empty));
     return(View());
 }
Example #17
0
        public List <LibBusinessTask> InitTempTask()
        {
            List <LibBusinessTask> list       = new List <LibBusinessTask>();
            LibDataAccess          dataAccess = new LibDataAccess();

            using (IDataReader reader = dataAccess.ExecuteDataReader("select TASKID,PROGID,BUSINESSTASKID,EXECDATE,EXECTIME,EXECCONDITION,INTERNALID from AXPBUSINESSTEMPTASK", false))
            {
                while (reader.Read())
                {
                    LibBusinessTask task = new LibBusinessTask()
                    {
                        TaskType       = LibTaskType.TempTask,
                        TaskId         = LibSysUtils.ToString(reader["TASKID"]),
                        ProgId         = LibSysUtils.ToString(reader["PROGID"]),
                        BusinessTaskId = LibSysUtils.ToString(reader["BUSINESSTASKID"]),
                        ExecDate       = LibSysUtils.ToInt32(reader["EXECDATE"]),
                        ExecCondition  = LibSysUtils.ToString(reader["EXECCONDITION"]),
                        InternalId     = LibSysUtils.ToString(reader["INTERNALID"])
                    };
                    task.ExecTime.Add(LibSysUtils.ToInt32(reader["EXECTIME"]));
                    list.Add(task);
                }
            }
            return(list);
        }
Example #18
0
        protected override void AfterDelete()
        {
            base.AfterDelete();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            LibRolePermissionCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["ROLEID"]));
        }
Example #19
0
        /// <summary>
        /// 直接创建目录
        /// </summary>
        /// <param name="dirId"></param>
        /// <param name="dirName"></param>
        /// <returns></returns>
        protected bool AddDirDirectly(ref string dirId, string dirName, DirTypeEnum dirType, string parentDirId)
        {
            if (string.IsNullOrEmpty(dirName))
            {
                return(false);
            }
            if (parentDirId == null)
            {
                parentDirId = string.Empty;
            }

            Dictionary <string, LibChangeRecord> dicChanges       = new Dictionary <string, LibChangeRecord>();
            Dictionary <string, object>          dicChangeColumns = new Dictionary <string, object>();

            LibEntryParam entryParam = new LibEntryParam();

            entryParam.ParamStore.Add("ParentDirId", parentDirId);
            entryParam.ParamStore.Add("ParentDirType", (int)dirType);

            this.DataSet.Clear();

            this.AddNew(entryParam);
            if (this.ManagerMessage.IsThrow)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(dirId))
            {
                dirId = LibSysUtils.ToString(this.DataSet.Tables[0].Rows[0]["DIRID"]);
            }

            object[] pks = new object[] { dirId };
            //因对于Add的对象Save方法中会检查Add的第一条记录数据并做相关处理,因此需要模拟生成前端传递来的change数据
            LibChangeRecord record = new LibChangeRecord();

            foreach (DataColumn col in this.DataSet.Tables[0].Columns)
            {
                dicChangeColumns.Add(col.ColumnName, this.DataSet.Tables[0].Rows[0][col.ColumnName]);//将文档主表的第一行数据变成change数据
            }
            dicChangeColumns["DIRID"]       = dirId;
            dicChangeColumns["DIRNAME"]     = dirName;
            dicChangeColumns["DIRTYPE"]     = (dirType == DirTypeEnum.Public) ? 0 : 1;
            dicChangeColumns["PARENTDIRID"] = parentDirId;

            record.Add.Add(dicChangeColumns);
            dicChanges.Add("DMDIRECTORY", record);

            this.DataSet.Clear();//将通过addNew添加的数据全清空,以免和通过change数据添加的重复了。

            this.Save(BillAction.AddNew, pks, dicChanges, null);
            if (this.ManagerMessage.IsThrow)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Example #20
0
        protected override void AfterDelete()
        {
            base.AfterDelete();
            //清空部门任职表的缓存数据
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            LibDeptDutyPersonCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["DEPTID"]));
        }
Example #21
0
        public string getSupplIer(string supplyUserId)
        {
            string        supplierId = string.Empty;
            LibDataAccess dataAccess = new LibDataAccess();
            string        sql        = string.Format("SELECT SUPPLIERID FROM COMPERSON WHERE PERSONID = '{0}'", supplyUserId);

            supplierId = LibSysUtils.ToString(dataAccess.ExecuteScalar(sql));
            return(supplierId);
        }
Example #22
0
        protected override void AfterDelete()
        {
            base.AfterDelete();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];
            string  progId    = LibSysUtils.ToString(masterRow["PROGID"]);

            LibCodingRuleCache.Default.Remove(progId);
            LibCodingNoCache.Default.RemoveCacheByProgId(progId);
        }
Example #23
0
        public static string SetAPPCache(string appCode)
        {
            string codeId = LibSysUtils.ToString(Guid.NewGuid());

            if (!string.IsNullOrEmpty(appCode))
            {
                CacheDic.Add(codeId, appCode);
            }
            return(codeId);
        }
Example #24
0
        /// <summary>
        /// 获得单据业务流配置下跟当前功能单据数据相匹配的业务流配置明细
        /// </summary>
        /// <param name="billMasterRow">功能单据 主表行数据</param>
        /// <param name="billProgId">功能单据 功能标识</param>
        /// <returns>返回业务流配置明细</returns>
        private List <BusinessInfo> GetBusinessInfo(DataRow billMasterRow, string billProgId)
        {
            //传输信息字典【使用条件--业务流配置明细】
            Dictionary <string, List <BusinessInfo> > businessInfoDic = new Dictionary <string, List <BusinessInfo> >();
            //单据业务流配置:axp.BusinessFlowConfig
            SqlBuilder sqlBuilder = new SqlBuilder(this.ProgId);
            //获取单据业务流配置下当前功能单据的业务流配置明细【使用条件,接收人代码,接收人名称,微信,发微信,电话,发短信】
            string sql = sqlBuilder.GetQuerySql(0, "B.USECONDITION,C.PERSONID,C.PERSONNAME,C.WECHAT,C.SENDWECHAT,C.PHONENO,C.NEEDSMS",
                                                string.Format("A.PROGID={0}", LibStringBuilder.GetQuotString(billProgId)), "B.USECONDITION");

            using (IDataReader reader = this.DataAccess.ExecuteDataReader(sql))
            {
                while (reader.Read())
                {
                    //单据业务流配置下当前功能单据 单据业务流配置规则配置 使用条件
                    string useCondition = LibSysUtils.ToString(reader["USECONDITION"]);
                    if (!businessInfoDic.ContainsKey(useCondition))
                    {
                        businessInfoDic.Add(useCondition, new List <BusinessInfo>());
                    }
                    BusinessInfo info = new BusinessInfo();
                    info.PersonId   = LibSysUtils.ToString(reader["PERSONID"]);
                    info.PersonName = LibSysUtils.ToString(reader["PERSONNAME"]);
                    info.WeChat     = LibSysUtils.ToString(reader["WECHAT"]);
                    info.SendWeChat = LibSysUtils.ToBoolean(reader["SENDWECHAT"]);
                    info.PhoneNo    = LibSysUtils.ToString(reader["PHONENO"]);
                    info.NeedSMS    = LibSysUtils.ToBoolean(reader["NEEDSMS"]);
                    businessInfoDic[useCondition].Add(info);
                }
            }
            //遍历字典找到使用条件跟当前功能单据数据相匹配的业务流配置明细
            List <BusinessInfo> curBusinessInfo = null;

            foreach (var item in businessInfoDic)
            {
                if (string.IsNullOrEmpty(item.Key))
                {
                    continue;
                }
                if (LibParseHelper.Parse(item.Key, new List <DataRow>()
                {
                    billMasterRow
                }))
                {
                    curBusinessInfo = item.Value;
                    break;
                }
            }
            //若未找到符合当前功能单据数据相匹配的业务流配置明细,则取默认的无条件的业务流配置明细
            if (curBusinessInfo == null && businessInfoDic.ContainsKey(string.Empty))
            {
                curBusinessInfo = businessInfoDic[string.Empty];
            }
            return(curBusinessInfo);
        }
Example #25
0
 protected override void AfterUpdate()
 {
     base.AfterUpdate();
     if (this.BillAction != AxCRL.Bcf.BillAction.AddNew && this.BillAction != AxCRL.Bcf.BillAction.SaveToDraft && this.BillAction != AxCRL.Bcf.BillAction.SubmitDraft)
     {
         DataRow masterRow = this.DataSet.Tables[0].Rows[0];
         string  progId    = masterRow.HasVersion(DataRowVersion.Original) ? LibSysUtils.ToString(masterRow["PROGID", DataRowVersion.Original]) : LibSysUtils.ToString(masterRow["PROGID"]);
         LibCodingRuleCache.Default.Remove(progId);
         LibCodingNoCache.Default.RemoveCacheByProgId(progId);
     }
 }
Example #26
0
        public virtual DataSet GetScheduleTaskData(string execTaskDataId)
        {
            string sql  = string.Format("select RESULTDATA from AXAEXECTASKDATA where EXECTASKDATAID={0}", LibStringBuilder.GetQuotString(execTaskDataId));
            string data = LibSysUtils.ToString(this.DataAccess.ExecuteScalar(sql));

            if (!string.IsNullOrEmpty(data))
            {
                LibBillDataSerializeHelper.Deserialize(data, this.DataSet);
            }
            return(this.DataSet);
        }
Example #27
0
        protected override void AfterUpdate()
        {
            base.AfterUpdate();
            //清除缓存
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            if (this.BillAction != AxCRL.Bcf.BillAction.AddNew && this.BillAction != AxCRL.Bcf.BillAction.SaveToDraft && this.BillAction != AxCRL.Bcf.BillAction.SubmitDraft)
            {
                LibPermissionGroupCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["PERMISSIONGROUPID", DataRowVersion.Original]));
            }
        }
Example #28
0
        public AbnormalMaster(DataSet ds)
        {
            DataRow dr = ds.Tables[0].Rows[0];

            _AbnormalId       = LibSysUtils.ToString(dr["ABNORMALID"]);
            _AbnormalName     = LibSysUtils.ToString(dr["ABNORMALNAME"]);
            _AbnormalTypeId   = LibSysUtils.ToString(dr["ABNORMALTYPEID"]);
            _AbnormalTypeName = LibSysUtils.ToString(dr["ABNORMALTYPENAME"]);
            _DeptId           = LibSysUtils.ToString(dr["DEPTID"]);
            _DeptName         = LibSysUtils.ToString(dr["DEPTNAME"]);
        }
Example #29
0
        protected override void AfterUpdate()
        {
            base.AfterUpdate();
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];

            //清除缓存
            if (this.BillAction != AxCRL.Bcf.BillAction.AddNew && this.BillAction != AxCRL.Bcf.BillAction.SaveToDraft && this.BillAction != AxCRL.Bcf.BillAction.SubmitDraft)
            {
                LibDeptDutyPersonCache.Default.RemoveCacheItem(LibSysUtils.ToString(masterRow["DEPTID", DataRowVersion.Original]));
            }
        }
Example #30
0
        protected override bool CheckDelete()
        {
            DataRow masterRow = this.DataSet.Tables[0].Rows[0];
            string  dirId     = LibSysUtils.ToString(masterRow["DIRID"]);
            int     dirType   = LibSysUtils.ToInt32(masterRow["DIRTYPE"]);

            if (dirType == (int)DirTypeEnum.Private)
            {
                return(true);//个人目录不做控制
            }
            return(CheckPermission(dirId, DMFuncPermissionEnum.Delete));
        }