185 lines
7.8 KiB
C#
185 lines
7.8 KiB
C#
|
|
using APT.BaseData.Domain.Entities;
|
|||
|
|
using APT.BaseData.Domain.Entities.FM;
|
|||
|
|
using APT.BaseData.Domain.IServices.FM;
|
|||
|
|
using APT.Infrastructure.Core;
|
|||
|
|
using APT.MS.Domain.Entities.BS;
|
|||
|
|
using APT.MS.Domain.Enums;
|
|||
|
|
using APT.Utility;
|
|||
|
|
using APT.WebApi.Models;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Linq.Expressions;
|
|||
|
|
|
|||
|
|
namespace APT.BS.WebApi.Controllers.Api
|
|||
|
|
{
|
|||
|
|
[Route("api/BS/BSCheckProjectCategory")]
|
|||
|
|
public partial class BSCheckProjectCategoryController : AuthorizeApiController<T_BS_CHECK_PROJECT_CATEGORY>
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 排序分页查询数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageFilter">分页过滤实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("OrderPaged")]
|
|||
|
|
public PagedActionResult<T_BS_CHECK_PROJECT_CATEGORY> OrderPaged([FromBody] KeywordPageFilter pageFilter)
|
|||
|
|
{
|
|||
|
|
return WitOrderPaged(null, pageFilter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="entity"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("FullUpdate")]
|
|||
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_BS_CHECK_PROJECT_CATEGORY entity)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
var listObj = entity.Nav_ListOBJECT;
|
|||
|
|
entity.Nav_ListOBJECT = null;
|
|||
|
|
|
|||
|
|
if (listObj == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善检查范围!");
|
|||
|
|
}
|
|||
|
|
var listCategoryType = entity.Nav_ListCategoryType;
|
|||
|
|
entity.Nav_ListCategoryType = null;
|
|||
|
|
if (listCategoryType == null)
|
|||
|
|
{
|
|||
|
|
throw new Exception("请完善检查类型!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var check = GetEntity<T_BS_CHECK_PROJECT_CATEGORY>(e => e.ID != entity.ID && e.NAME == entity.NAME && !e.IS_DELETED);
|
|||
|
|
if (check != null && check.ID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
throw new Exception("该名称已被使用!");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this.UnifiedCommit(() =>
|
|||
|
|
{
|
|||
|
|
if (entity != null)
|
|||
|
|
UpdateEntityNoCommit(entity);
|
|||
|
|
if (listObj.Any())
|
|||
|
|
BantchSaveEntityNoCommit(listObj);
|
|||
|
|
if (listCategoryType.Any())
|
|||
|
|
BantchSaveEntityNoCommit(listCategoryType);
|
|||
|
|
});
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 排序分页查询数据检查任务制定
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageFilter">分页过滤实体</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("OrderPagedObjType")]
|
|||
|
|
public PagedActionResult<T_BS_CHECK_PROJECT_CATEGORY> OrderPagedObjType([FromBody] KeywordPageFilter pageFilter)
|
|||
|
|
{
|
|||
|
|
return SafeGetPagedData(delegate (PagedActionResult<T_BS_CHECK_PROJECT_CATEGORY> result)
|
|||
|
|
{
|
|||
|
|
PagedActionResult<T_BS_CHECK_PROJECT_CATEGORY> orderPageEntities = null;
|
|||
|
|
Guid CHECK_TYPE_ID = Guid.Empty;
|
|||
|
|
List<FilterRule> listRules = pageFilter.FilterGroup.Rules.ToList();
|
|||
|
|
|
|||
|
|
if (pageFilter.FilterGroup.Rules.Count < 3 && pageFilter.FilterGroup.Rules.Count != 2) //&& pageFilter.FilterGroup.Rules.Count != 1 手动隐患上报 加的
|
|||
|
|
{
|
|||
|
|
orderPageEntities = new PagedActionResult<T_BS_CHECK_PROJECT_CATEGORY>();
|
|||
|
|
foreach (var item in listRules)
|
|||
|
|
{
|
|||
|
|
if (item.Field == "Nav_ListCategoryType.CHECK_TYPE_ID")
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
CHECK_TYPE_ID = new Guid(item.Value.ToString());
|
|||
|
|
}
|
|||
|
|
catch { }
|
|||
|
|
}
|
|||
|
|
else if (item.Field == "RISK_SUBMIT_ID")
|
|||
|
|
{
|
|||
|
|
var sub = GetEntity<T_BS_RISK_SUBMIT>(new Guid(item.Value.ToString()));
|
|||
|
|
if (sub != null && sub.CHECK_TYPE_ID.HasValue)
|
|||
|
|
CHECK_TYPE_ID = sub.CHECK_TYPE_ID.Value;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (CHECK_TYPE_ID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
var listCATEGORY = GetEntities<T_BS_CHECK_PROJECT_CATEGORY_CHECKTYPE>(e => e.CHECK_TYPE_ID == CHECK_TYPE_ID, null, "Nav_ProjectCategory").Select(e => e.Nav_ProjectCategory).Distinct();
|
|||
|
|
|
|||
|
|
if (listCATEGORY != null && listCATEGORY.Any())
|
|||
|
|
{
|
|||
|
|
orderPageEntities.Data = listCATEGORY.ToList();
|
|||
|
|
orderPageEntities.TotalCount = orderPageEntities.Data.Count();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
BSMineTypeEnum? CHECKOBJECT = null;
|
|||
|
|
List<Guid> listCategoryID = new List<Guid>();
|
|||
|
|
foreach (var item in listRules)
|
|||
|
|
{
|
|||
|
|
if (item.Field == "Nav_ListCategoryType.CHECK_TYPE_ID")
|
|||
|
|
{
|
|||
|
|
CHECK_TYPE_ID = new Guid(item.Value.ToString());
|
|||
|
|
}
|
|||
|
|
else if (item.Field == "Nav_ListOBJECT.CHECKOBJECT")
|
|||
|
|
{
|
|||
|
|
CHECKOBJECT = (BSMineTypeEnum)(int.Parse(item.Value.ToString()));
|
|||
|
|
}
|
|||
|
|
else if (item.Field == "Nav_ListCheckProjectCategory")
|
|||
|
|
{
|
|||
|
|
List<BS032SubSelectProjectCategory> listAreaSearch = JsonHelper.FromJson<List<BS032SubSelectProjectCategory>>(item.Value.ToString());
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
listCategoryID = listAreaSearch.FindAll(e => !e.IS_DELETED.HasValue || !e.IS_DELETED.Value).Select(e => e.CHECK_PROJECT_CATEGORY_ID).Distinct().ToList();
|
|||
|
|
}
|
|||
|
|
catch
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
pageFilter.FilterGroup.Rules.Remove(item);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Expression<Func<T_BS_CHECK_PROJECT_CATEGORY, bool>> expression = e => !e.IS_DELETED;
|
|||
|
|
if (listCategoryID.Count > 0)
|
|||
|
|
{
|
|||
|
|
expression = expression.And(e => listCategoryID.Contains(e.ID));
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
if (CHECK_TYPE_ID != Guid.Empty)
|
|||
|
|
{
|
|||
|
|
expression = expression.And(e => e.Nav_ListCategoryType != null && e.Nav_ListCategoryType.FirstOrDefault(c => c.CHECK_TYPE_ID == CHECK_TYPE_ID) != null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (CHECKOBJECT != null)
|
|||
|
|
{
|
|||
|
|
expression = expression.And(e => e.Nav_ListOBJECT != null && e.Nav_ListOBJECT.FirstOrDefault(t => t.CHECKOBJECT == CHECKOBJECT) != null);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
orderPageEntities = GetOrderPageEntities<T_BS_CHECK_PROJECT_CATEGORY>(expression, pageFilter, null);
|
|||
|
|
}
|
|||
|
|
result.Data = orderPageEntities.Data;
|
|||
|
|
result.TotalCount = orderPageEntities.TotalCount;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
public class BS032SubSelectProjectCategory
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
public Guid CHECK_PROJECT_CATEGORY_ID { get; set; }
|
|||
|
|
public Guid ID { get; set; }
|
|||
|
|
public Guid SAFE_CHECK_ID { get; set; }
|
|||
|
|
public Guid ORG_ID { get; set; }
|
|||
|
|
public string NAME { get; set; }
|
|||
|
|
public bool? IS_DELETED { get; set; }
|
|||
|
|
}
|
|||
|
|
}
|