This commit is contained in:
wyw 2025-11-24 13:08:50 +08:00
commit 2c421b05d0
13 changed files with 136929 additions and 59 deletions

View File

@ -16,6 +16,7 @@ using APT.MS.Domain.Entities.DM;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.LR;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SC.DM;
@ -2484,9 +2485,24 @@ namespace APT.BaseData.Services.DomainServices
}
else
{
var entity = this.GetEntity<T_FO_FIRE_JOB>(modelApp.DATA_ID);
entity.STATUS = PFStandardStatus.Archived;
entity.FIRE_STATUS = FOFireStatus.ApprovingFinish;
var entity = this.GetEntity<T_FO_FIRE_JOB>(modelApp.DATA_ID, "Nav_Users");
entity.STATUS = PFStandardStatus.Archived;
T_FM_NOTIFICATION_TASK notice = null;
if (entity.JOB_DATE.Value.AddMinutes(-30) <= DateTime.Now && entity.IS_RUN == false && entity.Nav_Users!=null && entity.Nav_Users.Any())
{
entity.IS_RUN = true;
entity.FIRE_STATUS = FOFireStatus.Sign;
var userType = this.GetEntity<T_OG_RELATED_USER_TYPE>(t => t.NAME == "动火操作人员");
var sendUser = entity.Nav_Users.FirstOrDefault(t => t.USER_TYPE_ID == userType.ID);
if (sendUser != null)
{
var userName = this.GetEntity<T_FM_USER>(t => t.ID == sendUser.USER_ID)?.NAME;
notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收", entity.ID, entity.ORG_ID, (Guid)sendUser.USER_ID, userName, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043");
}
}
else
entity.FIRE_STATUS = FOFireStatus.ApprovingFinish;
UnifiedCommit(() =>
{
if (modelApp != null)
@ -2498,7 +2514,9 @@ namespace APT.BaseData.Services.DomainServices
if (listTaskNext != null && listTaskNext.Count > 0)
BantchSaveEntityNoCommit(listTaskNext);
if (entity != null)
this.UpdateEntityNoCommit(entity);
this.UpdateEntityNoCommit(entity);
if (notice != null)
this.UpdateEntityNoCommit(notice);
});
}
return true;
@ -2535,8 +2553,18 @@ namespace APT.BaseData.Services.DomainServices
else
{
var entity = this.GetEntity<T_FO_FIRE_JOB_WB>(modelApp.DATA_ID);
entity.STATUS = PFStandardStatus.Archived;
entity.FIRE_STATUS = FOFireStatus.ApprovingFinish;
entity.STATUS = PFStandardStatus.Archived;
T_FM_NOTIFICATION_TASK notice = null;
if (entity.JOB_DATE.Value.AddMinutes(-30) <= DateTime.Now && entity.IS_RUN == false && entity.APPLY_USER_ID != null)
{
entity.IS_RUN = true;
entity.FIRE_STATUS = FOFireStatus.Sign;
var userName = this.GetEntity<T_FM_USER>(t => t.ID == entity.APPLY_USER_ID)?.NAME;
notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收(外包)", entity.ID, entity.ORG_ID, (Guid)entity.APPLY_USER_ID, userName, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045");
}
else
entity.FIRE_STATUS = FOFireStatus.ApprovingFinish;
UnifiedCommit(() =>
{
if (modelApp != null)
@ -2548,7 +2576,9 @@ namespace APT.BaseData.Services.DomainServices
if (listTaskNext != null && listTaskNext.Count > 0)
BantchSaveEntityNoCommit(listTaskNext);
if (entity != null)
this.UpdateEntityNoCommit(entity);
this.UpdateEntityNoCommit(entity);
if (notice != null)
this.UpdateEntityNoCommit(notice);
});
}
return true;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,86 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class hmr2025112303 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "DISPATCH_DEAL_STATUS",
table: "T_FO_FIRE_JOB_WB",
type: "int",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "TRAIN_ID",
table: "T_FO_FIRE_JOB_USER",
type: "uniqueidentifier",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_T_FO_FIRE_JOB_WB_DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB",
column: "DISPATCH_USER_ID");
migrationBuilder.CreateIndex(
name: "IX_T_FO_FIRE_JOB_USER_TRAIN_ID",
table: "T_FO_FIRE_JOB_USER",
column: "TRAIN_ID");
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_SE_RENEWAL_TRAIN_TRAIN_ID",
table: "T_FO_FIRE_JOB_USER",
column: "TRAIN_ID",
principalTable: "T_SE_RENEWAL_TRAIN",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_T_FM_USER_DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB",
column: "DISPATCH_USER_ID",
principalTable: "T_FM_USER",
principalColumn: "ID",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_USER_T_SE_RENEWAL_TRAIN_TRAIN_ID",
table: "T_FO_FIRE_JOB_USER");
migrationBuilder.DropForeignKey(
name: "FK_T_FO_FIRE_JOB_WB_T_FM_USER_DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB");
migrationBuilder.DropIndex(
name: "IX_T_FO_FIRE_JOB_WB_DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB");
migrationBuilder.DropIndex(
name: "IX_T_FO_FIRE_JOB_USER_TRAIN_ID",
table: "T_FO_FIRE_JOB_USER");
migrationBuilder.DropColumn(
name: "DISPATCH_DEAL_STATUS",
table: "T_FO_FIRE_JOB_WB");
migrationBuilder.DropColumn(
name: "DISPATCH_USER_ID",
table: "T_FO_FIRE_JOB_WB");
migrationBuilder.DropColumn(
name: "TRAIN_ID",
table: "T_FO_FIRE_JOB_USER");
}
}
}

