This commit is contained in:
wyw 2026-03-27 10:24:57 +08:00
commit f7a7d61285
10 changed files with 74805 additions and 73197 deletions

View File

@ -11571,7 +11571,7 @@ namespace APT.BaseData.Services.DomainServices
record.RECITIFY_USER_ID = detail.RECITIFY_USER_ID;
record.IMPLEMENT_USER_ID = detail.RECITIFY_USER_ID;
record.ACCEPT_USER_ID = acceptUser?.ID;
record.CHECK_PERSON = entity.CHECK_PERSON;
record.CHECK_PERSON = detail.CHECK_PERSON;
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
record.CHECK_QUESTION_ID = detail.CHECK_QUESTION_ID;
record.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;
@ -11652,7 +11652,7 @@ namespace APT.BaseData.Services.DomainServices
record.RECITIFY_USER_ID = detail.RECITIFY_USER_ID;
record.IMPLEMENT_USER_ID = detail.RECITIFY_USER_ID;
record.ACCEPT_USER_ID = acceptUser?.ID;
record.CHECK_PERSON = entity.CHECK_PERSON;
record.CHECK_PERSON = detail.CHECK_PERSON;
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
record.CHECK_QUESTION_ID = detail.CHECK_QUESTION_ID;
record.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;

View File

@ -13211,6 +13211,10 @@ builder.Property(t => t.MEASURE_CODE).HasMaxLength(500);
builder.HasOne(t => t.Nav_ProductionUnit).WithMany().HasForeignKey(t => t.PRODUCTION_UNIT_ID).OnDelete(DeleteBehavior.Restrict);
builder.Property(t => t.CHECKCONTENT).HasMaxLength(500);
builder.Property(t => t.CHECK_STANDARD).HasMaxLength(500);
builder.Ignore(t => t.CHECK_BASICS);
builder.Ignore(t => t.DESCREPTION);
builder.Ignore(t => t.QUESTION_LEVEL_SHOW);
builder.Ignore(t => t.DEMAND);
builder.HasOne(t => t.Nav_Area).WithMany().HasForeignKey(t => t.AREA_ID).OnDelete(DeleteBehavior.Restrict);
}
}

View File

@ -57,7 +57,24 @@ namespace APT.MS.Domain.Entities.SK
/// 判定标准
/// </summary>
[Description("判定标准")]
public string CHECK_STANDARD { get; set; }
public string CHECK_STANDARD { get; set; }
[Description("检查依据")]
[NotMapped]
[DataFieldIngore]
public string CHECK_BASICS { get; set; }
[Description("隐患描述")]
[NotMapped]
[DataFieldIngore]
public string DESCREPTION { get; set; }
[Description("问题等级")]
[NotMapped]
[DataFieldIngore]
public string QUESTION_LEVEL_SHOW { get; set; }
[Description("整改措施")]
[NotMapped]
[DataFieldIngore]
public string DEMAND { get; set; }
[Description("辨识区域")]
[DataFieldForeignKey("Nav_Area")]

View File

@ -962,8 +962,18 @@
baseFilter.IgnoreOrgRule = true;
baseFilter.OrgId = null;
var dbApprove = this.GetEntities<T_PF_APPROVE>(expression, baseFilter, new string[] { "Nav_ApproveDetails.Nav_ApproveUser", "Nav_ApproveDetails.Nav_ApproveRole" }).OrderByDescending(t => t.CREATE_TIME).ToList();
if (!dbApprove.Any())
if (dbApprove==null || !dbApprove.Any())
return null;
if (dbApprove.Any())
{
foreach (var item in dbApprove)
{
if (item.Nav_ApproveDetails != null && item.Nav_ApproveDetails.Any())
{
item.Nav_ApproveDetails = item.Nav_ApproveDetails.OrderBy(t => t.NUM).ThenBy(m => m.Nav_ApproveRole?.CODE).ThenBy(n=>n.NODE_APPROVE_TIME).ToList();
}
}
}
return dbApprove;
});
}

View File

