This commit is contained in:
何美荣 2025-11-13 15:34:03 +08:00
parent 6877ccc125
commit 4d98f1efd9
10 changed files with 271135 additions and 30 deletions

View File

@ -33,7 +33,9 @@ namespace APT.BaseData.Data.Mapping.FM
builder.Ignore(t => t.TEAMNAME); builder.Ignore(t => t.TEAMNAME);
builder.Ignore(t => t.Team); builder.Ignore(t => t.Team);
builder.Property(t => t.ID_CARD) builder.Property(t => t.ID_CARD)
.HasMaxLength(50); .HasMaxLength(50);
builder.Property(t => t.USER_TYPE_NAME)
.HasMaxLength(50);
builder.HasOne(t => t.Nav_ApproveRole).WithMany().HasForeignKey(t => t.APPROVE_ROLE_ID).OnDelete(DeleteBehavior.Restrict); builder.HasOne(t => t.Nav_ApproveRole).WithMany().HasForeignKey(t => t.APPROVE_ROLE_ID).OnDelete(DeleteBehavior.Restrict);
builder.Ignore(t => t.TEAM_ID); builder.Ignore(t => t.TEAM_ID);
builder.Ignore(t => t.Tenant); builder.Ignore(t => t.Tenant);

View File

@ -304,6 +304,13 @@ namespace APT.BaseData.Domain.Entities.FM
/// </summary> /// </summary>
[Description("证书")] [Description("证书")]
[DataFieldIngore] [DataFieldIngore]
public virtual ICollection<T_FM_PERSON_CERTIFICATE_FILE> Nav_CertificateFiles { get; set; } public virtual ICollection<T_FM_PERSON_CERTIFICATE_FILE> Nav_CertificateFiles { get; set; }
[Description("人员类别")]
public Guid? USER_TYPE_ID { get; set; }
[Description("人员类别名称")]
[DataFieldLength(50)]
public string USER_TYPE_NAME { get; set; }
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class hmr2025111302 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_FO_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_USER");
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_USER_T_FO_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_WB_USER");
migrationBuilder.AddColumn<Guid>(
name: "USER_TYPE_ID",
table: "T_FM_USER",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "USER_TYPE_NAME",
table: "T_FM_USER",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_OG_RELATED_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_USER",
column: "USER_TYPE_ID",
principalTable: "T_OG_RELATED_USER_TYPE",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_USER_T_OG_RELATED_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_WB_USER",
column: "USER_TYPE_ID",
principalTable: "T_OG_RELATED_USER_TYPE",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_OG_RELATED_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_USER");
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_USER_T_OG_RELATED_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_WB_USER");
migrationBuilder.DropColumn(
name: "USER_TYPE_ID",
table: "T_FM_USER");
migrationBuilder.DropColumn(
name: "USER_TYPE_NAME",
table: "T_FM_USER");
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_FO_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_USER",
column: "USER_TYPE_ID",
principalTable: "T_FO_USER_TYPE",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_USER_T_FO_USER_TYPE_USER_TYPE_ID",
table: "T_FO_FIRE_JOB_WB_USER",
column: "USER_TYPE_ID",
principalTable: "T_FO_USER_TYPE",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class hmr2025111303 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "USER_TYPE_NAME",
table: "T_FM_USER",
type: "nvarchar(50)",
maxLength: 50,
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "USER_TYPE_NAME",
table: "T_FM_USER",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(50)",
oldMaxLength: 50,
oldNullable: true);
}
}
}

View File

@ -6852,6 +6852,13 @@ namespace APT.Data.Migrations.Migrations
b.Property<Guid?>("T_BI_AREA_TREEID") b.Property<Guid?>("T_BI_AREA_TREEID")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("USER_TYPE_ID")
.HasColumnType("uniqueidentifier");
b.Property<string>("USER_TYPE_NAME")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("WORKINGYEAR") b.Property<int>("WORKINGYEAR")
.HasColumnType("int"); .HasColumnType("int");
@ -107965,7 +107972,7 @@ namespace APT.Data.Migrations.Migrations
.HasForeignKey("USER_ID") .HasForeignKey("USER_ID")
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.MS.Domain.Entities.FO.T_FO_USER_TYPE", "Nav_UserType") b.HasOne("APT.MS.Domain.Entities.OG.T_OG_RELATED_USER_TYPE", "Nav_UserType")
.WithMany() .WithMany()
.HasForeignKey("USER_TYPE_ID") .HasForeignKey("USER_TYPE_ID")
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
@ -108233,7 +108240,7 @@ namespace APT.Data.Migrations.Migrations
.HasForeignKey("USER_ID") .HasForeignKey("USER_ID")
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.MS.Domain.Entities.FO.T_FO_USER_TYPE", "Nav_UserType") b.HasOne("APT.MS.Domain.Entities.OG.T_OG_RELATED_USER_TYPE", "Nav_UserType")
.WithMany() .WithMany()
.HasForeignKey("USER_TYPE_ID") .HasForeignKey("USER_TYPE_ID")
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);