View File

@ -33516,6 +33516,9 @@ namespace APT.Data.Migrations.Migrations
.IsRequired()
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TRAIN_ID")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("USER_ID")
.HasColumnType("uniqueidentifier");
@ -33528,6 +33531,8 @@ namespace APT.Data.Migrations.Migrations
b.HasIndex("ORG_ID");
b.HasIndex("TRAIN_ID");
b.HasIndex("USER_ID");
b.HasIndex("USER_TYPE_ID");
@ -33637,6 +33642,12 @@ namespace APT.Data.Migrations.Migrations
b.Property<DateTime?>("CREATE_TIME")
.HasColumnType("datetime2");
b.Property<int?>("DISPATCH_DEAL_STATUS")
.HasColumnType("int");
b.Property<Guid?>("DISPATCH_USER_ID")
.HasColumnType("uniqueidentifier");
b.Property<string>("DPARTMENT_NAME")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@ -33757,6 +33768,8 @@ namespace APT.Data.Migrations.Migrations
b.HasIndex("COMPANY_ID");
b.HasIndex("DISPATCH_USER_ID");
b.HasIndex("MONITOR_USER_ID");
b.HasIndex("OPERATION_STEP_ID");
@ -108631,6 +108644,11 @@ namespace APT.Data.Migrations.Migrations
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("APT.MS.Domain.Entities.SE.T_SE_RENEWAL_TRAIN", "Nav_Train")
.WithMany()
.HasForeignKey("TRAIN_ID")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_User")
.WithMany()
.HasForeignKey("USER_ID")
@ -108645,6 +108663,8 @@ namespace APT.Data.Migrations.Migrations
b.Navigation("Nav_Org");
b.Navigation("Nav_Train");
b.Navigation("Nav_User");
b.Navigation("Nav_UserType");
@ -108698,6 +108718,11 @@ namespace APT.Data.Migrations.Migrations
.HasForeignKey("COMPANY_ID")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_DispatchUser")
.WithMany()
.HasForeignKey("DISPATCH_USER_ID")
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("APT.BaseData.Domain.Entities.FM.T_FM_USER", "Nav_MonitorUser")
.WithMany()
.HasForeignKey("MONITOR_USER_ID")
@ -108737,6 +108762,8 @@ namespace APT.Data.Migrations.Migrations
b.Navigation("Nav_Company");
b.Navigation("Nav_DispatchUser");
b.Navigation("Nav_MonitorUser");
b.Navigation("Nav_OperationStep");

View File

@ -1332,6 +1332,7 @@ builder.HasOne(t => t.Nav_User).WithMany().HasForeignKey(t => t.USER_ID).OnDelet
builder.HasOne(t => t.Nav_UserType).WithMany().HasForeignKey(t => t.USER_TYPE_ID).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.CERTIFICATE_NAME).HasMaxLength(100);
builder.Property(t => t.CERTIFICATE_CODE).HasMaxLength(50);
builder.HasOne(t => t.Nav_Train).WithMany().HasForeignKey(t => t.TRAIN_ID).OnDelete(DeleteBehavior.Restrict);
}
}
#endregion
@ -1370,6 +1371,7 @@ builder.HasOne(t => t.Nav_Type).WithMany().HasForeignKey(t => t.TYPE_ID).OnDelet
builder.Property(t => t.JOB_CONTENT).HasMaxLength(500);
builder.HasOne(t => t.Nav_MonitorUser).WithMany().HasForeignKey(t => t.MONITOR_USER_ID).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.COMPLETED_CONDITION).HasMaxLength(200);
builder.HasOne(t => t.Nav_DispatchUser).WithMany().HasForeignKey(t => t.DISPATCH_USER_ID).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.COMPLETED_CONTENT).HasMaxLength(200);
builder.Ignore(t => t.PUBLISH);
}

