跑批
This commit is contained in:
parent
959ecc8480
commit
521e118f4f
@ -713,7 +713,7 @@ namespace APT.PP.WebApi.Controllers.Api
|
||||
var userNames = users.Where(t => userIds.Contains(t.ID)).Select(m => m.NAME).Distinct().ToList();
|
||||
record.CHECK_PERSON = string.Join(",", userNames);
|
||||
records.Add(record);
|
||||
var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全检查记录(" + departName + ")", record.ID, filter.OrgId, userItem, users.FirstOrDefault(t => t.ID == userItem)?.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK010");
|
||||
var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全检查记录(" + departName + ")", record.ID, filter.OrgId, userItem, users.FirstOrDefault(t => t.ID == userItem)?.NAME, DateTime.Now, DateTime.Now.AddHours(48), (int)FMNoticeTypeEnum.消息, "SK010");
|
||||
noticeTasks.Add(noticeTask);
|
||||
}
|
||||
}
|
||||
@ -810,7 +810,7 @@ namespace APT.PP.WebApi.Controllers.Api
|
||||
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISMAINCHECK","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.CHECKTIME","Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.ISCHECK",
|
||||
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailUsers.SECURITY_INSPECTION_RECORD_DETAIL_ID","Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.SECURITY_INSPECTION_RECORD_DETAIL_ID",
|
||||
// "Nav_CheckRecordDetails.Nav_CheckRecordDetailBasics.LAW_ID" }; //指定字段,包括导航属性
|
||||
var notices = GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(i => i.CHECK_TIME.Value.AddDays(1).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(1).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查") && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign), baseFilter);
|
||||
var notices = GetEntities<T_SK_SECURITY_INSPECTION_NOTICE>(i => i.CHECK_TIME.Value.AddDays(2).Date == dtNow.Date && i.CHECK_TIME.Value.AddDays(2).Hour == dtNow.Hour && i.Nav_CheckType != null && !i.Nav_CheckType.NAME.Contains("岗位排查") && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign), baseFilter);
|
||||
var noticeIds = notices.Select(t => t.ID).ToList();
|
||||
var sumNoticeIds = GetEntities<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY>(t => t.SECURITY_INSPECTION_NOTICE_ID != null && noticeIds.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID), baseFilter).Select(m => m.SECURITY_INSPECTION_NOTICE_ID).Distinct().ToList();
|
||||
var needDealIds = noticeIds.Where(t => !sumNoticeIds.Contains(t)).ToList();
|
||||
|
||||
@ -15,18 +15,22 @@ using APT.MS.Domain.Entities.FO;
|
||||
using APT.MS.Domain.Entities.HM;
|
||||
using APT.MS.Domain.Entities.SC.BI;
|
||||
using APT.MS.Domain.Entities.SE;
|
||||
using APT.MS.Domain.Entities.SK;
|
||||
using APT.MS.Domain.Enums;
|
||||
using APT.MS.Domain.Enums.SK;
|
||||
using APT.Utility;
|
||||
using InfluxData.Net.InfluxDb.Enums;
|
||||
using log4net.Core;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using MySqlX.XDevAPI.Common;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using static APT.SC.WebApi.Controllers.Api.BI.BIKanBanController;
|
||||
using static Google.Protobuf.WireFormat;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
|
||||
@ -869,6 +873,119 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
return listResult;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取子页 风险管控
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
[HttpPost, Route("RiskManage")]
|
||||
public JsonActionResult<RiskManage> RiskManage([FromBody] KeywordFilter filter)
|
||||
{
|
||||
JsonActionResult<RiskManage> result = new JsonActionResult<RiskManage>();
|
||||
result.Data = new RiskManage();
|
||||
DataTable tableRiskList = new DataTable();
|
||||
DataTable tableRiskType = new DataTable();
|
||||
List<RiskTempList> riskTempList = new List<RiskTempList>();
|
||||
List<RiskList> riskList = new List<RiskList>();
|
||||
List<RiskTypeList> riskTypeList = new List<RiskTypeList>();
|
||||
List<T_FM_ORGANIZATION> orgList = new List<T_FM_ORGANIZATION>();
|
||||
string strConn = OPTenantDBConnService.GetConnByORGID(filter.OrgId.Value);//获取数据库链接
|
||||
using (var context = new MigrationContext(strConn))
|
||||
{
|
||||
Expression<Func<T_FM_ORGANIZATION, bool>> expression = e => !e.IS_DELETED;
|
||||
Dictionary<string, DbOrder> orders = new Dictionary<string, DbOrder>();
|
||||
orders.Add("CREATE_TIME", DbOrder.DESC);
|
||||
orgList = context.GetOrderEntities(expression, orders, null).ToList();
|
||||
}
|
||||
using (SqlConnection connection = new SqlConnection(strConn))
|
||||
{
|
||||
try
|
||||
{
|
||||
connection.Open();
|
||||
//各家公司风险列表、各家公司风险图
|
||||
string sqlRisk = "select * from vhome_library_risklist_data";
|
||||
SqlCommand comRisk = new SqlCommand(sqlRisk, connection);
|
||||
SqlDataAdapter riskData = new SqlDataAdapter(comRisk);
|
||||
riskData.Fill(tableRiskList);
|
||||
if (tableRiskList != null && tableRiskList.Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow item in tableRiskList.Rows)
|
||||
{
|
||||
RiskTempList risk = new RiskTempList();
|
||||
risk.companyName = item["companyName"] != null ? item["companyName"].ToString() : null;
|
||||
risk.cnt = int.Parse(item["cnt"].ToString()) != 0 ? int.Parse(item["cnt"].ToString()) : 0;
|
||||
risk.riskType = item["riskType"] != null ? item["riskType"].ToString() : null;
|
||||
riskTempList.Add(risk);
|
||||
}
|
||||
}
|
||||
//各家公司风险类别图
|
||||
string sqlRiskType = "select RISK_NAME as typeName,count(1) as qty from vhome_library_data GROUP BY RISK_NAME ORDER BY qty desc";
|
||||
SqlCommand comRiskType = new SqlCommand(sqlRiskType, connection);
|
||||
SqlDataAdapter riskTypeData = new SqlDataAdapter(comRiskType);
|
||||
riskTypeData.Fill(tableRiskType);
|
||||
if (tableRiskType != null && tableRiskType.Rows.Count > 0)
|
||||
{
|
||||
foreach (DataRow item in tableRiskType.Rows)
|
||||
{
|
||||
RiskTypeList risk = new RiskTypeList();
|
||||
risk.typeName = item["typeName"] != null ? item["typeName"].ToString() : null;
|
||||
risk.qty = int.Parse(item["qty"].ToString()) != 0 ? int.Parse(item["qty"].ToString()) : 0;
|
||||
riskTypeList.Add(risk);
|
||||
}
|
||||
}
|
||||
connection.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(ex.StackTrace))
|
||||
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
|
||||
else
|
||||
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
|
||||
}
|
||||
}
|
||||
//行转列
|
||||
var groupList = riskTempList
|
||||
.GroupBy(x => x.companyName)
|
||||
.Select(g => new RiskList
|
||||
{
|
||||
companyName = g.Key,
|
||||
majorCount = g.First(x => x.riskType == SKEvaluateLevelEnum.重大风险.GetDescription()).cnt,
|
||||
largerCount = g.First(x => x.riskType == SKEvaluateLevelEnum.较大风险.GetDescription()).cnt,
|
||||
generalCount = g.First(x => x.riskType == SKEvaluateLevelEnum.一般风险.GetDescription()).cnt,
|
||||
lowCount = g.First(x => x.riskType == SKEvaluateLevelEnum.低风险.GetDescription()).cnt,
|
||||
totalCount = g.Sum(x=>x.cnt)
|
||||
}).ToList();
|
||||
if (orgList != null && orgList.Any())
|
||||
{
|
||||
foreach (var item in orgList)
|
||||
{
|
||||
var first = groupList.FirstOrDefault(t => t.companyName == item.NAME);
|
||||
RiskList risk = new RiskList();
|
||||
risk.companyName = item.NAME;
|
||||
if (first != null)
|
||||
{
|
||||
risk.majorCount = first.majorCount;
|
||||
risk.largerCount = first.largerCount;
|
||||
risk.generalCount = first.generalCount;
|
||||
risk.lowCount = first.lowCount;
|
||||
risk.totalCount = first.totalCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
risk.majorCount = 0;
|
||||
risk.largerCount = 0;
|
||||
risk.generalCount = 0;
|
||||
risk.lowCount = 0;
|
||||
risk.totalCount = 0;
|
||||
}
|
||||
riskList.Add(risk);
|
||||
}
|
||||
}
|
||||
result.Data.riskList = riskList;
|
||||
result.Data.riskTypeList = riskTypeList;
|
||||
return result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -889,4 +1006,71 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
public List<dynamic> hiddenRanking { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 风险管控 返参
|
||||
/// </summary>
|
||||
public class RiskManage
|
||||
{
|
||||
/// <summary>
|
||||
/// 各家公司风险列表、各家公司风险图
|
||||
/// </summary>
|
||||
public List<RiskList> riskList { get; set; }
|
||||
/// <summary>
|
||||
/// 各家公司风险类别图
|
||||
/// </summary>
|
||||
public List<RiskTypeList> riskTypeList { get; set; }
|
||||
}
|
||||
public class RiskTempList
|
||||
{
|
||||
/// <summary>
|
||||
/// 公司名称
|
||||
/// </summary>
|
||||
public string companyName { get; set; }
|
||||
/// <summary>
|
||||
/// 风险类别
|
||||
/// </summary>
|
||||
public string riskType { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public int? cnt { get; set; }
|
||||
}
|
||||
public class RiskList
|
||||
{
|
||||
/// <summary>
|
||||
/// 公司名称
|
||||
/// </summary>
|
||||
public string companyName { get; set; }
|
||||
/// <summary>
|
||||
/// 重大风险数量
|
||||
/// </summary>
|
||||
public int? majorCount { get; set; }
|
||||
/// <summary>
|
||||
/// 较大风险数量
|
||||
/// </summary>
|
||||
public int? largerCount { get; set; }
|
||||
/// <summary>
|
||||
/// 一般风险数量
|
||||
/// </summary>
|
||||
public int? generalCount { get; set; }
|
||||
/// <summary>
|
||||
/// 低风险数量
|
||||
/// </summary>
|
||||
public int? lowCount { get; set; }
|
||||
/// <summary>
|
||||
/// 小计数量
|
||||
/// </summary>
|
||||
public int? totalCount { get; set; }
|
||||
}
|
||||
public class RiskTypeList
|
||||
{
|
||||
/// <summary>
|
||||
/// 风险类别
|
||||
/// </summary>
|
||||
public string typeName { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public int? qty { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user