wwp 3 месяцев назад
Родитель
Сommit
a8652443b6
27 измененных файлов: 896 добавлений и 41 удалений
  1. +143
    -1
      SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml
  2. +75
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs
  3. +17
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs
  4. +9
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs
  5. +40
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs
  6. +35
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs
  7. +17
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs
  8. +40
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs
  9. +80
    -0
      SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs
  10. +9
    -1
      SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs
  11. +1
    -1
      SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs
  12. +3
    -1
      SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs
  13. +20
    -0
      SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs
  14. +39
    -0
      SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs
  15. +11
    -1
      SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs
  16. +0
    -2
      SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs
  17. +50
    -0
      SafeCampus.API/SafeCampus.System/SafeCampus.System.xml
  18. +1
    -11
      SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs
  19. +1
    -11
      SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs
  20. +78
    -0
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs
  21. +5
    -4
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs
  22. +2
    -2
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs
  23. +4
    -0
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs
  24. +77
    -0
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs
  25. +26
    -3
      SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs
  26. +112
    -2
      SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml
  27. +1
    -1
      SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user

+ 143
- 1
SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml Просмотреть файл

@@ -1020,6 +1020,67 @@
</summary>
<returns></returns>
</member>
<member name="P:SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto.Id">
<summary>
id
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto.Name">
<summary>
院系名称
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto.Code">
<summary>
院系编码
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.DepartmentService.DepartmentSearch.Name">
<summary>
院系名称
</summary>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.Add(SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto)">
<summary>
添加
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.Update(SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto)">
<summary>
修改
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.GetInfo(System.Int64)">
<summary>
获取详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.Delete(System.Collections.Generic.List{System.Int64})">
<summary>
删除
</summary>
<param name="id">id</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.GetPageList(SafeCampus.Application.Services.Business.DepartmentService.DepartmentSearch)">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.DepartmentService.IDepartmentService.GetNoPageList(SafeCampus.Application.Services.Business.DepartmentService.DepartmentSearch)">
<summary>
不分页获取列表
</summary>
<param name="search"></param>
<returns></returns>
</member>
<member name="P:SafeCampus.Application.Services.Business.DormitoryService.DormitoryInfoDto.Id">
<summary>
ID
@@ -1178,6 +1239,82 @@
<param name="search"></param>
<returns></returns>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorDto.Name">
<summary>
专业名称
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorDto.Code">
<summary>
专业编码
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorDto.Introduce">
<summary>
专业简介
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorDto.DepId">
<summary>
院系id
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorSearch.Name">
<summary>
专业名称
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorSearch.Code">
<summary>
专业编码
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.MajorService.MajorSearch.DepId">
<summary>
院系id
</summary>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.Add(SafeCampus.Application.Services.Business.MajorService.MajorDto)">
<summary>
添加
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.Update(SafeCampus.Application.Services.Business.MajorService.MajorDto)">
<summary>
修改
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.GetInfo(System.Int64)">
<summary>
获取详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.Delete(System.Collections.Generic.List{System.Int64})">
<summary>
删除
</summary>
<param name="id">id</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.GetPageList(SafeCampus.Application.Services.Business.MajorService.MajorSearch)">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.MajorService.IMajorService.GetNoPageList(SafeCampus.Application.Services.Business.MajorService.MajorSearch)">
<summary>
获取列表不分页
</summary>
<param name="search"></param>
<returns></returns>
</member>
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.Id">
<summary>
主键Id
@@ -1460,6 +1597,11 @@
班级名称
</summary>
</member>
<member name="P:SafeCampus.Application.Services.Business.PersonSetInfoService.PersonSetInfoDto.MajorId">
<summary>
专业id
</summary>
</member>
<member name="M:SafeCampus.Application.Services.Business.PersonSetInfoService.IPersonSetInfoService.Add(SafeCampus.Application.Services.Business.PersonSetInfoService.PersonSetInfoDto)">
<summary>
添加班级
@@ -1480,7 +1622,7 @@
<param name="input"></param>
<returns></returns>
</member>
<member name="M:SafeCampus.Application.Services.Business.PersonSetInfoService.IPersonSetInfoService.GetPageList">
<member name="M:SafeCampus.Application.Services.Business.PersonSetInfoService.IPersonSetInfoService.GetPageList(System.Nullable{System.Int64})">
<summary>
获取底库列表
</summary>


