From 1b275eb6d5a4efb41f3e05688e7719982242eb15 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Fri, 13 Mar 2026 09:27:38 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A2=98=E5=BA=93=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=9F=A5=E8=AF=86=E7=82=B9=E6=9F=A5=E7=9C=8B=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=20ignore=202=E3=80=81=E5=AD=90=E5=85=AC=E5=8F=B8?= =?UTF-8?q?=E4=BB=8E=E6=80=BB=E9=83=A8=E5=90=8C=E6=AD=A5=E8=AF=95=E9=A2=98?= =?UTF-8?q?=203=E3=80=81=E8=8E=B7=E5=8F=96=E6=80=BB=E9=83=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=20=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APT.MS.Data/Mapping/T4/T4Map.cs | 5 + APT.MS.Domain/Entities/SC/SE/T_SE_TEST.cs | 9 + .../Api/LRController/6LawController.cs | 9 +- .../Api/SEController/SETestController.cs | 284 ++++++++++++++++++ 4 files changed, 305 insertions(+), 2 deletions(-) diff --git a/APT.MS.Data/Mapping/T4/T4Map.cs b/APT.MS.Data/Mapping/T4/T4Map.cs index 9907009..6cea833 100644 --- a/APT.MS.Data/Mapping/T4/T4Map.cs +++ b/APT.MS.Data/Mapping/T4/T4Map.cs @@ -10922,6 +10922,7 @@ builder.Property(t => t.OPTION_C).HasMaxLength(500); builder.Property(t => t.OPTION_D).HasMaxLength(500); builder.Property(t => t.OPTION_E).HasMaxLength(500); builder.Ignore(t => t.ANSWERSHOW); +builder.Ignore(t => t.STRPOINT); builder.Property(t => t.TRAINNAME).HasMaxLength(500); builder.Property(t => t.MineType).HasMaxLength(500); } @@ -13101,6 +13102,7 @@ builder.Property(t => t.CHECK_STANDARD).HasMaxLength(500); base.Configure(builder); builder.HasOne(t => t.Nav_DetailContent).WithMany(t=>t.Nav_DetailBasics).HasForeignKey(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID).OnDelete(DeleteBehavior.Restrict); builder.HasOne(t => t.Nav_Law).WithMany().HasForeignKey(t => t.LAW_ID).OnDelete(DeleteBehavior.Restrict); +builder.Ignore(t => t.CHECK_CONTENTS_ID); } } #endregion @@ -13114,6 +13116,7 @@ builder.HasOne(t => t.Nav_Law).WithMany().HasForeignKey(t => t.LAW_ID).OnDelete( builder.HasOne(t => t.Nav_Question).WithMany().HasForeignKey(t => t.CHECK_QUESTION_ID).OnDelete(DeleteBehavior.Restrict); builder.Property(t => t.HIDDEN_DESCRIPTION).HasMaxLength(500); builder.Property(t => t.RECTIFICATION_MEASURES).HasMaxLength(500); +builder.Ignore(t => t.CHECK_CONTENTS_ID); } } #endregion @@ -13236,6 +13239,8 @@ builder.Property(t => t.DEMAND).HasMaxLength(500); builder.Ignore(t => t.QUESTION_LEVEL_SHOW); builder.Ignore(t => t.CHECKCONTENT); builder.Ignore(t => t.PRODUCTION_UNIT_ID); +builder.Ignore(t => t.CHECK_BASICS); +builder.Ignore(t => t.CHECK_STANDARD); } } #endregion diff --git a/APT.MS.Domain/Entities/SC/SE/T_SE_TEST.cs b/APT.MS.Domain/Entities/SC/SE/T_SE_TEST.cs index 8dea29a..095009e 100644 --- a/APT.MS.Domain/Entities/SC/SE/T_SE_TEST.cs +++ b/APT.MS.Domain/Entities/SC/SE/T_SE_TEST.cs @@ -119,6 +119,14 @@ namespace APT.MS.Domain.Entities.SE [Description("知识点")] [FormFieldEdit] public List Nav_Points { get; set; } + + /// + /// 知识点 + /// + [Description("知识点")] + [DataFieldIngore] + public string STRPOINT { get; set; } + /// /// 培训名称 /// @@ -136,5 +144,6 @@ namespace APT.MS.Domain.Entities.SE [FormFieldQuery] [FormFieldEdit] public string MineType { get; set; } + } } diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/LRController/6LawController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/LRController/6LawController.cs index 505b95e..47d011d 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/LRController/6LawController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/LRController/6LawController.cs @@ -428,8 +428,9 @@ namespace APT.LR.WebApi.Controllers.Api } } } - //pageFilter.SelectField.ToArray() - PagedResultDto data = context.GetOrderPageEntities(expression, null, null, pageFilter.Limit, pageFilter.Start, pageFilter.Include.ToArray()); + Dictionary orders = new Dictionary(); + orders.Add("CREATE_TIME", DbOrder.DESC); + PagedResultDto data = context.GetOrderPageEntities(expression, orders, null, pageFilter.Limit, pageFilter.Start, pageFilter.Include.ToArray()); result.TotalCount = data.TotalCount; result.Data = data.Items; List ListLawID = null; @@ -570,6 +571,10 @@ namespace APT.LR.WebApi.Controllers.Api foreach (var item in Nav_LawType) { + modelCheckType = listLawType.FirstOrDefault(e => e.ID == item.ID); + if (modelCheckType != null)//如果已经有这种检查类型 直接跳过 + continue; + if (listLawTypeData != null && listLawTypeData.Count() > 0) { modelCheckType = listLawTypeData.FirstOrDefault(e => e.ID == item.ID); diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETestController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETestController.cs index 1c834ca..6e7c6c1 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETestController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETestController.cs @@ -14,12 +14,22 @@ using APT.BaseData.Domain.Entities.FM; using Castle.Core.Internal; using static APT.SC.WebApi.Controllers.Api.BI.BIController; using Microsoft.AspNetCore.DataProtection; +using APT.BaseData.Domain.Enums.PF; +using APT.BaseData.Domain.IServices.OP; +using APT.Migrations; +using System.Linq.Expressions; namespace APT.SE.WebApi.Controllers.Api { [Route("api/SE/SETest")] public partial class SETestController : AuthorizeApiController { + IOPTenantDBConnService OPTenantDBConnService { get; set; } + public SETestController(IOPTenantDBConnService opTenantDBConnService) + { + OPTenantDBConnService = opTenantDBConnService; + } + /// /// 查询 /// @@ -637,5 +647,279 @@ namespace APT.SE.WebApi.Controllers.Api Msg = "导入成功!"; return true; } + + + /// + /// 排序分页查询数据 + /// + /// 分页过滤实体 + /// + [HttpPost, Route("OrderPagedHead")] + public PagedActionResult OrderPagedHead([FromBody] KeywordPageFilter pageFilter) + { + return SafeGetPagedData(delegate (PagedActionResult result) + { + string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription())); + using (var context = new MigrationContext(strConn)) + { + Expression> expression = e => !e.IS_DELETED; + if (pageFilter.FilterGroup != null && pageFilter.FilterGroup.Rules != null && pageFilter.FilterGroup.Rules.Count() > 0) + { + foreach (var item in pageFilter.FilterGroup.Rules) + { + if (item.Field == "NAME") + { + expression = expression.And(e => e.NAME.Contains(item.Value.ToString())); + } + else if (item.Field == "TYPE" && item.Value != null) + { + try + { + SETestTypeEnum TYPE = (SETestTypeEnum)Convert.ToInt32(item.Value.ToString()); + expression = expression.And(e => e.TYPE == TYPE); + } + catch { } + } + } + } + Dictionary orders = new Dictionary(); + orders.Add("CREATE_TIME", DbOrder.DESC); + PagedResultDto data = context.GetOrderPageEntities(expression, orders, null, pageFilter.Limit, pageFilter.Start, "Nav_Points.Nav_Point"); + result.TotalCount = data.TotalCount; + result.Data = data.Items; + foreach (var item in result.Data) + { + if (item.TYPE == SETestTypeEnum.是非题) + { + item.OPTION_A = "正确"; + item.OPTION_B = "错误"; + } + item.ANSWERSHOW = GetAnswerShow(item.ANSWER); + if (item.Nav_Points != null && item.Nav_Points.Count() > 0) + { + item.STRPOINT = string.Join(',', item.Nav_Points.Select(e => e.Nav_Point.NAME)); + } + else + { + item.STRPOINT = ""; + } + } + } + }); + } + + + /// + /// 位掩码 根据答案获取显示 + /// + /// + /// + /// + private string GetAnswerShow(int ANSWER, int maxOption = 32) + { + List select = new List(); + int value = 1; + while (value <= ANSWER && value <= maxOption) + { + if ((ANSWER & value) != 0) + { + select.Add(value); + } + value *= 2; + } + string answer = string.Join(",", select); + return answer.Replace("1", "A").Replace("2", "B").Replace("4", "C").Replace("8", "D"); + } + /// + /// 集团法律法规同步到本地 + /// + /// + /// + [HttpPost, Route("SyncToLocal")] + public JsonActionResult SyncToLocal([FromBody] SyscList list) + { + return SafeExecute(() => + { + var listText = list.ListModel; + if (listText == null || listText.Count < 1) + { + throw new Exception("请选择题目后再提交!"); + } + + Guid? LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + Guid? OrgID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; + DateTime dtNow = DateTime.Now.Date; + + List listPoint = new List(); + List listPointEnum = new List(); + + IEnumerable listTestData = null; + List listPointData = new List(); + List listPointEnumData = new List(); + + List listTestSync = new List(); + List listPointSync = new List(); + List listPointEnumSync = new List(); + + T_SE_TEST modelTestSync = null; + T_SE_TEST_LIST_POINT modelPointSync = null; + T_SE_TEST_ENUM_POINT modelPointEnumSync = null; + + #region 获取入参数据 和 获取 入参对应数据库数据 + + foreach (var item in list.ListModel) + if (item.Nav_Points != null && item.Nav_Points.Count() > 0) + listPoint.AddRange(item.Nav_Points); + + if (listPoint != null && listPoint.Count > 0) + { + foreach (var item in listPoint) + { + if (!item.POINT_ID.HasValue) + continue; + modelPointEnumSync = listPointEnum.FirstOrDefault(e => e.ID == item.POINT_ID.Value); + if (modelPointEnumSync == null) + listPointEnum.Add(item.Nav_Point); + } + } + + var listTestID = listText.Select(e => e.ID); + listTestData = GetEntities(e => listTestID.Contains(e.ID), null, "Nav_Points.Nav_Point"); + foreach (var item in listTestData) + { + if (item.Nav_Points != null && item.Nav_Points.Count > 0) + listPointData.AddRange(item.Nav_Points); + } + if (listPointData != null && listPointData.Count > 0) + foreach (var item in listPointData) + listPointEnumData.Add(item.Nav_Point); + + #endregion + + + #region 数据判断处理 + + foreach (var item in listText) + { + modelTestSync = listTestData.FirstOrDefault(e => e.ID == item.ID); + if (modelTestSync == null) + { + item.CREATER_ID = LoginID; + item.CREATE_TIME = dtNow; + } + listTestSync.Add(item); + } + + foreach (var item in listPoint) + { + if (listPointData != null && listPointData.Count() > 0) + { + modelPointSync = listPointData.FirstOrDefault(e => e.ID == item.ID); + } + else + { + modelPointSync = null; + } + if (modelPointSync == null) + { + item.CREATER_ID = LoginID; + item.CREATE_TIME = dtNow; + } + listPointSync.Add(item); + } + + foreach (var item in listPointEnum) + { + if (listPointEnumData != null && listPointEnumData.Count() > 0) + { + modelPointEnumSync = listPointEnumData.FirstOrDefault(e => e.ID == item.ID); + } + else + { + modelPointEnumSync = null; + } + if (modelPointEnumSync == null) + { + item.CREATER_ID = LoginID; + item.CREATE_TIME = dtNow; + } + listPointEnumSync.Add(item); + } + + #endregion + + #region 数据统一处理 CREATE_TIME MODIFY_TIME MODIFIER_ID + + if (listTestSync != null && listTestSync.Count() > 0) + { + foreach (var item in listTestSync) + { + item.Nav_Points = null; + item.ORG_ID = OrgID; + if (item.CREATER_ID == LoginID) + { + item.CREATE_TIME = dtNow; + } + item.MODIFY_TIME = dtNow; + item.MODIFIER_ID = LoginID; + } + } + + if (listPointSync != null && listPointSync.Count() > 0) + { + foreach (var item in listPointSync) + { + item.Nav_Point = null; + item.ORG_ID = OrgID; + if (item.CREATER_ID == LoginID) + { + item.CREATE_TIME = dtNow; + } + item.MODIFY_TIME = dtNow; + item.MODIFIER_ID = LoginID; + } + } + + if (listPointEnumSync != null && listPointEnumSync.Count() > 0) + { + foreach (var item in listPointEnumSync) + { + item.ORG_ID = OrgID; + if (item.CREATER_ID == LoginID) + { + item.CREATE_TIME = dtNow; + } + item.MODIFY_TIME = dtNow; + item.MODIFIER_ID = LoginID; + } + } + + #endregion + + #region 数据处理 + + UnifiedCommit(() => + { + if (listTestSync != null && listTestSync.Any()) + BantchSaveEntityNoCommit(listTestSync); + if (listPointSync != null && listPointSync.Any()) + BantchSaveEntityNoCommit(listPointSync); + if (listPointEnumSync != null && listPointEnumSync.Any()) + BantchSaveEntityNoCommit(listPointEnumSync); + }); + + #endregion + + return true; + }); + } + + /// + /// 数据同步传参 + /// + public class SyscList + { + public List ListModel { get; set; }//ICollection + } } }