Merge branch 'master' of http://47.104.102.122:3000/lpf/SGGL_SeDin_New
This commit is contained in:
@@ -227,6 +227,25 @@ namespace BLL
|
||||
return getDataLists;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据类型获取巡检隐患类型表
|
||||
/// <summary>
|
||||
/// 根据类型获取巡检隐患类型表
|
||||
/// </summary>
|
||||
/// <param name="userInfo"></param>
|
||||
/// <returns></returns>
|
||||
public static List<Model.BaseInfoItem> getHazardRegisterTypes2(string type)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
var getDataLists = (from x in Funs.DB.Technique_CheckItemSet
|
||||
where x.CheckType == "2" && x.SupCheckItem == type
|
||||
orderby x.MapCode
|
||||
select new Model.BaseInfoItem { BaseInfoId = x.CheckItemSetId, BaseInfoCode = x.MapCode, BaseInfoName = x.CheckItemName }).ToList();
|
||||
return getDataLists;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 根据项目id获取项目图片
|
||||
|
||||
@@ -747,6 +747,7 @@
|
||||
<Compile Include="TaskScheduling\TimerTask\CustomJobListener.cs" />
|
||||
<Compile Include="TaskScheduling\TimerTask\TaskJob.cs" />
|
||||
<Compile Include="TaskScheduling\TimerTask\TimerTaskBase.cs" />
|
||||
<Compile Include="TokenHelper.cs" />
|
||||
<Compile Include="WebService\CNCECHSSEWebService.cs" />
|
||||
<Compile Include="WebService\FileStructService.cs" />
|
||||
<Compile Include="ZHGL\ConstructionMonthReport\ConstructionMonthReportMainCostService.cs" />
|
||||
|
||||
@@ -40,7 +40,9 @@ namespace BLL
|
||||
/// <returns></returns>
|
||||
public static IEnumerable getListData(string projectId, string states, string checkType, string checkItemSetId, DateTime? startTime, DateTime? endTime, Grid Grid1)
|
||||
{
|
||||
IQueryable<Model.Check_CheckSpecial> getDataList = getDataLists;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
IQueryable<Model.Check_CheckSpecial> getDataList = from x in db.Check_CheckSpecial
|
||||
select x;
|
||||
if (!string.IsNullOrEmpty(projectId))
|
||||
{
|
||||
getDataList = getDataList.Where(e => e.ProjectId == projectId);
|
||||
@@ -87,7 +89,7 @@ namespace BLL
|
||||
x.CheckSpecialId,
|
||||
x.CheckTime,
|
||||
x.CheckSpecialCode,
|
||||
CheckItemName = Funs.DB.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
|
||||
CheckItemName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
|
||||
CheckTypeName = x.CheckType == "1" ? "联合检查" : "专项检查",
|
||||
StatesName = x.States == "2" ? "已完成" : (x.States == "1" ? "待整改" : "待提交"),
|
||||
};
|
||||
|
||||
@@ -45,7 +45,9 @@ namespace BLL
|
||||
/// <returns></returns>
|
||||
public static IEnumerable getListData(string projectId, string startTime, string endTime, Grid Grid1)
|
||||
{
|
||||
IQueryable<Model.Check_ProjectLeaderCheck> getDataList = getDataLists;
|
||||
Model.SGGLDB db = Funs.DB;
|
||||
IQueryable<Model.Check_ProjectLeaderCheck> getDataList = from x in db.Check_ProjectLeaderCheck
|
||||
select x;
|
||||
if (!string.IsNullOrEmpty(projectId))
|
||||
{
|
||||
getDataList = getDataList.Where(x => x.ProjectId == projectId);
|
||||
@@ -72,16 +74,15 @@ namespace BLL
|
||||
return null;
|
||||
}
|
||||
getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
|
||||
var db1 = Funs.DB;
|
||||
return from x in getDataList
|
||||
join y in db1.Base_Project on x.ProjectId equals y.ProjectId
|
||||
join y in db.Base_Project on x.ProjectId equals y.ProjectId
|
||||
into ps
|
||||
from y in ps.DefaultIfEmpty()
|
||||
select new
|
||||
{
|
||||
x.ProjectLeaderCheckId,
|
||||
x.ProjectId,
|
||||
db1.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName,
|
||||
db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName,
|
||||
x.CheckCode,
|
||||
x.UnitIds,
|
||||
x.LeaderIds,
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
/// <summary>
|
||||
/// Token加密解密工具类
|
||||
/// 用于iframe跨域自动登录的token处理
|
||||
/// </summary>
|
||||
public static class TokenHelper
|
||||
{
|
||||
// 默认密钥,建议从配置文件中读取
|
||||
private static readonly string SecretKey = "cncec-subqhse-256bit-secret-key-for-auth-token";
|
||||
|
||||
/// <summary>
|
||||
/// 加密Token
|
||||
/// </summary>
|
||||
/// <param name="plainText">明文</param>
|
||||
/// <returns>加密后的Base64字符串</returns>
|
||||
public static string EncryptToken(string plainText)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 确保密钥长度为32字节(256位)
|
||||
string key = SecretKey.PadRight(32, '0').Substring(0, 32);
|
||||
|
||||
using (var aes = Aes.Create())
|
||||
{
|
||||
aes.Key = Encoding.UTF8.GetBytes(key);
|
||||
aes.IV = new byte[16]; // 使用固定IV,简化实现
|
||||
aes.Mode = CipherMode.CBC;
|
||||
aes.Padding = PaddingMode.PKCS7;
|
||||
|
||||
using (var encryptor = aes.CreateEncryptor())
|
||||
using (var msEncrypt = new MemoryStream())
|
||||
{
|
||||
using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
|
||||
using (var swEncrypt = new StreamWriter(csEncrypt))
|
||||
{
|
||||
swEncrypt.Write(plainText);
|
||||
}
|
||||
return Convert.ToBase64String(msEncrypt.ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception($"Token加密失败: {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 解密Token
|
||||
/// </summary>
|
||||
/// <param name="cipherText">加密的Base64字符串</param>
|
||||
/// <returns>解密后的明文</returns>
|
||||
public static string DecryptToken(string cipherText)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 确保密钥长度为32字节(256位)
|
||||
string key = SecretKey.PadRight(32, '0').Substring(0, 32);
|
||||
|
||||
using (var aes = Aes.Create())
|
||||
{
|
||||
aes.Key = Encoding.UTF8.GetBytes(key);
|
||||
aes.IV = new byte[16]; // 使用固定IV,与加密一致
|
||||
aes.Mode = CipherMode.CBC;
|
||||
aes.Padding = PaddingMode.PKCS7;
|
||||
|
||||
using (var decryptor = aes.CreateDecryptor())
|
||||
using (var msDecrypt = new MemoryStream(Convert.FromBase64String(cipherText)))
|
||||
using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
|
||||
using (var srDecrypt = new StreamReader(csDecrypt))
|
||||
{
|
||||
return srDecrypt.ReadToEnd();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new Exception($"Token解密失败: {ex.Message}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成认证Token
|
||||
/// </summary>
|
||||
/// <param name="userId">用户ID</param>
|
||||
/// <param name="source">来源标识</param>
|
||||
/// <returns>加密的Token</returns>
|
||||
public static string GenerateAuthToken(string userId, string source = "qhse.cncecoa.com")
|
||||
{
|
||||
var tokenData = new
|
||||
{
|
||||
user_id = userId,
|
||||
timestamp = DateTimeOffset.Now.ToUnixTimeSeconds(),
|
||||
source = source,
|
||||
random = Guid.NewGuid().ToString("N").Substring(0, 8) // 添加8位随机数增强安全性
|
||||
};
|
||||
|
||||
string json = JsonConvert.SerializeObject(tokenData);
|
||||
return EncryptToken(json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 验证Token格式
|
||||
/// </summary>
|
||||
/// <param name="token">Token字符串</param>
|
||||
/// <returns>是否为有效的Base64格式</returns>
|
||||
public static bool IsValidTokenFormat(string token)
|
||||
{
|
||||
try
|
||||
{
|
||||
Convert.FromBase64String(token);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -705,7 +705,7 @@ namespace BLL
|
||||
InspectionLotNum = inspectionLotNum.Sum(x => x.Sum),
|
||||
|
||||
ConstructSolutionNum = constructSolutionList.Count(),
|
||||
ConstructSolutionProjectApproveNum = constructSolutionList.Where(x => x.State == "1").Count(),
|
||||
ConstructSolutionProjectApproveNum = constructSolutionList.Where(x => x.State == "3").Count(),
|
||||
ConstructSolutionUnitApproveNum = comprehensiveMajorPlanList.Count(),
|
||||
SpecialEquipmentQualityAssuranceSystemNum = qualityAssuranceNum.Count(),
|
||||
DesignDetailsNum = technicalDisclosePersonList.Count(),
|
||||
|
||||
@@ -3865,7 +3865,8 @@ namespace BLL
|
||||
/// <returns></returns>
|
||||
public static List<LicenseOutput> GetLicenses()
|
||||
{
|
||||
var result = (from x in Funs.DB.View_License_LicenseManager
|
||||
List<LicenseOutput> result = new List<LicenseOutput>();
|
||||
var result1 = (from x in Funs.DB.View_License_LicenseManager
|
||||
where BeUnderConstructionList.Contains(x.ProjectId) && x.IsHighRisk == true &&
|
||||
x.CompileDate > Const.DtmarkTime
|
||||
select new Model.LicenseOutput
|
||||
@@ -3884,6 +3885,159 @@ namespace BLL
|
||||
EndDate = x.EndDate,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result2 = (from x in Funs.DB.License_FireWork
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.FireWorkId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "动火作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result3 = (from x in Funs.DB.License_HeightWork
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.HeightWorkId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "高处作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result4 = (from x in Funs.DB.License_LimitedSpace
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.LimitedSpaceId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "受限空间作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result5 = (from x in Funs.DB.License_RadialWork
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.RadialWorkId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "射线作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result6 = (from x in Funs.DB.License_OpenCircuit
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.OpenCircuitId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "断路(占道)作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result7 = (from x in Funs.DB.License_BreakGround
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.BreakGroundId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "动土作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result8 = (from x in Funs.DB.License_NightWork
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.NightWorkId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "夜间施工作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
var result9 = (from x in Funs.DB.License_LiftingWork
|
||||
where BeUnderConstructionList.Contains(x.ProjectId)
|
||||
select new Model.LicenseOutput
|
||||
{
|
||||
Id = x.LiftingWorkId,
|
||||
ProjectId = x.ProjectId,
|
||||
ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
|
||||
UnitId = x.ApplyUnitId,
|
||||
UnitName = UnitService.GetUnitNameByUnitId(x.ApplyUnitId),
|
||||
LicenseTypeName = "吊装作业票",
|
||||
UnitTypeName = "",
|
||||
IsHighRisk = false,
|
||||
WorkAreaName = "",
|
||||
CompileDate = x.ApplyDate,
|
||||
StartDate = x.ValidityStartTime,
|
||||
EndDate = x.ValidityEndTime,
|
||||
WorkStatesStr = ""
|
||||
}).ToList();
|
||||
result.AddRange(result1);
|
||||
result.AddRange(result2);
|
||||
result.AddRange(result3);
|
||||
result.AddRange(result4);
|
||||
result.AddRange(result5);
|
||||
result.AddRange(result6);
|
||||
result.AddRange(result7);
|
||||
result.AddRange(result8);
|
||||
result.AddRange(result9);
|
||||
return result;
|
||||
}
|
||||
public static async Task<List<LicenseOutput>> GetLicensesAsync()
|
||||
|
||||
Reference in New Issue
Block a user