+ 75
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs Просмотреть файл

@@ -0,0 +1,75 @@
namespace SafeCampus.Application.Services.Business.DepartmentService;

public class DepartmentService: DbRepository<DepartmentInfo>, IDepartmentService
{
public async Task<bool> Add(DepartmentDto input)
{
var model = input.Adapt<DepartmentInfo>();
await InsertAsync(model);
return true;
}

public async Task<bool> Update(DepartmentDto input)
{
if (!input.Id.HasValue)
{
throw Oops.Oh("请填写ID");
}
var model = await GetFirstAsync(p => p.Id == input.Id);
if (model == null)
{
throw Oops.Oh("信息不存在");
}
var res = input.Adapt(model);
await UpdateAsync(res);
return true;
}

public async Task<DepartmentDto> GetInfo(long id)
{
var query = await Context.Queryable<DepartmentInfo>()
.FirstAsync(x => x.Id == id);
return query.Adapt<DepartmentDto>();
}

public async Task<bool> Delete(List<long> id)
{
var majorInfo = ChangeRepository<DbRepository<MajorInfo>>();//切换仓储

var model = await GetListAsync(x => id.Contains(x.Id));
if (!model.Any())
{
throw Oops.Oh("信息不存在");
}
foreach (var departmentInfo in model)
{
var isOK = await majorInfo.IsAnyAsync(x => x.DepId == departmentInfo.Id);
if (isOK)
{
throw Oops.Oh($"{departmentInfo.Name}院系下还有专业禁止删除!");
}
}
await DeleteAsync(model);
return true;
}

public async Task<SqlSugarPagedList<DepartmentDto>> GetPageList(DepartmentSearch search)
{
var query = Context.Queryable<DepartmentInfo>()
.WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name));

var list = await query.OrderByDescending(x => x.Code)
.ToPagedListAsyncMapster<DepartmentInfo, DepartmentDto>(search.PageNum, search.PageSize);
return list;
}

public async Task<List<DepartmentDto>> GetNoPageList(DepartmentSearch search)
{
var query = Context.Queryable<DepartmentInfo>()
.WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name));

var list = await query.OrderByDescending(x => x.Code)
.ToListAsync();
return list.Adapt<List<DepartmentDto>>();
}
}

+ 17
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs Просмотреть файл

@@ -0,0 +1,17 @@
namespace SafeCampus.Application.Services.Business.DepartmentService;

public class DepartmentDto
{
/// <summary>
/// id
/// </summary>
public long? Id { get; set; }
/// <summary>
/// 院系名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 院系编码
/// </summary>
public string Code { get; set; }
}

+ 9
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs Просмотреть файл

@@ -0,0 +1,9 @@
namespace SafeCampus.Application.Services.Business.DepartmentService;

public class DepartmentSearch: BasePageInput
{
/// <summary>
/// 院系名称
/// </summary>
public string Name { get; set; }
}

+ 40
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs Просмотреть файл

@@ -0,0 +1,40 @@
namespace SafeCampus.Application.Services.Business.DepartmentService;

public interface IDepartmentService : ITransient
{
/// <summary>
/// 添加
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
Task<bool> Add(DepartmentDto input);
/// <summary>
/// 修改
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
Task<bool> Update(DepartmentDto input);
/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<DepartmentDto> GetInfo(long id);
/// <summary>
/// 删除
/// </summary>
/// <param name="id">id</param>
/// <returns></returns>
Task<bool> Delete(List<long> id);
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<DepartmentDto>> GetPageList(DepartmentSearch search);
/// <summary>
/// 不分页获取列表
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
Task<List<DepartmentDto>> GetNoPageList(DepartmentSearch search);
}