View File

@ -1,6 +1,7 @@
using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Enums;
using System;
using System.Collections.Generic;
@ -46,6 +47,12 @@ namespace APT.MS.Domain.Entities.FO
[FormFieldEdit]
[DataFieldLength(50)]
public string CERTIFICATE_CODE { get; set; }
[Description("人员证件")]
[DataFieldForeignKey("Nav_Train")]
public Guid? TRAIN_ID { get; set; }
[Description("换证培训")]
public virtual T_SE_RENEWAL_TRAIN Nav_Train { get; set; }
[Description("附件")]
[FormFieldEdit]
public virtual ICollection<T_FO_FIRE_JOB_USER_FILE> Nav_UserFiles { get; set; }

View File

@ -208,6 +208,17 @@ namespace APT.MS.Domain.Entities.FO
[Description("安全管理人员签字状态")]
[EnumName("FOUserShiftStatusEnum")] //为枚举0待处理 1已处理
public FOUserShiftStatusEnum? SAFE_DEAL_STATUS { get; set; }
[Description("矿调度人员")]
[DataFieldForeignKey("Nav_DispatchUser")]
[FormFieldEdit]
public Guid? DISPATCH_USER_ID { get; set; }
[Description("导航属性:矿调度人员")]
public virtual T_FM_USER Nav_DispatchUser { get; set; }
[Description("矿调度人员签字状态")]
[EnumName("FOUserShiftStatusEnum")] //为枚举0待处理 1已处理
public FOUserShiftStatusEnum? DISPATCH_DEAL_STATUS { get; set; }
[Description("动火作业完工验收情况")]
[FormFieldEdit]
[DataFieldLength(200)]

View File

