Compare commits

...

2 Commits

Author SHA1 Message Date
wyw
0d0c0de720 Merge branch 'master' of http://121.41.2.71:3000/wyw/mh_jy_safe 2026-06-11 13:51:47 +08:00
wyw
0341748475 1、用户表添加 是否是否组织转移 字段
2、添加组织调整 表单
3、人员启用 添加判断
4、三级安全教育 默认为线下培训 (前端隐藏)
5、人员导入 修改工号去重判断
6、T4 模板替换(奇怪 文本完全一样 生成文件不一样)
2026-06-11 13:51:25 +08:00
20 changed files with 420643 additions and 72 deletions

View File

@ -317,6 +317,12 @@ namespace APT.BaseData.Domain.Entities.FM
/// 是否接收短信
/// </summary>
[Description("是否接收短信")]
public bool ISGETMSG { get; set; } = true;
public bool ISGETMSG { get; set; } = true;
/// <summary>
/// 是否组织转移 组织转移的不能直接启用
/// </summary>
[Description("是否组织转移")]
public bool ISTRANSFER { get; set; } = false;
}
}

View File

@ -0,0 +1,164 @@
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.Infrastructure.Utility;
using APT.MS.Domain.Entities.PF;
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace APT.BaseData.Domain.Entities.FM
{
[Description("公司级用户调度")]
public partial class T_FM_USER_TRANSFER : MesEntityBase
{
/// <summary>
/// 工号
/// </summary>
[Description("工号")]
[DataFieldLength(50)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string CODE { get; set; }
/// <summary>
/// 姓名
/// </summary>
[Description("姓名")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string NAME { get; set; }
/// <summary>
/// 账套
/// </summary>
[Description("账套")]
public Guid? ORG_ID_NEW { get; set; }
/// <summary>
/// 用户
/// </summary>
[Description("用户")]
public Guid USER_ID { get; set; }
/// <summary>
/// 公司名称
/// </summary>
[Description("公司名称")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string COMPANYNAME { get; set; }
/// <summary>
/// 新部门
/// </summary>
[Description("新部门")]
public Guid? DEPARTMENT_ID { get; set; }
/// <summary>
/// 新部门
/// </summary>
[Description("新部门")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string DEPARTMENTNAME { get; set; }
/// <summary>
/// 新岗位
/// </summary>
[Description("新岗位")]
public Guid? POST_ID { get; set; }
/// <summary>
/// 新岗位
/// </summary>
[Description("新岗位")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string POSTNAME { get; set; }
/// <summary>
/// 备注
/// </summary>
[Description("备注")]
[DataFieldLength(100)]
[FormFieldEdit]
public string REMARK { get; set; }
/// <summary>
/// 操作人
/// </summary>
[Description("操作人")]
[DataFieldLength(50)]
public string USERNAME_TRANSFER { get; set; }
/// <summary>
/// 原账套
/// </summary>
[Description("原账套")]
public Guid? ORG_ID_OLD { get; set; }
/// <summary>
/// 公司名称
/// </summary>
[Description("公司名称")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string COMPANYNAME_OLD { get; set; }
/// <summary>
/// 原部门
/// </summary>
[Description("原部门")]
public Guid? DEPARTMENT_ID_OLD { get; set; }
/// <summary>
/// 原部门
/// </summary>
[Description("原部门")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string DEPARTMENTNAME_OLD { get; set; }
/// <summary>
/// 原岗位
/// </summary>
[Description("原岗位")]
public Guid? POST_ID_OLD { get; set; }
/// <summary>
/// 原岗位
/// </summary>
[Description("原岗位")]
[DataFieldLength(100)]
[FormFieldTable]
[FormFieldEdit]
[FormFieldQuery]
public string POSTNAME_OLD { get; set; }
/// <summary>
/// 原用户
/// </summary>
[Description("原用户")]
public Guid USER_ID_OLD { get; set; }
/// <summary>
/// 状态
/// </summary>
[Description("状态")]
[FormFieldQuery]
public Enums.PF.PFStandardStatus STATUS { get; set; }
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,65 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2026060801 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "T_FM_USER_TRANSFER",
columns: table => new
{
ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CODE = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
NAME = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
COMPANYNAME = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
DEPARTMENT_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DEPARTMENTNAME = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
POST_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
POSTNAME = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
REMARK = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
USERNAME_TRANSFER = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: true),
ORG_ID_OLD = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
COMPANYNAME_OLD = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
DEPARTMENT_ID_OLD = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DEPARTMENTNAME_OLD = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
POST_ID_OLD = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
POSTNAME_OLD = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
IS_DELETED = table.Column<bool>(type: "bit", nullable: false),
ORG_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ENTITY_ORG_TPYE = table.Column<int>(type: "int", nullable: false),
FORM_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
FLOW_STATUS = table.Column<int>(type: "int", nullable: false),
FLOW_SEND_STATUS = table.Column<int>(type: "int", nullable: false),
FLOW_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CREATE_TIME = table.Column<DateTime>(type: "datetime2", nullable: true),
MODIFY_TIME = table.Column<DateTime>(type: "datetime2", nullable: true),
CREATER_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
MODIFIER_ID = table.Column<Guid>(type: "uniqueidentifier", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_T_FM_USER_TRANSFER", x => x.ID);
table.ForeignKey(
name: "FK_T_FM_USER_TRANSFER_T_FM_ORGANIZATION_ORG_ID",
column: x => x.ORG_ID,
principalTable: "T_FM_ORGANIZATION",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateIndex(
name: "IX_T_FM_USER_TRANSFER_ORG_ID",
table: "T_FM_USER_TRANSFER",
column: "ORG_ID");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "T_FM_USER_TRANSFER");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2026060901 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "ORG_ID_NEW",
table: "T_FM_USER_TRANSFER",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "STATUS",
table: "T_FM_USER_TRANSFER",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<bool>(
name: "ISTRANSFER",
table: "T_FM_USER",
type: "bit",
nullable: false,
defaultValue: false);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ORG_ID_NEW",
table: "T_FM_USER_TRANSFER");
migrationBuilder.DropColumn(
name: "STATUS",
table: "T_FM_USER_TRANSFER");
migrationBuilder.DropColumn(
name: "ISTRANSFER",
table: "T_FM_USER");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class wyw2026060902 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "USER_ID",
table: "T_FM_USER_TRANSFER",
type: "uniqueidentifier",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
migrationBuilder.AddColumn<Guid>(
name: "USER_ID_OLD",
table: "T_FM_USER_TRANSFER",
type: "uniqueidentifier",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "USER_ID",
table: "T_FM_USER_TRANSFER");
migrationBuilder.DropColumn(
name: "USER_ID_OLD",
table: "T_FM_USER_TRANSFER");
}
}
}

View File

@ -6803,6 +6803,9 @@ namespace APT.Data.Migrations.Migrations
b.Property<bool>("ISGETMSG")
.HasColumnType("bit");
b.Property<bool>("ISTRANSFER")
.HasColumnType("bit");
b.Property<bool>("IS_DELETED")
.HasColumnType("bit");
@ -8443,6 +8446,120 @@ namespace APT.Data.Migrations.Migrations
b.ToTable("T_FM_USER_TEST");
});
modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_USER_TRANSFER", b =>
{
b.Property<Guid>("ID")
.ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier");
b.Property<string>("CODE")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<string>("COMPANYNAME")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("COMPANYNAME_OLD")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("CREATER_ID")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("CREATE_TIME")
.HasColumnType("datetime2");
b.Property<string>("DEPARTMENTNAME")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("DEPARTMENTNAME_OLD")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("DEPARTMENT_ID")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("DEPARTMENT_ID_OLD")
.HasColumnType("uniqueidentifier");
b.Property<int>("ENTITY_ORG_TPYE")
.HasColumnType("int");
b.Property<Guid?>("FLOW_ID")
.HasColumnType("uniqueidentifier");
b.Property<int>("FLOW_SEND_STATUS")
.HasColumnType("int");
b.Property<int>("FLOW_STATUS")
.HasColumnType("int");
b.Property<Guid?>("FORM_ID")
.HasColumnType("uniqueidentifier");
b.Property<bool>("IS_DELETED")
.HasColumnType("bit");
b.Property<Guid?>("MODIFIER_ID")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("MODIFY_TIME")
.HasColumnType("datetime2");
b.Property<string>("NAME")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("ORG_ID")
.IsRequired()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ORG_ID_NEW")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("ORG_ID_OLD")
.HasColumnType("uniqueidentifier");
b.Property<string>("POSTNAME")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("POSTNAME_OLD")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<Guid?>("POST_ID")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("POST_ID_OLD")
.HasColumnType("uniqueidentifier");
b.Property<string>("REMARK")
.HasMaxLength(100)
.HasColumnType("nvarchar(200)");
b.Property<int>("STATUS")
.HasColumnType("int");
b.Property<string>("USERNAME_TRANSFER")
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<Guid>("USER_ID")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("USER_ID_OLD")
.HasColumnType("uniqueidentifier");
b.HasKey("ID");
b.HasIndex("ORG_ID");
b.ToTable("T_FM_USER_TRANSFER");
});
modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_USER_VACATION_SET", b =>
{
b.Property<Guid>("ID")
@ -102675,6 +102792,17 @@ namespace APT.Data.Migrations.Migrations
b.Navigation("Nav_UserPost");
});
modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_USER_TRANSFER", b =>
{
b.HasOne("APT.Infrastructure.Core.T_FM_ORGANIZATION", "Nav_Org")
.WithMany()
.HasForeignKey("ORG_ID")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Nav_Org");
});
modelBuilder.Entity("APT.BaseData.Domain.Entities.FM.T_FM_USER_VACATION_SET", b =>
{
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_Agent")

View File

@ -16302,6 +16302,25 @@ builder.HasOne(t => t.Nav_ImgFile).WithMany().HasForeignKey(t => t.IMG_FILE_ID).
builder.HasOne(t => t.Nav_UserPost).WithMany(t=>t.Nav_UserTests).HasForeignKey(t => t.USER_POST_ID).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.REMARK).HasMaxLength(500);
}
}
#endregion
#region UserTransfer
public partial class FMUserTransferMap :APTEntityBaseMap<T_FM_USER_TRANSFER>
{
public override void Configure(EntityTypeBuilder<T_FM_USER_TRANSFER> builder)
{
base.Configure(builder);
builder.Property(t => t.CODE).HasMaxLength(50);
builder.Property(t => t.NAME).HasMaxLength(100);
builder.Property(t => t.COMPANYNAME).HasMaxLength(100);
builder.Property(t => t.DEPARTMENTNAME).HasMaxLength(100);
builder.Property(t => t.POSTNAME).HasMaxLength(100);
builder.Property(t => t.REMARK).HasMaxLength(100);
builder.Property(t => t.USERNAME_TRANSFER).HasMaxLength(50);
builder.Property(t => t.COMPANYNAME_OLD).HasMaxLength(100);
builder.Property(t => t.DEPARTMENTNAME_OLD).HasMaxLength(100);
builder.Property(t => t.POSTNAME_OLD).HasMaxLength(100);
}
}
#endregion
#region UserVacationSet

