175 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			7.3 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")
 | 
						|
                        {
 | 
						|
                            CHECK_TYPE_ID = new Guid(item.Value.ToString());
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
 | 
						|
                    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; }
 | 
						|
    }
 | 
						|
}
 |