+ 35
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs Просмотреть файл

@@ -0,0 +1,35 @@
using SafeCampus.Application.Services.Business.DepartmentService;

namespace SafeCampus.Application.Services.Business.MajorService;

public class MajorDto
{
public long? Id { get; set; }
/// <summary>
/// 专业名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 专业编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 专业简介
/// </summary>
public string Introduce { get; set; }
/// <summary>
/// 院系id
/// </summary>
public long DepId { get; set; }

public string DepartmentName { get; set; }
}

public class MajorDtoMapper : IRegister
{
public void Register(TypeAdapterConfig config)
{
config.ForType<MajorInfo, MajorDto>()
.Map(x => x.DepartmentName, x => x.DepartmentInfoItem.Name);
}
}

+ 17
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs Просмотреть файл

@@ -0,0 +1,17 @@
namespace SafeCampus.Application.Services.Business.MajorService;

public class MajorSearch:BasePageInput
{
/// <summary>
/// 专业名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 专业编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 院系id
/// </summary>
public long? DepId { get; set; }
}

+ 40
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs Просмотреть файл

@@ -0,0 +1,40 @@
namespace SafeCampus.Application.Services.Business.MajorService;

public interface IMajorService : ITransient
{
/// <summary>
/// 添加
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
Task<bool> Add(MajorDto input);
/// <summary>
/// 修改
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
Task<bool> Update(MajorDto input);
/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<MajorDto> GetInfo(long id);
/// <summary>
/// 删除
/// </summary>
/// <param name="id">id</param>
/// <returns></returns>
Task<bool> Delete(List<long> id);
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
Task<SqlSugarPagedList<MajorDto>> GetPageList(MajorSearch search);
/// <summary>
/// 获取列表不分页
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
Task<List<MajorDto>> GetNoPageList(MajorSearch search);
}

+ 80
- 0
SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs Просмотреть файл

@@ -0,0 +1,80 @@
namespace SafeCampus.Application.Services.Business.MajorService;

public class MajorService: DbRepository<MajorInfo>, IMajorService
{
public async Task<bool> Add(MajorDto input)
{
var model = input.Adapt<MajorInfo>();
await InsertAsync(model);
return true;
}

public async Task<bool> Update(MajorDto input)
{
if (!input.Id.HasValue)
{
throw Oops.Oh("请填写ID");
}
var model = await GetFirstAsync(p => p.Id == input.Id);
if (model == null)
{
throw Oops.Oh("信息不存在");
}
var res = input.Adapt(model);
await UpdateAsync(res);
return true;
}

public async Task<MajorDto> GetInfo(long id)
{
var query = await Context.Queryable<MajorInfo>()
.Includes(x => x.DepartmentInfoItem)
.FirstAsync(x => x.Id == id);
return query.Adapt<MajorDto>();
}

public async Task<bool> Delete(List<long> id)
{
var personSetInfo = ChangeRepository<DbRepository<PersonSetInfo>>();//切换仓储
var model = await GetListAsync(x => id.Contains(x.Id));
if (!model.Any())
{
throw Oops.Oh("信息不存在");
}
foreach (var majorInfo in model)
{
var isOK = await personSetInfo.IsAnyAsync(x => x.MajorId == majorInfo.Id);
if (isOK)
{
throw Oops.Oh($"{majorInfo.Name}专业下还有班级禁止删除!");
}
}
await DeleteAsync(model);
return true;
}

public async Task<SqlSugarPagedList<MajorDto>> GetPageList(MajorSearch search)
{
var query = Context.Queryable<MajorInfo>()
.Includes(x=>x.DepartmentInfoItem)
.WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name))
.WhereIF(!string.IsNullOrEmpty(search.Code),x=>x.Code.Contains(search.Code))
.WhereIF(search.DepId.HasValue,x=>x.DepId==search.DepId);

var list = await query.OrderByDescending(x => x.Sort)
.ToPagedListAsyncMapster<MajorInfo, MajorDto>(search.PageNum, search.PageSize);
return list;
}