View File

@ -143,8 +143,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -258,8 +258,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -373,8 +373,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -488,8 +488,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -603,8 +603,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -718,8 +718,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -833,8 +833,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -948,8 +948,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1063,8 +1063,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1178,8 +1178,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1293,8 +1293,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1408,8 +1408,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1523,8 +1523,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1638,8 +1638,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1753,8 +1753,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -1868,6 +1868,7 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
/// <summary>
/// 获得树形实体数据
@ -1882,7 +1883,6 @@ namespace APT.BS.WebApi.Controllers.Api
}
#endregion
@ -1994,8 +1994,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2109,8 +2109,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2224,8 +2224,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2339,8 +2339,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2454,8 +2454,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2569,8 +2569,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2684,8 +2684,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2799,8 +2799,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -2914,8 +2914,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3029,8 +3029,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3144,8 +3144,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3259,8 +3259,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3374,8 +3374,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3489,8 +3489,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3604,8 +3604,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3719,8 +3719,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3834,8 +3834,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -3949,8 +3949,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4064,8 +4064,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4179,8 +4179,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4294,8 +4294,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4409,8 +4409,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4524,8 +4524,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4639,8 +4639,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4754,8 +4754,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4869,8 +4869,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -4984,8 +4984,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5099,8 +5099,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5214,8 +5214,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5329,8 +5329,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5444,8 +5444,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5559,8 +5559,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5674,8 +5674,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5789,8 +5789,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -5904,8 +5904,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6019,8 +6019,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6134,8 +6134,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6249,8 +6249,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6364,8 +6364,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6479,8 +6479,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6594,8 +6594,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6709,8 +6709,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6824,8 +6824,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -6939,8 +6939,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}
@ -7054,8 +7054,8 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
}

