This commit is contained in:
高飞 2025-09-17 11:06:34 +08:00
commit 3ad6b67803
21 changed files with 292 additions and 57 deletions

View File

@ -0,0 +1,5 @@
ALTER TABLE Comprehensive_InspectionEquipment
ALTER COLUMN UsedPlace NVARCHAR(500);

View File

@ -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

View File

@ -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;

View File

@ -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";//链接类型

View File

@ -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";

View File

@ -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>

View File

@ -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
} }
} }
} }

View File

@ -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>

View File

@ -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

View File

@ -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" />

View File

@ -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>

View File

@ -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)
@ -491,6 +499,7 @@ namespace FineUIPro.Web.ProjectData
/// <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; ////项目经理

View File

@ -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 控件。

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -264,6 +264,15 @@
set; set;
} }
/// <summary>
/// 附件路径域名地址
/// </summary>
public string FilePath
{
get;
set;
}
/// <summary> /// <summary>
/// 附件路径 /// 附件路径
/// </summary> /// </summary>

View File

@ -23,19 +23,22 @@ namespace WebAPI.Controllers
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)

View File

@ -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>