public async Task<List<MajorDto>> GetNoPageList(MajorSearch search)
{
var query = Context.Queryable<MajorInfo>()
.Includes(x => x.DepartmentInfoItem)
.WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name))
.WhereIF(!string.IsNullOrEmpty(search.Code), x => x.Code.Contains(search.Code))
.WhereIF(search.DepId.HasValue, x => x.DepId == search.DepId);

var list = await query.OrderByDescending(x => x.Sort).ToListAsync();
return list.Adapt<List<MajorDto>>();
}
}

+ 9
- 1
SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs Просмотреть файл

@@ -10,9 +10,15 @@ public class PersonSetInfoDto
/// 班级名称
/// </summary>
public string PersonSetName { get; set; }
/// <summary>
/// 专业id
/// </summary>
public long MajorId { get; set; }

public string UserId { get; set; }
public string UserName { get; set; }
public string MajorName { get; set; }
public string DepartmentName { get; set; }
}

public class PersonSetInfoDtoMapper : IRegister
@@ -21,6 +27,8 @@ public class PersonSetInfoDtoMapper : IRegister
{
config.ForType<PersonSetInfo, PersonSetInfoDto>()
.Map(x => x.UserId, x => x.ClassTeacherItem.UserId)
.Map(x => x.UserName, x => x.ClassTeacherItem.SysUserItem.Name);
.Map(x => x.UserName, x => x.ClassTeacherItem.SysUserItem.Name)
.Map(x=>x.DepartmentName,x=>x.MajorInfoItem.DepartmentInfoItem.Name)
.Map(x=>x.MajorName,x=>x.MajorInfoItem.Name);
}
}

+ 1
- 1
SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs Просмотреть файл

@@ -23,5 +23,5 @@ public interface IPersonSetInfoService:ITransient
/// 获取底库列表
/// </summary>
/// <returns></returns>
Task<List<PersonSetInfoDto>> GetPageList();
Task<List<PersonSetInfoDto>> GetPageList(long? majorId);
}

+ 3
- 1
SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs Просмотреть файл

@@ -38,10 +38,12 @@ public class PersonSetInfoService:DbRepository<PersonSetInfo>, IPersonSetInfoSer
return true;
}