View File

@ -248,6 +248,7 @@ namespace APT.BS.WebApi.Controllers.Api
{
return WitEntity(null, filter);
}
<#
if(t4.BaseApiName=="AuthorizeTreeApiController"){
#>
@ -266,7 +267,6 @@ namespace APT.BS.WebApi.Controllers.Api
#>
}
#endregion
<#}

View File

@ -0,0 +1,514 @@
using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Entities.OP;
using APT.BaseData.Domain.Entities.PF;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices.FM;
using APT.BaseData.Domain.IServices.OP;
using APT.BaseData.Domain.Msg;
using APT.BaseData.Services.Services.FM;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
using APT.Migrations;
using APT.MS.Domain.ApiModel;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SC.PT;
using APT.MS.Domain.Entities.SC.SC;
using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.Utility;
using Castle.Core.Internal;
using InfluxData.Net.InfluxDb.Models.Responses;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyModel;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Security.Cryptography;
namespace APT.FM.WebApi.Controllers.Api.FM
{
/// <summary>
/// 用户转移管理接口
/// </summary>
[Route("api/FM/FMUserTransfer")]
public class FMUserTransferController : AuthorizeApiController<T_FM_USER_TRANSFER>
{
//IFMUserService UserService { get; set; }
//IFMDepartmentService DepartmentService { get; set; }
//IFMNotificationTaskService NotificationTaskService { get; set; }
//IOPTenantDBConnService OPTenantDBConnService { get; set; }
IOPTenantDBConnService TenantDBConnService { get; set; }
/// <summary>
///
/// </summary>
/// <param name="tenantDBConnService"></param>
public FMUserTransferController(IOPTenantDBConnService tenantDBConnService)
{
//IFMUserService personnelService, IFMDepartmentService departmentService, IFMNotificationTaskService notificationTaskService, IOPTenantDBConnService opTenantDBConnService
//UserService = personnelService;
//DepartmentService = departmentService;
//NotificationTaskService = notificationTaskService;
//OPTenantDBConnService = opTenantDBConnService;
TenantDBConnService = tenantDBConnService;
}
/// <summary>
/// 公司级人员调整
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetUserInfoByCode")]
public JsonActionResult<T_FM_USER_TRANSFER> GetUserInfoByCode([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
if (string.IsNullOrEmpty(filter.Keyword))
{
return null;
}
T_OP_ALLUSER modelAllUser = null;
using (var context = new MigrationContext())
{
modelAllUser = context.GetEntity<T_OP_ALLUSER>(e => e.CODE == filter.Keyword && !e.IS_DELETED, null, null);
}
if (modelAllUser == null)
{
return null;//没找到此登录账号
}
if (!modelAllUser.ORG_ID.HasValue)
{
throw new Exception("用户信息异常!");
}
T_FM_USER_TRANSFER result = null;
string connOld = TenantDBConnService.GetConnByORGID(modelAllUser.ORG_ID.Value);
T_FM_USER modelU = null;
T_FM_DEPARTMENT modelDep = null;
T_FM_DEPARTMENT modelDepCom = null;
T_FM_USER_POST modelPost = null;
using (var context = new MigrationContext(connOld))
{
modelU = context.GetEntity<T_FM_USER>(e => e.CODE == filter.Keyword && !e.IS_DELETED, null, null);
if (modelU == null)
{
throw new Exception("数据异常");
}
if (modelU.PERSON_ID.HasValue)
{
var person = context.GetEntity<T_FM_PERSON>(e => e.ID == modelU.PERSON_ID.Value, null, "Nav_DepartMent", "Nav_Post");
modelDep = person.Nav_DepartMent;
modelPost = person.Nav_Post;
}
if (modelDep != null && !modelDep.PARENT_ID.HasValue && modelDep.DEPARTMENT_TYPE == 5)
{
modelDepCom = modelDep;
}
else
{
modelDepCom = context.GetEntity<T_FM_DEPARTMENT>(e => e.DEPARTMENT_TYPE == 5 && !e.PARENT_ID.HasValue, null, null);
}
}
result = new T_FM_USER_TRANSFER();
if (modelDepCom != null)
{
result.COMPANYNAME_OLD = modelDepCom.NAME;
}
if (modelDep != null)
{
result.DEPARTMENTNAME_OLD = modelDep.NAME;
result.DEPARTMENT_ID_OLD = modelDep.ID;
}
if (modelPost != null)
{
result.POST_ID_OLD = modelPost.ID;
result.POSTNAME_OLD = modelPost.NAME;
}
result.NAME = modelU.NAME;
result.CODE = modelU.CODE;
result.USER_ID_OLD = modelU.ID;
result.ORG_ID_OLD = modelU.ORG_ID;
return result;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedDEP")]
public PagedActionResult<T_FM_DEPARTMENT> OrderPagedDEP([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_FM_DEPARTMENT> result)
{
Guid ORGIDNEW = Guid.Empty;
string NAME = string.Empty;
if (pageFilter.FilterGroup != null && pageFilter.FilterGroup.Rules.Count() > 0)
{
foreach (var item in pageFilter.FilterGroup.Rules)
{
if (item.Field == "Parameter22" && item.Value != null)
{
try
{
ORGIDNEW = new Guid(item.Value.ToString());
}
catch { ORGIDNEW = Guid.Empty; }
}
else if (item.Field == "NAME" && item.Value != null)
{
NAME = item.Value.ToString();
}
}
}
if (string.IsNullOrEmpty(NAME) && pageFilter.FilterGroup.Groups.Count() > 0)
{
foreach (var item in pageFilter.FilterGroup.Groups)
{
foreach (var itemu in item.Rules)
{
if (itemu.Field == "NAME" && itemu.Value != null)
{
NAME = itemu.Value.ToString();
}
}
}
}
if (ORGIDNEW == Guid.Empty)
{
throw new Exception("请先选择转入公司后再选择!");
}
string conn = TenantDBConnService.GetConnByORGID(ORGIDNEW);
using (var context = new MigrationContext(conn))
{
Dictionary<string, DbOrder> dic = new Dictionary<string, DbOrder>();
dic.Add("DEPARTMENT_TYPE", DbOrder.ASC);
Expression<Func<T_FM_DEPARTMENT, bool>> expression = e => !e.IS_DELETED && e.ENABLE_STATUS == 0;
if (!string.IsNullOrEmpty(NAME))
{
expression = expression.And(e => e.NAME.Contains(NAME));
}
var data = context.GetOrderEntities<T_FM_DEPARTMENT>(expression, dic, null, null);
result.Data = data.Skip(pageFilter.Start).Take(pageFilter.Limit).ToList();
result.TotalCount = data.Count();
}
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedUPost")]
public PagedActionResult<T_FM_USER_POST> OrderPagedUPost([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_FM_USER_POST> result)
{
Guid ORGIDNEW = Guid.Empty;
string NAME = string.Empty;
if (pageFilter.FilterGroup != null && pageFilter.FilterGroup.Rules.Count() > 0)
{
foreach (var item in pageFilter.FilterGroup.Rules)
{
if (item.Field == "Parameter22" && item.Value != null)
{
try
{
ORGIDNEW = new Guid(item.Value.ToString());
}
catch { ORGIDNEW = Guid.Empty; }
}
else if (item.Field == "NAME" && item.Value != null)
{
NAME = item.Value.ToString();
}
}
}
if (string.IsNullOrEmpty(NAME) && pageFilter.FilterGroup.Groups.Count() > 0)
{
foreach (var item in pageFilter.FilterGroup.Groups)
{
foreach (var itemu in item.Rules)
{
if (itemu.Field == "NAME" && itemu.Value != null)
{
NAME = itemu.Value.ToString();
}
}
}
}
if (ORGIDNEW == Guid.Empty)
{
throw new Exception("请先选择转入公司后再选择!");
}
string conn = TenantDBConnService.GetConnByORGID(ORGIDNEW);
using (var context = new MigrationContext(conn))
{
Dictionary<string, DbOrder> dic = new Dictionary<string, DbOrder>();
dic.Add("NAME", DbOrder.ASC);
Expression<Func<T_FM_USER_POST, bool>> expression = e => !e.IS_DELETED;
if (!string.IsNullOrEmpty(NAME))
{
expression = expression.And(e => e.NAME.Contains(NAME));
}
var data = context.GetOrderEntities(expression, dic, null, null);
result.Data = data.Skip(pageFilter.Start).Take(pageFilter.Limit).ToList();
result.TotalCount = data.Count();
}
});
}
/// <summary>
/// 检查更新 (分为主要检查人/非主要检查人 更新 审批流参考 EvaluvationPlanController AddFullUpdate
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_FM_USER_TRANSFER entity)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(entity.CODE))
{
throw new Exception("工号不能为空!");
}
if (entity.REMARK != null && entity.REMARK.Length > 200)
{
throw new Exception("请精简备注到200字以内");
}
//if (entity.STATUS == PFStandardStatus.Draft)
//{
// entity.CREATE_TIME = DateTime.Now;
// entity.USERNAME_TRANSFER = APT.Infrastructure.Api.AppContext.CurrentSession.UserName;
// this.UnifiedCommit(() =>
// {
// UpdateEntityNoCommit(entity);
// });
// return true;
//}
if (string.IsNullOrEmpty(entity.COMPANYNAME))
{
throw new Exception("请选择转入公司");
}
if (string.IsNullOrEmpty(entity.DEPARTMENTNAME) || entity.DEPARTMENT_ID == Guid.Empty)
{
throw new Exception("请选择新组织");
}
if (entity.ORG_ID_OLD == Guid.Empty || entity.ORG_ID_NEW == Guid.Empty)
{
throw new Exception("获取数据异常,请重新操作");
}
else if (entity.ORG_ID_OLD == entity.ORG_ID_NEW)
{
throw new Exception("公司内部的转移请勿在此处操作!");
}
//人员组织调动
//判断 工号 新公司 是否存在
//原公司 账户禁用 T_FM_USER T_FM_PERSON
//数据 变更 ORGID 存入 新组织 配置基础权限
// ops T_OP_ALLUSER TENANT 修改
//保存本次的操作数据
Guid guidAdmid = new Guid("11111111-1111-1111-1111-111111111111");
string connOld = TenantDBConnService.GetConnByORGID(entity.ORG_ID_OLD.Value);
string connNEW = TenantDBConnService.GetConnByORGID(entity.ORG_ID_NEW.Value);
T_FM_TEAM modelT = null;
if (entity.DEPARTMENT_ID.HasValue)
{
using (var context = new MigrationContext(connNEW))
{
var modelND = context.GetEntity<T_FM_DEPARTMENT>(e => e.ID == entity.DEPARTMENT_ID.Value, null, null);
if (modelND.DEPARTMENT_TYPE == 20)
{
modelT = context.GetEntity<T_FM_TEAM>(e => e.DEPARTMENT_ID == entity.DEPARTMENT_ID.Value, null, null);
if (modelT == null)
{
throw new Exception("请先到转入组织架构添加班组!");
}
}
}
}
T_FM_USER modelNwe = null;
IEnumerable<T_FM_USER> listUserCheck = null;
using (var context = new MigrationContext(connNEW))
{
listUserCheck = context.GetEntities<T_FM_USER>(e => e.CODE == entity.CODE, null, null);
}
if (listUserCheck != null && listUserCheck.Count() > 0)
{
//如果有 并且名字一样 直接启用
//否则 直接提示 然后需要管理员操作
var userNCheck = listUserCheck.FirstOrDefault(e => e.ENABLE_STATUS == 0);
if (userNCheck != null)
{
throw new Exception("转入公司该账号【" + entity.CODE + "】有对应启用用户,请联系管理员!");
}
userNCheck = listUserCheck.FirstOrDefault(e => e.NAME == entity.NAME);//工号 姓名相同 定位为同一个人
if (userNCheck != null)
{
entity.USER_ID = userNCheck.ID;//账号重新被启用
modelNwe = userNCheck;
}
}
T_FM_USER modelUOld = null;
T_FM_PERSON modelPOld = null;// 有 新组织需要新增 无(新公司有数据 人员信息无需处理)
using (var context = new MigrationContext(connOld))
{
modelUOld = context.GetEntity<T_FM_USER>(e => e.ID == entity.USER_ID_OLD, null, "Nav_Person");
modelPOld = modelUOld.Nav_Person;
if (entity.USER_ID == Guid.Empty && modelPOld == null)
{
throw new Exception("获取信息有误!");
}
modelUOld.Nav_Person = null;
modelUOld.ENABLE_STATUS = 1;
modelUOld.APPROVE_ROLE_ID = null;
modelUOld.TEAM_ID = null;
modelUOld.PROJECT_ID = null;
modelUOld.USER_TYPE_ID = null;
modelUOld.ISTRANSFER = true;//处理信息
modelUOld.MODIFY_TIME = DateTime.Now;
modelUOld.MODIFIER_ID = guidAdmid; //APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
context.Update(modelUOld);
context.SaveChanges();
}
//用户信息
if (entity.USER_ID == Guid.Empty)
{
modelUOld.CREATER_ID = guidAdmid;
modelPOld.CREATER_ID = guidAdmid;
modelUOld.CREATE_TIME = DateTime.Now;
modelPOld.CREATE_TIME = DateTime.Now;
}
modelUOld.ENABLE_STATUS = 0;
modelUOld.ORG_ID = entity.ORG_ID_NEW;
modelUOld.MODIFY_TIME = DateTime.Now;
modelUOld.MODIFIER_ID = guidAdmid; //APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
modelUOld.DEPARTMENT_ID = entity.DEPARTMENT_ID;
//人员信息
modelPOld.ORG_ID = entity.ORG_ID_NEW;
modelPOld.MODIFY_TIME = DateTime.Now;
modelPOld.MODIFIER_ID = guidAdmid; //APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
modelPOld.DEPARTMENT_ID = entity.DEPARTMENT_ID;
modelPOld.POST_ID = entity.POST_ID;
string nameCom = string.Empty;
using (var context = new MigrationContext(connNEW))
{
var depC = context.GetEntity<T_FM_DEPARTMENT>(e => e.DEPARTMENT_TYPE == 5 && !e.IS_DELETED && e.ENABLE_STATUS == 0, null, null);
if (depC != null)
{
nameCom = depC.NAME;
}
modelUOld.ISTRANSFER = false;
if (entity.USER_ID != Guid.Empty)
{
context.Update(modelUOld);
context.Update(modelPOld);
}
else
{
var lisrRole = context.GetEntities<T_FM_ROLE>(e => e.ISDEFAULT && !e.ISDEFAULT, null, null);
List<T_FM_USER_BELONG_ROLE> listRole = null;
if (lisrRole != null && lisrRole.Count() > 0)
{
listRole = new List<T_FM_USER_BELONG_ROLE>();
foreach (var item in lisrRole)
{
listRole.Add(new T_FM_USER_BELONG_ROLE()
{
ID = Guid.NewGuid(),
ORG_ID = modelUOld.ORG_ID,
USER_ID = modelUOld.ID,
BELONG_ROLE_ID = item.ID,
CREATE_TIME = DateTime.Now,
CREATER_ID = guidAdmid,
MODIFIER_ID = guidAdmid
});
}
}
//如果是班组级 有 T_FM_TEAM 表 直接添加 T_FM_TEAM_PERSON 表
T_FM_TEAM_PERSON teamPerson = null;
if (modelT != null)
{
teamPerson = new T_FM_TEAM_PERSON();
teamPerson.ORG_ID = modelUOld.ORG_ID;
teamPerson.ID = Guid.NewGuid();
teamPerson.TEAM_ID = modelT.ID;//new Guid(filter.Parameter3);
teamPerson.PERSON_ID = modelPOld.ID;
teamPerson.CREATE_TIME = DateTime.Now;
teamPerson.CREATER_ID = guidAdmid;
teamPerson.MODIFIER_ID = guidAdmid;
}
if (teamPerson != null)
context.Add(teamPerson);
context.Add(modelUOld);
context.Add(modelPOld);
if (listRole != null)
context.AddEntities(listRole);
}
context.SaveChanges();
}
using (var context = new MigrationContext())
{
var modelAll = context.GetEntity<T_OP_ALLUSER>(e => e.CODE == entity.CODE, null, null);
modelAll.ORG_ID = entity.ORG_ID_NEW;
modelAll.TENANT = entity.ORG_ID_NEW.Value.ToString().Substring(0, 3);
modelAll.MODIFY_TIME = DateTime.Now;
modelAll.MODIFIER_ID = guidAdmid;
context.Update(modelAll);
context.SaveChanges();
}
////保存单数据
////检查数据 isCheck=false 不然获取数据可能会有问题
if (!string.IsNullOrEmpty(nameCom))
{
entity.COMPANYNAME = nameCom;
}
entity.USER_ID = modelUOld.ID;
entity.CREATE_TIME = DateTime.Now;
entity.USERNAME_TRANSFER = APT.Infrastructure.Api.AppContext.CurrentSession.UserName;
this.UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);
});
return true;
});
}
}
}