View File

@ -36,7 +36,7 @@ namespace APT.MS.Domain.Entities.FO
public Guid? USER_TYPE_ID { get; set; } public Guid? USER_TYPE_ID { get; set; }
[Description("导航属性:人员类别")] [Description("导航属性:人员类别")]
public virtual T_FO_USER_TYPE Nav_UserType { get; set; } public virtual T_OG_RELATED_USER_TYPE Nav_UserType { get; set; }
[Description("证件名称")] [Description("证件名称")]
[DataFieldLength(100)] [DataFieldLength(100)]

View File

@ -1,5 +1,6 @@
using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core; using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Enums; using APT.MS.Domain.Enums;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -28,7 +29,7 @@ namespace APT.MS.Domain.Entities.FO
public Guid? USER_TYPE_ID { get; set; } public Guid? USER_TYPE_ID { get; set; }
[Description("导航属性:人员类别")] [Description("导航属性:人员类别")]
public virtual T_FO_USER_TYPE Nav_UserType { get; set; } public virtual T_OG_RELATED_USER_TYPE Nav_UserType { get; set; }
[Description("证件名称")] [Description("证件名称")]
[DataFieldLength(100)] [DataFieldLength(100)]

View File

@ -1526,6 +1526,10 @@ namespace APT.PP.WebApi.Controllers.Api
{ {
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人")); user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
} }
if (user == null)
{
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("总经理"));
}
if (user != null) if (user != null)
{ {
//判断是否已触发过 //判断是否已触发过
@ -1653,33 +1657,20 @@ namespace APT.PP.WebApi.Controllers.Api
if (user == null) if (user == null)
{ {
//负责人 //负责人
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID; var departUser = departs.FirstOrDefault(t => t.ID == de);
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null && departUser.USER_ID != null) if (departUser != null && departUser.USER_ID != null)
{ {
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID); user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
} }
} else
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (user == null)
{
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
if (parentId != null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); //找公司
if (user == null) var companyInfo = departs.FirstOrDefault(t => t.ID == departUser?.PARENT_ID);
if (companyInfo != null && companyInfo.USER_ID != null)
{ {
//负责人 user = users.FirstOrDefault(t => t.ID == companyInfo.USER_ID);
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null)
{
if (departUser.USER_ID != null)
{
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
}
}
} }
} }
} }
if (user != null) if (user != null)
{ {
@ -1809,12 +1800,13 @@ namespace APT.PP.WebApi.Controllers.Api
//每个车间汇总班组和车间 //每个车间汇总班组和车间
foreach (var de in tempIds) foreach (var de in tempIds)
{ {
//车间
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null) if (user == null)
{ {
//负责人 //负责人
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID; //var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
var departUser = departs.FirstOrDefault(t => t.ID == parentId); var departUser = departs.FirstOrDefault(t => t.ID == de);
if (departUser != null && departUser.USER_ID!=null) if (departUser != null && departUser.USER_ID!=null)
{ {
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID); user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
@ -1823,21 +1815,31 @@ namespace APT.PP.WebApi.Controllers.Api
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人 //当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (user == null) if (user == null)
{ {
//找部门
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID; var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
if (parentId != null) if (parentId != null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null) if (user == null)
{ {
//负责人 //部门负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId); var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null) if (departUser != null && departUser.USER_ID!=null)
{ {
if (departUser.USER_ID != null) if (departUser.USER_ID != null)
{ {
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID); user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
} }
} }
else
{
//找公司
var companyInfo = departs.FirstOrDefault(t => t.ID == parentId);
if (companyInfo != null && companyInfo.USER_ID != null)
{
user = users.FirstOrDefault(t => t.ID == companyInfo.USER_ID);
}
}
} }
} }
} }