@ -49,7 +49,7 @@ namespace APT.FO.WebApi.Controllers
if (string.IsNullOrEmpty(id))
this.ThrowError("060010");
var entity = this.GetEntity<T_FO_FIRE_JOB>(id, "Nav_ApplyUser", "Nav_Company", "Nav_ApplyDepartment", "Nav_OperationStep", "Nav_ProductionUnit", "Nav_FireUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_FireDepartment",
"Nav_SafeUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_UserFiles.Nav_ImgFile",
"Nav_SafeUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_Train", "Nav_Users.Nav_UserFiles.Nav_ImgFile",
"Nav_FireFiles.Nav_ImgFile", "Nav_MonitorFiles.Nav_ImgFile", "Nav_DispatchUser.Nav_UserSignFiles.Nav_ImgFile");
if (entity != null)
{
@ -174,9 +174,19 @@ namespace APT.FO.WebApi.Controllers
var dhUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID);
if (dhUserHas == null)
{
throw new Exception("作业人员必须要有动火操作人员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有动火操作人员");
}
}
var dhCers = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID && t.CERTIFICATE_CODE == null);
if (dhCers != null)
{
throw new Exception("动火操作人员必须填写证书编号");
}
var dhfiles = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID && (t.Nav_UserFiles == null || !t.Nav_UserFiles.Any()));
if (dhfiles != null)
{
throw new Exception("动火操作人员必须上传附件");
}
var wjUser = userTypes.FirstOrDefault(t => t.NAME == "瓦检员");
if (wjUser == null)
{
@ -187,7 +197,7 @@ namespace APT.FO.WebApi.Controllers
var wjUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == wjUser.ID);
if (wjUserHas == null)
{
throw new Exception("作业人员必须要有瓦检员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有瓦检员");
}
}
var psUser = userTypes.FirstOrDefault(t => t.NAME == "喷水人员");
@ -200,7 +210,7 @@ namespace APT.FO.WebApi.Controllers
var psUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == psUser.ID);
if (psUserHas == null)
{
throw new Exception("作业人员必须要有喷水人员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有喷水人员");
}
}
foreach (var item in users)
@ -211,11 +221,13 @@ namespace APT.FO.WebApi.Controllers
item.Nav_UserType = null;
if (item.Nav_UserFiles != null && item.Nav_UserFiles.Any())
{
foreach (var item2 in item.Nav_UserFiles)
foreach (var userFile in item.Nav_UserFiles)
{
T_FO_FIRE_JOB_USER_FILE item2 = new T_FO_FIRE_JOB_USER_FILE();
item2.ORG_ID = entity.ORG_ID;
item2.FIRE_JOB_USER_ID = item.ID;
item2.Nav_ImgFile = null;
item2.IMG_FILE_ID = userFile.IMG_FILE_ID;
userFileList.Add(item2);
}
}
@ -280,7 +292,7 @@ namespace APT.FO.WebApi.Controllers
if (entity.LEAVE_DATE == null)
throw new Exception("离开现场时间必须填写");
if (monitorFileList == null || !monitorFileList.Any())
throw new Exception("必须上传完工验收附件,如照片视频等");
throw new Exception("必须上传完工验收附件");
var detailNeed = detailList.FirstOrDefault(t => (t.JOB_STEP == FOJobStepEnum.Ing && t.IS_CONFIRM_NEW == false) || (t.JOB_STEP == FOJobStepEnum.After && t.IS_CONFIRM_NEW == false));
if (detailNeed != null)
throw new Exception("作业中或作业后未全部确认!");
@ -291,7 +303,7 @@ namespace APT.FO.WebApi.Controllers
var sendUserIds = sendUser.Select(t => t.ID).Distinct().ToList();
var sendUserNames = sendUser.Select(t => t.NAME).Distinct().ToList();
entity.FIRE_STATUS = FOFireStatus.ReadingFinish;
notices = NotificationTaskService.InsertUserNoticeTaskModels("动火作业工作票完工验收", entity.ID, entity.ORG_ID, sendUserIds, sendUserNames, DateTime.Now,
notices = NotificationTaskService.InsertUserNoticeTaskModels("动火作业完工验收审阅", entity.ID, entity.ORG_ID, sendUserIds, sendUserNames, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043_SHOWPRINT");
}
else
@ -312,7 +324,7 @@ namespace APT.FO.WebApi.Controllers
if (entity.ACT_DATE == null)
throw new Exception("动火实际开始时间必须填写");
if (fireFileList == null || !fireFileList.Any())
throw new Exception("必须上传现场条件验收附件,如照片视频等");
throw new Exception("必须上传现场条件验收附件");
var detailNeed = detailList.FirstOrDefault(t => t.JOB_STEP == FOJobStepEnum.Pre && t.IS_CONFIRM_NEW == false);
if (detailNeed != null)
throw new Exception("作业前未全部确认!");
@ -323,7 +335,7 @@ namespace APT.FO.WebApi.Controllers
var sendUserIds = sendUser.Select(t => t.ID).Distinct().ToList();
var sendUserNames = sendUser.Select(t => t.NAME).Distinct().ToList();
entity.FIRE_STATUS = FOFireStatus.Reading;
notices = NotificationTaskService.InsertUserNoticeTaskModels("动火作业工作票审阅", entity.ID, entity.ORG_ID, sendUserIds, sendUserNames, DateTime.Now,
notices = NotificationTaskService.InsertUserNoticeTaskModels("动火作业现场条件验收审阅", entity.ID, entity.ORG_ID, sendUserIds, sendUserNames, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043_SHOWPRINT");
}
else
@ -333,7 +345,7 @@ namespace APT.FO.WebApi.Controllers
if (monitorUser != null)
{
entity.FIRE_STATUS = FOFireStatus.Monitor;
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票全程监护", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043"));
}
else
@ -451,7 +463,7 @@ namespace APT.FO.WebApi.Controllers
});
}
/// <summary>
/// 部门负责人、安全管理人员审阅
/// 部门负责人、安全管理人员、矿调度人员审阅
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
@ -496,7 +508,7 @@ namespace APT.FO.WebApi.Controllers
if (monitorUser != null)
{
fire.FIRE_STATUS = FOFireStatus.Monitor;
notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票全程监护", fire.ID, fire.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护", fire.ID, fire.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043");
}
else
@ -674,5 +686,25 @@ namespace APT.FO.WebApi.Controllers
return main;
});
}
/// <summary>
/// 动火部门onchange事件
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetSafeUser")]
public JsonActionResult<T_FM_USER> GetSafeUser([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
T_FM_USER main = new T_FM_USER();
//传入的作业名称ID不为空
if (!string.IsNullOrEmpty(filter.Keyword))
{
main = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == Guid.Parse(filter.Keyword) && t.ENABLE_STATUS == 0 && t.Nav_ApproveRole!=null && t.Nav_ApproveRole.NAME.Contains("安全员"));
}
return main;
});
}
}
}

View File