View File

@ -6013,6 +6013,121 @@ using APT.BaseData.Domain.Entities;
}
#endregion
#region UserTransfer-
/// <summary>
/// 公司级用户调度
/// </summary>
[Route("api/FM/UserTransfer")]
public partial class UserTransferController : AuthorizeApiController<T_FM_USER_TRANSFER>
{
/// <summary>
/// 查询所有数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("Entities")]
public JsonActionResult<IEnumerable<T_FM_USER_TRANSFER>> Entities([FromBody]KeywordFilter filter)
{
return WitEntities(null, filter);
}
/// <summary>
/// 排序查询所有数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderEntities")]
public JsonActionResult<IEnumerable<T_FM_USER_TRANSFER>> OrderEntities([FromBody]KeywordFilter filter)
{
return WitOrderEntities(null, filter);
}
/// <summary>
/// 分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("Paged")]
public PagedActionResult<T_FM_USER_TRANSFER> Paged([FromBody]KeywordPageFilter pageFilter)
{
return WitPaged(null, pageFilter);
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPaged")]
public PagedActionResult<T_FM_USER_TRANSFER> OrderPaged([FromBody]KeywordPageFilter pageFilter)
{
return WitOrderPaged(null, pageFilter);
}
/// <summary>
/// 根据主键删除数据
/// </summary>
/// <param name="id">主键ID</param>
/// <returns></returns>
[HttpGet, Route("Delete")]
public JsonActionResult<bool> Delete(string id)
{
return WitRealDelete(id);
}
/// <summary>
/// 更新或新增数据
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody]T_FM_USER_TRANSFER entity)
{
return WitUpdate(entity);
}
/// <summary>
/// 批量更新
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("BatchUpdate")]
public JsonActionResult<bool> BatchUpdate([FromBody] BatchUpdateModel<T_FM_USER_TRANSFER> entity)
{
return WitBantchUpdate(entity?.Data);
}
/// <summary>
/// 批量删除数据
/// </summary>
/// <param name="ids">id字符串id用逗号分隔</param>
/// <returns></returns>
[HttpGet, Route("BatchDelete")]
public JsonActionResult<bool> BatchDelete(string ids)
{
return WitRealBatchDelete(ids);
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("Get")]
public JsonActionResult<T_FM_USER_TRANSFER> Get([FromBody] KeywordFilter filter)
{
return WitEntity(null, filter);
}
}
#endregion

