diff --git a/APT.BaseData.Domain/Entities/FM/T_FM_DEPARTMENT_SCHEDULING.cs b/APT.BaseData.Domain/Entities/FM/T_FM_DEPARTMENT_SCHEDULING.cs
index 94678c3..b0e395f 100644
--- a/APT.BaseData.Domain/Entities/FM/T_FM_DEPARTMENT_SCHEDULING.cs
+++ b/APT.BaseData.Domain/Entities/FM/T_FM_DEPARTMENT_SCHEDULING.cs
@@ -14,7 +14,7 @@ namespace APT.BaseData.Domain.Entities.FM
         [Description("节点ID")]
 
         [DataFieldForeignKey("Nav_DepartMent","Nav_DepartmentScheduling")]
-        public Guid DEPARTMENT_ID { get; set; }
+        public Guid? DEPARTMENT_ID { get; set; }
 
         [Description("日历配置ID")]
         [DataFieldForeignKey("Nav_DepartmentCalendarConfig")]
@@ -33,7 +33,7 @@ namespace APT.BaseData.Domain.Entities.FM
 
         [Description("班次ID")]
         [DataFieldForeignKey("Nav_Class")]
-        public Guid CLASS_ID { get; set; }
+        public Guid? CLASS_ID { get; set; }
 
         [Description("班组ID")]
         [DataFieldForeignKey("Nav_Team")]
diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
index b65d647..e1cf4e4 100644
--- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
+++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs
@@ -15,9 +15,11 @@ using APT.MS.Domain.Entities.HM;
 using APT.MS.Domain.Entities.PF;
 using APT.MS.Domain.Entities.SC.SC;
 using APT.MS.Domain.Enums;
+using Google.Protobuf.Collections;
 using InfluxData.Net.InfluxDb.Models.Responses;
 using MySqlX.XDevAPI.Common;
 using NPOI.SS.Formula.Functions;
+using Org.BouncyCastle.Ocsp;
 using Org.BouncyCastle.Utilities;
 using System;
 using System.Collections.Generic;
@@ -5318,7 +5320,7 @@ namespace APT.BaseData.Services.DomainServices
         ///  
         private bool PersonalApprove(string id)
         {
-            var entity = GetEntity(id);
+            var entity = GetEntity(id, new string[] { "Nav_Details.Nav_Areas", "Nav_Details.Nav_Identifyings" });
             entity.STATUS = FOPreMeetingStatusEnum.归档;
             T_HM_NOTICE_RELEASE model = new T_HM_NOTICE_RELEASE();
             List noticefiles = new List();
@@ -5392,6 +5394,217 @@ namespace APT.BaseData.Services.DomainServices
                 sendUser = (Guid)GetEntity(t => t.NAME == "综合部").USER_ID;
                 sendUserName = GetEntity(sendUser.ToString()).NAME;
             }