@ -48,7 +48,7 @@ namespace APT.FO.WebApi.Controllers
this.ThrowError("060010");
var entity = this.GetEntity<T_FO_FIRE_JOB_WB>(id, "Nav_ApplyUser", "Nav_Company", "Nav_ApplyDepartment", "Nav_Related", "Nav_OperationStep", "Nav_ProductionUnit", "Nav_FireUser.Nav_ImgFile",
"Nav_SafeUser.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_UserFiles.Nav_ImgFile",
"Nav_Users.Nav_Signs.Nav_ImgFile", "Nav_Users.Nav_User",
"Nav_Users.Nav_Signs.Nav_ImgFile", "Nav_Users.Nav_User", "Nav_DispatchUser.Nav_UserSignFiles.Nav_ImgFile",
"Nav_FireFiles.Nav_ImgFile", "Nav_MonitorFiles.Nav_ImgFile");
if (entity != null)
{
@ -183,7 +183,7 @@ namespace APT.FO.WebApi.Controllers
var dhUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID);
if (dhUserHas == null)
{
throw new Exception("作业人员必须要有动火操作人员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有动火操作人员");
}
}
var dhCers = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID && t.CERTIFICATE_CODE == null);
@ -196,10 +196,6 @@ namespace APT.FO.WebApi.Controllers
{
throw new Exception("动火操作人员必须上传附件");
}
if (dhfiles != null)
{
throw new Exception("动火操作人员必须填写证书编号");
}
var wjUser = userTypes.FirstOrDefault(t => t.NAME == "瓦检员");
if (wjUser == null)
{
@ -210,7 +206,7 @@ namespace APT.FO.WebApi.Controllers
var wjUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == wjUser.ID);
if (wjUserHas == null)
{
throw new Exception("作业人员必须要有瓦检员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有瓦检员");
}
}
var psUser = userTypes.FirstOrDefault(t => t.NAME == "喷水人员");
@ -223,7 +219,7 @@ namespace APT.FO.WebApi.Controllers
var psUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == psUser.ID);
if (psUserHas == null)
{
throw new Exception("作业人员必须要有喷水人员,请到用户列表配置对应人员类型");
throw new Exception("作业人员必须要有喷水人员");
}
}
foreach (var item in users)
@ -234,11 +230,13 @@ namespace APT.FO.WebApi.Controllers
item.Nav_UserType = null;
if (item.Nav_UserFiles != null && item.Nav_UserFiles.Any())
{
foreach (var item2 in item.Nav_UserFiles)
foreach (var userFile in item.Nav_UserFiles)
{
T_FO_FIRE_JOB_WB_USER_FILE item2 = new T_FO_FIRE_JOB_WB_USER_FILE();
item2.ORG_ID = entity.ORG_ID;
item2.FIRE_JOB_WB_USER_ID = item.ID;
item2.Nav_ImgFile = null;
item2.IMG_FILE_ID = userFile.IMG_FILE_ID;
userFileList.Add(item2);
}
}
@ -303,7 +301,7 @@ namespace APT.FO.WebApi.Controllers
if (entity.LEAVE_DATE == null)
throw new Exception("离开现场时间必须填写");
if (monitorFileList == null || !monitorFileList.Any())
throw new Exception("必须上传完工验收附件,如照片视频等");
throw new Exception("必须上传完工验收附件");
var detailNeed = detailList.FirstOrDefault(t => (t.JOB_STEP == FOJobStepEnum.Ing && t.IS_CONFIRM_NEW == false) || (t.JOB_STEP == FOJobStepEnum.After && t.IS_CONFIRM_NEW == false));
if (detailNeed != null)
throw new Exception("作业中或作业后未全部确认!");
@ -326,7 +324,7 @@ namespace APT.FO.WebApi.Controllers
if (entity.ACT_DATE == null)
throw new Exception("动火实际开始时间必须填写");
if (fireFileList == null || !fireFileList.Any())
throw new Exception("必须上传现场条件验收附件,如照片视频等");
throw new Exception("必须上传现场条件验收附件");
var detailNeed = detailList.FirstOrDefault(t => t.JOB_STEP == FOJobStepEnum.Pre && t.IS_CONFIRM_NEW == false);
if (detailNeed != null)
throw new Exception("作业前未全部确认!");
@ -359,19 +357,33 @@ namespace APT.FO.WebApi.Controllers
}
deleteFireUserIds = this.GetEntities<T_FO_FIRE_JOB_WB_FIRE_USER>(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
}
//触发给监护人员
entity.FIRE_STATUS = FOFireStatus.Monitor;
//触发给监护人填写
var monitorUser = this.GetEntity<T_FM_USER>(t => t.ID == entity.MONITOR_USER_ID);
if (monitorUser != null)
//触发给矿调度人员审阅
if (entity.DISPATCH_USER_ID != null)
{
entity.FIRE_STATUS = FOFireStatus.Monitor;
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票全程监护(外包)", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045"));
var monitorUser = this.GetEntity<T_FM_USER>(t => t.ID == entity.DISPATCH_USER_ID);
if (monitorUser != null)
{
entity.FIRE_STATUS = FOFireStatus.Reading;
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收审阅(外包)", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045_SHOWPRINT"));
}
}
else
{
throw new Exception("监护人不能为空,请联系管理员补充填写");
//触发给监护人员
entity.FIRE_STATUS = FOFireStatus.Monitor;
//触发给监护人填写
var monitorUser = this.GetEntity<T_FM_USER>(t => t.ID == entity.MONITOR_USER_ID);
if (monitorUser != null)
{
entity.FIRE_STATUS = FOFireStatus.Monitor;
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护(外包)", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045"));
}
else
{
throw new Exception("监护人不能为空,请联系管理员补充填写");
}
}
}
else
@ -547,6 +559,72 @@ namespace APT.FO.WebApi.Controllers
});
}
/// <summary>
/// 矿调度人员审阅
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("IdentityUpdate")]
public JsonActionResult<bool> IdentityUpdate([FromBody] T_FO_FIRE_JOB_WB entity)
{
return SafeExecute(() =>
{
var fire = this.GetEntity<T_FO_FIRE_JOB_WB>(entity.ID);
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (entity.TaskID != Guid.Empty)
{
var currTask = GetEntity<T_FM_NOTIFICATION_TASK>(t => t.ID == entity.TaskID);
if (currTask != null)
{
userId = currTask.USER_ID;
}
}
if (fire == null)
{
throw new Exception("未获取到动火作业工作票数据,请联系管理员确认");
}
T_FM_NOTIFICATION_TASK notice = null;
if (fire.FIRE_STATUS == FOFireStatus.Reading)
{
if (fire.DISPATCH_USER_ID == userId)
{
fire.DISPATCH_DEAL_STATUS = FOUserShiftStatusEnum.;
}
//触发给监护人填写
var monitorUser = this.GetEntity<T_FM_USER>(t => t.ID == fire.MONITOR_USER_ID);
if (monitorUser != null)
{
fire.FIRE_STATUS = FOFireStatus.Monitor;
notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护(外包)", fire.ID, fire.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045");
}
else
{
throw new Exception("监护人不能为空,请联系管理员补充填写");
}
}
else
{
throw new Exception("当前非审阅状态,请联系管理员排查");
}
T_FM_NOTIFICATION_TASK task = null;
if (entity.TaskID != Guid.Empty)
{
task = NotificationTaskService.GetTaskFinishModel(entity.TaskID);
task.SOURCE_FORMCODE = "FO045_SHOWPRINT";
}
UnifiedCommit(() =>
{
if (fire != null)
this.UpdateEntityNoCommit(fire);
if (task != null)
this.UpdateEntityNoCommit(task);
if (notice != null)
this.UpdateEntityNoCommit(notice);
});
return true;
});
}
/// <summary>
/// 回调函数
/// </summary>
/// <param name="id"></param>