View File

@ -242,8 +242,8 @@ namespace APT.FM.WebApi.Controllers.Api.FM
[HttpPost, Route("OrderPagedNew")]
public PagedActionResult<T_FM_USER> OrderPagedNew([FromBody] KeywordPageFilter pageFilter)
{
Expression<Func<T_FM_USER, bool>> express = t => !t.CODE.Contains("admin");
if (!string.IsNullOrEmpty(pageFilter.Parameter1))
Expression<Func<T_FM_USER, bool>> express = t => !t.CODE.Contains("admin");
if (!string.IsNullOrEmpty(pageFilter.Parameter1))
{
express = express.And(t => t.Nav_BelongRoles.Any(i => i.Nav_BelongRole.NAME.Contains(pageFilter.Parameter1)));
}
@ -563,8 +563,8 @@ namespace APT.FM.WebApi.Controllers.Api.FM
this.ThrowError("050001");
if (isAdd == null)
{
userList = this.GetEntities<T_FM_USER>(t => (t.CODE == entity.CODE || t.APPROVE_ROLE_ID == entity.APPROVE_ROLE_ID) && t.ORG_ID == entity.ORG_ID, null, "Nav_Department").ToList();
userList = this.GetEntities<T_FM_USER>(t => (t.CODE == entity.CODE || t.APPROVE_ROLE_ID == entity.APPROVE_ROLE_ID) && t.ORG_ID == entity.ORG_ID, null, "Nav_Department").ToList();
if (entity.ORG_ID != Guid.Parse("b043b28b-bbc3-c452-6052-4fba1457abfa"))
{
#region //
@ -1117,7 +1117,7 @@ namespace APT.FM.WebApi.Controllers.Api.FM
this.DeleteEntityNoCommit<T_FM_TEAM_PERSON>(t => teamPersonIds.Contains(t.ID));
if (noticeToday != null)
this.UpdateEntityNoCommit(noticeToday);
if (deleteDepartScheIds!=null && deleteDepartScheIds.Any())
if (deleteDepartScheIds != null && deleteDepartScheIds.Any())
this.BantchDeleteEntityNoCommit<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(deleteDepartScheIds);
if (departScheDetails != null && departScheDetails.Any())
this.BantchSaveEntityNoCommit(departScheDetails);
@ -1484,6 +1484,10 @@ namespace APT.FM.WebApi.Controllers.Api.FM
if (filter.Parameter1.Equals("1"))
{
if (user.ISTRANSFER)
{
throw new Exception("集团人员调动导致的账号禁用不能直接启用!");
}
user.ENABLE_STATUS = 0;
}
else
@ -1597,8 +1601,8 @@ namespace APT.FM.WebApi.Controllers.Api.FM
}
this.UnifiedCommit(() =>
{
this.UpdateEntityNoCommit(user);
this.UpdateEntityNoCommit(user);
});
return true;
});

