This commit is contained in:
commit
3ad6b67803
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE Comprehensive_InspectionEquipment
|
||||||
|
ALTER COLUMN UsedPlace NVARCHAR(500);
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
update Sys_Role set RoleCode='101' where RoleName='项目经理';
|
||||||
|
|
||||||
|
|
||||||
|
--角色补充项目主管
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM Sys_Role WHERE RoleName = '项目主管')
|
||||||
|
BEGIN
|
||||||
|
insert into Sys_Role(RoleId,RoleName,RoleCode,IsSystemBuilt,RoleType,IsAuditFlow)
|
||||||
|
values('b51072d6-5c8d-4763-b010-b3492b50feac','项目主管','100',1,1,1)
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ namespace BLL
|
||||||
public static string Http(string url, string method = "GET", string contenttype = "application/json;charset=utf-8", Hashtable header = null, string data = null)
|
public static string Http(string url, string method = "GET", string contenttype = "application/json;charset=utf-8", Hashtable header = null, string data = null)
|
||||||
{
|
{
|
||||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 |
|
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 |
|
||||||
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
|
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
|
||||||
SecurityProtocolType.Tls12;
|
SecurityProtocolType.Tls12;
|
||||||
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
||||||
request.Method = string.IsNullOrEmpty(method) ? "GET" : method;
|
request.Method = string.IsNullOrEmpty(method) ? "GET" : method;
|
||||||
request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype;
|
request.ContentType = string.IsNullOrEmpty(contenttype) ? "application/json;charset=utf-8" : contenttype;
|
||||||
|
|
|
@ -589,6 +589,7 @@ namespace BLL
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string CreateGetHttpResponse(string url)
|
public static string CreateGetHttpResponse(string url)
|
||||||
{
|
{
|
||||||
|
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||||
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象
|
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象
|
||||||
request.Method = "Get";//请求方式
|
request.Method = "Get";//请求方式
|
||||||
request.ContentType = "application/x-www-form-urlencoded";//链接类型
|
request.ContentType = "application/x-www-form-urlencoded";//链接类型
|
||||||
|
|
|
@ -390,6 +390,10 @@ namespace BLL
|
||||||
|
|
||||||
#region 内置项目角色定义
|
#region 内置项目角色定义
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 项目主管
|
||||||
|
/// </summary>
|
||||||
|
public const string ProjectSupervisor = "b51072d6-5c8d-4763-b010-b3492b50feac";
|
||||||
|
/// <summary>
|
||||||
/// 项目经理
|
/// 项目经理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ProjectManager = "1184835B-73AF-47FB-9F83-20740CE2FAD7";
|
public const string ProjectManager = "1184835B-73AF-47FB-9F83-20740CE2FAD7";
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.Text;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace BLL
|
namespace BLL
|
||||||
{
|
{
|
||||||
|
@ -44,6 +45,7 @@ namespace BLL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取多附件数据流类
|
/// 获取多附件数据流类
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -61,18 +63,30 @@ namespace BLL
|
||||||
{
|
{
|
||||||
if (strs.Count() > i)
|
if (strs.Count() > i)
|
||||||
{
|
{
|
||||||
|
//string physicalpath = Funs.AttachRootPath;
|
||||||
string physicalpath = Funs.RootPath;
|
string physicalpath = Funs.RootPath;
|
||||||
//HttpContext.Current.Request.PhysicalApplicationPath;
|
string fpath = strs[i];
|
||||||
string fullPath = physicalpath + strs[i];
|
string fullPath = physicalpath + fpath;
|
||||||
if (!File.Exists(fullPath))
|
if (!File.Exists(fullPath))
|
||||||
{
|
{
|
||||||
byte[] fileContext = item;
|
byte[] fileContext = item;
|
||||||
int index = fullPath.LastIndexOf("\\");
|
string fileName = Regex.Match(fullPath, @"[^/\\?]+(\?.*)?$").Value;
|
||||||
string filePath = fullPath.Substring(0, index);
|
string filePath = fullPath.Replace(fileName, "");
|
||||||
|
//int index = fullPath.LastIndexOf("\\");
|
||||||
|
//string filePath = fullPath.Substring(0, index) ;
|
||||||
|
//string filePath = index > 0 ? fullPath.Substring(0, index) : fullPath;
|
||||||
|
|
||||||
if (!Directory.Exists(filePath))
|
try
|
||||||
{
|
{
|
||||||
Directory.CreateDirectory(filePath);
|
if (!Directory.Exists(filePath))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(filePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ErrLogInfo.WriteLog($"附件【{filePath}】获取异常!");
|
||||||
|
//continue;
|
||||||
}
|
}
|
||||||
//string savePath = fullPath + fileName;
|
//string savePath = fullPath + fileName;
|
||||||
|
|
||||||
|
@ -93,6 +107,7 @@ namespace BLL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数据和附件插入到多附件表
|
/// 数据和附件插入到多附件表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -125,7 +125,7 @@ namespace BLL
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>";
|
</html>";
|
||||||
//< p > 登录密码:{ user.RawPassword}</ p >
|
//< p > 登录密码:{ user.RawPassword}</ p >
|
||||||
mail.Body = bodyStr;
|
mail.Body = bodyStr;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -210,6 +210,7 @@ namespace BLL
|
||||||
|
|
||||||
//获取有邮箱的用户
|
//获取有邮箱的用户
|
||||||
var userIds = BLL.UserService.GetUserHaveEmailList();
|
var userIds = BLL.UserService.GetUserHaveEmailList();
|
||||||
|
|
||||||
if (userIds.Any() && lstOverdue.Any())
|
if (userIds.Any() && lstOverdue.Any())
|
||||||
{
|
{
|
||||||
//int allnum = 0;
|
//int allnum = 0;
|
||||||
|
@ -221,6 +222,9 @@ namespace BLL
|
||||||
if (lstProjectOverdue.Any())
|
if (lstProjectOverdue.Any())
|
||||||
{
|
{
|
||||||
string projectName = pro.ProjectName;
|
string projectName = pro.ProjectName;
|
||||||
|
|
||||||
|
#region 提醒事项相关人员
|
||||||
|
|
||||||
foreach (var user in userIds)
|
foreach (var user in userIds)
|
||||||
{
|
{
|
||||||
//if (allnum > 100) { break; }
|
//if (allnum > 100) { break; }
|
||||||
|
@ -316,6 +320,96 @@ namespace BLL
|
||||||
//Thread.Sleep(1000); //暂停1秒
|
//Thread.Sleep(1000); //暂停1秒
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 提醒项目主管和项目经理
|
||||||
|
|
||||||
|
var projectSupervisors = ProjectUserService.GetProjectUserByRoleId(Const.ProjectSupervisor);
|
||||||
|
var projectManagers = ProjectUserService.GetProjectUserByRoleId(Const.ProjectManager);
|
||||||
|
|
||||||
|
List<string> remindUserIds = new List<string>();
|
||||||
|
List<string> projectSupervisorIds = projectSupervisors.Select(x => x.UserId).ToList();
|
||||||
|
List<string> projectManagerIds = projectManagers.Select(x => x.UserId).ToList();
|
||||||
|
if (projectSupervisorIds.Any()) { remindUserIds.AddRange(projectSupervisorIds); }
|
||||||
|
if (projectManagerIds.Any()) { remindUserIds.AddRange(projectManagerIds); }
|
||||||
|
|
||||||
|
var remindUsers = userIds.Where(x => remindUserIds.Contains(x.UserId));
|
||||||
|
foreach (var user in remindUsers)
|
||||||
|
{
|
||||||
|
MailMessage mail = new MailMessage();
|
||||||
|
//邮件主题
|
||||||
|
mail.Subject = $"关键事项超期预警提醒——{projectName}";
|
||||||
|
mail.To.Add(user.Email);
|
||||||
|
//mail.To.Add("test@test.com");
|
||||||
|
mail.IsBodyHtml = true;//确保邮件正文被当作HTML解析
|
||||||
|
|
||||||
|
StringBuilder tbodyStr = new StringBuilder();
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
if (projectManagerIds.Contains(user.UserId))
|
||||||
|
{
|
||||||
|
foreach (var item in lstProjectOverdue)
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (projectSupervisorIds.Contains(user.UserId) && !projectManagerIds.Contains(user.UserId))
|
||||||
|
{
|
||||||
|
var lstProjectOverdue2 = lstOverdue.Where(x => x.ProjectId == pro.ProjectId && x.DateDiffDays > 13).ToList();
|
||||||
|
index = 0;
|
||||||
|
foreach (var item in lstProjectOverdue2)
|
||||||
|
{
|
||||||
|
index++;
|
||||||
|
tbodyStr.Append($"<tr><td>{index}</td><td>事项逾期</td><td>{item.UnitName}</td><td>{item.GJSXID}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//邮件正文
|
||||||
|
string bodyStr = @"<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
border: 1px solid black;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>关键事项超期预警提醒</h2>
|
||||||
|
<a href='https://zhgd.cwcec.com/'>请点击此处,查看详细信息,并及时处置关闭</a>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>序号</th>
|
||||||
|
<th>类型</th>
|
||||||
|
<th>责任单位</th>
|
||||||
|
<th>事项编号</th>
|
||||||
|
<th>事项描述</th>
|
||||||
|
<th>事项类别</th>
|
||||||
|
<th>发起人</th>
|
||||||
|
<th>责任人</th>
|
||||||
|
<th>约定完成时间</th>
|
||||||
|
<th>超期时间(天)</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>" + tbodyStr.ToString() + "</tbody></table></body></html>";
|
||||||
|
|
||||||
|
mail.Body = bodyStr;
|
||||||
|
if (index > 1)
|
||||||
|
{
|
||||||
|
//allnum++;
|
||||||
|
bool send = PushEmail(mail);
|
||||||
|
//Thread.Sleep(1000); //暂停1秒
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
public static class ProjectUserService
|
public static class ProjectUserService
|
||||||
{
|
{
|
||||||
public static SGGLDB db = Funs.DB;
|
//public static SGGLDB db = Funs.DB;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///获取项目用户信息
|
///获取项目用户信息
|
||||||
|
@ -35,6 +35,15 @@
|
||||||
return (from x in Funs.DB.Project_ProjectUser where x.UserId == userId select x).ToList();
|
return (from x in Funs.DB.Project_ProjectUser where x.UserId == userId select x).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///获取项目用户信息 根据用户角色ID
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static List<Project_ProjectUser> GetProjectUserByRoleId(string roleId)
|
||||||
|
{
|
||||||
|
return (from x in Funs.DB.Project_ProjectUser where x.RoleId.Contains(roleId) select x).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///获取当前项目用户信息根据用户ID
|
///获取当前项目用户信息根据用户ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -13,6 +13,8 @@ namespace BLL
|
||||||
|
|
||||||
|
|
||||||
#region 督查检查整改上报
|
#region 督查检查整改上报
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 督查检查整改上报
|
/// 督查检查整改上报
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -23,12 +25,12 @@ namespace BLL
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// CNCECHSSEService.HSSEServiceClient hsseC = new CNCECHSSEService.HSSEServiceClient();
|
|
||||||
var upCheckReport = from x in db.View_DCGL_CheckRectifyListFromSUB
|
var upCheckReport = from x in db.View_DCGL_CheckRectifyListFromSUB
|
||||||
where x.RealEndDate.HasValue && x.CheckRectifyId == checkRectifyId
|
where x.RealEndDate.HasValue && x.CheckRectifyId == checkRectifyId
|
||||||
select new Model.DCGLCheckRectifyItem
|
select new Model.DCGLCheckRectifyItem
|
||||||
{
|
{
|
||||||
CheckRectifyId = x.CheckRectifyId,
|
CheckRectifyId = x.CheckRectifyId,
|
||||||
|
NoticeItemId = x.NoticeItemId,
|
||||||
CheckRectifyCode = x.CheckRectifyCode,
|
CheckRectifyCode = x.CheckRectifyCode,
|
||||||
ProjectId = x.ProjectId,
|
ProjectId = x.ProjectId,
|
||||||
UnitId = x.UnitId,
|
UnitId = x.UnitId,
|
||||||
|
@ -42,13 +44,15 @@ namespace BLL
|
||||||
OrderEndDate = x.OrderEndDate,
|
OrderEndDate = x.OrderEndDate,
|
||||||
OrderEndPerson = x.OrderEndPerson,
|
OrderEndPerson = x.OrderEndPerson,
|
||||||
RealEndDate = x.RealEndDate,
|
RealEndDate = x.RealEndDate,
|
||||||
Verification = x.Verification,
|
//Verification = x.Verification,
|
||||||
|
Situation = x.Situation,
|
||||||
AttachFileId = x.AttachFileId2,
|
AttachFileId = x.AttachFileId2,
|
||||||
ToKeyId = x.ToKeyId2,
|
ToKeyId = x.ToKeyId2,
|
||||||
AttachSource = x.AttachSource2,
|
AttachSource = x.AttachSource2,
|
||||||
AttachUrl = x.AttachUrl2,
|
AttachUrl = x.AttachUrl2,
|
||||||
////附件转为字节传送
|
FilePath = Funs.SGGLUrl
|
||||||
FileContext = FileStructService.GetMoreFileStructByAttachUrl(x.AttachUrl2),
|
//////附件转为字节传送
|
||||||
|
//FileContext = FileStructService.GetMoreFileStructByAttachUrl(x.AttachUrl2),
|
||||||
};
|
};
|
||||||
|
|
||||||
string baseurl = SysConstSetService.CNCECPath + "/api/HSSEData/UpDCGLCheckRectifyTable";
|
string baseurl = SysConstSetService.CNCECPath + "/api/HSSEData/UpDCGLCheckRectifyTable";
|
||||||
|
@ -91,6 +95,8 @@ namespace BLL
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1895,6 +1895,7 @@
|
||||||
<Content Include="res\images\zg05.png" />
|
<Content Include="res\images\zg05.png" />
|
||||||
<Content Include="res\image\message.png" />
|
<Content Include="res\image\message.png" />
|
||||||
<Content Include="res\index\images\logocenter.png" />
|
<Content Include="res\index\images\logocenter.png" />
|
||||||
|
<Content Include="res\js\crypto-js.min.js" />
|
||||||
<Content Include="res\js\swiper-bundle.min.css" />
|
<Content Include="res\js\swiper-bundle.min.css" />
|
||||||
<Content Include="res\js\swiper-bundle.min.js" />
|
<Content Include="res\js\swiper-bundle.min.js" />
|
||||||
<Content Include="res\js\swiper.css" />
|
<Content Include="res\js\swiper.css" />
|
||||||
|
|
|
@ -129,7 +129,7 @@
|
||||||
<Items>
|
<Items>
|
||||||
<f:DropDownList ID="drpProjectType" Label="项目类型" runat="server">
|
<f:DropDownList ID="drpProjectType" Label="项目类型" runat="server">
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
<f:DropDownList ID="drpProjectState" runat="server" Label="项目状态" LabelAlign="Right" >
|
<f:DropDownList ID="drpProjectState" runat="server" Label="项目状态" LabelAlign="Right">
|
||||||
<f:ListItem Text="在建" Value="1" Selected="true" />
|
<f:ListItem Text="在建" Value="1" Selected="true" />
|
||||||
<f:ListItem Text="停工" Value="2" />
|
<f:ListItem Text="停工" Value="2" />
|
||||||
<f:ListItem Text="竣工" Value="3" />
|
<f:ListItem Text="竣工" Value="3" />
|
||||||
|
@ -255,24 +255,24 @@
|
||||||
<Rows>
|
<Rows>
|
||||||
<f:FormRow>
|
<f:FormRow>
|
||||||
<Items>
|
<Items>
|
||||||
<f:DropDownList ID="drpProjectManager" runat="server" Label="项目经理"
|
<f:DropDownList ID="drpProjectSupervisor" runat="server" Label="项目主管" EnableEdit="true" Required="true" ShowRedStar="true">
|
||||||
EnableEdit="true" Required="true" ShowRedStar="true">
|
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
<f:DropDownList ID="drpConstructionManager" runat="server" Label="施工经理" LabelWidth="150px" EnableEdit="true">
|
<f:DropDownList ID="drpProjectManager" runat="server" Label="项目经理" EnableEdit="true" Required="true" ShowRedStar="true">
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
</Items>
|
</Items>
|
||||||
</f:FormRow>
|
</f:FormRow>
|
||||||
<f:FormRow>
|
<f:FormRow>
|
||||||
<Items>
|
<Items>
|
||||||
<f:DropDownList ID="drpQAManager" runat="server" Label="质量经理"
|
<f:DropDownList ID="drpHSSEManager" runat="server" Label="安全经理" EnableEdit="true" Required="true" ShowRedStar="true">
|
||||||
EnableEdit="true" Required="true" ShowRedStar="true">
|
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
<f:DropDownList ID="drpHSSEManager" runat="server" Label="安全经理" LabelWidth="150px" EnableEdit="true">
|
<f:DropDownList ID="drpQAManager" runat="server" Label="质量经理" EnableEdit="true" Required="true" ShowRedStar="true">
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
</Items>
|
</Items>
|
||||||
</f:FormRow>
|
</f:FormRow>
|
||||||
<f:FormRow>
|
<f:FormRow>
|
||||||
<Items>
|
<Items>
|
||||||
|
<f:DropDownList ID="drpConstructionManager" runat="server" Label="施工经理" EnableEdit="true">
|
||||||
|
</f:DropDownList>
|
||||||
<f:DropDownList ID="drpDriveManager" runat="server" Label="开车经理" EnableEdit="true">
|
<f:DropDownList ID="drpDriveManager" runat="server" Label="开车经理" EnableEdit="true">
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
</Items>
|
</Items>
|
||||||
|
|
|
@ -57,6 +57,8 @@ namespace FineUIPro.Web.ProjectData
|
||||||
{
|
{
|
||||||
this.ProjectId = this.CurrUser.LoginProjectId;
|
this.ProjectId = this.CurrUser.LoginProjectId;
|
||||||
}
|
}
|
||||||
|
///项目主管
|
||||||
|
UserService.InitUserDropDownList(this.drpProjectSupervisor, string.Empty, true);
|
||||||
///项目经理
|
///项目经理
|
||||||
UserService.InitUserDropDownList(this.drpProjectManager, string.Empty, true);
|
UserService.InitUserDropDownList(this.drpProjectManager, string.Empty, true);
|
||||||
///施工经理
|
///施工经理
|
||||||
|
@ -123,6 +125,12 @@ namespace FineUIPro.Web.ProjectData
|
||||||
var getPUser = Funs.DB.Project_ProjectUser.Where(x => x.ProjectId == this.ProjectId);
|
var getPUser = Funs.DB.Project_ProjectUser.Where(x => x.ProjectId == this.ProjectId);
|
||||||
if (getPUser.Count() > 0)
|
if (getPUser.Count() > 0)
|
||||||
{
|
{
|
||||||
|
///项目主管
|
||||||
|
var s = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.ProjectSupervisor));
|
||||||
|
if (s != null)
|
||||||
|
{
|
||||||
|
this.drpProjectSupervisor.SelectedValue = s.UserId;
|
||||||
|
}
|
||||||
///项目经理
|
///项目经理
|
||||||
var m = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.ProjectManager));
|
var m = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.ProjectManager));
|
||||||
if (m != null)
|
if (m != null)
|
||||||
|
@ -490,7 +498,8 @@ namespace FineUIPro.Web.ProjectData
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="projectId"></param>
|
/// <param name="projectId"></param>
|
||||||
private void SetProjectManager(string projectId)
|
private void SetProjectManager(string projectId)
|
||||||
{
|
{
|
||||||
|
string newProjectSupervisor = this.drpProjectSupervisor.SelectedValue;
|
||||||
string newProjectManager = this.drpProjectManager.SelectedValue;
|
string newProjectManager = this.drpProjectManager.SelectedValue;
|
||||||
string newConstructionManager = this.drpConstructionManager.SelectedValue;
|
string newConstructionManager = this.drpConstructionManager.SelectedValue;
|
||||||
string newHSSEManager = this.drpHSSEManager.SelectedValue;
|
string newHSSEManager = this.drpHSSEManager.SelectedValue;
|
||||||
|
@ -499,6 +508,48 @@ namespace FineUIPro.Web.ProjectData
|
||||||
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
|
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
|
||||||
if (project != null)
|
if (project != null)
|
||||||
{
|
{
|
||||||
|
#region 项目主管
|
||||||
|
|
||||||
|
string OldProjectSupervisor = string.Empty; ////项目主管
|
||||||
|
var s = Funs.DB.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.ProjectSupervisor));
|
||||||
|
if (s != null)
|
||||||
|
{
|
||||||
|
OldProjectSupervisor = s.UserId;
|
||||||
|
}
|
||||||
|
////此人不在项目中
|
||||||
|
if (!string.IsNullOrEmpty(newProjectSupervisor) && newProjectSupervisor != Const._Null && newProjectSupervisor != OldProjectSupervisor)
|
||||||
|
{
|
||||||
|
BLL.ProjectUserService.DeleteProjectUserByProjectIdUserId(projectId, newProjectSupervisor);
|
||||||
|
BLL.ProjectUserService.DeleteProjectUserByProjectIdUserId(projectId, OldProjectSupervisor);
|
||||||
|
var user = BLL.UserService.GetUserByUserId(newProjectSupervisor);
|
||||||
|
if (user != null && !string.IsNullOrEmpty(user.UnitId))
|
||||||
|
{
|
||||||
|
var punit = BLL.ProjectUnitService.GetProjectUnitByUnitIdProjectId(projectId, user.UnitId);
|
||||||
|
if (punit == null) ///项目单位为空时要增加项目单位
|
||||||
|
{
|
||||||
|
Model.Project_ProjectUnit newProjectUnit = new Project_ProjectUnit
|
||||||
|
{
|
||||||
|
ProjectId = projectId,
|
||||||
|
UnitId = user.UnitId,
|
||||||
|
InTime = System.DateTime.Now
|
||||||
|
};
|
||||||
|
BLL.ProjectUnitService.AddProjectUnit(newProjectUnit);
|
||||||
|
}
|
||||||
|
|
||||||
|
Model.Project_ProjectUser newProjectUser = new Model.Project_ProjectUser
|
||||||
|
{
|
||||||
|
ProjectId = projectId,
|
||||||
|
UserId = newProjectSupervisor,
|
||||||
|
UnitId = user.UnitId,
|
||||||
|
RoleId = BLL.Const.ProjectSupervisor,
|
||||||
|
IsPost = true
|
||||||
|
};
|
||||||
|
BLL.ProjectUserService.AddProjectUser(newProjectUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region 项目经理
|
#region 项目经理
|
||||||
|
|
||||||
string OldProjectManager = string.Empty; ////项目经理
|
string OldProjectManager = string.Empty; ////项目经理
|
||||||
|
|
|
@ -500,6 +500,15 @@ namespace FineUIPro.Web.ProjectData
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.Form Form3;
|
protected global::FineUIPro.Form Form3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// drpProjectSupervisor 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.DropDownList drpProjectSupervisor;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// drpProjectManager 控件。
|
/// drpProjectManager 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -510,13 +519,13 @@ namespace FineUIPro.Web.ProjectData
|
||||||
protected global::FineUIPro.DropDownList drpProjectManager;
|
protected global::FineUIPro.DropDownList drpProjectManager;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// drpConstructionManager 控件。
|
/// drpHSSEManager 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 自动生成的字段。
|
/// 自动生成的字段。
|
||||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.DropDownList drpConstructionManager;
|
protected global::FineUIPro.DropDownList drpHSSEManager;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// drpQAManager 控件。
|
/// drpQAManager 控件。
|
||||||
|
@ -528,13 +537,13 @@ namespace FineUIPro.Web.ProjectData
|
||||||
protected global::FineUIPro.DropDownList drpQAManager;
|
protected global::FineUIPro.DropDownList drpQAManager;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// drpHSSEManager 控件。
|
/// drpConstructionManager 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// 自动生成的字段。
|
/// 自动生成的字段。
|
||||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.DropDownList drpHSSEManager;
|
protected global::FineUIPro.DropDownList drpConstructionManager;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// drpDriveManager 控件。
|
/// drpDriveManager 控件。
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<f:Button ID="btnImport" ToolTip="导入" Icon="ApplicationAdd" Hidden="true" runat="server"
|
<f:Button ID="btnImport" ToolTip="导入" Icon="ApplicationAdd" Hidden="true" runat="server"
|
||||||
OnClick="btnImport_Click">
|
OnClick="btnImport_Click">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
<f:Button ID="btnUpdata" Text="推送督查人员" Icon="PageSave" runat="server" ConfirmText="确定推送?"
|
<f:Button ID="btnUpdata" Text="推送集团检查负责人" Icon="PageSave" runat="server" ConfirmText="确定推送?"
|
||||||
ToolTip="推送" ValidateForms="SimpleForm1" OnClick="btnPush_Click" MarginRight="10px">
|
ToolTip="推送" ValidateForms="SimpleForm1" OnClick="btnPush_Click" MarginRight="10px">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</Items>
|
</Items>
|
||||||
|
|
|
@ -84,7 +84,7 @@
|
||||||
<items>
|
<items>
|
||||||
<f:DropDownList ID="drpCertificate" runat="server" Label="特岗证书" LabelAlign="Right" LabelWidth="90px" EnableEdit="true" EnableCheckBoxSelect="True" EnableMultiSelect="True" EmptyText="--请选择--" AutoSelectFirstItem="false" >
|
<f:DropDownList ID="drpCertificate" runat="server" Label="特岗证书" LabelAlign="Right" LabelWidth="90px" EnableEdit="true" EnableCheckBoxSelect="True" EnableMultiSelect="True" EmptyText="--请选择--" AutoSelectFirstItem="false" >
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
<f:CheckBox runat="server" Label="是否督查人员" LabelAlign="Right" ID="cbIsInspectionBrigade" LabelWidth="100px" />
|
<f:CheckBox runat="server" Label="是否是集团检查整改负责人" LabelAlign="Right" ID="cbIsInspectionBrigade" LabelWidth="200px" />
|
||||||
</items>
|
</items>
|
||||||
</f:FormRow>
|
</f:FormRow>
|
||||||
</Rows>
|
</Rows>
|
||||||
|
|
|
@ -155,28 +155,28 @@
|
||||||
<div class="videos">
|
<div class="videos">
|
||||||
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
||||||
<img src="./imags/16.png"></img>
|
<img src="./imags/16.png"></img>
|
||||||
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span>2020-10-10 12:40:26</span></div>
|
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="video" style="padding-left: .125rem;padding-bottom: .125rem;">
|
<div class="video" style="padding-left: .125rem;padding-bottom: .125rem;">
|
||||||
<div class="videos">
|
<div class="videos">
|
||||||
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
||||||
<img src="./imags/16.png"></img>
|
<img src="./imags/16.png"></img>
|
||||||
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span>2020-10-10 12:40:26</span></div>
|
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="video" style="padding-right: .125rem;padding-top: .125rem;">
|
<div class="video" style="padding-right: .125rem;padding-top: .125rem;">
|
||||||
<div class="videos">
|
<div class="videos">
|
||||||
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
||||||
<img src="./imags/16.png"></img>
|
<img src="./imags/16.png"></img>
|
||||||
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span>2020-10-10 12:40:26</span></div>
|
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="video" style="padding-left: .125rem;padding-top: .125rem;">
|
<div class="video" style="padding-left: .125rem;padding-top: .125rem;">
|
||||||
<div class="videos">
|
<div class="videos">
|
||||||
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
<div class="video_title"><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_Title%>"/></div>
|
||||||
<img src="./imags/16.png"></img>
|
<img src="./imags/16.png"></img>
|
||||||
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span>2020-10-10 12:40:26</span></div>
|
<div class="video_value"><span><asp:Literal runat="server" Text="<%$ Resources:Lan,main_new0_Video_RealTimeVideo%>"/></span><span></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
<script src="~/res/lib/china.js"></script>
|
<script src="~/res/lib/china.js"></script>
|
||||||
<script src="~/res/lib/echarts.min.js"></script>
|
<script src="~/res/lib/echarts.min.js"></script>
|
||||||
<script src="~/res/lib/swiper.min.js"></script>
|
<script src="~/res/lib/swiper.min.js"></script>
|
||||||
|
<script src="~/res/js/crypto-js.min.js"></script>
|
||||||
|
|
||||||
<link rel="stylesheet" href="~/res/css/company.css?v1">
|
<link rel="stylesheet" href="~/res/css/company.css?v1">
|
||||||
<style>
|
<style>
|
||||||
.BMap_mask {
|
.BMap_mask {
|
||||||
|
@ -559,6 +561,7 @@
|
||||||
</Items>
|
</Items>
|
||||||
</f:SimpleForm>
|
</f:SimpleForm>
|
||||||
</form>
|
</form>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var toolRefreshClientID = '<%= toolRefresh.ClientID %>';
|
var toolRefreshClientID = '<%= toolRefresh.ClientID %>';
|
||||||
var toolNewWindowClientID = '<%= toolNewWindow.ClientID %>';
|
var toolNewWindowClientID = '<%= toolNewWindow.ClientID %>';
|
||||||
|
@ -677,7 +680,9 @@
|
||||||
var username = $('#<%= hfProjectCode.ClientID %>-inputEl').val()
|
var username = $('#<%= hfProjectCode.ClientID %>-inputEl').val()
|
||||||
var password = $('#<%= hfMonitorPW.ClientID %>-inputEl').val();
|
var password = $('#<%= hfMonitorPW.ClientID %>-inputEl').val();
|
||||||
if (password != "") {
|
if (password != "") {
|
||||||
window.open(videoURL + "#/screen?username=" + username + "&password=" + password, '_blank');
|
var sign = CryptoJS.AES.encrypt(username + "$" + password +"$" + Date.now(), "nbd").toString();
|
||||||
|
sign = encodeURIComponent(sign);
|
||||||
|
window.open(videoURL + "#/screen?sign=" + sign , '_blank');
|
||||||
} else {
|
} else {
|
||||||
alert("该项目未关联监控信息!");
|
alert("该项目未关联监控信息!");
|
||||||
}
|
}
|
||||||
|
@ -906,10 +911,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 点击标题栏工具图标 - 查看源代码
|
// 点击标题栏工具图标 - 查看源代码
|
||||||
var videoURL ='<%=VideoURL %>'
|
|
||||||
function openVideo() {
|
|
||||||
window.open(videoURL, '_blank');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取当前激活选项卡的ID
|
// 获取当前激活选项卡的ID
|
||||||
function getActiveTabId() {
|
function getActiveTabId() {
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -264,6 +264,15 @@
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 附件路径域名地址
|
||||||
|
/// </summary>
|
||||||
|
public string FilePath
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 附件路径
|
/// 附件路径
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -21,21 +21,24 @@ namespace WebAPI.Controllers
|
||||||
{
|
{
|
||||||
Model.ResponeData responeData = new Model.ResponeData();
|
Model.ResponeData responeData = new Model.ResponeData();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string url =ConfigurationManager.AppSettings["Video_URL"];
|
string url =ConfigurationManager.AppSettings["Video_URL"];
|
||||||
|
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
|
||||||
|
string URLToken = "";
|
||||||
|
String restoken = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/login?username=" + project.ProjectCode + "&password=" + Funs.EncryptionPassword(project.MonitorPW));
|
||||||
|
Dictionary<string, string> dicres = JsonConvert.DeserializeObject<Dictionary<string, string>>(restoken);
|
||||||
|
URLToken = dicres["URLToken"];
|
||||||
List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
|
List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
|
||||||
responeData.data = data;
|
responeData.data = data;
|
||||||
List<string> urls = new List<string>();
|
List<string> urls = new List<string>();
|
||||||
string res = APIGetHttpService.Http(url + "api/v1/device/channeltree");
|
string res = APIGetHttpService.Http(url + "api/v1/device/channeltree?token=" + URLToken);
|
||||||
var name = BLL.ProjectService.GetProjectNameByProjectId(projectId);
|
|
||||||
List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
|
List<Dictionary<string, string>> jsonNvr = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(res);
|
||||||
foreach (Dictionary<string, string> nvr in jsonNvr)
|
foreach (Dictionary<string, string> nvr in jsonNvr)
|
||||||
{
|
{
|
||||||
if (nvr["customName"] == name)
|
|
||||||
{
|
string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]+ "&token="+URLToken);
|
||||||
string jsonCameras = APIGetHttpService.Http(url + "api/v1/device/channeltree?serial=" + nvr["serial"]);
|
|
||||||
data.AddRange(JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras));
|
data.AddRange(JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonCameras));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -60,9 +63,17 @@ namespace WebAPI.Controllers
|
||||||
var responeData = new Model.ResponeData();
|
var responeData = new Model.ResponeData();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string url = ConfigurationManager.AppSettings["Video_URL"];
|
string url = ConfigurationManager.AppSettings["Video_URL"];
|
||||||
|
var project = BLL.ProjectService.GetProjectByProjectId(projectId);
|
||||||
|
|
||||||
|
string URLToken = "";
|
||||||
|
String restoken = BLL.CommonService.CreateGetHttpResponse(url + "api/v1/login?username=" + project.ProjectCode + "&password=" + Funs.EncryptionPassword(project.MonitorPW));
|
||||||
|
Dictionary<string, string> dicres = JsonConvert.DeserializeObject<Dictionary<string, string>>(restoken);
|
||||||
|
URLToken = dicres["URLToken"];
|
||||||
|
|
||||||
|
|
||||||
var stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
|
var stmp = new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds() + "";
|
||||||
string jsonCamera = APIGetHttpService.Http(url +"api/v1/stream/start?serial=" + serial + "&code=" + code + "&_=" + stmp);
|
string jsonCamera = APIGetHttpService.Http(url + "api/v1/stream/start?token="+URLToken+"&serial=" + serial + "&code=" + code + "&_=" + stmp);
|
||||||
responeData.data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
|
responeData.data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonCamera);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<_PublishTargetUrl>G:\发布\五环WebApi</_PublishTargetUrl>
|
<_PublishTargetUrl>G:\发布\五环WebApi</_PublishTargetUrl>
|
||||||
<History>True|2025-09-02T03:14:00.9580707Z||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;True|2025-06-25T17:47:33.7779622+08:00||;True|2025-06-25T17:40:26.9905954+08:00||;True|2025-06-20T11:24:58.4099232+08:00||;True|2025-06-19T16:42:45.2358810+08:00||;True|2025-06-16T19:28:10.6447738+08:00||;True|2025-06-12T11:00:02.3559090+08:00||;True|2025-06-12T10:40:29.0324520+08:00||;True|2025-06-04T23:24:01.0324973+08:00||;True|2025-06-04T18:39:41.7304136+08:00||;True|2025-06-04T11:23:17.3803405+08:00||;True|2025-06-04T11:04:32.4212196+08:00||;True|2025-05-26T19:19:09.7246357+08:00||;True|2025-05-26T19:16:39.1283077+08:00||;True|2025-05-26T19:09:24.1561616+08:00||;True|2025-04-07T16:11:44.5172315+08:00||;True|2025-04-02T18:10:22.8695984+08:00||;True|2025-04-02T17:59:51.2978116+08:00||;True|2025-04-02T17:50:55.8630437+08:00||;True|2025-04-02T17:49:22.5114405+08:00||;True|2025-04-02T17:47:11.0650205+08:00||;True|2025-04-02T17:39:09.8576853+08:00||;True|2025-04-02T17:38:15.3079030+08:00||;True|2025-04-02T17:22:03.6735964+08:00||;True|2025-04-02T17:19:04.4220913+08:00||;True|2025-04-02T17:17:14.0244636+08:00||;True|2025-04-02T17:11:09.6583011+08:00||;True|2025-04-02T17:07:23.6330597+08:00||;True|2025-04-02T16:58:45.4070649+08:00||;True|2025-04-02T16:50:20.5907511+08:00||;True|2025-04-02T16:44:18.5351224+08:00||;True|2025-04-02T16:31:11.1297141+08:00||;True|2025-04-02T16:18:43.1126995+08:00||;True|2025-04-02T14:50:42.5384021+08:00||;True|2025-04-01T10:53:08.9403414+08:00||;True|2025-04-01T10:52:08.7646389+08:00||;True|2025-04-01T09:52:56.3095742+08:00||;True|2025-03-13T16:44:25.3220313+08:00||;True|2025-03-13T15:31:10.3223071+08:00||;True|2025-03-13T10:58:17.1401575+08:00||;True|2025-01-23T23:10:37.9664637+08:00||;True|2024-09-24T09:51:10.8028974+08:00||;True|2024-09-20T17:30:59.6144803+08:00||;True|2024-09-20T15:28:40.2547949+08:00||;True|2024-09-19T16:30:51.3047517+08:00||;True|2024-09-19T15:53:23.2431713+08:00||;True|2024-09-19T15:48:55.0571748+08:00||;True|2024-09-19T15:06:29.5748482+08:00||;True|2024-09-19T14:55:42.1477578+08:00||;True|2024-09-19T10:07:53.8666329+08:00||;True|2024-09-03T16:26:17.4985546+08:00||;True|2024-07-17T10:29:15.9472548+08:00||;</History>
|
<History>True|2025-09-16T11:11:12.4383069Z||;True|2025-09-02T11:14:00.9580707+08:00||;True|2025-09-02T10:52:20.0445598+08:00||;True|2025-08-29T17:56:01.6245615+08:00||;True|2025-08-29T17:55:41.2802685+08:00||;True|2025-08-09T21:27:40.2103961+08:00||;True|2025-08-06T15:31:52.1166645+08:00||;True|2025-08-04T18:56:13.9675910+08:00||;True|2025-07-23T11:12:18.0134770+08:00||;True|2025-07-23T10:36:09.9990536+08:00||;True|2025-07-23T10:35:51.8814789+08:00||;True|2025-07-21T17:46:45.4620710+08:00||;True|2025-07-21T17:40:43.9871097+08:00||;True|2025-07-21T17:29:11.9275869+08:00||;True|2025-07-21T17:05:21.7763763+08:00||;True|2025-07-18T17:55:59.4892329+08:00||;True|2025-07-18T11:08:56.2628896+08:00||;True|2025-07-18T10:53:44.2534260+08:00||;True|2025-07-18T10:27:52.6751668+08:00||;True|2025-07-18T10:03:09.1785776+08:00||;True|2025-07-18T10:02:38.1252107+08:00||;True|2025-07-17T18:19:07.5837609+08:00||;True|2025-07-17T15:40:11.9126705+08:00||;True|2025-07-11T17:54:03.0298703+08:00||;True|2025-07-11T16:19:50.3283029+08:00||;True|2025-07-11T15:49:22.5920473+08:00||;True|2025-07-02T14:39:27.0436873+08:00||;True|2025-07-02T11:18:29.1208369+08:00||;True|2025-07-01T15:52:16.6767496+08:00||;True|2025-07-01T10:14:59.0471052+08:00||;True|2025-06-28T11:40:36.0544739+08:00||;True|2025-06-27T15:10:24.4628086+08:00||;True|2025-06-27T10:31:14.8332810+08:00||;True|2025-06-27T10:13:13.3022394+08:00||;True|2025-06-26T23:51:04.1304509+08:00||;True|2025-06-26T23:34:06.4223762+08:00||;True|2025-06-26T22:42:08.9018138+08:00||;True|2025-06-26T22:16:01.8954571+08:00||;True|2025-06-26T21:19:42.2638204+08:00||;True|2025-06-25T23:22:39.7267591+08:00||;True|2025-06-25T23:19:33.2378458+08:00||;True|2025-06-25T22:18:16.2863303+08:00||;True|2025-06-25T22:10:29.2540175+08:00||;True|2025-06-25T22:00:58.5212166+08:00||;True|2025-06-25T22:00:31.2531214+08:00||;True|2025-06-25T18:33:01.5770030+08:00||;True|2025-06-25T17:47:33.7779622+08:00||;True|2025-06-25T17:40:26.9905954+08:00||;True|2025-06-20T11:24:58.4099232+08:00||;True|2025-06-19T16:42:45.2358810+08:00||;True|2025-06-16T19:28:10.6447738+08:00||;True|2025-06-12T11:00:02.3559090+08:00||;True|2025-06-12T10:40:29.0324520+08:00||;True|2025-06-04T23:24:01.0324973+08:00||;True|2025-06-04T18:39:41.7304136+08:00||;True|2025-06-04T11:23:17.3803405+08:00||;True|2025-06-04T11:04:32.4212196+08:00||;True|2025-05-26T19:19:09.7246357+08:00||;True|2025-05-26T19:16:39.1283077+08:00||;True|2025-05-26T19:09:24.1561616+08:00||;True|2025-04-07T16:11:44.5172315+08:00||;True|2025-04-02T18:10:22.8695984+08:00||;True|2025-04-02T17:59:51.2978116+08:00||;True|2025-04-02T17:50:55.8630437+08:00||;True|2025-04-02T17:49:22.5114405+08:00||;True|2025-04-02T17:47:11.0650205+08:00||;True|2025-04-02T17:39:09.8576853+08:00||;True|2025-04-02T17:38:15.3079030+08:00||;True|2025-04-02T17:22:03.6735964+08:00||;True|2025-04-02T17:19:04.4220913+08:00||;True|2025-04-02T17:17:14.0244636+08:00||;True|2025-04-02T17:11:09.6583011+08:00||;True|2025-04-02T17:07:23.6330597+08:00||;True|2025-04-02T16:58:45.4070649+08:00||;True|2025-04-02T16:50:20.5907511+08:00||;True|2025-04-02T16:44:18.5351224+08:00||;True|2025-04-02T16:31:11.1297141+08:00||;True|2025-04-02T16:18:43.1126995+08:00||;True|2025-04-02T14:50:42.5384021+08:00||;True|2025-04-01T10:53:08.9403414+08:00||;True|2025-04-01T10:52:08.7646389+08:00||;True|2025-04-01T09:52:56.3095742+08:00||;True|2025-03-13T16:44:25.3220313+08:00||;True|2025-03-13T15:31:10.3223071+08:00||;True|2025-03-13T10:58:17.1401575+08:00||;True|2025-01-23T23:10:37.9664637+08:00||;True|2024-09-24T09:51:10.8028974+08:00||;True|2024-09-20T17:30:59.6144803+08:00||;True|2024-09-20T15:28:40.2547949+08:00||;True|2024-09-19T16:30:51.3047517+08:00||;True|2024-09-19T15:53:23.2431713+08:00||;True|2024-09-19T15:48:55.0571748+08:00||;True|2024-09-19T15:06:29.5748482+08:00||;True|2024-09-19T14:55:42.1477578+08:00||;True|2024-09-19T10:07:53.8666329+08:00||;True|2024-09-03T16:26:17.4985546+08:00||;True|2024-07-17T10:29:15.9472548+08:00||;</History>
|
||||||
<LastFailureDetails />
|
<LastFailureDetails />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -86,22 +86,22 @@
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/App_global.asax.compiled">
|
<File Include="bin/App_global.asax.compiled">
|
||||||
<publishTime>09/02/2025 11:13:57</publishTime>
|
<publishTime>09/16/2025 19:11:11</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/App_global.asax.dll">
|
<File Include="bin/App_global.asax.dll">
|
||||||
<publishTime>09/02/2025 11:13:57</publishTime>
|
<publishTime>09/16/2025 19:11:11</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/Aspose.Words.dll">
|
<File Include="bin/Aspose.Words.dll">
|
||||||
<publishTime>12/06/2024 20:13:58</publishTime>
|
<publishTime>12/06/2024 20:13:58</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/BLL.dll">
|
<File Include="bin/BLL.dll">
|
||||||
<publishTime>09/02/2025 11:13:44</publishTime>
|
<publishTime>09/16/2025 19:10:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/BLL.dll.config">
|
<File Include="bin/BLL.dll.config">
|
||||||
<publishTime>12/26/2024 09:46:52</publishTime>
|
<publishTime>12/26/2024 09:46:52</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/BLL.pdb">
|
<File Include="bin/BLL.pdb">
|
||||||
<publishTime>09/02/2025 11:13:44</publishTime>
|
<publishTime>09/16/2025 19:10:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/BouncyCastle.Crypto.dll">
|
<File Include="bin/BouncyCastle.Crypto.dll">
|
||||||
<publishTime>12/18/2020 05:32:28</publishTime>
|
<publishTime>12/18/2020 05:32:28</publishTime>
|
||||||
|
@ -128,10 +128,10 @@
|
||||||
<publishTime>07/25/2012 19:48:56</publishTime>
|
<publishTime>07/25/2012 19:48:56</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/Model.dll">
|
<File Include="bin/Model.dll">
|
||||||
<publishTime>09/02/2025 11:13:37</publishTime>
|
<publishTime>09/16/2025 19:10:44</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/Model.pdb">
|
<File Include="bin/Model.pdb">
|
||||||
<publishTime>09/02/2025 11:13:37</publishTime>
|
<publishTime>09/16/2025 19:10:44</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/netstandard.dll">
|
<File Include="bin/netstandard.dll">
|
||||||
<publishTime>07/04/2024 14:13:01</publishTime>
|
<publishTime>07/04/2024 14:13:01</publishTime>
|
||||||
|
@ -389,13 +389,13 @@
|
||||||
<publishTime>02/09/2013 00:42:28</publishTime>
|
<publishTime>02/09/2013 00:42:28</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.dll">
|
<File Include="bin/WebAPI.dll">
|
||||||
<publishTime>09/02/2025 11:13:46</publishTime>
|
<publishTime>09/16/2025 19:10:53</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.pdb">
|
<File Include="bin/WebAPI.pdb">
|
||||||
<publishTime>09/02/2025 11:13:46</publishTime>
|
<publishTime>09/16/2025 19:10:53</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebAPI.xml">
|
<File Include="bin/WebAPI.xml">
|
||||||
<publishTime>09/02/2025 11:13:45</publishTime>
|
<publishTime>09/16/2025 19:10:53</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="bin/WebGrease.dll">
|
<File Include="bin/WebGrease.dll">
|
||||||
<publishTime>01/23/2014 21:57:34</publishTime>
|
<publishTime>01/23/2014 21:57:34</publishTime>
|
||||||
|
@ -479,7 +479,7 @@
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="PrecompiledApp.config">
|
<File Include="PrecompiledApp.config">
|
||||||
<publishTime>09/02/2025 11:13:47</publishTime>
|
<publishTime>09/16/2025 19:10:54</publishTime>
|
||||||
</File>
|
</File>
|
||||||
<File Include="Scripts/bootstrap.js">
|
<File Include="Scripts/bootstrap.js">
|
||||||
<publishTime>10/28/2024 14:02:50</publishTime>
|
<publishTime>10/28/2024 14:02:50</publishTime>
|
||||||
|
|
Loading…
Reference in New Issue