コード例 #1
0
ファイル: UserDefinedFieldsBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 修改自定义字段某个值
        /// </summary>
        public bool EditUdf(DicEnum.UDF_CATE cate, long objectId, int udfId, string value, string desc, long user_id, DicEnum.OPER_LOG_OBJ_CATE operType)
        {
            // 更新自定义字段值
            var    udfList   = GetUdf(cate);
            var    udfValues = GetUdfValue(cate, objectId, udfList);
            var    user      = new UserResourceBLL().GetSysUserSingle(user_id);
            int    index     = udfValues.FindIndex(f => f.id == udfId);
            object oldVal    = udfValues[index].value;

            udfValues[index].value = value;
            UpdateUdfValue(cate, udfList, objectId, udfValues,
                           new UserInfoDto {
                id = user_id, name = user.name
            }, operType);
            var  colName = udfList.Find(f => f.id == udfId).name;
            bool result  = true;

            switch (cate)
            {
            case DicEnum.UDF_CATE.PROJECTS:
                result = new ProjectBLL().AddUdfActivity(objectId, colName, oldVal, value, desc, user_id);
                break;

            default:
                break;
            }

            return(result);
        }
コード例 #2
0
ファイル: WorkEntryBLL.cs プロジェクト: evelh/Done
        /// <summary>
        /// 工时表审批
        /// </summary>
        /// <param name="ids">,号分割的多个工时表id</param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public int ApproveWorkEntryReport(string ids, long userId)
        {
            int appCnt  = 0;
            var rptDal  = new sdk_work_entry_report_dal();
            var logDal  = new tst_work_entry_report_log_dal();
            var reports = rptDal.FindListBySql($"select * from sdk_work_entry_report where id in({ids}) and status_id={(int)DicEnum.WORK_ENTRY_REPORT_STATUS.WAITING_FOR_APPROVAL} and delete_time=0");

            if (reports == null || reports.Count == 0)
            {
                return(appCnt);
            }

            var user = new UserResourceBLL().GetResourceById(userId);

            foreach (var report in reports)
            {
                // 判断用户是否在当前可以审批工时表
                int tier = GetWorkEntryReportCurrentApproveTier(report.id);
                if (tier == 3)
                {
                    continue;
                }
                var aprvResList = GetApproverList((long)report.resource_id);
                tier++;
                if (user.security_level_id == 1 || aprvResList.Exists(_ => _.tier == tier && _.approver_resource_id == userId)) // 用户是管理员或用户可以审批下一级
                {
                    tst_work_entry_report_log log = new tst_work_entry_report_log();
                    log.id = logDal.GetNextIdCom();
                    log.work_entry_report_id = report.id;
                    log.oper_user_id         = userId;
                    log.oper_type_id         = (int)DicEnum.WORK_ENTRY_REPORT_OPER_TYPE.APPROVAL;
                    log.oper_time            = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    log.tier = tier;

                    logDal.Insert(log);
                    OperLogBLL.OperLogAdd <tst_work_entry_report_log>(log, log.id, userId, DicEnum.OPER_LOG_OBJ_CATE.WORK_ENTRY_REPORT_LOG, "工时表审批");

                    appCnt++;

                    if (aprvResList.Count == 0 || aprvResList.Max(_ => _.tier) == tier)    // 是最后一级审批人
                    {
                        var rptOld = rptDal.FindById(report.id);
                        report.status_id       = (int)DicEnum.WORK_ENTRY_REPORT_STATUS.PAYMENT_BEEN_APPROVED;
                        report.update_time     = Tools.Date.DateHelper.ToUniversalTimeStamp();
                        report.update_user_id  = userId;
                        report.approve_time    = report.update_time;
                        report.approve_user_id = userId;
                        rptDal.Update(report);
                        OperLogBLL.OperLogUpdate(OperLogBLL.CompareValue <sdk_work_entry_report>(rptOld, report), report.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SDK_WORK_RECORD, "工时表审批");
                    }
                }
            }

            return(appCnt);
        }