数据治理
This commit is contained in:
@@ -470,6 +470,7 @@
|
||||
<Compile Include="Customization\ZJ\HSSE\HiddenInspection\SuperviseCheckService.cs" />
|
||||
<Compile Include="Customization\ZJ\HSSE\HiddenInspection\UnitHSSE_Hazard_HazardRegisterService.cs" />
|
||||
<Compile Include="Customization\ZJ\LotAPIService.cs" />
|
||||
<Compile Include="DataGovernance\DataGovernanceService.cs" />
|
||||
<Compile Include="DataShare\APIDataShareSyncService.cs" />
|
||||
<Compile Include="DataShare\CQMS\APICheckControlSyncService.cs" />
|
||||
<Compile Include="DataShare\CQMS\APICqmsMeetingSyncService.cs" />
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
using Model;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据治理服务
|
||||
/// </summary>
|
||||
public static class DataGovernanceService
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取集团数据治理统计分析指标
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Model.ResponeData GetDataGovernanceMetricData()
|
||||
{
|
||||
var responeData = new Model.ResponeData();
|
||||
try
|
||||
{
|
||||
//string unitId = CommonService.GetThisUnitId();
|
||||
string baseurl = $"{SysConstSetService.CNCECPath}/api/DataGovernance/GetDataGovernanceMetricData";
|
||||
string contenttype = "application/json;charset=unicode";
|
||||
Hashtable newToken = new Hashtable
|
||||
{
|
||||
{ "token", ServerService.GetToken().Token }
|
||||
};
|
||||
var strJosn = APIGetHttpService.Http(baseurl, "GET", contenttype, newToken, null);
|
||||
if (!string.IsNullOrEmpty(strJosn))
|
||||
{
|
||||
JObject obj = JObject.Parse(strJosn);
|
||||
responeData.code = Funs.GetNewIntOrZero(obj["code"].ToString());
|
||||
responeData.message = obj["message"].ToString();
|
||||
if (responeData.code == 1)
|
||||
{
|
||||
JArray getData = JArray.Parse(obj["data"].ToString());
|
||||
if (getData.Count() > 0)
|
||||
{
|
||||
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
||||
{
|
||||
List<DataGovernance_MetricData> metrics = new List<DataGovernance_MetricData>();
|
||||
foreach (var item in getData)
|
||||
{
|
||||
Model.DataGovernance_MetricData newModel = new Model.DataGovernance_MetricData
|
||||
{
|
||||
Id = item["Id"].ToString(),
|
||||
Name = item["Name"].ToString(),
|
||||
Field = item["Field"].ToString(),
|
||||
Frequency = int.Parse(item["Frequency"].ToString()),
|
||||
IsKeyMetric = item["IsKeyMetric"].ToString().ToUpper() == "TRUE",
|
||||
Type = item["Type"].ToString(),
|
||||
Remark = item["Remark"].ToString(),
|
||||
CreateUser = item["CreateUser"].ToString(),
|
||||
//CreateDate = Convert.ToDateTime(item["CreateDate"].ToString()),
|
||||
CreateDate = DateTime.Now
|
||||
};
|
||||
metrics.Add(newModel);
|
||||
}
|
||||
if (metrics.Any())
|
||||
{
|
||||
var olds = from x in db.DataGovernance_MetricData select x;
|
||||
db.DataGovernance_MetricData.DeleteAllOnSubmit(olds);
|
||||
db.SubmitChanges();
|
||||
db.DataGovernance_MetricData.InsertAllOnSubmit(metrics);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
responeData.message = "获取成功:集团数据治理统计分析指标" + getData.Count().ToString() + "条";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responeData.code = 0;
|
||||
responeData.message = "获取失败:" + ex.Message;
|
||||
ErrLogInfo.WriteLog("获取集团数据治理统计分析指标!", ex);
|
||||
}
|
||||
|
||||
return responeData;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
using Model;
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
@@ -55,6 +54,8 @@ namespace BLL
|
||||
Id = model.Id,
|
||||
CollCropCode = model.CollCropCode,
|
||||
UnitId = model.UnitId,
|
||||
YiShangXian = model.YiShangXian,
|
||||
OnlineRate = model.OnlineRate,
|
||||
ReportDate = model.ReportDate,
|
||||
DataDate = model.DataDate,
|
||||
Total = model.Total,
|
||||
@@ -63,9 +64,15 @@ namespace BLL
|
||||
ZhengChang = model.ZhengChang,
|
||||
DaiJian = model.DaiJian,
|
||||
BuYong = model.BuYong,
|
||||
BuYongYiWanGong = model.BuYongYiWanGong,
|
||||
BuYongTingHuanJian = model.BuYongTingHuanJian,
|
||||
BuYongTJShouXian = model.BuYongTJShouXian,
|
||||
YuLiXiang = model.YuLiXiang,
|
||||
//ZiJian = model.ZiJian,
|
||||
CreateUser = model.CreateUser,
|
||||
ThisMonActiveUserNum = model.ThisMonActiveUserNum,
|
||||
DailyAvg = model.DailyAvg,
|
||||
TianBao = model.TianBao,
|
||||
};
|
||||
db.Project_MasterDataAnalysis.InsertOnSubmit(newModel);
|
||||
db.SubmitChanges();
|
||||
@@ -86,14 +93,22 @@ namespace BLL
|
||||
//newModel.UnitId = model.UnitId;
|
||||
//newModel.ReportDate = model.ReportDate;
|
||||
//newModel.DataDate = model.DataDate;
|
||||
newModel.YiShangXian = model.YiShangXian;
|
||||
newModel.OnlineRate = model.OnlineRate;
|
||||
newModel.Total = model.Total;
|
||||
newModel.MasterTotal = model.MasterTotal;
|
||||
newModel.QHSETotal = model.QHSETotal;
|
||||
newModel.ZhengChang = model.ZhengChang;
|
||||
newModel.DaiJian = model.DaiJian;
|
||||
newModel.BuYong = model.BuYong;
|
||||
newModel.BuYongYiWanGong = model.BuYongYiWanGong;
|
||||
newModel.BuYongTingHuanJian = model.BuYongTingHuanJian;
|
||||
newModel.BuYongTJShouXian = model.BuYongTJShouXian;
|
||||
newModel.YuLiXiang = model.YuLiXiang;
|
||||
//newModel.ZiJian = model.ZiJian;
|
||||
newModel.ThisMonActiveUserNum = model.ThisMonActiveUserNum;
|
||||
newModel.DailyAvg = model.DailyAvg;
|
||||
newModel.TianBao = model.TianBao;
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
@@ -134,7 +149,7 @@ namespace BLL
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
public static string ReportProjectMasterDataAnalysis(string userName,ref string message)
|
||||
public static string ReportProjectMasterDataAnalysis(string userName, ref string message)
|
||||
{
|
||||
string code = "0";
|
||||
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
|
||||
@@ -149,7 +164,7 @@ namespace BLL
|
||||
int masterTotal = masterProDatas.Count();
|
||||
int qhseTotal = projects.Count();
|
||||
|
||||
//1、正常
|
||||
//1、已关联
|
||||
int zhengChang = (from x in masterProDatas
|
||||
join pro in db.Base_Project on x.Pro_id equals pro.MasterSysId into proGroup
|
||||
from pro in proGroup.DefaultIfEmpty()
|
||||
@@ -165,18 +180,56 @@ namespace BLL
|
||||
where pro == null && (use == null || (use != null && (use.Reason == null || use.Reason == "")))
|
||||
select x).Count();
|
||||
//3、申请不用
|
||||
int buYong = (from x in masterProDatas
|
||||
join pro in db.Base_Project on x.Pro_id equals pro.MasterSysId into proGroup
|
||||
from pro in proGroup.DefaultIfEmpty()
|
||||
join use in db.Project_MasterDataUsage on x.Pro_id equals use.Pro_id into useGroup
|
||||
from use in useGroup.DefaultIfEmpty()
|
||||
where pro == null && use != null && use.Reason != null && use.Reason != ""
|
||||
select x).Count();
|
||||
var buYongList = (from x in masterProDatas
|
||||
join pro in db.Base_Project on x.Pro_id equals pro.MasterSysId into proGroup
|
||||
from pro in proGroup.DefaultIfEmpty()
|
||||
join use in db.Project_MasterDataUsage on x.Pro_id equals use.Pro_id into useGroup
|
||||
from use in useGroup.DefaultIfEmpty()
|
||||
where pro == null && use != null && use.Is_use == false && use.Reason != null && use.Reason != ""
|
||||
select new { reason = use.Reason, reasonType = use.ReasonType }).ToList();
|
||||
//申请不用总数
|
||||
int buYong = buYongList.Count();
|
||||
//申请不用——已完工
|
||||
int buYongYiWanGong = buYongList.Where(x => x.reasonType == "已完工").Count();
|
||||
//申请不用——停缓建
|
||||
int buYongTingHuanJian = buYongList.Where(x => x.reasonType == "停缓建").Count();
|
||||
//申请不用——条件受限(其他)
|
||||
int buYongTJShouXian = buYong - buYongYiWanGong - buYongTingHuanJian;
|
||||
|
||||
//4、预立项
|
||||
int yuLiXiang = (from x in projects where x.MasterSysId == null select x).Count();
|
||||
|
||||
var thisUnit = CommonService.GetIsThisUnit();
|
||||
//应使用项目数=主数据项目+预立项-已完工-停缓建
|
||||
int beUsedProNum = masterTotal + yuLiXiang - buYongYiWanGong - buYongTingHuanJian;
|
||||
//已上线项目=已关联+预立项;
|
||||
int yiShangXian = zhengChang + yuLiXiang;
|
||||
//上线率=100*已上线/应使用项目数
|
||||
var onlineRate = (decimal)Math.Round((100.0 * yiShangXian / beUsedProNum), 2);
|
||||
onlineRate = onlineRate > 100 ? 100 : onlineRate;
|
||||
|
||||
var now = DateTime.Now;
|
||||
|
||||
#region 统计系统近三个月用户使用情况、日活
|
||||
|
||||
////本月第一天
|
||||
//var firstDayOfMonth = new DateTime(now.Year, now.Month, 1);
|
||||
//本月第一天
|
||||
var firstDayOfMonth = now.AddMonths(-3);
|
||||
//本月系统活跃用户
|
||||
var thisMonActiveUserList = (from x in db.Sys_Log
|
||||
where x.OperationTime > firstDayOfMonth
|
||||
select new
|
||||
{
|
||||
DateStr = ((DateTime)x.OperationTime).ToShortDateString(),
|
||||
UserId = x.UserId
|
||||
}).ToList();
|
||||
//var ssss = JsonConvert.SerializeObject(thisMonActiveUserList);
|
||||
int thisMonActiveUserNum = thisMonActiveUserList.Distinct().Count();
|
||||
var dailyAvg = (decimal)Math.Round((1.0 * thisMonActiveUserNum / 30), 2);
|
||||
|
||||
#endregion
|
||||
|
||||
var thisUnit = CommonService.GetIsThisUnit();
|
||||
//保存汇总数据
|
||||
Model.Project_MasterDataAnalysis analysis = new Project_MasterDataAnalysis
|
||||
{
|
||||
@@ -185,14 +238,21 @@ namespace BLL
|
||||
UnitId = thisUnit.UnitId,
|
||||
ReportDate = now.Date,
|
||||
DataDate = now,
|
||||
Total = zhengChang + daiJian + yuLiXiang,
|
||||
YiShangXian= yiShangXian,
|
||||
OnlineRate = onlineRate,
|
||||
Total = beUsedProNum,
|
||||
MasterTotal = masterTotal,
|
||||
QHSETotal = qhseTotal,
|
||||
ZhengChang = zhengChang,
|
||||
DaiJian = daiJian,
|
||||
BuYong = buYong,
|
||||
BuYongYiWanGong = buYongYiWanGong,
|
||||
BuYongTingHuanJian = buYongTingHuanJian,
|
||||
BuYongTJShouXian = buYongTJShouXian,
|
||||
YuLiXiang = yuLiXiang,
|
||||
CreateUser = userName
|
||||
CreateUser = userName,
|
||||
ThisMonActiveUserNum = thisMonActiveUserNum,
|
||||
DailyAvg = dailyAvg,
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user