+            else
+            {
+                Guid depId = Guid.Empty;
+                List risks = new List();
+                List listRiskArea = new List();
+                List listRiskIdentifyings = new List();
+                List listRiskDetails = new List();
+                List hazards = new List();
+                List listHazardDetails = new List();
+                List listHazardIdentifyings = new List();
+                List listHazardArea = new List();
+                List taskUsers = new List();
+                List sendNoticeList = null;
+                var departmentFilter = new BaseFilter(orgId);
+                var userIds = entity.Nav_Details.Where(t => t.IS_DELETED == false).Select(t => t.CHARGE_USER_ID);
+                var users = GetEntities(t => userIds.Contains(t.ID) || t.APPROVE_ROLE_ID != null, new BaseFilter(entity.ORG_ID));
+                var depts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
+                var riskDetails = entity.Nav_Details.Where(t => t.IS_DELETED == false && t.RISK_TYPE == HMRiskTypeEnmu.危险源辨识);
+                var hazardDetails = entity.Nav_Details.Where(t => t.IS_DELETED == false && t.RISK_TYPE == HMRiskTypeEnmu.职业危害辨识);
+                var noticeTitles = new List();
+                var noticeUserIds = new List();
+                var noticeUserNames = new List();
+                var noticeDataIds = new List();
+                var noticeFormCodes = new List();
+                SystemCodeFilter riskCode = new SystemCodeFilter
+                {
+                    CodeType = (int)PFCodeRuleType.风险辨识任务编号,
+                    Count = riskDetails.Count(),
+                    OrgId = entity.ORG_ID
+                };
+                var riskCodes = CodeRuleService.NewGenSerial(riskCode);
+                var riskCodeList = riskCodes.Split(new char[] { ',' });
+                SystemCodeFilter hazardCode = new SystemCodeFilter
+                {
+                    CodeType = (int)PFCodeRuleType.风险辨识任务编号,
+                    Count = hazardDetails.Count(),
+                    OrgId = entity.ORG_ID
+                };
+                var hazardCodes = CodeRuleService.NewGenSerial(hazardCode);
+                var hazardCodeList = hazardCodes.Split(new char[] { ',' });
+                int riskIndex = 0;
+                foreach (var riskDetail in riskDetails)
+                {
+                    T_HM_RISK_TASK riskTask = new T_HM_RISK_TASK();
+                    riskTask.ID = Guid.NewGuid();
+                    var user = users.FirstOrDefault(t => t.ID == riskDetail.CHARGE_USER_ID);
+                    if (user != null)
+                        riskTask.INITIATING_DEPARTMENT = user.DEPARTMENT_ID;
+                    riskTask.CODE = riskCodeList[riskIndex];
+                    riskIndex++;
+                    riskTask.START_TIME = (DateTime)riskDetail.START_TIME;
+                    riskTask.END_TIME = (DateTime)riskDetail.END_TIME;
+                    riskTask.LEVEL = riskDetail.LEVEL;
+                    riskTask.ORG_ID = riskDetail.ORG_ID;
+                    riskTask.LIABLE_USER_ID = riskDetail.CHARGE_USER_ID;
+                    riskTask.REQUEST_ID = GetEntity(t => true).ID;
+                    riskTask.PLAN_ID = entity.ID;
+                    if (riskDetail.Nav_Areas.Where(t => t.IS_DELETED == false).Any())
+                    {
+                        var levels = riskDetail.LEVEL.Split("_").Where(t => t != "");
+                        var Nav_Areas = riskDetail.Nav_Areas.Where(t => t.IS_DELETED == false);
+                        foreach (var Area in Nav_Areas)
+                        {
+                            T_HM_RISK_TASK_AREA area = new T_HM_RISK_TASK_AREA();
+                            area.ORG_ID = entity.ORG_ID;
+                            area.AREA_ID = Area.AREA_ID;
+                            area.TASK_ID = riskTask.ID;
+                            listRiskArea.Add(area);
+                            foreach (var level in levels)
+                            {
+                                var sendUsers = GetEntities(t => t.AREA_ID == Area.AREA_ID && t.Nav_DepartmentLiable.IS_DELETED == false && t.DEPARTMENT_LIABLE_ID != null && t.LEVEL == (FMDepartmentType)int.Parse(level), new BaseFilter(entity.ORG_ID)).Select(t => new { t.DEPARTMENT_LIABLE_ID }).Distinct();
+                                if (sendUsers.Any())
+                                {
+                                    T_HM_RISK_TASK_DETAIL taskDetail = new T_HM_RISK_TASK_DETAIL();
+                                    taskDetail.ORG_ID = riskDetail.ORG_ID;
+                                    taskDetail.AREA_ID = Area.AREA_ID;
+                                    taskDetail.LEVEL = (FMDepartmentType)int.Parse(level);
+                                    taskDetail.TASK_ID = riskTask.ID;
+                                    taskDetail.ID = Guid.NewGuid();
+                                    var record_user = Guid.Empty;
+                                    var index = 0;
+                                    foreach (var sendUserItem in sendUsers)
+                                    {
+                                        T_HM_RISK_TASK_USER taskUser = new T_HM_RISK_TASK_USER();
+                                        taskUser.TASK_DETAIL_ID = taskDetail.ID;
+                                        depId = (Guid)sendUserItem.DEPARTMENT_LIABLE_ID;
+                                        var depChargeUser = depts.FirstOrDefault(t => t.ID == depId);
+                                        if (depChargeUser.USER_ID == null)
+                                        {
+                                            throw new Exception(depChargeUser.NAME + "在组织架构中未找到负责人!");
+                                        }
+                                        taskUser.USER_ID = (Guid)depChargeUser.USER_ID;
+                                        var taskUsersCount = taskUsers.Count(t => t.TASK_DETAIL_ID == taskDetail.ID && t.USER_ID == taskUser.USER_ID);//查询是否有插入避免豫鹭有重复人员添加
+                                        if (taskUsersCount == 0)
+                                        {
+                                            taskUser.ORG_ID = entity.ORG_ID;
+                                            taskUser.ROW_NO = index;
+                                            if (index == 0)
+                                            {
+                                                record_user = taskUser.USER_ID;
+                                            }
+                                            index++;
+                                            taskUsers.Add(taskUser);
+                                        }
+                                    }
+                                    taskDetail.RECORD_USER_ID = record_user;
+                                    taskDetail.DEAL_STATUS = (int)FOUserShiftStatusEnum.待处理;
+                                    listRiskDetails.Add(taskDetail);
+                                }
+                            }
+
+                        }
+
+                        riskDetail.Nav_Identifyings.ForEach(t =>
+                        {
+                            T_HM_RISK_TASK_IDENTIFYING identifying = new T_HM_RISK_TASK_IDENTIFYING();
+                            identifying.ORG_ID = entity.ORG_ID;
+                            identifying.IDENTIFYING_ID = t.IDENTIFYING_ID;
+                            identifying.TASK_ID = riskTask.ID;
+                            listRiskIdentifyings.Add(identifying);
+
+                        });
+                    }
+                    noticeTitles.Add("危险源辨识任务");
+                    noticeDataIds.Add(riskTask.ID);
+                    noticeUserIds.Add((Guid)riskDetail.CHARGE_USER_ID);
+                    noticeUserNames.Add(user.NAME);
+                    noticeFormCodes.Add("HM062");
+                    risks.Add(riskTask);
+                }
+                int hazardIndex = 0;
+                foreach (var hazardDetail in hazardDetails)
+                {
+                    T_HM_HAZARD_TASK hazardTask = new T_HM_HAZARD_TASK();
+                    hazardTask.ID = Guid.NewGuid();
+                    var user = users.FirstOrDefault(t => t.ID == hazardDetail.CHARGE_USER_ID);
+                    if (user != null)
+                        hazardTask.INITIATING_DEPARTMENT = user.DEPARTMENT_ID;
+                    hazardTask.CODE = hazardCodeList[hazardIndex];
+                    hazardTask.START_TIME = (DateTime)hazardDetail.START_TIME;
+                    hazardTask.END_TIME = (DateTime)hazardDetail.END_TIME;
+                    hazardTask.LEVEL = "0";
+                    hazardTask.ORG_ID = entity.ORG_ID;
+                    hazardTask.LIABLE_USER_ID = hazardDetail.CHARGE_USER_ID;
+                    hazardTask.PLAN_ID = entity.ID;
+                    hazardDetail.Nav_Areas.ForEach(t =>
+                    {
+                        T_HM_HAZARD_TASK_AREA area = new T_HM_HAZARD_TASK_AREA();
+                        area.ORG_ID = entity.ORG_ID;
+                        area.AREA_ID = t.AREA_ID;
+                        area.TASK_ID = hazardTask.ID;
+                        listHazardArea.Add(area);
+                        T_HM_HAZARD_TASK_DETAIL taskDetail = new T_HM_HAZARD_TASK_DETAIL();
+                        taskDetail.ORG_ID = entity.ORG_ID;
+                        taskDetail.AREA_ID = t.AREA_ID;
+                        taskDetail.TASK_ID = hazardTask.ID;
+                        taskDetail.RECORD_USER_ID = null;
+                        taskDetail.DEAL_STATUS = (int)FOUserShiftStatusEnum.待处理;
+                        listHazardDetails.Add(taskDetail);
+                    });
+
+                    if (hazardDetail.Nav_Identifyings != null && hazardDetail.Nav_Identifyings.Any())
+                    {
+                        hazardDetail.Nav_Identifyings.ForEach(t =>
+                        {
+                            T_HM_HAZARD_TASK_IDENTIFYING identifying = new T_HM_HAZARD_TASK_IDENTIFYING();
+                            identifying.ORG_ID = entity.ORG_ID;
+                            identifying.IDENTIFYING_ID = t.IDENTIFYING_ID;
+                            identifying.TASK_ID = hazardTask.ID;
+                            listHazardIdentifyings.Add(identifying);
+                        });
+                    }
+                    noticeTitles.Add("职业危害辨识任务");
+                    noticeDataIds.Add(hazardTask.ID);
+                    noticeUserIds.Add((Guid)hazardDetail.CHARGE_USER_ID);
+                    noticeUserNames.Add(user.NAME);
+                    noticeFormCodes.Add("HM102");
+                    hazards.Add(hazardTask);
+                }
+                sendNoticeList = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles, noticeDataIds, entity.ORG_ID, noticeUserIds, noticeUserNames, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, noticeFormCodes);
+                this.UnifiedCommit(() =>
+                {
+                    if (entity != null)
+                        UpdateEntityNoCommit(entity);
+                    if (files != null && files.Any())
+                        BantchSaveEntityNoCommit(files);
+                    if (entity != null)
+                        UpdateEntityNoCommit(entity);   //保存主表
+                    if (risks.Any())
+                        BantchAddEntityNoCommit(risks);
+                    if (listRiskArea.Any())
+                        BantchAddEntityNoCommit(listRiskArea);
+                    if (listRiskIdentifyings.Any())
+                        BantchAddEntityNoCommit(listRiskIdentifyings);
+                    if (listRiskDetails.Any())
+                        BantchAddEntityNoCommit(listRiskDetails);
+                    if (hazards.Any())
+                        BantchAddEntityNoCommit(hazards);
+                    if (listHazardArea.Any())
+                        BantchAddEntityNoCommit(listHazardArea);
+                    if (listHazardIdentifyings.Any())
+                        BantchAddEntityNoCommit(listHazardIdentifyings);
+                    if (listHazardDetails.Any())
+                        BantchAddEntityNoCommit(listHazardDetails);
+                    if (taskUsers.Any())
+                        BantchAddEntityNoCommit(taskUsers);
+                    if (sendNoticeList != null && sendNoticeList.Any())
+                        BantchAddEntityNoCommit(sendNoticeList);
+                });
+                return true;
+            }
             model.RELEASE_USER_ID = sendUser;
             NotificationTaskService.SendNotificationTask("风险评价计划发布", model.ID, orgId, sendUser, sendUserName,
                                     DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.审批, "HM002", () =>
diff --git a/APT.Data.Migrations/Migrations/20240527032720_wjn202405-2701.Designer.cs b/APT.Data.Migrations/Migrations/20240527032720_wjn202405-2701.Designer.cs
new file mode 100644
index 0000000..bcac95b
--- /dev/null
+++ b/APT.Data.Migrations/Migrations/20240527032720_wjn202405-2701.Designer.cs
@@ -0,0 +1,61925 @@
+// 
+using System;
+using APT.Migrations;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+namespace APT.Data.Migrations.Migrations
+{
+    [DbContext(typeof(MigrationContext))]
+    [Migration("20240527032720_wjn202405-2701")]
+    partial class wjn2024052701
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("Relational:MaxIdentifierLength", 128)
+                .HasAnnotation("ProductVersion", "5.0.12")
+                .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_HMI", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CODE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("REMARK")
+                        .HasMaxLength(300)
+                        .HasColumnType("nvarchar(300)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_BD_HMI");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_PICTURE", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CODE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("DATA_TYPE")
+                        .HasColumnType("int");
+
+                    b.Property("ENABLE_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("ENUM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("ENUM_ITEM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("REMARK")
+                        .HasMaxLength(100)
+                        .HasColumnType("nvarchar(100)");
+
+                    b.Property("SRC_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ENUM_ID");
+
+                    b.HasIndex("ENUM_ITEM_ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.HasIndex("CODE", "ORG_ID")
+                        .IsUnique()
+                        .HasFilter("[CODE] IS NOT NULL");
+
+                    b.ToTable("T_BD_PICTURE");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_PICTURE_FILE", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IMG_FILE_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IMG_FILE_PATH")
+                        .HasMaxLength(300)
+                        .HasColumnType("nvarchar(300)");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PICTURE_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("SRC_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("IMG_FILE_ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.HasIndex("PICTURE_ID");
+
+                    b.ToTable("T_BD_PICTURE_FILE");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_PLACE", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("IS_LEAF")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property("NAME_ACRONYM")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property("NUM")
+                        .HasColumnType("int");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PARENT_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PROP")
+                        .HasColumnType("int");
+
+                    b.Property("TEXT")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.HasIndex("PARENT_ID");
+
+                    b.ToTable("T_BD_PLACE");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_SERVER_INFO", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CODE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("CPU")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENABLE_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IP")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MEMORY")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("REMARK")
+                        .HasMaxLength(100)
+                        .HasColumnType("nvarchar(100)");
+
+                    b.Property("STORAGE")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_BD_SERVER_INFO");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_SYSTEM_INFO", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CONCURRENCY")
+                        .HasColumnType("int");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PV")
+                        .HasColumnType("int");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_BD_SYSTEM_INFO");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.BD.T_BD_WORD_TEMPLATE", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CODE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("DATA_API")
+                        .HasMaxLength(100)
+                        .HasColumnType("nvarchar(100)");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("REMARK")
+                        .HasMaxLength(300)
+                        .HasColumnType("nvarchar(300)");
+
+                    b.Property("RET_ENTITY_TYPE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_BD_WORD_TEMPLATE");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_API", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("DESCRIBE")
+                        .HasMaxLength(500)
+                        .HasColumnType("nvarchar(500)");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("METHOD")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("NAME")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_FM_API");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_AUTO_PRINT_RECORD", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PRINTER_COMPUTER_NAME")
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property("PRINTER_NAME")
+                        .HasMaxLength(200)
+                        .HasColumnType("nvarchar(200)");
+
+                    b.Property("PRINT_NUMBER")
+                        .HasColumnType("int");
+
+                    b.Property("PRINT_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("PRINT_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("REMARK")
+                        .HasMaxLength(200)
+                        .HasColumnType("nvarchar(200)");
+
+                    b.Property("SOURCE_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("SOURCE_TYPE")
+                        .HasColumnType("int");
+
+                    b.Property("TEMPLET_FILE_NAME")
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_FM_AUTO_PRINT_RECORD");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_AUTO_PRINT_RECORD_DETAIL", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("AUTO_PRINT_RECORD_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("PARAM_NAME")
+                        .HasMaxLength(200)
+                        .HasColumnType("nvarchar(200)");
+
+                    b.Property("PARAM_VALUE")
+                        .HasMaxLength(800)
+                        .HasColumnType("nvarchar(800)");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("AUTO_PRINT_RECORD_ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_FM_AUTO_PRINT_RECORD_DETAIL");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_BASE_ADD", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("ADDRESS")
+                        .HasMaxLength(200)
+                        .HasColumnType("nvarchar(200)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("HIERARCHY")
+                        .HasMaxLength(20)
+                        .HasColumnType("nvarchar(20)");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("LATITIDE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("LONGITUDE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("MODIFIER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("MODIFY_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("ORG_ID")
+                        .IsRequired()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("ID");
+
+                    b.HasIndex("ORG_ID");
+
+                    b.ToTable("T_FM_BASE_ADD");
+                });
+
+            modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_BASE_CONFIG", b =>
+                {
+                    b.Property("ID")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("APP_CONS_PICTURE_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("BACK_PIC_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("BOOK_TIME")
+                        .HasColumnType("int");
+
+                    b.Property("CALENDAR_DAYS")
+                        .HasColumnType("int");
+
+                    b.Property("CODE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("CONTINUOUS_CORRENT")
+                        .HasColumnType("int");
+
+                    b.Property("CONTINUOUS_CORRENT_WARING")
+                        .HasColumnType("int");
+
+                    b.Property("CORRENT_OK")
+                        .HasColumnType("int");
+
+                    b.Property("CORRENT_TOTAL")
+                        .HasColumnType("int");
+
+                    b.Property("COST_BENCHMARK")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property("CREATER_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("CREATE_TIME")
+                        .HasColumnType("datetime2");
+
+                    b.Property("CURRENT_VOLTAGE_HMI_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("DOWN_PERCENT")
+                        .HasColumnType("decimal(18,2)");
+
+                    b.Property("ENTITY_ORG_TPYE")
+                        .HasColumnType("int");
+
+                    b.Property("EXCEL_TYPE")
+                        .HasMaxLength(30)
+                        .HasColumnType("nvarchar(30)");
+
+                    b.Property("FILE_LEN")
+                        .HasColumnType("int");
+
+                    b.Property("FILE_PATH")
+                        .HasMaxLength(50)
+                        .HasColumnType("nvarchar(50)");
+
+                    b.Property("FILE_TYPE")
+                        .HasMaxLength(100)
+                        .HasColumnType("nvarchar(100)");
+
+                    b.Property("FLOW_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("FLOW_SEND_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FLOW_STATUS")
+                        .HasColumnType("int");
+
+                    b.Property("FORM_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("HOME_HMI_ID")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property("IS_CHECK_MESSAGE")
+                        .HasColumnType("bit");
+
+                    b.Property("IS_DELETED")
+                        .HasColumnType("bit");
+
+                    b.Property("IS_MENU_SHRINK")
+                        .HasColumnType("bit");
+
+                    b.Property("IS_PRODUCT_CAL")
+                        .HasColumnType("bit");
+
+                    b.Property("IS_USER_LOG")
+                        .HasColumnType("bit");
+
+                    b.Property("KPI_CAL_TYPE")
+                        .HasColumnType("int");
+
+                    b.Property("LEVEL")
+                        .HasColumnType("int");
+
+                    b.Property