View File

@ -1914,7 +1914,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP
var notices = new List<T_FM_NOTIFICATION_TASK>();
var dt = DateTime.Now;
var userType = this.GetEntity<T_OG_RELATED_USER_TYPE>(t => t.NAME == "动火操作人员");
var steps = this.GetEntities<T_HM_OPERATION_STEP>(t =>t.IS_DELETED ==false, new BaseFilter(filter.OrgId));
//var steps = this.GetEntities<T_HM_OPERATION_STEP>(t =>t.IS_DELETED ==false, new BaseFilter(filter.OrgId));
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId));
var jobs = this.GetEntities<T_FO_FIRE_JOB>(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.JOB_DATE.Value.AddMinutes(-30) <= dt && dt <t.JOB_DATE && t.IS_RUN == false, new BaseFilter(filter.OrgId), "Nav_Users");
if (userType!=null &&jobs != null && jobs.Any())
@ -1923,14 +1923,14 @@ namespace APT.PP.WebApi.Controllers.Api.PP
{
item.IS_RUN = true;
item.FIRE_STATUS = FOFireStatus.Sign;
var step = steps.FirstOrDefault(t => t.ID == item.OPERATION_STEP_ID);
//var step = steps.FirstOrDefault(t => t.ID == item.OPERATION_STEP_ID);
if (item.Nav_Users != null && item.Nav_Users.Any())
{
var sendUser = item.Nav_Users.FirstOrDefault(t => t.USER_TYPE_ID == userType.ID);
if (sendUser != null)
{
var userName = users.FirstOrDefault(t => t.ID == sendUser.USER_ID)?.NAME;
var notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票"+ step?.NAME + "-现场验收", item.ID, item.ORG_ID, (Guid)sendUser.USER_ID, userName, DateTime.Now,
var notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收", item.ID, item.ORG_ID, (Guid)sendUser.USER_ID, userName, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO043");
notices.Add(notice);
}
@ -1944,11 +1944,11 @@ namespace APT.PP.WebApi.Controllers.Api.PP
{
item.IS_RUN = true;
item.FIRE_STATUS = FOFireStatus.Sign;
var step = steps.FirstOrDefault(t => t.ID == item.OPERATION_STEP_ID);
//var step = steps.FirstOrDefault(t => t.ID == item.OPERATION_STEP_ID);
if (item.APPLY_USER_ID != null )
{
var userName = users.FirstOrDefault(t => t.ID == item.APPLY_USER_ID)?.NAME;
var notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票"+ step?.NAME + "-现场验收(外包)", item.ID, item.ORG_ID, (Guid)item.APPLY_USER_ID, userName, DateTime.Now,
var notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收(外包)", item.ID, item.ORG_ID, (Guid)item.APPLY_USER_ID, userName, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "FO045");
notices.Add(notice);
}

View File

@ -5491,6 +5491,135 @@ namespace APT.PP.WebApi.Controllers.Api
}
return true;
});
}
/// <summary>
/// 检查类型更新
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("BasicLibraryNewSync")]
public JsonActionResult<bool> BasicLibraryNewSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var oldUnit = "";
var newUnit = "";
if (filter.Parameter1 != null && filter.Parameter1.Contains("|"))
{
var param = filter.Parameter1.Split("|");
oldUnit = param[0];
newUnit = param[1];
}
else
throw new Exception("参数必须填写,例如:地下矿|选矿厂");
var oldUnitId = this.GetEntity<T_FM_USER_PRODUCTION_UNIT_SET>(t => t.NAME == oldUnit)?.ID;
var newUnitId = this.GetEntity<T_FM_USER_PRODUCTION_UNIT_SET>(t => t.NAME == newUnit)?.ID;
List<T_SK_BASIC_LIBRARY> libs = new List<T_SK_BASIC_LIBRARY>();
List<T_SK_BASIC_LIBRARY_DETAIL> measures = new List<T_SK_BASIC_LIBRARY_DETAIL>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> contents = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddens = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
var librarys = GetEntities<T_SK_BASIC_LIBRARY>(i => i.IS_DELETED == false && i.PRODUCTION_UNIT_ID == oldUnitId, new BaseFilter(filter.OrgId)).ToList();
var libraryIds = librarys.Select(t => t.ID).ToList();
var libraryDetails = GetEntities<T_SK_BASIC_LIBRARY_DETAIL>(i => i.IS_DELETED == false && libraryIds.Contains(i.BASIC_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList();
var libraryDetailIds = libraryDetails.Select(t => t.ID).ToList();
var libraryContents = GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(i => i.IS_DELETED == false && libraryDetailIds.Contains(i.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId)).ToList();
var libraryContentIds = libraryContents.Select(t => t.ID).ToList();
var libraryHiddens = GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(i => i.IS_DELETED == false && libraryContentIds.Contains(i.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId)).ToList();
if (librarys != null && librarys.Any())
{
foreach (var entity in librarys)
{
T_SK_BASIC_LIBRARY enterpriseLib = new T_SK_BASIC_LIBRARY();
enterpriseLib.ORG_ID = entity.ORG_ID;
enterpriseLib.PRODUCTION_UNIT_ID = newUnitId;
enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS;
enterpriseLib.MineType = entity.MineType;
enterpriseLib.MINE_NAME = entity.MINE_NAME;
enterpriseLib.AREA_ID = entity.AREA_ID;
enterpriseLib.AREA_NAME = entity.AREA_NAME;
enterpriseLib.RISK_NAME = entity.RISK_NAME;
enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION;
enterpriseLib.TYPE_ID = entity.TYPE_ID;
enterpriseLib.TYPE_NAME = entity.TYPE_NAME;
enterpriseLib.EVALUATE_L = entity.EVALUATE_L;
enterpriseLib.EVALUATE_E = entity.EVALUATE_E;
enterpriseLib.EVALUATE_C = entity.EVALUATE_C;
enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE;
enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL;
enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
enterpriseLib.NUM = entity.NUM;
libs.Add(enterpriseLib);
var measureTemps = libraryDetails.Where(t=>t.BASIC_LIBRARY_ID == entity.ID).ToList();
if (measureTemps.Any())
{
foreach (var temp in measureTemps)
{
T_SK_BASIC_LIBRARY_DETAIL measure = new T_SK_BASIC_LIBRARY_DETAIL();
measure.ORG_ID = filter.OrgId;
measure.BASIC_LIBRARY_ID = enterpriseLib.ID;
measure.MEASURES_NAME = temp.MEASURES_NAME;
measure.NUM = temp.NUM;
measures.Add(measure);
var contentTemps = libraryContents.Where(t => t.BASIC_LIBRARY_DETAIL_ID == temp.ID).ToList();
if (contentTemps.Any())
{
foreach (var ctemp in contentTemps)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT content = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT();
content.ORG_ID = filter.OrgId;
content.BASIC_LIBRARY_DETAIL_ID = measure.ID;
content.CHECK_CONTENT = ctemp.CHECK_CONTENT;
content.CHECK_CONTENTS_ID = ctemp.CHECK_CONTENTS_ID;
content.NUM = ctemp.NUM;
contents.Add(content);
var hiddenTemps = libraryHiddens.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == ctemp.ID).ToList();
if (hiddenTemps.Any())
{
foreach (var htemp in hiddenTemps)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hidden = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN();
hidden.ORG_ID = filter.OrgId;
hidden.BASIC_LIBRARY_DETAIL_CONTENT_ID = content.ID;
hidden.CHECK_QUESTION_ID = htemp.CHECK_QUESTION_ID;
hidden.HIDDEN_LEVEL = htemp.HIDDEN_LEVEL;
hidden.HIDDEN_DESCRIPTION = htemp.HIDDEN_DESCRIPTION;
hidden.RECTIFICATION_MEASURES = htemp.RECTIFICATION_MEASURES;
hidden.NUM = htemp.NUM;
hiddens.Add(hidden);
}
}
}
}
}
}
}
}
UnifiedCommit(() =>
{
if (libs != null && libs.Any())
BantchSaveEntityNoCommit(libs);
if (measures != null && measures.Any())
BantchSaveEntityNoCommit(measures);
if (contents != null && contents.Any())
BantchSaveEntityNoCommit(contents);
if (hiddens != null && hiddens.Any())
BantchSaveEntityNoCommit(hiddens);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
}
}