@ -5452,6 +5452,8 @@ namespace APT.PP.WebApi.Controllers.Api
record.ORG_ID = filter.OrgId;
record.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
record.APPLY_USER_ID = user.ID;
record.RECORD_USER_ID = user.ID;
record.CHECK_PERSON = user.NAME;
record.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
record.CHECK_TYPE_ID = item.CheckTypeId;
record.PLANCHECKFREQUENCY = item.Cycle;

File diff suppressed because it is too large Load Diff

View File

@ -985,7 +985,7 @@ namespace APT.SK.WebApi.Controllers
{
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
var temp = item2.NUM + "*" + item2.MEASURES_NAME + "。";
var temp = item2.NUM + "*" + item2.MEASURES_NAME;
item.MINE_NAME = item.MINE_NAME + temp;
item.MEASURE = item.MEASURE + temp;
var conListTemp = "";
@ -995,7 +995,7 @@ namespace APT.SK.WebApi.Controllers
{
if (con != null && con.Nav_Contents != null)
{
var conTemp = item2.NUM +"."+con.NUM + "*"+con.Nav_Contents?.CHECKCONTENT +"";
var conTemp = item2.NUM +"."+con.NUM + "*"+con.Nav_Contents?.CHECKCONTENT;
conListTemp = conListTemp + conTemp;
}
}

View File

@ -2,11 +2,14 @@
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Services.Services.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.LR;
using APT.MS.Domain.Entities.SC.PT;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums.SK;
using APT.Utility;
using Castle.Core.Internal;
using Google.Protobuf.WellKnownTypes;
using ICSharpCode.SharpZipLib.Core;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
@ -42,14 +45,44 @@ namespace APT.SK.WebApi.Controllers.Api
{
pageFilter.Sort = "";
}
var filter = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "reset");
if (filter != null && !string.IsNullOrEmpty(filter.Value.ToString()))
{
pageFilter.FilterGroup.Rules.Remove(filter);
}
pageFilter.Include.Add("Nav_ListCheckQuestion");
return WitOrderPaged(null, pageFilter);
pageFilter.Include.Add("Nav_ContentsBasics.Nav_Law");
pageFilter.SelectField.Add("Nav_ListCheckQuestion.NUM");
pageFilter.SelectField.Add("Nav_ListCheckQuestion.DESCREPTION");
pageFilter.SelectField.Add("Nav_ListCheckQuestion.DEMAND");
pageFilter.SelectField.Add("Nav_ContentsBasics.Nav_Law.NAME");
var result = GetOrderPageEntities<T_SK_CHECK_CONTENTS>(null, pageFilter);
if (result != null && result.Data != null && result.Data.Any())
{
foreach (var item in result.Data)
{
if (item.Nav_ListCheckQuestion != null && item.Nav_ListCheckQuestion.Any())
{
foreach (var item2 in item.Nav_ListCheckQuestion.OrderBy(t => t.NUM))
{
if (item2 != null && !string.IsNullOrEmpty(item2.DESCREPTION) && !string.IsNullOrEmpty(item2.DEMAND))
{
var tempD = item2.NUM + "*" + item2.DESCREPTION;
item.DESCREPTION = item.DESCREPTION + tempD;
var tempL = item2.NUM + "*" + item2.QUESTION_LEVEL.GetDescription();
item.QUESTION_LEVEL_SHOW = item.QUESTION_LEVEL_SHOW + tempL;
var tempM = item2.NUM + "*" + item2.DEMAND;
item.DEMAND = item.DEMAND + tempM;
}
}
}
if (item.Nav_ContentsBasics != null && item.Nav_ContentsBasics.Any())
{
item.CHECK_BASICS = string.Join("", item.Nav_ContentsBasics.Select(t=>t.Nav_Law?.NAME));
}
}
}
return result;
}
@ -192,10 +225,10 @@ namespace APT.SK.WebApi.Controllers.Api
//获取数据
Dictionary<int, int> startRowIndexs = new Dictionary<int, int>();
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
startRowIndexs.Add(0, 2);//根据Excel格式数据赋值
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg);
isOK = InsertModel3(dataTables.Tables[0], orgId, ref Msg);
try
{
@ -577,11 +610,11 @@ namespace APT.SK.WebApi.Controllers.Api
/// <exception cref="Exception"></exception>
public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
if (rowAll == 1)
@ -590,11 +623,12 @@ namespace APT.SK.WebApi.Controllers.Api
}
List<T_SK_CHECK_CONTENTS> contents = new List<T_SK_CHECK_CONTENTS>();
List<T_SK_CHECK_QUESTION> qustions = new List<T_SK_CHECK_QUESTION>();
List<T_SK_CHECK_CONTENTS_BASIC> basics = new List<T_SK_CHECK_CONTENTS_BASIC>();
List<T_SK_CHECK_QUESTION> qustionTemps = new List<T_SK_CHECK_QUESTION>();
var baseFilter = new BaseFilter(orgId);
var productionUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(i => i.IS_DELETED == false, baseFilter);
var oldContents = this.GetEntities<T_SK_CHECK_CONTENTS>(i => i.IS_DELETED == false, baseFilter);
var oldHiddens = this.GetEntities<T_SK_CHECK_QUESTION>(i => i.IS_DELETED == false, baseFilter);
var oldLaws = this.GetEntities<T_LR_LAW>(i => i.IS_DELETED == false, baseFilter);
for (int i = 0; i < rowAll; i++)
{
@ -603,68 +637,201 @@ namespace APT.SK.WebApi.Controllers.Api
var unit = productionUnits.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim());
if (unit == null)//旧表已存在数据
{
Msg = Msg + "生产单元:" + dtSource.Rows[i][0].ToString().Trim() + "不存在,请先到系统管理添加;";
}
else
{
T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION();
content.ORG_ID = orgId;
content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Replace("\n","").Trim();
content.CHECK_BASICS = dtSource.Rows[i][2].ToString().Replace("\n", "").Trim();
content.CHECK_STANDARD = dtSource.Rows[i][3].ToString().Replace("\n", "").Trim();
content.DESCREPTION = dtSource.Rows[i][4].ToString().Replace("\n", "").Trim();
content.QUESTION_LEVEL = SKHiddenLevel.General;
content.DEMAND = dtSource.Rows[i][6].ToString().Replace("\n", "").Trim();
content.PRODUCTION_UNIT_ID = unit?.ID;
qustionTemps.Add(content);
Msg = Msg +"第" + (i + 3) + "行生产单元:" + dtSource.Rows[i][0].ToString().Trim() + "不存在,请先到系统管理添加;";
}
}
}
if (qustionTemps != null && qustionTemps.Any())
{
foreach (var item in qustionTemps)
else
{
var conFirsts = item.CHECKCONTENT.Split("").ToList();
var queFirsts = item.DESCREPTION.Split("。").ToList();
var mesFirsts = item.DEMAND.Split("。").ToList();
if (conFirsts != null && conFirsts.Any())
Msg = Msg + "第" + (i + 3) + "行生产单元不能为空;";
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()))
{
var conFirst = oldContents.FirstOrDefault(t => t.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim());
if (conFirst != null)
{
foreach (var first in conFirsts)
Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请勿重复导入;";
}
}
else
{
Msg = Msg + "第" + (i + 3) + "行检查内容不能为空;";
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()))
{
var lists = dtSource.Rows[i][2].ToString().Trim().Split("").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(first))
if (!string.IsNullOrEmpty(item))
{
var num = first.Split("*")[0];
var con = first.Split("*")[1];
T_SK_CHECK_CONTENTS content = new T_SK_CHECK_CONTENTS();
content.ORG_ID = orgId;
content.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
content.CHECKCONTENT = con;
contents.Add(content);
var ques = queFirsts.Where(t => t.StartsWith(num)).ToList();
if (ques != null && ques.Any())
var conFirst = oldLaws.FirstOrDefault(t => t.NAME == item);
if (conFirst == null)
{
var j = 0;
foreach (var que in ques)
Msg = Msg + "第" + (i + 3) + "行检查依据" + item + "不存在,请先到知识库法律法规库维护;";
}
}
}
}
}
var hiddenDes = dtSource.Rows[i][4].ToString().Trim();
if (!string.IsNullOrEmpty(hiddenDes))
{
if (!hiddenDes.Contains("。"))
{
Msg = Msg + "第" + (i + 3) + "行隐患描述格式不正确1*内容。";
}
if (!hiddenDes.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行隐患描述格式不正确1*内容。";
}
var lists = hiddenDes.Split("。").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (!item.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行隐患描述格式不正确1*内容。";
}
}
}
}
}
var hiddenLevel = dtSource.Rows[i][5].ToString().Trim();
if (!string.IsNullOrEmpty(hiddenLevel))
{
if (!hiddenLevel.Contains("。"))
{
Msg = Msg + "第" + (i + 3) + "行隐患等级格式不正确1*内容。";
}
if (!hiddenLevel.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行隐患等级格式不正确1*内容。";
}
var lists = hiddenLevel.Split("。").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (!item.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行隐患等级格式不正确1*内容。";
}
else
{
if (item.Split('*')[1] != "一般" && item.Split('*')[1] != "重大")
{
var quNum = que.Split("*")[0];
var mes = mesFirsts.FirstOrDefault(t => t.StartsWith(quNum));
T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION();
qu.CHECK_CONTENTS_ID = content.ID;
qu.ORG_ID = orgId;
qu.DESCREPTION = que.Split('*')[1];
qu.DEMAND = mes.Split("*")[1];
qu.QUESTION_LEVEL = item.QUESTION_LEVEL;
qu.NUM = j;
qustions.Add(qu);
j++;
Msg = Msg + "第" + (i + 3) + "行隐患等级只能填写一般或重大";
}
}
}
}
}
}
var hiddenMes = dtSource.Rows[i][6].ToString().Trim();
if (!string.IsNullOrEmpty(hiddenMes))
{
if (!hiddenMes.Contains("。"))
{
Msg = Msg + "第" + (i + 3) + "行整改措施格式不正确1*内容。";
}
if (!hiddenMes.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行整改措施格式不正确1*内容。";
}
var lists = hiddenMes.Split("。").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (!item.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行整改措施格式不正确1*内容。";
}
}
}
}
}
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
for (int i = 0; i < rowAll; i++)
{
var unit = productionUnits.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim());
T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION();
content.ORG_ID = orgId;
content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Replace("\n", "").Trim();
content.CHECK_BASICS = dtSource.Rows[i][2].ToString().Replace("\n", "").Trim();
content.CHECK_STANDARD = dtSource.Rows[i][3].ToString().Replace("\n", "").Trim();
content.DESCREPTION = dtSource.Rows[i][4].ToString().Replace("\n", "").Trim();
content.QUESTION_LEVEL_SHOW = dtSource.Rows[i][5].ToString().Replace("\n", "").Trim();
content.DEMAND = dtSource.Rows[i][6].ToString().Replace("\n", "").Trim();
content.PRODUCTION_UNIT_ID = unit?.ID;
qustionTemps.Add(content);
}
if (qustionTemps != null && qustionTemps.Any())
{
foreach (var item in qustionTemps)
{
T_SK_CHECK_CONTENTS content = new T_SK_CHECK_CONTENTS();
content.ORG_ID = orgId;
content.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
content.CHECKCONTENT = item.CHECKCONTENT;
content.CHECK_STANDARD = item.CHECK_STANDARD;
contents.Add(content);
if (!string.IsNullOrEmpty(item.DESCREPTION) && !string.IsNullOrEmpty(item.DEMAND))
{
var ques = item.DESCREPTION.Split("。").ToList();
var levels = item.QUESTION_LEVEL_SHOW.Split("。").ToList();
var mess = item.DEMAND.Split("。").ToList();
if (ques != null && ques.Any())
{
foreach (var que in ques)
{
var quNum = que.Split("*")[0];
var mes = mess.FirstOrDefault(t => t.StartsWith(quNum));
var level = levels.FirstOrDefault(t => t.StartsWith(quNum));
T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION();
qu.CHECK_CONTENTS_ID = content.ID;
qu.ORG_ID = orgId;
qu.DESCREPTION = que.Split('*')[1];
qu.DEMAND = mes.Split("*")[1];
qu.QUESTION_LEVEL = level!=null && level.Split("*")[1] =="重大"? SKHiddenLevel.Major: SKHiddenLevel.General;
qu.NUM = int.Parse(que.Split('*')[0]);
qustions.Add(qu);
}
}
}
if (!string.IsNullOrEmpty(item.CHECK_BASICS))
{
var lists = item.CHECK_BASICS.Split("").ToList();
if (lists != null && lists.Any())
{
foreach (var bas in lists)
{
if (!string.IsNullOrEmpty(bas))
{
var basFirst = oldLaws.FirstOrDefault(t => t.NAME == bas);
T_SK_CHECK_CONTENTS_BASIC post = new T_SK_CHECK_CONTENTS_BASIC();
post.ORG_ID = orgId;
post.CHECK_CONTENTS_ID = content.ID;
post.LAW_ID = basFirst.ID;
basics.Add(post);
}
}
}
}
}
}
if (!string.IsNullOrEmpty(Msg))
{
@ -677,7 +844,9 @@ namespace APT.SK.WebApi.Controllers.Api
if (contents != null && contents.Any())
BantchSaveEntityNoCommit(contents);
if (qustions != null && qustions.Any())
BantchSaveEntityNoCommit(qustions);
BantchSaveEntityNoCommit(qustions);
if (basics != null && basics.Any())
BantchSaveEntityNoCommit(basics);
});
Msg = "导入成功!";
}