View File

@ -864,6 +864,7 @@ namespace APT.BS.WebApi.Controllers.Api
List<int> listCODEIndex = new List<int>();
List<string> listStrCODE = new List<string>();
string strCODE = string.Empty;
T_FM_USER modelUCCheck = null;
//手机号码 9
List<int> listPHONEIndex = new List<int>();
@ -1161,7 +1162,14 @@ namespace APT.BS.WebApi.Controllers.Api
{
//组织信息 对 才进来判断
strNAME = dtSource.Rows[i][7].ToString().Trim();
strCODE = dtSource.Rows[i][8].ToString().Trim();
strCODE = dtSource.Rows[i][8].ToString().Trim();
modelUCCheck = listUSER.FirstOrDefault(e => e.CODE == strCODE);
if (modelUCCheck != null)
{
if (!listStrCODE.Contains(strCODE))
listStrCODE.Add(strCODE);
listCODEIndex.Add(i + rowIndex - 1);
}
#region 9 strPHONE
@ -1330,7 +1338,7 @@ namespace APT.BS.WebApi.Controllers.Api
#region
if (!string.IsNullOrEmpty(strNAME) && !string.IsNullOrEmpty(strCODE) && dicIndexEmpty.Count < 1 && listDepartment10Index.Count < 1 && listDepartment15Index.Count < 1 && listDepartment13Index.Count < 1 && listDepartment35Index.Count < 1 && listPHONEIndex.Count < 1 && listID_CARDIndex.Count < 1 && listSEXIndex.Count < 1 && listENTRYTIMEIndex.Count < 1 && listWORKINGYEARIndex.Count < 1)
if (!string.IsNullOrEmpty(strNAME) && !string.IsNullOrEmpty(strCODE) && dicIndexEmpty.Count < 1 && listDepartment10Index.Count < 1 && listDepartment15Index.Count < 1 && listDepartment13Index.Count < 1 && listDepartment35Index.Count < 1 && listPHONEIndex.Count < 1 && listID_CARDIndex.Count < 1 && listSEXIndex.Count < 1 && listENTRYTIMEIndex.Count < 1 && listWORKINGYEARIndex.Count < 1 && listStrCODE.Count < 1)
{
modelUser = listUSER.FirstOrDefault(e => e.NAME == strNAME && e.CODE == strCODE);
modelPerson = listPerson.FirstOrDefault(e => e.NAME == strNAME && e.CODE == strCODE);
@ -1491,6 +1499,12 @@ namespace APT.BS.WebApi.Controllers.Api
strDepartment35Error = "组织数据异常:有班组名称没有车间名称,行:" + string.Join(',', listDepartment35Index);
}
string strCODEError = string.Empty;
if (listStrCODE != null && listStrCODE.Count > 0)
{
strCODEError = "工号重复:" + string.Join(",", listStrCODE) + ",行:" + string.Join(',', listCODEIndex);
}
string strPHONEError = string.Empty;
if (listPHONEIndex != null && listPHONEIndex.Count > 0)
{
@ -1546,6 +1560,10 @@ namespace APT.BS.WebApi.Controllers.Api
Msg += (Msg.Length > 0 ? "\r\n" : "") + strDepartment35Error;
}
if (!string.IsNullOrEmpty(strCODEError))
{
Msg += (Msg.Length > 0 ? "\r\n" : "") + strCODEError;
}
if (!string.IsNullOrEmpty(strPHONEError))
{
Msg += (Msg.Length > 0 ? "\r\n" : "") + strPHONEError;

View File

@ -36,6 +36,7 @@ namespace APT.LG.WebApi.Controllers.Api
using APT.BaseData.Domain.Entities.LG;
#region Oprate-
/// <summary>
/// 表单操作日志表
@ -145,7 +146,9 @@ namespace APT.LG.WebApi.Controllers.Api
}
#endregion
}