public async Task<List<PersonSetInfoDto>> GetPageList()
public async Task<List<PersonSetInfoDto>> GetPageList(long? majorId)
{
var list =await Context.Queryable<PersonSetInfo>()
.Includes(x=>x.MajorInfoItem,x=>x.DepartmentInfoItem)
.Where(x=>x.PersonSetId!=SafeCampusConst.ZDRY)
.WhereIF(majorId.HasValue,x=>x.MajorId==majorId)
.Includes(x => x.ClassTeacherItem, st => st.SysUserItem)
.ToListAsync();
return list.Adapt<List<PersonSetInfoDto>>();


+ 20
- 0
SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs Просмотреть файл

@@ -0,0 +1,20 @@
namespace SafeCampus.System;
[SugarTable("DepartmentInfo", TableDescription = "院系信息表")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
//[IgnoreInitTable]
public class DepartmentInfo : PrimaryKeyEntity
{
/// <summary>
/// 院系名称
/// </summary>
[SugarColumn(ColumnName = "Name", ColumnDescription = "院系名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string Name { get; set; }
/// <summary>
/// 院系编码
/// </summary>
[SugarColumn(ColumnName = "Code", ColumnDescription = "院系编码", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string Code { get; set; }

}

+ 39
- 0
SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs Просмотреть файл

@@ -0,0 +1,39 @@
namespace SafeCampus.System;
[SugarTable("MajorInfo", TableDescription = "专业信息表")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
//[IgnoreInitTable]
public class MajorInfo : PrimaryKeyEntity
{
/// <summary>
/// 专业名称
/// </summary>
[SugarColumn(ColumnName = "Name", ColumnDescription = "专业名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string Name { get; set; }
/// <summary>
/// 专业编码
/// </summary>
[SugarColumn(ColumnName = "Code", ColumnDescription = "专业编码", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string Code { get; set; }
/// <summary>
/// 专业简介
/// </summary>
[SugarColumn(ColumnName = "Introduce", ColumnDescription = "专业简介", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
public string Introduce { get; set; }
/// <summary>
/// 院系id
/// </summary>
[SugarColumn(ColumnName = "DepId", ColumnDescription = "院系id",IsNullable = false)]
public long DepId { get; set; }
/// <summary>
/// 排序
/// </summary>
[SugarColumn(ColumnName = "Sort", ColumnDescription = "排序", IsNullable = false)]
public int Sort { get; set; }
/// <summary>
/// 院系信息
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(DepartmentInfo.Id), nameof(DepId))]
public DepartmentInfo DepartmentInfoItem { get; set; }
}

+ 11
- 1
SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs Просмотреть файл

@@ -3,7 +3,7 @@
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
[IgnoreInitTable]
//[IgnoreInitTable]
public class PersonSetInfo
{
/// <summary>
@@ -17,6 +17,16 @@ public class PersonSetInfo
[SugarColumn(ColumnName = "PersonSetName", ColumnDescription = "班级名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string PersonSetName { get; set; }
/// <summary>
/// 专业id
/// </summary>
[SugarColumn(ColumnName = "MajorId", ColumnDescription = "专业id", IsNullable = false)]
public long MajorId { get; set; }
/// <summary>
/// 专业信息
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(MajorInfo.Id), nameof(MajorId))]
public MajorInfo MajorInfoItem { get; set; }
/// <summary>
/// 班主任信息
/// </summary>
[Navigate(NavigateType.OneToOne, nameof(ClassTeacher.PersonSetId),nameof(PersonSetId))]


+ 0
- 2
SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs Просмотреть файл

@@ -37,8 +37,6 @@ public class SysDict : BaseEntity
///</summary>
[SugarColumn(ColumnName = "SortCode", ColumnDescription = "排序码")]
public int SortCode { get; set; }


/// <summary>
/// 子节点
/// </summary>


+ 50
- 0
SafeCampus.API/SafeCampus.System/SafeCampus.System.xml Просмотреть файл

@@ -1071,6 +1071,16 @@
班主任信息
</summary>
</member>
<member name="P:SafeCampus.System.DepartmentInfo.Name">
<summary>
院系名称
</summary>
</member>
<member name="P:SafeCampus.System.DepartmentInfo.Code">
<summary>
院系编码
</summary>
</member>
<member name="P:SafeCampus.System.DormitoryInfo.Name">
<summary>
寝室名称
@@ -1101,6 +1111,36 @@
宿舍楼信息
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.Name">
<summary>
专业名称
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.Code">
<summary>
专业编码
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.Introduce">
<summary>
专业简介
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.DepId">
<summary>
院系id
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.Sort">
<summary>
排序
</summary>
</member>
<member name="P:SafeCampus.System.MajorInfo.DepartmentInfoItem">
<summary>
院系信息
</summary>
</member>
<member name="P:SafeCampus.System.PassengerFlow.QueryTime">
<summary>
查询时间
@@ -1241,6 +1281,16 @@
班级名称
</summary>
</member>
<member name="P:SafeCampus.System.PersonSetInfo.MajorId">
<summary>
专业id
</summary>
</member>
<member name="P:SafeCampus.System.PersonSetInfo.MajorInfoItem">
<summary>
专业信息
</summary>
</member>
<member name="P:SafeCampus.System.PersonSetInfo.ClassTeacherItem">
<summary>
班主任信息


+ 1
- 11
SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs Просмотреть файл

@@ -1,14 +1,4 @@

//








using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authentication.JwtBearer;

namespace SafeCampus.Web.Core;



+ 1
- 11
SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs Просмотреть файл

@@ -1,14 +1,4 @@

//








namespace SafeCampus.Web.Core;
namespace SafeCampus.Web.Core;

/// <summary>
/// Web设置组件


+ 78
- 0
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs Просмотреть файл

@@ -0,0 +1,78 @@

using SafeCampus.Application.Services.Business.DepartmentService;

namespace SafeCampus.Web.Core.Controllers.Application.Business;
/// <summary>
///系部管理接口
/// </summary>
[ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 83, Tag = "系部管理")]
[Route("/business/department")]
[RolePermission]
public class DepartmentController
{
private readonly IDepartmentService _departmentService;

public DepartmentController(IDepartmentService departmentService)
{
_departmentService = departmentService;
}

/// <summary>
/// 添加
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
public async Task<bool> Add(DepartmentDto input)
{
return await _departmentService.Add(input);
}

/// <summary>
/// 修改
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
public async Task<bool> Update(DepartmentDto input)
{
return await _departmentService.Update(input);
}

/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<DepartmentDto> GetInfo(long id)
{
return await _departmentService.GetInfo(id);
}

/// <summary>
/// 删除
/// </summary>
/// <param name="id">id</param>
/// <returns></returns>
public async Task<bool> Delete(List<long> id)
{
return await _departmentService.Delete(id);
}

/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
public async Task<SqlSugarPagedList<DepartmentDto>> GetPageList(DepartmentSearch search)
{
return await _departmentService.GetPageList(search);
}

/// <summary>
/// 不分页获取列表
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
public async Task<List<DepartmentDto>> GetNoPageList(DepartmentSearch search)
{
return await _departmentService.GetNoPageList(search);
}
}

+ 5
- 4
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs Просмотреть файл

@@ -45,7 +45,7 @@ public class DfieldApi : IDynamicApiController
var model = JsonConvert.DeserializeObject<JObject>(str);
if ((bool)model["success"])
{
await _personSetInfoService.Add(new PersonSetInfoDto{PersonSetId = personSetId ,PersonSetName = input.Name});
await _personSetInfoService.Add(new PersonSetInfoDto{PersonSetId = personSetId ,PersonSetName = input.Name,MajorId = input.MagjorId});
return model["data"];
}

@@ -55,9 +55,9 @@ public class DfieldApi : IDynamicApiController
/// 查询底库列表
/// </summary>
/// <returns></returns>
public async Task<dynamic> QueryAll()
public async Task<dynamic> QueryAll(long? majorId)
{
return await _personSetInfoService.GetPageList();
return await _personSetInfoService.GetPageList(majorId);
var appSettings = App.GetOptionsMonitor<AppInfoOptions>();
var str = await $"{appSettings.SXAPIURL}/dfield-api/ecology/person/set/queryAll"
.SetBody(new
@@ -151,7 +151,8 @@ public class DfieldApi : IDynamicApiController
await _personSetInfoService.Update(new PersonSetInfoDto
{
PersonSetId = input.Id,
PersonSetName = input.Name
PersonSetName = input.Name,
MajorId = input.MagjorId
});
}
return isOk;


+ 2
- 2
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs Просмотреть файл

@@ -112,7 +112,7 @@ public class DormitoryController
public async Task<ReturnDormitoryDto> GetReturnInfo(long id,DateTime returnTime)
{
var model= await _dormitoryService.GetReturnInfo(id, returnTime);
model.AttendanceDtos = model.AttendanceDtos?.GroupBy(x => x.PersonId).Select(x => x.FirstOrDefault()).ToList();
model.AttendanceDtos = model.AttendanceDtos?.GroupBy(x => x.PersonId).Select(x => x.MaxBy(xx=>xx.Tick)).ToList();
foreach (var modelPersonInfo in model.PersonInfos)
{
modelPersonInfo.Attendances = null;
@@ -145,7 +145,7 @@ public class DormitoryController
configId = queryList["data"][0]["configId"].ParseToInt();
}
var time = new { timeBegin = input.TimeBegin, timeEnd = input.TimeEnd };
var personSetIds = await _personSetInfoService.GetPageList();
var personSetIds = await _personSetInfoService.GetPageList(null);
var cameras = await _cameraInfoService.GetPageList(new CameraSearch{PageSize = 1000,PageNum = 1});
var body = new
{


+ 4
- 0
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs Просмотреть файл

@@ -10,6 +10,10 @@ public class ControllersNameInput
{
[IdNotNull(ErrorMessage = "name不能为空")]
public string Name { get; set; }
/// <summary>
/// 专业id
/// </summary>
public long MagjorId { get; set; }
}
public class ControllersIdInput
{


+ 77
- 0
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs Просмотреть файл

@@ -0,0 +1,77 @@
using SafeCampus.Application.Services.Business.MajorService;

namespace SafeCampus.Web.Core.Controllers.Application.Business;
/// <summary>
///专业管理接口
/// </summary>
[ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 82, Tag = "专业管理")]
[Route("/business/major")]
[RolePermission]
public class MajorController
{
private readonly IMajorService _majorService;

public MajorController(IMajorService majorService)
{
_majorService = majorService;
}

/// <summary>
/// 添加
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
public async Task<bool> Add(MajorDto input)
{
return await _majorService.Add(input);
}

/// <summary>
/// 修改
/// </summary>
/// <param name="input">添加参数</param>
/// <returns></returns>
public async Task<bool> Update(MajorDto input)
{
return await _majorService.Update(input);
}

/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<MajorDto> GetInfo(long id)
{
return await _majorService.GetInfo(id);
}

/// <summary>
/// 删除
/// </summary>
/// <param name="id">id</param>
/// <returns></returns>
public async Task<bool> Delete(List<long> id)
{
return await _majorService.Delete(id);
}

/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
public async Task<SqlSugarPagedList<MajorDto>> GetPageList(MajorSearch search)
{
return await _majorService.GetPageList(search);
}

/// <summary>
/// 获取列表不分页
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
public async Task<List<MajorDto>> GetNoPageList(MajorSearch search)
{
return await _majorService.GetNoPageList(search);
}
}

+ 26
- 3
SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs Просмотреть файл

@@ -13,6 +13,8 @@ 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.DepartmentService;
using SafeCampus.Application.Services.Business.MajorService;
using SafeCampus.Application.Services.Business.PersonSetInfoService;

namespace SafeCampus.Web.Core.Controllers.Application.LargeScreen;
@@ -37,9 +39,11 @@ public class LargeScreenController
private readonly IClassRoomCallService _classRoomCallService;
private readonly IDeepelephManager _deepelephManager;
private readonly IPersonSetInfoService _personSetInfoService;
private readonly IMajorService _majorService;
private readonly IDepartmentService _departmentService;


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)
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, IMajorService majorService, IDepartmentService departmentService)
{
_personInfoService = personInfoService;
_cameraGroupService = cameraGroupService;
@@ -53,6 +57,8 @@ public class LargeScreenController
_classRoomCallService = classRoomCallService;
_deepelephManager = deepelephManager;
_personSetInfoService = personSetInfoService;
_majorService = majorService;
_departmentService = departmentService;
}

/// <summary>
@@ -302,8 +308,25 @@ public class LargeScreenController
/// 获取班级列表
/// </summary>
/// <returns></returns>
public async Task<dynamic> GetPersonSetNoPageList()
public async Task<dynamic> GetPersonSetNoPageList(long? majorId)
{
return await _personSetInfoService.GetPageList();
return await _personSetInfoService.GetPageList(majorId);
}
/// <summary>
/// 获取专业
/// </summary>
/// <param name="depId">院系id</param>
/// <returns></returns>
public async Task<dynamic> GetMajorNoPageList(long? depId)
{
return await _majorService.GetNoPageList(new MajorSearch{DepId = depId});
}
/// <summary>
/// 获取院系
/// </summary>
/// <returns></returns>
public async Task<dynamic> GetDepartment()
{
return await _departmentService.GetNoPageList(new DepartmentSearch());
}
}

+ 112
- 2
SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml Просмотреть файл

@@ -385,6 +385,52 @@
</summary>
<returns></returns>
</member>
<member name="T:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController">
<summary>
系部管理接口
</summary>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.Add(SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto)">
<summary>
添加
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.Update(SafeCampus.Application.Services.Business.DepartmentService.DepartmentDto)">
<summary>
修改
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.GetInfo(System.Int64)">
<summary>
获取详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.Delete(System.Collections.Generic.List{System.Int64})">
<summary>
删除
</summary>
<param name="id">id</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.GetPageList(SafeCampus.Application.Services.Business.DepartmentService.DepartmentSearch)">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DepartmentController.GetNoPageList(SafeCampus.Application.Services.Business.DepartmentService.DepartmentSearch)">
<summary>
不分页获取列表
</summary>
<param name="search"></param>
<returns></returns>
</member>
<member name="T:SafeCampus.Web.Core.Controllers.Application.Business.DeviceApi">
<summary>
设备管理接口
@@ -470,7 +516,7 @@
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DfieldApi.QueryAll">
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.DfieldApi.QueryAll(System.Nullable{System.Int64})">
<summary>
查询底库列表
</summary>
@@ -791,6 +837,11 @@
结束时间
</summary>
</member>
<member name="P:SafeCampus.Web.Core.Controllers.Application.Business.ControllersNameInput.MagjorId">
<summary>
专业id
</summary>
</member>
<member name="P:SafeCampus.Web.Core.Controllers.Application.Business.PersonUnBindDfieInput.PersonId">
<summary>
人员id
@@ -882,6 +933,52 @@
<param name="info">删除信息</param>
<returns></returns>
</member>
<member name="T:SafeCampus.Web.Core.Controllers.Application.Business.MajorController">
<summary>
专业管理接口
</summary>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.Add(SafeCampus.Application.Services.Business.MajorService.MajorDto)">
<summary>
添加
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.Update(SafeCampus.Application.Services.Business.MajorService.MajorDto)">
<summary>
修改
</summary>
<param name="input">添加参数</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.GetInfo(System.Int64)">
<summary>
获取详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.Delete(System.Collections.Generic.List{System.Int64})">
<summary>
删除
</summary>
<param name="id">id</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.GetPageList(SafeCampus.Application.Services.Business.MajorService.MajorSearch)">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.Business.MajorController.GetNoPageList(SafeCampus.Application.Services.Business.MajorService.MajorSearch)">
<summary>
获取列表不分页
</summary>
<param name="search"></param>
<returns></returns>
</member>
<member name="T:SafeCampus.Web.Core.Controllers.Application.Business.PassengerFlowApi">
<summary>
客流查询接口
@@ -1128,12 +1225,25 @@
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetPersonSetNoPageList">
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetPersonSetNoPageList(System.Nullable{System.Int64})">
<summary>
获取班级列表
</summary>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetMajorNoPageList(System.Nullable{System.Int64})">
<summary>
获取专业
</summary>
<param name="depId">院系id</param>
<returns></returns>
</member>
<member name="M:SafeCampus.Web.Core.Controllers.Application.LargeScreen.LargeScreenController.GetDepartment">
<summary>
获取院系
</summary>
<returns></returns>
</member>
<member name="P:SafeCampus.Web.Core.Controllers.Application.Violation.ReportExportInput.GroupCode">
<summary>
场景code


+ 1
- 1
SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user Просмотреть файл

@@ -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-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>
<History>True|2024-08-19T05:38:29.9236695Z;False|2024-08-19T13:29:18.8873264+08:00;True|2024-08-19T12:31:57.9280692+08:00;True|2024-08-19T11:50:36.7241244+08:00;True|2024-08-19T10:24:05.0018377+08:00;True|2024-08-19T10:23:30.0445364+08:00;True|2024-08-19T10:12:33.8316906+08:00;True|2024-08-19T10:10:48.0967630+08:00;True|2024-08-16T12:17:51.5743944+08:00;True|2024-08-16T11:36:15.1880346+08:00;True|2024-08-12T11:27:42.2864171+08:00;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;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

Загрузка…
Отмена
Сохранить