CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/IDP/IDPDataService.cs

1288 lines
69 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Apache.NMS.ActiveMQ;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz.Util;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
/// <summary>
/// IDP平台接口服务
/// </summary>
public static class IDPDataService
{
///// <summary>
///// 测试环境api地址
///// </summary>
//private static readonly string IDPApiUrl = "http://10.5.6.151:8100/";
/// <summary>
/// 正式环境api地址
/// </summary>
//private static readonly string IDPApiUrl = "https://idp.cwcec.com/";
private static readonly string IDPApiUrl = SysConstSetService.WuHuanIDPPath;
#region
#region
/// <summary>
/// 项目试车工作包——管道一览表
/// </summary>
/// <param name="session">session</param>
/// <param name="projectId">项目Id</param>
public static string GetIDPProjectPreRunDataPiping(SessionItem session, string projectId)
{
string result = string.Empty;
if (string.IsNullOrWhiteSpace(projectId))
{
result = "请传项目Id";
}
else
{
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
var mainProjects = BLL.PMPDataService.GetPMPProjectListByCode(project.ProjectCode);
List<string> idpPipingIds = IDPPreRunDataService.GetIDPPreRunDataPipingIds(projectId);
List<IDP_PreRunData_Piping> addItems = new List<IDP_PreRunData_Piping>();
List<IDP_PreRunData_Piping> modifyItems = new List<IDP_PreRunData_Piping>();
int all = 0;
foreach (var pro in mainProjects)
{
string url = $"{IDPApiUrl}OSS/projects/{pro.Code}/workitems/CP2600/objects/latest";
//string url = $"{IDPApiUrl}OSS/projects/100168/workitems/CP2600/objects/latest";
try
{
//var session = GetAuthenticationSession();
//ErrLogInfo.WriteLog($"Session——name{session.name}value{session.value}");
Hashtable newToken = new Hashtable { { "Cookie", $"{session.name}={session.value}" } };
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, newToken, null);
if (!string.IsNullOrEmpty(returndata))
{
if (returndata.Contains("\"code\":404,\"message\":\"资源不存在\""))
{
result += $"失败!{returndata}|";
}
else if (returndata.Contains("\"status\":404,\"error\":\"Not Found\""))
{
result += $"失败!{returndata}|";
}
else
{
List<IDPPreRunPiping> responseDatas = IDPPreRunPiping.FromJson(returndata);
all += responseDatas.Count();
foreach (var item in responseDatas)
{
IDP_PreRunData_Piping newItem = new IDP_PreRunData_Piping();
newItem.ItemId = item.ItemId;
newItem.ProjId = pro.Code;//主数据项目Id
newItem.ProjCode = pro.StNum;//主数据项目Code
newItem.ProjectId = project.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = item.WbsCode;//装置工序主项码
newItem.DeviceCode = item.DeviceCode;//装置码
newItem.ProcessesCode = item.ProcessesCode;//工序码
newItem.SubjectCode = item.SubjectCode;//主项码
newItem.Category = item.Category;
newItem.Category = item.Category;
newItem.Tag = item.Tag;
newItem.PipingCode = item.PipingCode;
newItem.Diameter = item.Diameter;
newItem.DiameterUnit = item.DiameterUnit;
newItem.MaterialLevel = item.MaterialLevel;
newItem.AdiabatType = item.AdiabatType;
newItem.AdiabatThickness = item.AdiabatThickness;
newItem.AdiabatThicknessUnit = item.AdiabatThicknessUnit;
newItem.MediumState = item.MediumState;
newItem.DrawingStartNo = item.DrawingStartNo;
newItem.DrawingEndNo = item.DrawingEndNo;
newItem.PipingStart = item.PipingStart;
newItem.PipingEnd = item.PipingEnd;
newItem.PipingLevel = item.PipingLevel;
newItem.NormalTemperature = item.NormalTemperature;
newItem.NormalTemperatureUnit = item.NormalTemperatureUnit;
newItem.NormalPressure = item.NormalPressure;
newItem.NormalPressureUnit = item.NormalPressureUnit;
newItem.DesignTemperature = item.DesignTemperature;
newItem.DesignTemperatureUnit = item.DesignTemperatureUnit;
newItem.DesignPressure = item.DesignPressure;
newItem.DesignPressureUnit = item.DesignPressureUnit;
newItem.PaintLevel = item.PaintLevel;
newItem.Remark = item.Remark;
newItem.DetailInfo = JsonConvert.SerializeObject(item, Formatting.Indented);
if (!string.IsNullOrWhiteSpace(item.ItemId) && idpPipingIds.Contains(item.ItemId))
{//编辑
modifyItems.Add(newItem);
}
else
{//新增
addItems.Add(newItem);
idpPipingIds.Add(item.ItemId);
}
}
}
}
else
{
result = "失败!";
}
}
catch (WebException ex)
{
result = $"程序异常:{ex.Message}";
}
}
if (addItems.Any()) { AddIDPPreRunPiping(addItems); }
if (modifyItems.Any()) { ModifyIDPPreRunPiping(modifyItems); }
result = $"成功!总数:{all}条;新增:{addItems.Count()}条,维护:{(all - addItems.Count())}条";
}
return result;
}
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="list"></param>
public static void AddIDPPreRunPiping(List<Model.IDP_PreRunData_Piping> list)
{
Model.SGGLDB db = Funs.DB;
db.IDP_PreRunData_Piping.InsertAllOnSubmit(list);
db.SubmitChanges();
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="list"></param>
public static void ModifyIDPPreRunPiping(List<Model.IDP_PreRunData_Piping> list)
{
Model.SGGLDB db = Funs.DB;
foreach (var obj in list)
{
IDP_PreRunData_Piping newItem = db.IDP_PreRunData_Piping.FirstOrDefault(x => x.ItemId == obj.ItemId);
if (newItem != null)
{
newItem.ProjId = obj.ProjId;//主数据项目Id
newItem.ProjCode = obj.ProjCode;//主数据项目Code
newItem.ProjectId = obj.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = obj.WbsCode;//装置工序主项码
newItem.DeviceCode = obj.DeviceCode;//装置码
newItem.ProcessesCode = obj.ProcessesCode;//工序码
newItem.SubjectCode = obj.SubjectCode;//主项码
newItem.Category = obj.Category;
newItem.Tag = obj.Tag;
newItem.PipingCode = obj.PipingCode;
newItem.Diameter = obj.Diameter;
newItem.DiameterUnit = obj.DiameterUnit;
newItem.MaterialLevel = obj.MaterialLevel;
newItem.AdiabatType = obj.AdiabatType;
newItem.AdiabatThickness = obj.AdiabatThickness;
newItem.AdiabatThicknessUnit = obj.AdiabatThicknessUnit;
newItem.MediumState = obj.MediumState;
newItem.DrawingStartNo = obj.DrawingStartNo;
newItem.DrawingEndNo = obj.DrawingEndNo;
newItem.PipingStart = obj.PipingStart;
newItem.PipingEnd = obj.PipingEnd;
newItem.PipingLevel = obj.PipingLevel;
newItem.NormalTemperature = obj.NormalTemperature;
newItem.NormalTemperatureUnit = obj.NormalTemperatureUnit;
newItem.NormalPressure = obj.NormalPressure;
newItem.NormalPressureUnit = obj.NormalPressureUnit;
newItem.DesignTemperature = obj.DesignTemperature;
newItem.DesignTemperatureUnit = obj.DesignTemperatureUnit;
newItem.DesignPressure = obj.DesignPressure;
newItem.DesignPressureUnit = obj.DesignPressureUnit;
newItem.PaintLevel = obj.PaintLevel;
newItem.Remark = obj.Remark;
newItem.DetailInfo = obj.DetailInfo;
db.SubmitChanges();
}
}
}
#endregion
#region
/// <summary>
/// 项目试车工作包——设备一览表
/// </summary>
/// <param name="session"></param>
/// <param name="projectId"></param>
public static string GetIDPProjectPreRunDataEquipment(SessionItem session, string projectId)
{
string result = string.Empty;
if (string.IsNullOrWhiteSpace(projectId))
{
result = "请传项目Id";
}
else
{
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
var mainProjects = BLL.PMPDataService.GetPMPProjectListByCode(project.ProjectCode);
List<string> idpEquipmentIds = IDPPreRunDataService.GetIDPPreRunDataEquipmentIds(projectId);
List<IDP_PreRunData_Equipment> addItems = new List<IDP_PreRunData_Equipment>();
List<IDP_PreRunData_Equipment> modifyItems = new List<IDP_PreRunData_Equipment>();
int all = 0;
foreach (var pro in mainProjects)
{
string url = $"{IDPApiUrl}OSS/projects/{pro.Code}/workitems/CP2100/objects/latest";
//string url = $"{IDPApiUrl}OSS/projects/100168/workitems/CP2100/objects/latest";
try
{
Hashtable newToken = new Hashtable { { "Cookie", $"{session.name}={session.value}" } };
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, newToken, null);
if (!string.IsNullOrEmpty(returndata))
{
if (returndata.Contains("\"code\":404,\"message\":\"资源不存在\""))
{
result += $"失败!{returndata}|";
}
else if (returndata.Contains("\"status\":404,\"error\":\"Not Found\""))
{
result += $"失败!{returndata}|";
}
else
{
List<IDPPreRunEquipment> responseDatas = IDPPreRunEquipment.FromJson(returndata);
all += responseDatas.Count();
foreach (var item in responseDatas)
{
Type type = typeof(IDPPreRunEquipment);
IDP_PreRunData_Equipment newItem = new IDP_PreRunData_Equipment();
newItem.ItemId = item.ItemId;
newItem.ProjId = pro.Code;//主数据项目Id
newItem.ProjCode = pro.StNum;//主数据项目Code
newItem.ProjectId = project.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = item.WbsCode;//装置工序主项码
newItem.DeviceCode = item.DeviceCode;//装置码
newItem.ProcessesCode = item.ProcessesCode;//工序码
newItem.SubjectCode = item.SubjectCode;//主项码
newItem.Category = item.Category;
newItem.Tag = item.Tag;
newItem.TagNumber = item.TagNumber;
string nameSpecifications = !string.IsNullOrWhiteSpace(item.NameSpecifications)? $"{item.NameSpecifications}。":string.Empty;
if (!string.IsNullOrWhiteSpace(item.DrivingType))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("DrivingType").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.DrivingType}";
}
if (!string.IsNullOrWhiteSpace(item.EquipmentType))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("EquipmentType").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.EquipmentType}";
}
if (!string.IsNullOrWhiteSpace(item.EquipmentTypeModel))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("EquipmentTypeModel").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.EquipmentTypeModel}";
}
if (!string.IsNullOrWhiteSpace(item.EquipmentForm))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("EquipmentForm").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.EquipmentForm}";
}
if (!string.IsNullOrWhiteSpace(item.MPaG))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("MPaG").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.MPaG} {item.MPaGUnit}";
}
if (!string.IsNullOrWhiteSpace(item.KPa))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("KPa").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.KPa} {item.KPaUnit}";
}
if (!string.IsNullOrWhiteSpace(item.DimensionsID))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("DimensionsID").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.DimensionsID} {item.DimensionsIDUnit}";
}
if (!string.IsNullOrWhiteSpace(item.DimensionsHTT))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("DimensionsHTT").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.DimensionsHTT} {item.DimensionsHTTUnit}";
}
if (!string.IsNullOrWhiteSpace(item.DesignFlow))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("DesignFlow").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.DesignFlow} {item.DesignFlowUnit}";
}
if (!string.IsNullOrWhiteSpace(item.ShaftPower))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("ShaftPower").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.ShaftPower} {item.ShaftPowerUnit}";
}
if (!string.IsNullOrWhiteSpace(item.RatedPower))
{
nameSpecifications = $"{nameSpecifications} {type.GetProperty("RatedPower").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.RatedPower} {item.RatedPowerUnit}";
}
string materials = string.Empty;
if (!string.IsNullOrWhiteSpace(item.Materials))
{
materials = $"{type.GetProperty("Materials").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.Materials}";
}
if (!string.IsNullOrWhiteSpace(item.ImpellerMaterial))
{
materials = $"{materials} {type.GetProperty("ImpellerMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.ImpellerMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.ShellMaterial))
{
materials = $"{materials} {type.GetProperty("ShellMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.ShellMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.CylinderMaterial))
{
materials = $"{materials} {type.GetProperty("CylinderMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.CylinderMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.TrayMaterial))
{
materials = $"{materials} {type.GetProperty("TrayMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.TrayMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.PackingMaterial))
{
materials = $"{materials} {type.GetProperty("PackingMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.PackingMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.PlateMaterial))
{
materials = $"{materials} {type.GetProperty("PlateMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.PlateMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.TrimMaterial))
{
materials = $"{materials} {type.GetProperty("TrimMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.TrimMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.CoilMaterial))
{
materials = $"{materials} {type.GetProperty("CoilMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.CoilMaterial}";
}
if (!string.IsNullOrWhiteSpace(item.PreheaterMaterial))
{
materials = $"{materials} {type.GetProperty("PreheaterMaterial").GetCustomAttribute<JsonPropertyAttribute>().PropertyName}{item.PreheaterMaterial}";
}
newItem.NameSpecifications = nameSpecifications;
newItem.Materials = materials;
newItem.NumOperate = item.DeviceNum;
newItem.WeightSingle = item.WeightSingle;
newItem.WeightSingleUnit = item.WeightSingleUnit;
newItem.Remark = item.Remark;
newItem.DetailInfo = JsonConvert.SerializeObject(item, Formatting.Indented);
if (!string.IsNullOrWhiteSpace(item.ItemId) && idpEquipmentIds.Contains(item.ItemId))
{//编辑
modifyItems.Add(newItem);
}
else
{//新增
addItems.Add(newItem);
idpEquipmentIds.Add(item.ItemId);
}
}
}
}
else
{
result = "失败!";
}
}
catch (WebException ex)
{
result = $"程序异常:{ex.Message}";
}
}
if (addItems.Any()) { AddIDPPreRunEquipment(addItems); }
if (modifyItems.Any()) { ModifyIDPPreRunEquipment(modifyItems); }
result = $"成功!总数:{all}条;新增:{addItems.Count()}条,维护:{(all - addItems.Count())}条";
}
return result;
}
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="list"></param>
public static void AddIDPPreRunEquipment(List<Model.IDP_PreRunData_Equipment> list)
{
Model.SGGLDB db = Funs.DB;
db.IDP_PreRunData_Equipment.InsertAllOnSubmit(list);
db.SubmitChanges();
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="list"></param>
public static void ModifyIDPPreRunEquipment(List<Model.IDP_PreRunData_Equipment> list)
{
Model.SGGLDB db = Funs.DB;
foreach (var obj in list)
{
IDP_PreRunData_Equipment newItem = db.IDP_PreRunData_Equipment.FirstOrDefault(x => x.ItemId == obj.ItemId);
if (newItem != null)
{
newItem.ProjId = obj.ProjId;//主数据项目Id
newItem.ProjCode = obj.ProjCode;//主数据项目Code
newItem.ProjectId = obj.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = obj.WbsCode;//装置工序主项码
newItem.DeviceCode = obj.DeviceCode;//装置码
newItem.ProcessesCode = obj.ProcessesCode;//工序码
newItem.SubjectCode = obj.SubjectCode;//主项码
newItem.Category = obj.Category;
newItem.Tag = obj.Tag;
newItem.TagNumber = obj.TagNumber;
newItem.NameSpecifications = obj.NameSpecifications;
newItem.Materials = obj.Materials;
newItem.WeightSingle = obj.WeightSingle;
newItem.WeightSingleUnit = obj.WeightSingleUnit;
newItem.Remark = obj.Remark;
newItem.DetailInfo = obj.DetailInfo;
db.SubmitChanges();
}
}
}
#endregion
#region
/// <summary>
/// 项目试车工作包——仪表索引
/// </summary>
/// <param name="session"></param>
/// <param name="projectId"></param>
public static string GetIDPProjectPreRunDataInstrumentation(SessionItem session, string projectId)
{
string result = string.Empty;
if (string.IsNullOrWhiteSpace(projectId))
{
result = "请传项目Id";
}
else
{
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
var mainProjects = BLL.PMPDataService.GetPMPProjectListByCode(project.ProjectCode);
List<string> idpInstrumentationIds = IDPPreRunDataService.GetIDPPreRunDataInstrumentationIds(projectId);
List<IDP_PreRunData_Instrumentation> addItems = new List<IDP_PreRunData_Instrumentation>();
List<IDP_PreRunData_Instrumentation> modifyItems = new List<IDP_PreRunData_Instrumentation>();
int all = 0;
foreach (var pro in mainProjects)
{
string urlCP7601 = $"{IDPApiUrl}OSS/projects/{pro.Code}/workitems/CP7601/objects/latest";
string urlCP7603 = $"{IDPApiUrl}OSS/projects/{pro.Code}/workitems/CP7603/objects/latest";
//string url = $"{IDPApiUrl}OSS/projects/{pro.Code}/workitems/IN1000/objects/latest";
//string url = $"{IDPApiUrl}OSS/projects/100168/workitems/IN1000/objects/latest";
//string urlCP7601 = $"{IDPApiUrl}OSS/projects/100168/workitems/CP7601/objects/latest";
//string urlCP7603 = $"{IDPApiUrl}OSS/projects/100168/workitems/CP7603/objects/latest";
try
{
Hashtable newToken = new Hashtable { { "Cookie", $"{session.name}={session.value}" } };
var returndataCP7601 = BLL.APIGetHttpService.OutsideHttp(urlCP7601, "GET", null, newToken, null);
var returndataCP7603 = BLL.APIGetHttpService.OutsideHttp(urlCP7603, "GET", null, newToken, null);
List<IDPPreRunInstrumentation> results = new List<IDPPreRunInstrumentation>();
if (!string.IsNullOrEmpty(returndataCP7601))
{
if (returndataCP7601.Contains("\"code\":404,\"message\":\"资源不存在\""))
{
result += $"失败!{returndataCP7601}|";
}
else if (returndataCP7601.Contains("\"status\":404,\"error\":\"Not Found\""))
{
result += $"失败!{returndataCP7601}|";
}
else
{
List<IDPPreRunInstrumentation> responseDatas = IDPPreRunInstrumentation.FromJson(returndataCP7601);
results.AddRange(responseDatas);
}
}
if (!string.IsNullOrEmpty(returndataCP7603))
{
if (returndataCP7603.Contains("\"code\":404,\"message\":\"资源不存在\""))
{
result += $"失败!{returndataCP7603}|";
}
else if (returndataCP7603.Contains("\"status\":404,\"error\":\"Not Found\""))
{
result += $"失败!{returndataCP7603}|";
}
else
{
List<IDPPreRunInstrumentation> responseDatas = IDPPreRunInstrumentation.FromJson(returndataCP7603);
results.AddRange(responseDatas);
}
}
if (results.Any())
{
all += results.Count();
foreach (var item in results)
{
Type type = typeof(IDPPreRunInstrumentation);
IDP_PreRunData_Instrumentation newItem = new IDP_PreRunData_Instrumentation();
newItem.ItemId = item.ItemId;
newItem.ProjId = pro.Code;//主数据项目Id
newItem.ProjCode = pro.StNum;//主数据项目Code
newItem.ProjectId = project.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = item.WbsCode;//装置工序主项码
newItem.DeviceCode = item.DeviceCode;//装置码
newItem.ProcessesCode = item.ProcessesCode;//工序码
newItem.SubjectCode = item.SubjectCode;//主项码
newItem.Category = item.Category;
newItem.Tag = item.Tag;
newItem.InstrumentTag = item.InstrumentTag;
newItem.UseTo = item.UseTo;
newItem.InstrumentName = item.InstrumentName;
newItem.Supplier = item.Supplier;
newItem.InstallationPosition = item.InstallationPosition;
newItem.SignalType = item.SignalType;
newItem.AssociatedSystem = item.AssociatedSystem;
newItem.Cp25 = item.Cp25;
newItem.In11 = item.In11;
newItem.In40 = item.In40;
newItem.Remark = item.Remark;
newItem.DetailInfo = JsonConvert.SerializeObject(item, Formatting.Indented);
if (!string.IsNullOrWhiteSpace(item.ItemId) && idpInstrumentationIds.Contains(item.ItemId))
{//编辑
modifyItems.Add(newItem);
}
else
{//新增
addItems.Add(newItem);
idpInstrumentationIds.Add(item.ItemId);
}
}
}
}
catch (WebException ex)
{
result = $"程序异常:{ex.Message}";
}
}
if (addItems.Any()) { AddIDPPreRunInstrumentation(addItems); }
if (modifyItems.Any()) { ModifyIDPPreRunInstrumentation(modifyItems); }
result = $"成功!总数:{all}条;新增:{addItems.Count()}条,维护:{(all - addItems.Count())}条";
}
return result;
}
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="list"></param>
public static void AddIDPPreRunInstrumentation(List<Model.IDP_PreRunData_Instrumentation> list)
{
Model.SGGLDB db = Funs.DB;
db.IDP_PreRunData_Instrumentation.InsertAllOnSubmit(list);
db.SubmitChanges();
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="list"></param>
public static void ModifyIDPPreRunInstrumentation(List<Model.IDP_PreRunData_Instrumentation> list)
{
Model.SGGLDB db = Funs.DB;
foreach (var obj in list)
{
IDP_PreRunData_Instrumentation newItem = db.IDP_PreRunData_Instrumentation.FirstOrDefault(x => x.ItemId == obj.ItemId);
if (newItem != null)
{
newItem.ProjId = obj.ProjId;//主数据项目Id
newItem.ProjCode = obj.ProjCode;//主数据项目Code
newItem.ProjectId = obj.ProjectId;//智慧施工项目Id
newItem.LastTime = DateTime.Now;//入库时间
newItem.WbsCode = obj.WbsCode;//装置工序主项码
newItem.DeviceCode = obj.DeviceCode;//装置码
newItem.ProcessesCode = obj.ProcessesCode;//工序码
newItem.SubjectCode = obj.SubjectCode;//主项码
newItem.Category = obj.Category;
newItem.Tag = obj.Tag;
newItem.InstrumentTag = obj.InstrumentTag;
newItem.UseTo = obj.UseTo;
newItem.InstrumentName = obj.InstrumentName;
newItem.Supplier = obj.Supplier;
newItem.InstallationPosition = obj.InstallationPosition;
newItem.SignalType = obj.SignalType;
newItem.AssociatedSystem = obj.AssociatedSystem;
newItem.Cp25 = obj.Cp25;
newItem.In11 = obj.In11;
newItem.In40 = obj.In40;
newItem.Remark = obj.Remark;
newItem.DetailInfo = obj.DetailInfo;
db.SubmitChanges();
}
}
}
#endregion
#endregion
#region
#region IDP
/// <summary>
/// 质量管理设计图纸
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="startDate">获取指定时间之后到现在的异动数据</param>
public static void GetIDPProjectDesignDrawingData(string projectId = "", string startDate = "")
{
try
{
//五环主数据项目Code
string projectCode = string.Empty;
if (!string.IsNullOrWhiteSpace(projectId))
{//根据施工平台项目Id获取主数据项目Code
var getPro = ProjectService.GetProjectByProjectId(projectId);
projectCode = getPro.ProjectCode;
}
string timeStampStr = string.Empty;
if (!string.IsNullOrWhiteSpace(startDate))
{
string format = "yyyy-MM-dd";
DateTimeOffset dateTimeOffset = DateTimeOffset.ParseExact(startDate, format, CultureInfo.InvariantCulture);
long timeStamp = Funs.GetDateTimeStamp(dateTimeOffset, 13);
timeStampStr = timeStamp.ToString();
}
var session = GetAuthenticationSession();
//ErrLogInfo.WriteLog($"【Session】name{session.name}value{session.value}");
Hashtable newToken = new Hashtable { { "Cookie", $"{session.name}={session.value}" } };
List<IDP_DesignDrawing> listAdd = new List<IDP_DesignDrawing>();
List<IDP_DesignDrawing> listModify = new List<IDP_DesignDrawing>();
int pageSize = 1000;//一次性最多返回1000条数据
int maxPageNum = 100;
List<string> idpFileIds = DesignDrawingService.GetIDPDesignDrawingFileId();
List<IDP_DesignDrawing> idpFiles = DesignDrawingService.GetIDPDesignDrawingFile();
for (int pageNum = 1; pageNum < 100000; pageNum++)
{
if (pageNum > maxPageNum) { break; }
string url = $"{IDPApiUrl}EDC/third/workitems?pageNum={pageNum}&pageSize={pageSize}";
if (!string.IsNullOrWhiteSpace(timeStampStr)) { url = $"{url}&lastTimestamp={timeStampStr}"; }
if (!string.IsNullOrWhiteSpace(projectCode)) { url = $"{url}&projectCode={projectCode}"; }
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, newToken, null);
if (!string.IsNullOrEmpty(returndata))
{
IDPDesignDrawingResponseData responseData = IDPDesignDrawingResponseData.FromJson(returndata);
maxPageNum = responseData.page.pages;
foreach (var item in responseData.page.results)
{
IDP_DesignDrawing newItem = new IDP_DesignDrawing();
if (!string.IsNullOrWhiteSpace(projectId))
{
newItem.ProjectId = projectId;
}
else
{
if (string.IsNullOrWhiteSpace(item.projectCode))
{
continue;
}
var getProject = ProjectService.GetProjectByProjectCode(item.projectCode);
if (getProject == null)
{
continue;
}
newItem.ProjectId = getProject.ProjectId;
}
newItem.IdpfileId = item.fileId;
newItem.StockId = item.stockId;
newItem.ThirdId = item.thirdId;
newItem.ProjectCode = item.projectCode;
newItem.DisplayProjectName = item.displayProjectName;
newItem.ProjectDeviceProcedureSubjectCode = item.projectDeviceProcedureSubjectCode;
newItem.WbsFullPath = item.wbsFullPath;
newItem.FormatFileCode = item.formatFileCode;
newItem.FormatFileName = item.formatFileName;
newItem.FileVersion = item.fileVersion;
newItem.MajorNo = item.majorNo;
newItem.MajorName = item.majorName;
newItem.Status = item.status;
newItem.DesignUserName = item.designUserName;
newItem.JiaoheUserName = item.jiaoheUserName;
newItem.ShenheUserName = item.shenheUserName;
newItem.ShendingUserName = item.shendingUserName;
newItem.MajorResponsibleUserName = item.majorResponsibleUserName;
newItem.ClassificationLevelInProject = item.classificationLevelInProject;
newItem.UpdateTime = item.updateTime;
newItem.Remark = item.remark;
if (!string.IsNullOrWhiteSpace(item.fileId) && idpFileIds.Contains(item.fileId))
{//编辑
newItem.Id = idpFiles.Where(x => x.IdpfileId == item.fileId).FirstOrDefault().Id;
listModify.Add(newItem);
}
else
{//新增
newItem.Id = SQLHelper.GetNewID(typeof(IDP_DesignDrawing));
listAdd.Add(newItem);
}
}
}
else
{
break;
}
}
if (listAdd.Any())
{
AddIDP_DesignDrawing(listAdd);
}
if (listModify.Any())
{
ModifyIDP_DesignDrawing(listModify);
}
}
catch (WebException ex)
{
}
}
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="list"></param>
public static void AddIDP_DesignDrawing(List<Model.IDP_DesignDrawing> list)
{
Model.SGGLDB db = Funs.DB;
db.IDP_DesignDrawing.InsertAllOnSubmit(list);
db.SubmitChanges();
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="list"></param>
public static void ModifyIDP_DesignDrawing(List<Model.IDP_DesignDrawing> list)
{
Model.SGGLDB db = Funs.DB;
foreach (var obj in list)
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.Id == obj.Id);
if (newItem != null)
{
newItem.StockId = obj.StockId;
newItem.ThirdId = obj.ThirdId;
newItem.ProjectId = obj.ProjectId;
newItem.ProjectCode = obj.ProjectCode;
newItem.DisplayProjectName = obj.DisplayProjectName;
newItem.ProjectDeviceProcedureSubjectCode = obj.ProjectDeviceProcedureSubjectCode;
newItem.WbsFullPath = obj.WbsFullPath;
newItem.FormatFileCode = obj.FormatFileCode;
newItem.FormatFileName = obj.FormatFileName;
newItem.FileVersion = obj.FileVersion;
newItem.MajorNo = obj.MajorNo;
newItem.MajorName = obj.MajorName;
newItem.Status = obj.Status;
newItem.DesignUserName = obj.DesignUserName;
newItem.JiaoheUserName = obj.JiaoheUserName;
newItem.ShenheUserName = obj.ShenheUserName;
newItem.ShendingUserName = obj.ShendingUserName;
newItem.MajorResponsibleUserName = obj.MajorResponsibleUserName;
newItem.ClassificationLevelInProject = obj.ClassificationLevelInProject;
newItem.UpdateTime = obj.UpdateTime;
newItem.Remark = obj.Remark;
db.SubmitChanges();
}
}
}
#endregion
#region
/// <summary>
/// 数字档案馆webApi地址
/// </summary>
private static readonly string GetApiUrl = "https://getapi.cwcec.com/api/WebApi";
/// <summary>
/// 接收保存数据
/// </summary>
/// <param name="items"></param>
public static string SaveDesignDrawingData(List<OADesignDrawingDataItem> items)
{
try
{
string message = string.Empty;
int succ = 0;
int err = 0;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
foreach (var item in items)
{
if (!string.IsNullOrWhiteSpace(item.RdpId) && !string.IsNullOrWhiteSpace(item.fileid))
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.StockId == item.RdpId && x.ThirdId == item.fileid);
if (newItem != null)
{
newItem.RdpId = item.RdpId;
newItem.Fileid = item.fileid;
newItem.Upfileid = item.upfileid;
newItem.Maintitle = item.maintitle;
newItem.Doc_no = item.doc_no;
newItem.Bc = item.bc;
newItem.Archnumber = item.archnumber;
newItem.Sendtime = item.sendtime;
newItem.Printtime = item.printtime;
newItem.Ifmail = item.ifmail;
db.SubmitChanges();
succ++;
}
else
{
err++;
}
}
else
{
err++;
}
}
message = $"总数{(succ + err)}条;失败{err}条,成功{succ}条!";
}
return message;
}
catch (WebException ex)
{
return ex.Message;
}
}
/// <summary>
/// 质量管理设计图纸——更新蓝图寄出信息
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="startDate">开始时间</param>
/// <param name="endDate">结束时间</param>
public static string GetDesignDrawingDataBlueprintInfo(string projectId = "", string startDate = "", string endDate = "")
{
try
{
string message = string.Empty;
//五环主数据项目Code
string projectCode = string.Empty;
if (!string.IsNullOrWhiteSpace(projectId))
{//根据施工平台项目Id获取主数据项目Code
var getPro = ProjectService.GetProjectByProjectId(projectId);
projectCode = getPro.ProjectCode;
}
if (string.IsNullOrWhiteSpace(startDate))
{
startDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
}
if (string.IsNullOrWhiteSpace(endDate))
{
endDate = DateTime.Now.AddDays(+1).ToString("yyyy-MM-dd");
}
string url = $"{GetApiUrl}/GetBlueprintInfo?BeginTime={startDate}&EndTime={endDate}";
if (!string.IsNullOrWhiteSpace(projectCode)) { url = $"{url}&item_id={projectCode}"; }
////folderNo:文件包号示例18063-40401-AR15
//if (!string.IsNullOrWhiteSpace(folderNo)) { url = $"{url}&folderNo={folderNo}"; }
////IsUpgrade:文件版次示例9
//if (!string.IsNullOrWhiteSpace(IsUpgrade)) { url = $"{url}&IsUpgrade={IsUpgrade}"; }
//ErrLogInfo.WriteLog($"接口地址{url}");
//var returndata = "[{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/9 15:21:32\",\"folderNo\":\"22150-21000-WT2501-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"},{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/9 15:21:33\",\"folderNo\":\"22150-21000-WT4401-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"},{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/19 15:23:33\",\"folderNo\":\"22150-21000-WT4401-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"}]";
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, null, null);
//ErrLogInfo.WriteLog($"返回结果:{returndata}");
if (!string.IsNullOrEmpty(returndata))
{
int succ = 0;
int err = 0;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List<BlueprintInfoItem> responseData = BlueprintInfoItems.FromJson(returndata);
if (responseData.Any())
{
//ErrLogInfo.WriteLog($"序列化对象ok");
responseData = responseData.OrderByDescending(x => x.modifiedTime).ToList();
responseData = responseData.GroupBy(p => new { p.item_id, p.folderNo, p.isUpgrade }).Select(g => g.First()).ToList();
foreach (var item in responseData)
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.ProjectCode == item.item_id && x.FormatFileCode == item.folderNo && x.FileVersion == item.isUpgrade);
if (newItem == null)
{
err++;
continue;
}
newItem.Sendtime = item.modifiedTime;
db.SubmitChanges();
succ++;
}
}
}
message = $"成功。总数:{(succ + err)}条;成功更新{succ}条,失败{err}条。";
}
else
{
message = "无数据";
}
return message;
}
catch (WebException ex)
{
return ex.Message;
}
}
/// <summary>
/// 质量管理设计图纸——更新蓝图打印信息
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="startDate">开始时间</param>
/// <param name="endDate">结束时间</param>
public static string GetDesignDrawingDataPrintInfo(string projectId = "", string startDate = "", string endDate = "")
{
try
{
string message = string.Empty;
//五环主数据项目Code
string projectCode = string.Empty;
if (!string.IsNullOrWhiteSpace(projectId))
{//根据施工平台项目Id获取主数据项目Code
var getPro = ProjectService.GetProjectByProjectId(projectId);
projectCode = getPro.ProjectCode;
}
if (string.IsNullOrWhiteSpace(startDate))
{
startDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
}
if (string.IsNullOrWhiteSpace(endDate))
{
endDate = DateTime.Now.AddDays(+1).ToString("yyyy-MM-dd");
}
string url = $"{GetApiUrl}/GetPrintInfo?BeginTime={startDate}&EndTime={endDate}";
if (!string.IsNullOrWhiteSpace(projectCode)) { url = $"{url}&item_id={projectCode}"; }
////folderNo:文件包号示例18063-40401-AR15
//if (!string.IsNullOrWhiteSpace(folderNo)) { url = $"{url}&folderNo={folderNo}"; }
////IsUpgrade:文件版次示例9
//if (!string.IsNullOrWhiteSpace(IsUpgrade)) { url = $"{url}&IsUpgrade={IsUpgrade}"; }
//var returndata = "[{\"recorder\":\"姚曙光\",\"item_id\":\"22150\",\"item_name\":\"哈密广汇环保科技有限公司荒煤气综合利用年产40万吨乙二醇项目\",\"folderNo\":\"22150-21000-WT2501-001\",\"folder_name\":\"文件目录-202203091052472988\",\"isUpgrade\":\"D00\",\"createTime\":\"2022/3/10 10:52:47\",\"doc_printtime\":\"2022/3/10 15:30:46\",\"isPrint\":\"是\",\"project_id\":\"3288\"},{\"recorder\":\"姚曙光\",\"item_id\":\"22150\",\"item_name\":\"哈密广汇环保科技有限公司荒煤气综合利用年产40万吨乙二醇项目\",\"folderNo\":\"22150-21000-WT4401-001\",\"folder_name\":\"门窗表-202203091052527479\",\"isUpgrade\":\"D00\",\"createTime\":\"2022/3/12 10:52:53\",\"doc_printtime\":\"2022/3/12 15:30:46\",\"isPrint\":\"是\",\"project_id\":\"3288\"}]";
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, null, null);
if (!string.IsNullOrEmpty(returndata))
{
int succ = 0;
int err = 0;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List<PrintInfoItem> responseData = PrintInfoItems.FromJson(returndata);
if (responseData.Any())
{
responseData = responseData.OrderByDescending(x => x.doc_printtime).ToList();
responseData = responseData.GroupBy(p => new { p.item_id, p.folderNo, p.isUpgrade }).Select(g => g.First()).ToList();
foreach (var item in responseData)
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.ProjectCode == item.item_id && x.FormatFileCode == item.folderNo && x.FileVersion == item.isUpgrade);
if (newItem == null)
{
err++;
continue;
}
newItem.Printtime = item.doc_printtime;
db.SubmitChanges();
succ++;
}
}
}
message = $"成功。总数:{(succ + err)}条;成功更新{succ}条,失败{err}条。";
}
else
{
message = "无数据";
}
return message;
}
catch (WebException ex)
{
return ex.Message;
}
}
/// <summary>
/// 质量管理设计图纸——更新蓝图寄出信息【暂时不用,同步历史数据时,可调整方法】
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="startDate">开始时间</param>
/// <param name="endDate">结束时间</param>
public static void GetDesignDrawingDataBlueprintInfo1(DateTime startDate, DateTime endDate)
{
try
{
string message = string.Empty;
string url = $"{GetApiUrl}/GetBlueprintInfo?BeginTime={startDate}&EndTime={endDate}";
//if (!string.IsNullOrWhiteSpace(projectCode)) { url = $"{url}&item_id={projectCode}"; }
////folderNo:文件包号示例18063-40401-AR15
//if (!string.IsNullOrWhiteSpace(folderNo)) { url = $"{url}&folderNo={folderNo}"; }
////IsUpgrade:文件版次示例9
//if (!string.IsNullOrWhiteSpace(IsUpgrade)) { url = $"{url}&IsUpgrade={IsUpgrade}"; }
//ErrLogInfo.WriteLog($"接口地址{url}");
//var returndata = "[{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/9 15:21:32\",\"folderNo\":\"22150-21000-WT2501-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"},{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/9 15:21:33\",\"folderNo\":\"22150-21000-WT4401-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"},{\"item_id\":\"22150\",\"modifiedTime\":\"2022/3/19 15:23:33\",\"folderNo\":\"22150-21000-WT4401-001\",\"isUpgrade\":\"D00\",\"fileType\":\"非设备蓝图\",\"senderName\":\"吴荟\",\"receiverAddress\":\"新疆哈密市伊吾县淖毛湖镇广汇生活区12号楼\",\"receiverName\":\"李娟\",\"receiverType\":\"业主\",\"receiverUnit\":\"哈密广汇环保科技有限公司\"}]";
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, null, null);
//ErrLogInfo.WriteLog($"返回结果:{returndata}");
if (!string.IsNullOrEmpty(returndata))
{
int succ = 0;
int err = 0;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List<BlueprintInfoItem> responseData = BlueprintInfoItems.FromJson(returndata);
if (responseData.Any())
{
//ErrLogInfo.WriteLog($"序列化对象ok");
responseData = responseData.OrderByDescending(x => x.modifiedTime).ToList();
responseData = responseData.GroupBy(p => new { p.item_id, p.folderNo, p.isUpgrade }).Select(g => g.First()).ToList();
foreach (var item in responseData)
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.ProjectCode == item.item_id && x.FormatFileCode == item.folderNo && x.FileVersion == item.isUpgrade);
if (newItem == null)
{
err++;
continue;
}
newItem.Sendtime = item.modifiedTime;
db.SubmitChanges();
succ++;
}
}
}
message = $"成功。总数:{(succ + err)}条;成功更新{succ}条,失败{err}条。";
}
else
{
message = "无数据";
}
if (startDate > DateTime.Now)
{
//return message;
}
else
{
GetDesignDrawingDataBlueprintInfo1(startDate.AddDays(1), startDate.AddDays(2));
}
}
catch (WebException ex)
{
//return ex.Message;
}
}
/// <summary>
/// 质量管理设计图纸——更新蓝图打印信息【暂时不用,同步历史数据时,可调整方法】
/// </summary>
/// <param name="projectId">项目Id</param>
/// <param name="startDate">开始时间</param>
/// <param name="endDate">结束时间</param>
public static string GetDesignDrawingDataPrintInfo1(string projectId = "", string startDate = "", string endDate = "")
{
try
{
string message = string.Empty;
//五环主数据项目Code
string projectCode = string.Empty;
if (!string.IsNullOrWhiteSpace(projectId))
{//根据施工平台项目Id获取主数据项目Code
var getPro = ProjectService.GetProjectByProjectId(projectId);
projectCode = getPro.ProjectCode;
}
if (string.IsNullOrWhiteSpace(startDate))
{
startDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
}
else
if (string.IsNullOrWhiteSpace(endDate))
{
endDate = DateTime.Now.AddDays(+1).ToString("yyyy-MM-dd");
}
string url = $"{GetApiUrl}/GetPrintInfo?BeginTime={startDate}&EndTime={endDate}";
if (!string.IsNullOrWhiteSpace(projectCode)) { url = $"{url}&item_id={projectCode}"; }
////folderNo:文件包号示例18063-40401-AR15
//if (!string.IsNullOrWhiteSpace(folderNo)) { url = $"{url}&folderNo={folderNo}"; }
////IsUpgrade:文件版次示例9
//if (!string.IsNullOrWhiteSpace(IsUpgrade)) { url = $"{url}&IsUpgrade={IsUpgrade}"; }
//var returndata = "[{\"recorder\":\"姚曙光\",\"item_id\":\"22150\",\"item_name\":\"哈密广汇环保科技有限公司荒煤气综合利用年产40万吨乙二醇项目\",\"folderNo\":\"22150-21000-WT2501-001\",\"folder_name\":\"文件目录-202203091052472988\",\"isUpgrade\":\"D00\",\"createTime\":\"2022/3/10 10:52:47\",\"doc_printtime\":\"2022/3/10 15:30:46\",\"isPrint\":\"是\",\"project_id\":\"3288\"},{\"recorder\":\"姚曙光\",\"item_id\":\"22150\",\"item_name\":\"哈密广汇环保科技有限公司荒煤气综合利用年产40万吨乙二醇项目\",\"folderNo\":\"22150-21000-WT4401-001\",\"folder_name\":\"门窗表-202203091052527479\",\"isUpgrade\":\"D00\",\"createTime\":\"2022/3/12 10:52:53\",\"doc_printtime\":\"2022/3/12 15:30:46\",\"isPrint\":\"是\",\"project_id\":\"3288\"}]";
var returndata = BLL.APIGetHttpService.OutsideHttp(url, "GET", null, null, null);
if (!string.IsNullOrEmpty(returndata))
{
int succ = 0;
int err = 0;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
List<PrintInfoItem> responseData = PrintInfoItems.FromJson(returndata);
if (responseData.Any())
{
responseData = responseData.OrderByDescending(x => x.doc_printtime).ToList();
responseData = responseData.GroupBy(p => new { p.item_id, p.folderNo, p.isUpgrade }).Select(g => g.First()).ToList();
foreach (var item in responseData)
{
IDP_DesignDrawing newItem = db.IDP_DesignDrawing.FirstOrDefault(x => x.ProjectCode == item.item_id && x.FormatFileCode == item.folderNo && x.FileVersion == item.isUpgrade);
if (newItem == null)
{
err++;
continue;
}
newItem.Printtime = item.doc_printtime;
db.SubmitChanges();
succ++;
}
}
}
message = $"成功。总数:{(succ + err)}条;成功更新{succ}条,失败{err}条。";
}
else
{
message = "无数据";
}
return message;
}
catch (WebException ex)
{
return ex.Message;
}
}
#endregion
#endregion
#region IDP平台接口授权认证
/// <summary>
/// 加密公钥
/// </summary>
private static readonly string publicKey = "<RSAKeyValue><Modulus>g1sk7Xtc1TJouHdY4+FAe5atGCu2n17NhoKVDV57pki1IL+9+S7BY4gxAjmMkUU2/cbCCdbPoUJLBrCBCjX7yI3UJW6FZwQWkn3kVoeulLEwdPCIq/GUjMXaWf3Iaaad5wBUFbfXAzv15VN6z48Nt1IY/O8YEzhIpuZdtEgDdos=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
//private static readonly string publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChnc2YD0YzJPx6QTh+/n7XzjR1ugFzrsmPolJhpCfWMKrSGbT7iX/Kgcm1AI+T95K4Jzv3KS42QTecZ1ziJ4Rr9Luzw+9ZCSjMZgrmAUbY5IeBaA6GzaSk8UWHZ4n5PL+GUGq+2f+COL7+KCS2AxEpaqDZVrJrIfg/UektdgNyzwIDAQAB";
/// <summary>
/// 第三方加密认证接口
/// </summary>
/// 五环IDP系统SessionId有效期30分钟
/// <returns></returns>
public static SessionItem GetAuthenticationSession()
{
SessionItem session = new SessionItem();
try
{
//// 创建RSA加密服务提供者
////using (RSA rsa = RSA.Create())
//using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
//{
//// 获取公钥false表示只导出公钥
//string publicKey = rsa.ToXmlString(false);
//// 获取私钥true表示导出公钥和私钥
//string privateKey = rsa.ToXmlString(true);
////用户名加密
//string encryptedUsername = EncryptData("dataviewer", publicKey);
////密码加密
//string encryptedPassword = EncryptData("a3365$!", publicKey);
//用户名加密后的密文
string encryptedUsername = "k0N0tx/hfRPY0v2lq1G8eH6hCO+UiMqlSZi1PD6bhGf4YpP/koJq5hfMsDSzdn3dZjzExrwyrjFWp/1jZLde0+gRbQ0D7tzm0R5D6AmriodD2cJvrEiwtDy7SeGNloSaNmpTEMuycpuueiOeGhMkKnTwWfRkEw73lxEpTmaahq4=";
//密码加密后的密文
string encryptedPassword = "HLLroiNJJzyTWJt9td1xgChbVzyQkoxWCGGXqdwI2cvlUF/A30FAPaInszSwEhNRQlJZZ01EODElemkgv36DMF+XGwfDi0BfIq9jKG+/+wq0TVOHNhiu2NPzpn5Ji2X3yXIXpH1zv6XEtkvx/qiLToZYfRQCufsl5vH1cZxk2fQ=";
string url = $"{IDPApiUrl}UAMS/authEncrypt";
//string url = $"http://10.5.6.151:8100/UAMS/authEncrypt";
string contenttype = "application/json;charset=utf-8";
var body = new
{
encryptedUsername = encryptedUsername,
encryptedPassword = encryptedPassword
};
string pushContent = JsonConvert.SerializeObject(body);
string strJosn = APIGetHttpService.Http(url, "POST", contenttype, null, pushContent);
//string strJosn = HttpHelper.Post(url, null, pushContent);
JObject obj = JObject.Parse(strJosn);
if (!string.IsNullOrEmpty(strJosn))
{
string value = obj["value"].ToString();
string name = obj["name"].ToString();
session.value = value;
session.name = name;
}
//}
}
catch (WebException ex)
{
return null;
}
finally
{
}
return session;
}
/// <summary>
/// 加密字符串
/// </summary>
/// <param name="data">加密信息</param>
/// <param name="publicKey">公钥</param>
/// <returns></returns>
public static string EncryptData(string data, string publicKey)
{
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
string result = string.Empty;
try
{
rsa.FromXmlString(publicKey); //从字符串加载公钥
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] encryptedBytes = rsa.Encrypt(dataBytes, false); //使用公钥加密数据false表示使用OAEP填充方式
result = Convert.ToBase64String(encryptedBytes); //返回Base64编码的加密数据
}
catch (Exception ex)
{
Console.WriteLine("Error encrypting: {0}", ex.Message);
}
return result;
}
}
#endregion
}
}