View File

@ -141,6 +141,7 @@ namespace APT.LG.WebApi.Controllers.Api
#>
#region <#= t4.FixName#>-<#= tableDesc#>
/// <summary>
/// <#= tableDesc#>
@ -265,10 +266,12 @@ namespace APT.LG.WebApi.Controllers.Api
}
#>
}
#endregion
<#}
#>
}
<#+

View File

@ -254,6 +254,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP
eduCard.ORG_ID = orgId;
eduCard.TRAIN_STATUS = SEThreeLevelSafeTrainType.;
eduCard.CREATE_TIME = currTime;
eduCard.TRAINTYPE = TrainType.InOffLine;
if (train_contents != null)
{
eduCard.CONTENT_ID = train_contents.ID;

View File

@ -997,6 +997,7 @@ namespace APT.SC.WebApi.Controllers.Api.SE
newEduCard.DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
newEduCard.CONTENT_ID = train_contents.ID;
newEduCard.TRAIN_STATUS = currSattus;
newEduCard.TRAINTYPE = TrainType.InOffLine;
var commonDeptartmentUsers = userDetails.Where(t => t.NEXT_DEPARTMENT_ID == currDetailT.NEXT_DEPARTMENT_ID);
var commonUserIds = commonDeptartmentUsers.Select(t => t.USER_ID);
var userFilter = new BaseFilter(orgId);