/// <summary>
        /// 添加
        /// </summary>
        /// <param name="workReportEntity">实体</param>
        /// <returns>主键</returns>
        private string AddEntity(BaseWorkReportEntity workReportEntity)
        {
            string returnValue = string.Empty;
            BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper);
            string sequence = sequenceManager.GetSequence(BaseWorkReportTable.TableName);

            workReportEntity.SortCode = sequence;

            //获取职员的部门主键和公司主键
            BaseStaffManager staffManager = new BaseStaffManager(DbHelper, UserInfo);
            string           CompanyId    = staffManager.GetProperty(workReportEntity.StaffId, BaseStaffTable.FieldCompanyId);
            string           DepartmentId = staffManager.GetProperty(workReportEntity.StaffId, BaseStaffTable.FieldDepartmentId);

            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);

            sqlBuilder.BeginInsert(BaseWorkReportTable.TableName);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldId, sequence);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldCompanyId, CompanyId);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldDepartmentId, DepartmentId);
            this.SetEntity(sqlBuilder, workReportEntity);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldCreateUserId, UserInfo.Id);
            sqlBuilder.SetDBNow(BaseWorkReportTable.FieldCreateOn);
            returnValue = sqlBuilder.EndInsert() > 0 ? sequence : string.Empty;
            return(returnValue);
        }
        /// <summary>
        /// 更新一条记录
        /// </summary>
        /// <param name="workReportEntity">实体</param>
        /// <param name="statusCode">返回状态码</param>
        /// <returns>影响行数</returns>
        public int Update(BaseWorkReportEntity workReportEntity, out string statusCode)
        {
            int returnValue = 0;

            // 检查是否已被其他人修改
            //if (DbLogic.IsModifed(DbHelper, BaseWorkReportTable.TableName, workReportEntity.Id, workReportEntity.ModifiedUserId, workReportEntity.ModifiedOn))
            //{
            //    // 数据已经被修改
            //    statusCode = StatusCode.ErrorChanged.ToString();
            //}

            // 进行更新操作
            returnValue = this.UpdateEntity(workReportEntity);
            if (returnValue == 1)
            {
                statusCode = StatusCode.OKUpdate.ToString();
            }
            else
            {
                // 数据可能被删除
                statusCode = StatusCode.ErrorDeleted.ToString();
            }

            return(returnValue);
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="workReportEntity">实体</param>
        /// <param name="statusCode">返回状态码</param>
        /// <returns>返回</returns>
        public string Add(BaseWorkReportEntity workReportEntity, out string statusCode)
        {
            string returnValue = string.Empty;

            returnValue = this.AddEntity(workReportEntity);
            // 运行成功
            statusCode = StatusCode.OKAdd.ToString();
            return(returnValue);
        }
        /// <summary>
        /// 更新实体
        /// </summary>
        /// <param name="workReportEntity">实体</param>
        /// <returns>影响行数</returns>
        public int UpdateEntity(BaseWorkReportEntity workReportEntity)
        {
            SQLBuilder sqlBuilder = new SQLBuilder(DbHelper);

            sqlBuilder.BeginUpdate(BaseWorkReportTable.TableName);
            this.SetEntity(sqlBuilder, workReportEntity);
            sqlBuilder.SetValue(BaseWorkReportTable.FieldModifiedUserId, UserInfo.Id);
            sqlBuilder.SetDBNow(BaseWorkReportTable.FieldModifiedOn);
            sqlBuilder.SetWhere(BaseWorkReportTable.FieldId, workReportEntity.Id);
            return(sqlBuilder.EndUpdate());
        }
 /// <summary>
 /// 设置实体
 /// </summary>
 /// <param name="sqlBuilder">SQL生成器</param>
 /// <param name="workReportEntity">实体</param>
 private void SetEntity(SQLBuilder sqlBuilder, BaseWorkReportEntity workReportEntity)
 {
     sqlBuilder.SetValue(BaseWorkReportTable.FieldWorkDate, workReportEntity.WorkDate);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldCategoryId, workReportEntity.CategoryId);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldContent, workReportEntity.Content);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldManHour, workReportEntity.ManHour);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldProjectId, workReportEntity.ProjectId);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldStaffId, workReportEntity.StaffId);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldEnabled, workReportEntity.Enabled);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldAuditStaffId, workReportEntity.AuditStaffId);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldScore, workReportEntity.Score);
     sqlBuilder.SetValue(BaseWorkReportTable.FieldDescription, workReportEntity.Description);
 }
        /// <summary>
        /// 批量保存
        /// </summary>
        /// <param name="dataTable">数据表</param>
        /// <returns>影响行数</returns>
        public override int BatchSave(DataTable dataTable)
        {
            int returnValue = 0;
            BaseWorkReportEntity workReportEntity = new BaseWorkReportEntity();

            foreach (DataRow dataRow in dataTable.Rows)
            {
                if (dataRow.RowState == DataRowState.Modified)
                {
                    workReportEntity.GetFrom(dataRow);
                    returnValue += this.UpdateEntity(workReportEntity) > 0 ? 1 : 0;
                }
                if (dataRow.RowState == DataRowState.Unchanged)
                {
                    continue;
                }
                if (dataRow.RowState == DataRowState.Detached)
                {
                    continue;
                }
            }
            return(returnValue);
        }