@@ -394,6 +394,123 @@ public class DeepelephManager : IDeepelephManager, IScoped | |||
{ | |||
dayEnum = AlarmType.class_room_call; | |||
} | |||
if (dayEnum==AlarmType.lie_on_table) | |||
{ | |||
} | |||
else | |||
{ | |||
#region 添加预警 | |||
var ymmodel = new WarnInfoDto | |||
{ | |||
TenantCode = body["tenantCode"]?.ToString(), | |||
PoiId = body["poiId"]?.ToString(), | |||
AlarmId = body["alarmId"]?.ToString(), | |||
AlarmType = body["alarmType"]?.ToString(), | |||
//AlarmTypeDesc = dayEnum.GetDescription(), | |||
CameraId = body["cameraId"]?.ToString(), | |||
Tick = TimestampToDateTime(body["tick"].ToString()), | |||
SnapshotUrl = body["snapshotUrl"]?.ToString(), | |||
Rects = body["rects"]?.ToString(), | |||
Tags = body["tags"]?.ToString(), | |||
Extend = body["extend"]?.ToString(), | |||
//PersonType = personEnum.GetDescription(), | |||
WarnHand = 0, | |||
}; | |||
PersonType personEnum; | |||
if (body["extend"] != null) | |||
{ | |||
var extend = JsonConvert.DeserializeObject<JObject>(body["extend"].ToString()); | |||
ymmodel.PersonId = extend?["personId"]?.ToString(); | |||
ymmodel.PersonSetId = extend?["personSetId"]?.ToString(); | |||
ymmodel.ClothId = extend?["clothId"]?.ToString(); | |||
ymmodel.ClothsSetId = extend?["clothsSetId"]?.ToString(); | |||
ymmodel.Gender = extend?["genderScore"]?.ToString(); | |||
ymmodel.TrackId = extend?["trackId"]?.ToString(); | |||
ymmodel.SpeedLevel = extend?["speedLevel"]?.ToString(); | |||
if (extend["clothSimilarity"] != null) | |||
ymmodel.ClothSimilarity = extend?["clothSimilarity"]?.ParseToFloat(); | |||
if (extend["count"] != null) | |||
ymmodel.Count = extend?["count"]?.ParseToInt(); | |||
if (extend["duration"] != null) | |||
ymmodel.Duration = extend?["duration"]?.ParseToInt(); | |||
if (extend["faceSimilarity"] != null) | |||
ymmodel.FaceSimilarity = extend?["faceSimilarity"]?.ParseToFloat(); | |||
if (extend["maxAroundTracks"] != null) | |||
ymmodel.MaxAroundTracks = extend?["maxAroundTracks"]?.ParseToInt(); | |||
if (extend["genderScore"] != null) | |||
{ | |||
if ((float)extend["genderScore"][0] > 0.6) | |||
{ | |||
ymmodel.Gender = "男性"; | |||
} | |||
else if ((float)extend["genderScore"][1] > 0.6) | |||
{ | |||
ymmodel.Gender = "女性"; | |||
} | |||
else if ((float)extend["genderScore"][2] > 0.6) | |||
{ | |||
ymmodel.Gender = "不确定"; | |||
} | |||
} | |||
if (extend["personType"] != null) | |||
{ | |||
if (!Enum.TryParse(extend?["personType"]?.ToString(), out personEnum)) | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
} | |||
else | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
} | |||
else | |||
{ | |||
personEnum = PersonType.unkonwn; | |||
} | |||
ymmodel.AlarmTypeDesc = dayEnum.GetDescription(); | |||
ymmodel.PersonType = personEnum.GetDescription(); | |||
var yjsignImg = Path.Combine(Directory.GetCurrentDirectory(), "Files", App.Configuration["AppInfo:AlarmImg"], ymmodel.AlarmId + ".jpg"); | |||
var yjsteam = await ymmodel.SnapshotUrl.GetAsByteArrayAsync(); | |||
ymmodel.SnapshotUrl = $"/Files/{App.Configuration["AppInfo:AlarmImg"]}/{ymmodel.AlarmId}.jpg"; | |||
using (MemoryStream ms = new MemoryStream(yjsteam)) | |||
{ | |||
using (Bitmap bmp = new Bitmap(ms)) | |||
{ | |||
using (Graphics g = Graphics.FromImage(bmp)) | |||
{ | |||
using (Pen pen = new Pen(Color.Red, 3)) | |||
{ | |||
foreach (var item in body["rects"]) | |||
{ | |||
Rectangle rect = new Rectangle((int)item["left"], (int)item["top"], (int)item["width"], (int)item["height"]); | |||
g.DrawRectangle(pen, rect); | |||
} | |||
} | |||
} | |||
bmp.Save(yjsignImg, ImageFormat.Jpeg); | |||
} | |||
} | |||
Scoped.Create((_, scope) => | |||
{ | |||
var services = scope.ServiceProvider; | |||
var _repository = services.GetService<IWarnInfoService>(); | |||
_repository.Add(ymmodel); | |||
}); | |||
#endregion | |||
} | |||
#region 添加点名 | |||
var model = new ClassRoomCallDto | |||
{ | |||
TenantCode = body["tenantCode"]?.ToString(), | |||
@@ -442,6 +559,8 @@ public class DeepelephManager : IDeepelephManager, IScoped | |||
var _repository = services.GetService<IClassRoomCallService>(); | |||
_repository.Add(model); | |||
}); | |||
#endregion | |||
} | |||
} | |||
else if (json["type"].ToString() == "cmd") | |||
@@ -225,6 +225,21 @@ | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.PersonName"> | |||
<summary> | |||
人员名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.DormitName"> | |||
<summary> | |||
寝室名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.PersonSetName"> | |||
<summary> | |||
班级名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.IsAuto"> | |||
<summary> | |||
是否自动上报 | |||
@@ -1357,6 +1372,16 @@ | |||
考勤列表 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PersonInfoService.PersonInfoDto.State"> | |||
<summary> | |||
出勤状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PersonInfoService.PersonInfoDto.InsTime"> | |||
<summary> | |||
进班时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PersonInfoService.PersonInfoSearch.PersonName"> | |||
<summary> | |||
人员名称 | |||
@@ -1666,6 +1691,11 @@ | |||
摄像头快照,原链接有效期为2小时,获取到数据后下载到本地 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.PersonName"> | |||
<summary> | |||
人员名称 | |||
@@ -53,6 +53,8 @@ public class AttendanceService:DbRepository<Attendance>, IAttendanceService | |||
{ | |||
var query = Context.Queryable<Attendance>() | |||
//.Includes(x => x.CameraInfoItem) | |||
.Includes(x=>x.PersonInfoItem,x=>x.DormitoryInfoItem) | |||
.Includes(x=>x.PersonInfoItem,x=>x.PersonSetInfoItem) | |||
.WhereIF(search.IsAuto.HasValue, x => x.IsAuto == search.IsAuto) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId) | |||
@@ -31,6 +31,20 @@ public class AttendanceList | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 人员名称 | |||
/// </summary> | |||
public string PersonName { get; set; } | |||
/// <summary> | |||
/// 寝室名称 | |||
/// </summary> | |||
public string DormitName { get; set; } | |||
//人员性别 | |||
public string Gender { get; set; } | |||
/// <summary> | |||
/// 班级名称 | |||
/// </summary> | |||
public string PersonSetName { get; set; } | |||
/// <summary> | |||
/// 是否自动上报 | |||
/// </summary> | |||
public bool IsAuto { get; set; } | |||
@@ -70,4 +84,16 @@ public class AttendanceList | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
} | |||
public class AttendanceListMapper : IRegister | |||
{ | |||
public void Register(TypeAdapterConfig config) | |||
{ | |||
config.ForType<Attendance, AttendanceList>() | |||
.Map(x => x.PersonName, x => !string.IsNullOrEmpty(x.PersonId) ? x.PersonInfoItem.Name : "") | |||
.Map(x => x.PersonSetName, x => !string.IsNullOrEmpty(x.PersonId) ? x.PersonInfoItem.PersonSetInfoItem.PersonSetName : "") | |||
.Map(x => x.DormitName, x => !string.IsNullOrEmpty(x.PersonId) ? x.PersonInfoItem.DormitoryInfoItem.Name : "") | |||
.Map(x => x.Gender, x => !string.IsNullOrEmpty(x.PersonId) ? x.PersonInfoItem.Gender : ""); | |||
} | |||
} |
@@ -58,6 +58,14 @@ public class PersonInfoDto | |||
/// 考勤列表 | |||
/// </summary> | |||
public List<Attendance> Attendances { get; set; } | |||
/// <summary> | |||
/// 出勤状态 | |||
/// </summary> | |||
public string State { get; set; } | |||
/// <summary> | |||
/// 进班时间 | |||
/// </summary> | |||
public DateTime? InsTime { get; set; } | |||
} | |||
public class PersonInfoDtoMapper : IRegister | |||
{ | |||
@@ -37,6 +37,10 @@ public class WarnInfoList | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 人员名称 | |||
/// </summary> | |||
public string PersonName { get; set; } | |||
@@ -15,7 +15,7 @@ public interface IWarnInfoService:IApiBaseInterface<WarnInfoDto, WarnInfoList, W | |||
/// 获取列表不分页 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<WarnInfo>> GetListNoPage(WarnInfoSearch search); | |||
Task<List<WarnInfoList>> GetListNoPage(WarnInfoSearch search); | |||
/// <summary> | |||
/// 获取告警分离列表 | |||
/// </summary> | |||
@@ -127,9 +127,12 @@ public class WarnInfoService:DbRepository<WarnInfo>, IWarnInfoService,ITransient | |||
return true; | |||
} | |||
public async Task<List<WarnInfo>> GetListNoPage(WarnInfoSearch search) | |||
public async Task<List<WarnInfoList>> GetListNoPage(WarnInfoSearch search) | |||
{ | |||
var query = Context.Queryable<WarnInfo>() | |||
.Includes(x => x.CameraInfoItem,x=>x.CameraGroupItem) | |||
.Includes(x => x.PersonInfoItem) | |||
.Includes(x => x.PersonSetInfoItem) | |||
.WhereIF(search.WarnHand.HasValue, x => x.WarnHand == search.WarnHand) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType) | |||
.WhereIF(search.AlarmTypes!=null&&search.AlarmTypes.Any(),x=>search.AlarmTypes.Contains(x.AlarmType)) | |||
@@ -140,7 +143,7 @@ public class WarnInfoService:DbRepository<WarnInfo>, IWarnInfoService,ITransient | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToListAsync(); | |||
return list; | |||
return list.Adapt<List<WarnInfoList>>(); | |||
} | |||
public async Task<List<WarnType>>GetWarnType() | |||
{ | |||
@@ -12,5 +12,5 @@ public class WarnGroupSubset | |||
public string Name { get; set; } | |||
public string Code { get; set; } | |||
public bool State {get;set;} | |||
public int Count { get; set; } | |||
public int Value { get; set; } | |||
} |
@@ -116,5 +116,27 @@ public enum AlarmType | |||
/// 车辆超速 | |||
/// </summary> | |||
[Description("车辆超速")] | |||
vehicle_speeding | |||
vehicle_speeding, | |||
/// <summary> | |||
/// 违规占道 | |||
/// </summary> | |||
[Description("违规占道")] | |||
violation_occupy, | |||
/// <summary> | |||
/// 玩手机 | |||
/// </summary> | |||
[Description("玩手机")] | |||
play_phone, | |||
/// <summary> | |||
/// 骑车未戴头盔 | |||
/// </summary> | |||
[Description("骑车未戴头盔")] | |||
bike_without_helmet, | |||
/// <summary> | |||
/// 儿童骑平衡车 | |||
/// </summary> | |||
[Description("儿童骑平衡车/滑板车")] | |||
segway_with_child | |||
} |
@@ -436,6 +436,26 @@ | |||
车辆超速 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Core.AlarmType.violation_occupy"> | |||
<summary> | |||
违规占道 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Core.AlarmType.play_phone"> | |||
<summary> | |||
玩手机 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Core.AlarmType.bike_without_helmet"> | |||
<summary> | |||
骑车未戴头盔 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Core.AlarmType.segway_with_child"> | |||
<summary> | |||
儿童骑平衡车 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Core.AuthDeviceTypeEnum"> | |||
<summary> | |||
登录设备类型枚举 | |||
@@ -96,4 +96,9 @@ public class Attendance : PrimaryKeyEntity | |||
/// </summary> | |||
[Navigate(NavigateType.OneToOne, nameof(CameraId), nameof(CameraInfo.SensorId))] | |||
public CameraInfo CameraInfoItem { get; set; } | |||
/// <summary> | |||
/// 寝室信息 | |||
/// </summary> | |||
[Navigate(NavigateType.OneToOne, nameof(PersonId), nameof(PersonInfo.PersonId))] | |||
public PersonInfo PersonInfoItem { get; set; } | |||
} |
@@ -786,6 +786,11 @@ | |||
摄像头信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.System.Attendance.PersonInfoItem"> | |||
<summary> | |||
寝室信息 | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.System.BuildingInfo"> | |||
<summary> | |||
学生宿舍楼表 | |||
@@ -123,4 +123,13 @@ public class AlarmApi:IDynamicApiController | |||
await _hubContext.Clients.All.ReceiveMessage(user,msg); | |||
return true; | |||
} | |||
/// <summary> | |||
/// 测试 | |||
/// </summary> | |||
/// <returns></returns> | |||
public async Task<bool> Test() | |||
{ | |||
Thread.Sleep(5000); | |||
return true; | |||
} | |||
} |
@@ -13,6 +13,7 @@ using SafeCampus.Web.Core.Controllers.Application.Business; | |||
using MoYu.RemoteRequest.Extensions; | |||
using Newtonsoft.Json.Linq; | |||
using SafeCampus.Application.Manager.DeepelephManager; | |||
using SafeCampus.Application.Services.Business.PersonSetInfoService; | |||
namespace SafeCampus.Web.Core.Controllers.Application.LargeScreen; | |||
@@ -35,9 +36,10 @@ public class LargeScreenController | |||
private readonly IClassRoomCallTaskService _classRoomCallTaskService; | |||
private readonly IClassRoomCallService _classRoomCallService; | |||
private readonly IDeepelephManager _deepelephManager; | |||
private readonly IPersonSetInfoService _personSetInfoService; | |||
public LargeScreenController(IPersonInfoService personInfoService, ICameraGroupService cameraGroupService, IWarnInfoService warnInfoService, ISimpleCacheService simpleCacheService, IAttendanceService attendanceService, IBuildingService buildingService, IDormitoryService dormitoryService, IConfigService configService, IClassRoomCallTaskService classRoomCallTaskService, IClassRoomCallService classRoomCallService, IDeepelephManager deepelephManager) | |||
public LargeScreenController(IPersonInfoService personInfoService, ICameraGroupService cameraGroupService, IWarnInfoService warnInfoService, ISimpleCacheService simpleCacheService, IAttendanceService attendanceService, IBuildingService buildingService, IDormitoryService dormitoryService, IConfigService configService, IClassRoomCallTaskService classRoomCallTaskService, IClassRoomCallService classRoomCallService, IDeepelephManager deepelephManager, IPersonSetInfoService personSetInfoService) | |||
{ | |||
_personInfoService = personInfoService; | |||
_cameraGroupService = cameraGroupService; | |||
@@ -50,6 +52,7 @@ public class LargeScreenController | |||
_classRoomCallTaskService = classRoomCallTaskService; | |||
_classRoomCallService = classRoomCallService; | |||
_deepelephManager = deepelephManager; | |||
_personSetInfoService = personSetInfoService; | |||
} | |||
/// <summary> | |||
@@ -82,23 +85,41 @@ public class LargeScreenController | |||
var alarmStatistics = warnType.Select(x => new | |||
{ | |||
Name = x.Description, | |||
Code = x.Name, | |||
Count = warnlist.Count(xx => xx.AlarmType == x.Name) | |||
}).Where(x => x.Count > 0).ToList(); | |||
//Code = x.Name, | |||
Value = warnlist.Count(xx => xx.AlarmType == x.Name) | |||
}).Where(x => x.Value > 0).ToList(); | |||
//按场景统计告警类型 | |||
var warnGroup= _simpleCacheService.Get<List<WarnGroupInfo>>(SafeCampusConst.WarnGroup); | |||
foreach (var item in warnGroup) | |||
{ | |||
foreach (var warnGroupSubset in item.Subset) | |||
{ | |||
warnGroupSubset.Count = warnlist.Count(x => x.AlarmType == warnGroupSubset.Code); | |||
warnGroupSubset.Value = warnlist.Count(x => x.AlarmType == warnGroupSubset.Code); | |||
} | |||
item.Count = item.Subset.Sum(x => x.Count); | |||
item.Value = item.Subset.Sum(x => x.Value); | |||
} | |||
var list = new List<object> | |||
{ | |||
new { Name = "男生人数", Value = nan }, | |||
new { Name = "女生人数", Value = nv } | |||
}; | |||
return new | |||
{ | |||
//数字统计 | |||
StudentPersonNum=new{TotalNum=ZRS,MaleNum=nan,FemaleNum=nv}, | |||
AlarmStatisti=new{TypeStatisti=alarmStatistics,GroupStatisti=warnGroup,WarnList=warnlist}, | |||
StudentPersonStatistion=list, | |||
//统计图表 | |||
AlarmStatisti =new | |||
{ | |||
//按类型统计 | |||
TypeStatisti=alarmStatistics, | |||
//按告警分组 统计 | |||
GroupStatisti=warnGroup, | |||
//告警列表 | |||
WarnList=warnlist | |||
}, | |||
//设备 | |||
Camera= SheBei, | |||
}; | |||
} | |||
@@ -178,22 +199,38 @@ public class LargeScreenController | |||
//告警信息 | |||
var warnGroup = _simpleCacheService.Get<List<WarnGroupInfo>>(SafeCampusConst.WarnGroup).FirstOrDefault(x=>x.Code=="ZHKT"); | |||
var warnlist = await _warnInfoService.GetListNoPage(new WarnInfoSearch | |||
{ AlarmTypes = warnGroup.Subset.Select(x => x.Code).ToArray(),StartTick = startTime, EndTick = entTime }); | |||
{ AlarmTypes = warnGroup.Subset.Select(x => x.Code).ToArray(),StartTick = startTime, EndTick = entTime,CameraId = personSetId == "YS001" ? "SXT001" : "SXT002" }); | |||
//告警信息统计 | |||
var tongji = warnlist.GroupBy(x => x.AlarmTypeDesc).Select(x=>new{Labale=x.Key,Value=x.Count()}).ToList(); | |||
foreach (var personInfoDto in xuesheng.List) | |||
{ | |||
var rollCall=classRoom.Where(x=>x.PersonId==personInfoDto.PersonId).MinBy(x=>x.Tick); | |||
if (rollCall != null) | |||
{ | |||
personInfoDto.State = rollCall.Tick.TimeOfDay> TimeSpan.Parse("09:00:00")?"迟到":"正常"; | |||
personInfoDto.InsTime = rollCall.Tick; | |||
} | |||
else | |||
{ | |||
personInfoDto.State = "缺勤"; | |||
personInfoDto.InsTime = null; | |||
} | |||
} | |||
return new | |||
{ | |||
ClassRoom=new | |||
{ | |||
Teacher="王明祥", | |||
ClassTime=DateTime.Now.ToString("yyyy-MM-dd 09:00:00"), | |||
ClassBreakTime=DateTime.Now.ToString("yyyy-MM-dd 12:00:00") | |||
ClassBreakTime=DateTime.Now.ToString("yyyy-MM-dd 12:00:00"), | |||
CameraId= personSetId== "YS001" ? "SXT001": "SXT002" | |||
}, | |||
AlarmList= warnlist, | |||
Statisti=new{Labale= tongji.Select(x=>x.Labale).ToList(),Value=tongji.Select(x=>x.Value).ToList()}, | |||
NormalClass= xuesheng.List.Count(x=>warnlist.Any(xx=>xx.PersonId==x.PersonId)), | |||
//AlarmListCount= warnlist.GroupBy(x=>x.PersonId).Count(), | |||
Statisti =new{Labale= tongji.Select(x=>x.Labale).ToList(),Value=tongji.Select(x=>x.Value).ToList()}, | |||
NormalClass= xuesheng.List.Count(x=>!warnlist.Any(xx=>xx.PersonId==x.PersonId)), | |||
StudentList=xuesheng.List, | |||
RollCall= classRoom | |||
//RollCall= classRoom.Where(x=>x.AlarmType!= "class_room_call").ToList() | |||
}; | |||
} | |||
/// <summary> | |||
@@ -253,4 +290,20 @@ public class LargeScreenController | |||
throw Oops.Oh(model["message"].ToString()); | |||
} | |||
/// <summary> | |||
/// 获取宿舍楼列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
public async Task<List<BuildingInfoDto>> GetNoPageList() | |||
{ | |||
return await _buildingService.GetNoPageList(); | |||
} | |||
/// <summary> | |||
/// 获取班级列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
public async Task<dynamic> GetPersonSetNoPageList() | |||
{ | |||
return await _personSetInfoService.GetPageList(); | |||
} | |||
} |
@@ -61,6 +61,12 @@ | |||
<param name="msg"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.AlarmApi.Test"> | |||
<summary> | |||
测试 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:SafeCampus.Web.Core.Controllers.Application.Business.AttendanceApi"> | |||
<summary> | |||
考勤事件管理接口 | |||
@@ -1116,6 +1122,18 @@ | |||
<param name="streamId">流ID</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetNoPageList"> | |||
<summary> | |||
获取宿舍楼列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetPersonSetNoPageList"> | |||
<summary> | |||
获取班级列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Web.Core.Controllers.Application.Violation.ReportExportInput.GroupCode"> | |||
<summary> | |||
场景code | |||
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. | |||
<Project> | |||
<PropertyGroup> | |||
<_PublishTargetUrl>F:\Project\QJKJ\SafeCampus\SafeCampus.API\SafeCampus.Web.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl> | |||
<History>True|2024-07-31T08:54:03.1890463Z;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;True|2024-07-26T17:46:06.7922851+08:00;True|2024-07-26T15:50:48.6986834+08:00;True|2024-07-26T15:11:17.1696147+08:00;True|2024-07-26T13:58:49.6884964+08:00;True|2024-07-25T17:31:33.0050952+08:00;True|2024-07-25T17:09:12.7084910+08:00;True|2024-07-25T17:02:01.2617736+08:00;True|2024-07-25T16:59:51.6271873+08:00;True|2024-07-25T16:58:05.5249148+08:00;True|2024-07-25T14:14:10.2008367+08:00;False|2024-07-25T14:13:54.0300465+08:00;True|2024-07-25T14:08:57.0244482+08:00;True|2024-07-25T13:41:48.8201522+08:00;True|2024-07-25T10:41:30.7277553+08:00;True|2024-07-25T10:16:05.9105335+08:00;True|2024-07-24T15:31:54.7914854+08:00;True|2024-07-24T09:54:17.6182454+08:00;True|2024-07-23T17:01:18.1510211+08:00;True|2024-07-23T16:41:53.3366577+08:00;True|2024-07-23T16:07:25.4129335+08:00;True|2024-07-23T15:50:42.2437488+08:00;True|2024-07-23T15:19:00.1900116+08:00;True|2024-07-23T14:59:22.8551233+08:00;True|2024-07-23T14:19:55.1193373+08:00;True|2024-07-19T18:04:32.2703039+08:00;True|2024-07-19T15:56:25.4103701+08:00;True|2024-07-19T15:09:00.9662436+08:00;True|2024-07-19T15:05:35.7255851+08:00;True|2024-07-19T13:14:42.9559521+08:00;False|2024-07-19T11:37:52.4020673+08:00;True|2024-07-19T11:10:22.8661346+08:00;True|2024-07-19T11:00:00.8819251+08:00;True|2024-07-19T10:45:46.8271770+08:00;True|2024-07-19T10:45:03.8183458+08:00;True|2024-07-18T18:04:42.1000382+08:00;True|2024-07-18T18:01:51.3964409+08:00;True|2024-07-18T17:57:50.3509206+08:00;True|2024-07-18T16:32:46.2184830+08:00;True|2024-07-18T16:00:11.1381449+08:00;True|2024-07-18T15:11:52.6472758+08:00;True|2024-07-18T11:54:49.4848006+08:00;True|2024-07-18T09:25:58.7204846+08:00;True|2024-07-17T17:29:28.6175272+08:00;True|2024-07-17T17:10:54.5184246+08:00;True|2024-07-17T16:57:59.8174060+08:00;True|2024-07-17T16:18:13.8137834+08:00;True|2024-07-17T15:59:16.2360757+08:00;True|2024-07-17T15:31:41.9159909+08:00;True|2024-07-17T14:41:14.6127340+08:00;True|2024-07-17T14:28:53.4455461+08:00;True|2024-07-17T14:09:44.1826222+08:00;True|2024-07-17T13:57:12.3372528+08:00;True|2024-07-17T11:39:19.5754602+08:00;True|2024-07-16T17:44:10.6162562+08:00;True|2024-07-16T17:13:48.3928403+08:00;True|2024-07-16T17:00:47.7458109+08:00;True|2024-07-16T14:07:19.3463408+08:00;True|2024-07-15T16:05:13.3561511+08:00;True|2024-07-15T16:03:45.7866063+08:00;True|2024-07-15T13:25:00.0791938+08:00;True|2024-07-12T13:45:20.6945520+08:00;True|2024-07-12T13:07:01.3911178+08:00;False|2024-07-12T13:06:45.7048568+08:00;True|2024-07-12T13:06:03.7557254+08:00;False|2024-07-12T11:51:55.8228106+08:00;True|2024-07-12T09:11:11.9982410+08:00;True|2024-07-12T09:10:42.9689716+08:00;True|2024-07-12T09:08:04.7560729+08:00;False|2024-07-12T09:07:07.7298589+08:00;True|2024-07-12T08:46:51.1170229+08:00;True|2024-07-11T18:30:09.2678639+08:00;True|2024-07-11T17:24:01.3152273+08:00;True|2024-07-10T16:39:46.3177813+08:00;True|2024-07-10T15:11:58.9145970+08:00;True|2024-07-09T16:25:08.5009553+08:00;True|2024-07-09T16:20:39.2341016+08:00;False|2024-07-09T16:20:17.8406033+08:00;True|2024-07-09T15:52:31.4276391+08:00;True|2024-07-08T17:13:08.0190137+08:00;True|2024-07-08T16:57:04.2357740+08:00;</History> | |||
<History>True|2024-08-12T03:27:42.2864171Z;True|2024-08-09T14:54:42.9062124+08:00;True|2024-08-09T11:49:01.0339449+08:00;True|2024-08-09T11:43:21.9947939+08:00;True|2024-08-09T10:43:25.7641675+08:00;True|2024-08-08T15:23:17.0510180+08:00;True|2024-08-08T15:20:50.3450876+08:00;True|2024-08-08T11:06:43.0783261+08:00;True|2024-08-07T17:24:03.0780935+08:00;True|2024-08-07T17:20:50.6266614+08:00;True|2024-08-07T17:18:15.6367265+08:00;True|2024-08-06T17:31:40.3452266+08:00;True|2024-07-31T16:54:03.1890463+08:00;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;True|2024-07-26T17:46:06.7922851+08:00;True|2024-07-26T15:50:48.6986834+08:00;True|2024-07-26T15:11:17.1696147+08:00;True|2024-07-26T13:58:49.6884964+08:00;True|2024-07-25T17:31:33.0050952+08:00;True|2024-07-25T17:09:12.7084910+08:00;True|2024-07-25T17:02:01.2617736+08:00;True|2024-07-25T16:59:51.6271873+08:00;True|2024-07-25T16:58:05.5249148+08:00;True|2024-07-25T14:14:10.2008367+08:00;False|2024-07-25T14:13:54.0300465+08:00;True|2024-07-25T14:08:57.0244482+08:00;True|2024-07-25T13:41:48.8201522+08:00;True|2024-07-25T10:41:30.7277553+08:00;True|2024-07-25T10:16:05.9105335+08:00;True|2024-07-24T15:31:54.7914854+08:00;True|2024-07-24T09:54:17.6182454+08:00;True|2024-07-23T17:01:18.1510211+08:00;True|2024-07-23T16:41:53.3366577+08:00;True|2024-07-23T16:07:25.4129335+08:00;True|2024-07-23T15:50:42.2437488+08:00;True|2024-07-23T15:19:00.1900116+08:00;True|2024-07-23T14:59:22.8551233+08:00;True|2024-07-23T14:19:55.1193373+08:00;True|2024-07-19T18:04:32.2703039+08:00;True|2024-07-19T15:56:25.4103701+08:00;True|2024-07-19T15:09:00.9662436+08:00;True|2024-07-19T15:05:35.7255851+08:00;True|2024-07-19T13:14:42.9559521+08:00;False|2024-07-19T11:37:52.4020673+08:00;True|2024-07-19T11:10:22.8661346+08:00;True|2024-07-19T11:00:00.8819251+08:00;True|2024-07-19T10:45:46.8271770+08:00;True|2024-07-19T10:45:03.8183458+08:00;True|2024-07-18T18:04:42.1000382+08:00;True|2024-07-18T18:01:51.3964409+08:00;True|2024-07-18T17:57:50.3509206+08:00;True|2024-07-18T16:32:46.2184830+08:00;True|2024-07-18T16:00:11.1381449+08:00;True|2024-07-18T15:11:52.6472758+08:00;True|2024-07-18T11:54:49.4848006+08:00;True|2024-07-18T09:25:58.7204846+08:00;True|2024-07-17T17:29:28.6175272+08:00;True|2024-07-17T17:10:54.5184246+08:00;True|2024-07-17T16:57:59.8174060+08:00;True|2024-07-17T16:18:13.8137834+08:00;True|2024-07-17T15:59:16.2360757+08:00;True|2024-07-17T15:31:41.9159909+08:00;True|2024-07-17T14:41:14.6127340+08:00;True|2024-07-17T14:28:53.4455461+08:00;True|2024-07-17T14:09:44.1826222+08:00;True|2024-07-17T13:57:12.3372528+08:00;True|2024-07-17T11:39:19.5754602+08:00;True|2024-07-16T17:44:10.6162562+08:00;True|2024-07-16T17:13:48.3928403+08:00;True|2024-07-16T17:00:47.7458109+08:00;True|2024-07-16T14:07:19.3463408+08:00;True|2024-07-15T16:05:13.3561511+08:00;True|2024-07-15T16:03:45.7866063+08:00;True|2024-07-15T13:25:00.0791938+08:00;True|2024-07-12T13:45:20.6945520+08:00;True|2024-07-12T13:07:01.3911178+08:00;False|2024-07-12T13:06:45.7048568+08:00;True|2024-07-12T13:06:03.7557254+08:00;False|2024-07-12T11:51:55.8228106+08:00;True|2024-07-12T09:11:11.9982410+08:00;True|2024-07-12T09:10:42.9689716+08:00;True|2024-07-12T09:08:04.7560729+08:00;</History> | |||
<LastFailureDetails /> | |||
</PropertyGroup> | |||
</Project> |