View File

@ -499,7 +499,7 @@ namespace APT.SK.WebApi.Controllers.Api
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
bool isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg);
bool isOK = InsertModel5(dataTables.Tables[0], orgId, ref Msg);
try
{
@ -1872,16 +1872,23 @@ namespace APT.SK.WebApi.Controllers.Api
}
}
}
UnifiedCommit(() =>
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
if (setLists != null && setLists.Any())
BantchAddEntityNoCommit(setLists);
if (setContentLists != null && setContentLists.Any())
BantchAddEntityNoCommit(setContentLists);
if (setUserLists != null && setUserLists.Any())
BantchAddEntityNoCommit(setUserLists);
});
Msg = "导入成功!";
UnifiedCommit(() =>
{
if (setLists != null && setLists.Any())
BantchAddEntityNoCommit(setLists);
if (setContentLists != null && setContentLists.Any())
BantchAddEntityNoCommit(setContentLists);
if (setUserLists != null && setUserLists.Any())
BantchAddEntityNoCommit(setUserLists);
});
Msg = "导入成功!";
}
return true;
}
}

View File

@ -1804,8 +1804,8 @@ namespace APT.SK.WebApi.Controllers.Api
var posts = this.GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保"));
if (AHDepart != null && loginDepart == AHDepart.ID)
var AHDepart = departs.FirstOrDefault(t => t.ID == loginDepart);
if (AHDepart != null && (AHDepart.DEPARTMENT_TYPE == 5 || AHDepart.DEPARTMENT_TYPE == 2))
{
loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID;
}
@ -1838,7 +1838,7 @@ namespace APT.SK.WebApi.Controllers.Api
if (checkList.Data != null && checkList.Data.Any())
{
var libraryIds = postLists.Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => libraryIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_Area", "Nav_Type", "Nav_RiskName", "Nav_Details", "Nav_Photo.Nav_ImgFile");
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => libraryIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_Area", "Nav_Type", "Nav_RiskName", "Nav_Details");
foreach (var item in checkList.Data)
{
var tempIds = postLists.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.POST_NAME == item.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
@ -2538,7 +2538,7 @@ namespace APT.SK.WebApi.Controllers.Api
var loginUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
List<Guid> selectMinetype = new List<Guid>();
var users = this.GetEntities<T_FM_USER>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Person" ,"Nav_ProdutionUnit").ToList();
var users = this.GetEntities<T_FM_USER>(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_Person" ,"Nav_ProdutionUnit").ToList();
var userInfoTemp = users.FirstOrDefault(t => t.ID == loginUser);
if (userInfoTemp != null && userInfoTemp.Nav_ProdutionUnit != null && userInfoTemp.Nav_ProdutionUnit.Any())
{
@ -2704,7 +2704,7 @@ namespace APT.SK.WebApi.Controllers.Api
}
list.Add(listNew);
}
if (userInfoTemp != null && userInfoTemp.NAME.Contains("管理员"))
if (userInfoTemp != null && userInfoTemp.Nav_Department!=null && (userInfoTemp.NAME.Contains("管理员") || userInfoTemp.Nav_Department.DEPARTMENT_STATUS == 2 || userInfoTemp.Nav_Department.DEPARTMENT_TYPE == 5))
{
checkList.Data = list.OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList();
}