sunpengfei
2025-08-08 32288af3e5f12bc48d8360114c872fde5d9ff4a8
FlexJobApi.Core/Entities/Tasks/TaskInfo.cs
@@ -1,4 +1,7 @@
using System;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
@@ -10,7 +13,7 @@
    /// <summary>
    /// 任务信息
    /// </summary>
    public class TaskInfo : CommonEntity
    public class TaskInfo : CommonEntity, IEntityTypeBuilder<TaskInfo>
    {
        public TaskInfo()
        {
@@ -29,13 +32,18 @@
        public Enterprise Enterprise { get; set; }
        /// <summary>
        /// 任务单号
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 任务名称
        /// </summary>
        [Required]
        public string Name { get; set; }
        /// <summary>
        /// 计费方式
        /// 结算周期
        /// </summary>
        public EnumBillingMethod BillingMethod { get; set; }
@@ -75,19 +83,44 @@
        public List<TaskInfoCredentialLimit> CredentialLimits { get; set; }
        /// <summary>
        /// 任务地点所属区域Id
        /// 任务地点所属省份编号
        /// </summary>
        public Guid CityId { get; set; }
        public string ProvinceCode { get; set; }
        /// <summary>
        /// 任务地点所属区域
        /// 任务地点所属省份
        /// </summary>
        public DictionaryData Province { get; set; }
        /// <summary>
        /// 任务地点所属城市编号
        /// </summary>
        public string CityCode { get; set; }
        /// <summary>
        /// 任务地点所属城市
        /// </summary>
        public DictionaryData City { get; set; }
        /// <summary>
        /// 任务地点名称
        /// </summary>
        public string AddressName { get; set; }
        /// <summary>
        /// 任务地点详细地址
        /// </summary>
        public string Address { get; set; }
        public string AddressDetail { get; set; }
        /// <summary>
        /// 经度
        /// </summary>
        public decimal? Longitude { get; set; }
        /// <summary>
        /// 纬度
        /// </summary>
        public decimal? Latitude { get; set; }
        /// <summary>
        /// 任务开始时间
@@ -98,5 +131,46 @@
        /// 任务结束时间
        /// </summary>
        public DateTime EndTime { get; set; }
        /// <summary>
        /// 任务状态
        /// </summary>
        public EnumTaskStatus Status { get; set; }
        /// <summary>
        /// 发布状态
        /// </summary>
        public EnumTaskReleaseStatus ReleaseStatus { get; set; }
        /// <summary>
        /// 验收状态
        /// </summary>
        public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
        /// <summary>
        /// 结算状态
        /// </summary>
        public EnumTaskSettlementStatus? SettlementStatus { get; set; }
        /// <summary>
        /// 推荐状态
        /// </summary>
        public EnumTaskRecommendStatus RecommendStatus { get; set; }
        public void Configure(EntityTypeBuilder<TaskInfo> entityBuilder, DbContext dbContext, Type dbContextLocator)
        {
            entityBuilder
                .HasOne(it => it.Province)
                .WithMany()
                .HasForeignKey(it => it.ProvinceCode)
                .HasPrincipalKey(it => it.Code)
                .OnDelete(DeleteBehavior.Restrict);
            entityBuilder
                .HasOne(it => it.City)
                .WithMany()
                .HasForeignKey(it => it.CityCode)
                .HasPrincipalKey(it => it.Code)
                .OnDelete(DeleteBehavior.Restrict);
        }
    }
}