View File

@ -379,6 +379,7 @@ namespace APT.SK.WebApi.Controllers.Api
record.STATUS = PFStandardStatus.Draft;
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
record.CHECK_TIME = entity.CHECK_TIME;
record.CHECK_PERSON = detail.CHECK_PERSON;
records.Add(record);
if (detail.Nav_RectifyDetailFiles != null && detail.Nav_RectifyDetailFiles.Any())
{
@ -629,7 +630,8 @@ namespace APT.SK.WebApi.Controllers.Api
record.STATUS = PFStandardStatus.Draft;
record.CHECK_TYPE_ID = notice.CHECK_TYPE_ID;
record.CHECK_TIME = notice.CHECK_TIME;
record.NOTICE_CODE = notice.NOTICE_CODE;
record.NOTICE_CODE = notice.NOTICE_CODE;
record.CHECK_PERSON = detail.CHECK_PERSON;
records.Add(record);
if (detail.Nav_RectifyDetailFiles != null && detail.Nav_RectifyDetailFiles.Any())
{

View File

@ -283,6 +283,7 @@ namespace APT.SK.WebApi.Controllers.Api
report.CHECK_TIME = entity.CHECK_TIME;
report.STATUS = PFStandardStatus.Draft;
report.NOTICE_CODE = entity.NOTICE_CODE;
report.CHECK_PERSON = entity.CHECK_PERSON;
//if (record.Nav_CheckRecordFiles != null && record.Nav_CheckRecordFiles.Any())
//{
// foreach (var item in record.Nav_CheckRecordFiles)
@ -475,7 +476,8 @@ namespace APT.SK.WebApi.Controllers.Api
report.DEPARTMENT_TYPE = record.DEPARTMENT_TYPE;
report.CHECK_TIME = record.CHECK_TIME;
report.STATUS = PFStandardStatus.Draft;
report.NOTICE_CODE = record.NOTICE_CODE;
report.NOTICE_CODE = record.NOTICE_CODE;
report.CHECK_PERSON = record.CHECK_PERSON;
//if (record.Nav_CheckRecordFiles != null && record.Nav_CheckRecordFiles.Any())
//{
// foreach (var item in record.Nav_CheckRecordFiles)