宁波既有建筑外墙脱落问卷调查
This commit is contained in:
@@ -5,241 +5,322 @@ using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Ewide.Core;
|
||||
using Ewide.Core.Util;
|
||||
using Ewide.Core.Service;
|
||||
using Furion;
|
||||
using Furion.ClayObject.Extensions;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Furion.DatabaseAccessor.Extensions;
|
||||
using Furion.DataEncryption;
|
||||
using Furion.DataEncryption.Extensions;
|
||||
using Furion.DynamicApiController;
|
||||
using Furion.FriendlyException;
|
||||
using Furion.RemoteRequest.Extensions;
|
||||
using Google.Protobuf.Reflection;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NPOI.HPSF;
|
||||
using Vote.Services.Dto;
|
||||
using Vote.Services.Entities;
|
||||
|
||||
namespace Vote.Services.ApiController
|
||||
{
|
||||
/// <summary>
|
||||
/// 共赴宁波之春
|
||||
/// 外墙调查问卷
|
||||
/// </summary>
|
||||
[ApiDescriptionSettings("outsidewall", Order = 0)]
|
||||
[Route("/gb/yjb/api/outsidewall")]
|
||||
public class OutsideWallService : IDynamicApiController
|
||||
{
|
||||
private readonly IRepository<Entities.nbzc_person> repPerson;
|
||||
private readonly IRepository<Entities.nbzc_sms_code> repSmsCode;
|
||||
private readonly SqlSugarRepository<Entities.outside_wall> repoutside_wall;
|
||||
private readonly SqlSugarRepository<Entities.outside_wall_building> repoutside_wall_building;
|
||||
private readonly SqlSugarRepository<Entities.outside_wall_building_photo> repoutside_wall_building_photo;
|
||||
private readonly SqlSugarRepository<Entities.outside_wall_photo> repoutside_wall_photo;
|
||||
private readonly SqlSugarRepository<SysFile> rep_SysFile;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
readonly IOptions<UploadFileOptions> _options;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="_repNingbo"></param>
|
||||
public OutsideWallService(IRepository<Entities.nbzc_person> _repNingbo, IRepository<Entities.nbzc_sms_code> _repSmsCode, IMemoryCache memoryCache)
|
||||
/// <param name="_repoutside_wall"></param>
|
||||
/// <param name="_repoutside_wall_building"></param>
|
||||
/// <param name="_repoutside_wall_building_photo"></param>
|
||||
/// <param name="_repoutside_wall_photo"></param>
|
||||
/// <param name="memoryCache"></param>
|
||||
public OutsideWallService(SqlSugarRepository<Entities.outside_wall> _repoutside_wall, SqlSugarRepository<Entities.outside_wall_building> _repoutside_wall_building, SqlSugarRepository<Entities.outside_wall_building_photo> _repoutside_wall_building_photo, SqlSugarRepository<Entities.outside_wall_photo> _repoutside_wall_photo, IMemoryCache memoryCache, SqlSugarRepository<SysFile> _rep_SysFile, IOptions<UploadFileOptions> options)
|
||||
{
|
||||
repPerson = _repNingbo;
|
||||
this.repSmsCode = _repSmsCode;
|
||||
repoutside_wall = _repoutside_wall;
|
||||
repoutside_wall_building = _repoutside_wall_building;
|
||||
repoutside_wall_building_photo = _repoutside_wall_building_photo;
|
||||
repoutside_wall_photo = _repoutside_wall_photo;
|
||||
_memoryCache = memoryCache;
|
||||
_options = options;
|
||||
rep_SysFile = _rep_SysFile;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("sendcode")]
|
||||
public async Task<dynamic> SendCode(NbzcSendCodeInput args)
|
||||
/// 获取三居系统中的社区
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpGet("query/{id}")]
|
||||
public async Task<dynamic> Query(string id)
|
||||
{
|
||||
//var data = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted && p.expire_time > DateTime.Now)
|
||||
// .FirstOrDefaultAsync();
|
||||
//_ = (data != null) ? throw Oops.Oh("已存在此号码的有效发送记录,不可重复发送") : 1;
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = lastSend != null && DateTime.Now <= lastSend.CreatedTime.Value.AddMinutes(1) ? throw Oops.Oh("发送过于频繁,请1分钟后再试") : 1;
|
||||
|
||||
//_ = (await repPerson.DetachedEntities.Where(a => !a.IsDeleted && (a.phone == args.phone || a.cardno == args.cardno)).CountAsync() > 0) ? throw Oops.Oh("您已提交,无需再次获取验证码") : 1;
|
||||
string _timeCacheKey = "sms_token_" + args.phone;
|
||||
var code = new Random().Next(1001, 9999);
|
||||
if (App.GetConfig<int>("NingboZhiChun:OpenSms") == 1)
|
||||
var entity = await repoutside_wall.AsQueryable().FirstAsync(a => a.communityId == id);
|
||||
if (entity != null)
|
||||
{
|
||||
var cacheTokenValue = _memoryCache.Get<string>(_timeCacheKey);
|
||||
if (string.IsNullOrEmpty(cacheTokenValue))
|
||||
{
|
||||
var rslt = await App.GetConfig<string>("NingboZhiChun:SmsTokenUrl").SetBody(new { username = App.GetConfig<string>("NingboZhiChun:SmsAccount"), password = App.GetConfig<string>("NingboZhiChun:SmsPwd") }, "application/json").SetHttpMethod(HttpMethod.Post).SendAsStringAsync();
|
||||
cacheTokenValue = Newtonsoft.Json.Linq.JObject.Parse(rslt)["data"]["token"].ToString();
|
||||
var cacheEntryOptions = new MemoryCacheEntryOptions()
|
||||
.SetSlidingExpiration(TimeSpan.FromMinutes(100));
|
||||
_memoryCache.Set(_timeCacheKey, cacheTokenValue, cacheEntryOptions);
|
||||
}
|
||||
var sendrslt = await App.GetConfig<string>("NingboZhiChun:SmsSendUrl")
|
||||
.SetHttpMethod(HttpMethod.Post)
|
||||
.SetHeaders(new Dictionary<string, object> { { "Authorization", "Bearer " + cacheTokenValue } })
|
||||
.SetBody(new { phone_number = args.phone, sms_content = $"您的验证码是:{code},10分钟内有效。" })
|
||||
.SendAsStringAsync();
|
||||
if (!Newtonsoft.Json.Linq.JObject.Parse(sendrslt)["issuccess"].Value<bool>())
|
||||
throw Oops.Oh("验证码短信发送失败.");
|
||||
var outside_wall_photos = await repoutside_wall_photo.AsQueryable().Where(a => a.outsidewallId == entity.Id).ToListAsync();
|
||||
entity.outside_wall_photos = outside_wall_photos;
|
||||
var outside_wall_buildings = await repoutside_wall_building.AsQueryable().Where(a => a.outsidewallId == entity.Id).ToListAsync();
|
||||
entity.outside_wall_buildings = outside_wall_buildings;
|
||||
return entity;
|
||||
}
|
||||
await new Entities.nbzc_sms_code
|
||||
{
|
||||
code = code.ToString(),
|
||||
CreatedTime = DateTime.Now,
|
||||
expire_time = DateTime.Now.AddMinutes(10),
|
||||
IsDeleted = false,
|
||||
phone = args.phone
|
||||
}.InsertOrUpdate();
|
||||
return true;
|
||||
return null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
public async Task<dynamic> SubmitSubmit(NbzcSubmitInput args)
|
||||
/// 获取三居系统中的社区
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpGet("communitys")]
|
||||
public async Task<List<SanjuCommunity>> GetCommunitys(string searchkey)
|
||||
{
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = (lastSend == null || lastSend.code != args.code || lastSend.expire_time < DateTime.Now) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
var totalCount = await repPerson.DetachedEntities.Where(a => !a.IsDeleted && a.date == args.date).CountAsync();
|
||||
_ = totalCount >= App.GetConfig<int>("NingboZhiChun:TotalCount") ? throw Oops.Oh("提交失败,名额已满。") : 1;
|
||||
_ = (await repPerson.DetachedEntities.Where(a => !a.IsDeleted && (a.phone == args.phone || a.cardno == args.cardno)).CountAsync() > 0) ? throw Oops.Oh("您已提交,无需再次提交") : 1;
|
||||
var now = DateTime.Now;
|
||||
var model = new Entities.nbzc_person
|
||||
var cacheKey = "cache_GetCommunitys";
|
||||
List<SanjuCommunity> Communitys = null;
|
||||
Communitys = _memoryCache.Get<List<SanjuCommunity>>(cacheKey);
|
||||
if (Communitys == null || Communitys.Count == 0)
|
||||
{
|
||||
address = args.address,
|
||||
phone = args.phone,
|
||||
cardno = args.cardno,
|
||||
CreatedTime = DateTime.Now,
|
||||
date = args.date,
|
||||
hangye = args.hangye,
|
||||
IsDeleted = false,
|
||||
line = args.line,
|
||||
name = args.name,
|
||||
weixin_number = args.weixin_number
|
||||
//var aaaaaaaaaaaaaa = repoutside_wall.AsQueryable().ToList();
|
||||
var SanjuKey = App.GetConfig<string>("OutsideWallSetting:SanjuKey");
|
||||
var timeStamp = GetTimeStamp();
|
||||
var sign = (SanjuKey + timeStamp).ToMD5Encrypt();
|
||||
var GetCommunitysUrl = App.GetConfig<string>("OutsideWallSetting:GetCommunitys");
|
||||
var GetHouseInfoCitysByCommunityUrl = App.GetConfig<string>("OutsideWallSetting:GetHouseInfoCitysByCommunity");
|
||||
Communitys = await string.Format(GetCommunitysUrl, "")
|
||||
.SetHeaders(new Dictionary<string, object> { { "sign", sign }, { "timeStamp", timeStamp } })
|
||||
.GetAsAsync<List<SanjuCommunity>>();
|
||||
_memoryCache.Set(cacheKey, Communitys, DateTime.Now.AddHours(1));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(searchkey))
|
||||
return Communitys.Where(a => a.Name.Contains(searchkey)).ToList();
|
||||
return Communitys;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取三居系统中的社区
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpGet("community/{id}")]
|
||||
public async Task<dynamic> GetCommunityInfo(string id)
|
||||
{
|
||||
var cacheKey = "cache_building_" + id;
|
||||
List<SanjuBuilding> building = _memoryCache.Get<List<SanjuBuilding>>(cacheKey);
|
||||
if (building == null)
|
||||
{
|
||||
var SanjuKey = App.GetConfig<string>("OutsideWallSetting:SanjuKey");
|
||||
var timeStamp = GetTimeStamp();
|
||||
var sign = (SanjuKey + timeStamp).ToMD5Encrypt();
|
||||
var GetHouseInfoCitysByCommunityUrl = App.GetConfig<string>("OutsideWallSetting:GetHouseInfoCitysByCommunity");
|
||||
building = await string.Format(GetHouseInfoCitysByCommunityUrl, id)
|
||||
.SetHeaders(new Dictionary<string, object> { { "sign", sign }, { "timeStamp", timeStamp } })
|
||||
.GetAsAsync<List<SanjuBuilding>>();
|
||||
_memoryCache.Set(cacheKey, building, DateTime.Now.AddHours(1));
|
||||
}
|
||||
return building;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取时间戳
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string GetTimeStamp()
|
||||
{
|
||||
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
|
||||
return Convert.ToInt64(ts.TotalMilliseconds).ToString();
|
||||
}
|
||||
/// <summary>
|
||||
/// 上传文件
|
||||
/// </summary>
|
||||
/// <param name="file"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpPost("sysFileInfo/upload")]
|
||||
public async Task<string> UploadFileDefault(IFormFile file)
|
||||
{
|
||||
return await UploadFile(file, _options.Value.Default);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除文件
|
||||
/// </summary>
|
||||
/// <param name="file"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpGet("sysFileInfo/delete/{id}")]
|
||||
public async Task DeleteFile(string id)
|
||||
{
|
||||
var entity = await rep_SysFile.AsQueryable().FirstAsync(a => a.Id == id);
|
||||
_ = entity == null ? throw Oops.Oh("参数异常") : "";
|
||||
var pathType = _options.Value.Default.path;
|
||||
var filePath = Path.Combine(App.WebHostEnvironment.WebRootPath, pathType);
|
||||
File.Delete(Path.Combine(filePath, entity.FileObjectName));
|
||||
await rep_SysFile.DeleteAsync(id);
|
||||
}
|
||||
/// <summary>
|
||||
/// 预览文件
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[HttpGet("sysFileInfo/preview/{id}")]
|
||||
public async Task<IActionResult> PreviewFileInfo(string id)
|
||||
{
|
||||
var file = await rep_SysFile.AsQueryable().FirstAsync(a => a.Id == id);
|
||||
_ = file == null ? throw Oops.Oh("参数异常") : "";
|
||||
var filePath = Path.Combine(App.WebHostEnvironment.WebRootPath, file.FileBucket, file.FileObjectName);
|
||||
var fileName = HttpUtility.UrlEncode(file.FileOriginName?.Replace(" ", null).Replace("\"", null), Encoding.UTF8);
|
||||
return new FileStreamResult(new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite), Ewide.Core.Util.MimeMapping.GetMimeMapping(filePath)) { FileDownloadName = fileName };
|
||||
//return await DownloadFileInfo(input);
|
||||
}
|
||||
/// <summary>
|
||||
/// 上传文件
|
||||
/// </summary>
|
||||
/// <param name="file"></param>
|
||||
/// <param name="pathType"></param>
|
||||
/// <returns></returns>
|
||||
private static async Task<string> UploadFile(IFormFile file, FileDescription fileOption)
|
||||
{
|
||||
var pathType = fileOption.path;
|
||||
var mimeType = Ewide.Core.Util.MimeMapping.GetMimeMapping(file.FileName);
|
||||
if (!fileOption.contentType.Contains(mimeType))
|
||||
{
|
||||
throw Oops.Oh("上传文件mimeType错误!");
|
||||
}
|
||||
var fileId = Guid.NewGuid().ToString();
|
||||
var fileSizeKb = (long)(file.Length / 1024.0); // 文件大小KB
|
||||
if (fileSizeKb > fileOption.maxSize)
|
||||
{
|
||||
throw Oops.Oh("文件大小超过最大限制!");
|
||||
}
|
||||
var originalFilename = file.FileName; // 文件原始名称
|
||||
var fileSuffix = Path.GetExtension(file.FileName).ToLower(); // 文件后缀
|
||||
var finalName = fileId + fileSuffix; // 生成文件的最终名称
|
||||
var filePath = Path.Combine(App.WebHostEnvironment.WebRootPath, pathType);
|
||||
if (!Directory.Exists(filePath))
|
||||
Directory.CreateDirectory(filePath);
|
||||
|
||||
using (var stream = File.Create(Path.Combine(filePath, finalName)))
|
||||
{
|
||||
await file.CopyToAsync(stream);
|
||||
}
|
||||
|
||||
var sysFileInfo = new SysFile
|
||||
{
|
||||
Id = fileId,
|
||||
FileLocation = (int)FileLocation.LOCAL,
|
||||
FileBucket = pathType,
|
||||
FileObjectName = finalName,
|
||||
FileOriginName = originalFilename,
|
||||
FileSuffix = fileSuffix.TrimStart('.'),
|
||||
FileSizeKb = fileSizeKb
|
||||
};
|
||||
model = await model.InsertOrUpdate();
|
||||
lastSend.IsDeleted = true;
|
||||
await repSmsCode.UpdateIncludeAsync(lastSend, new string[] { nameof(lastSend.IsDeleted) });
|
||||
var token = JWTEncryption.Encrypt(new Dictionary<string, object>() // 加密
|
||||
{
|
||||
{ "UserId", model.Id },
|
||||
{ "Account",model.phone }
|
||||
});
|
||||
return new { success = true, token };
|
||||
//await rep_SysFile.InsertAsync(sysFileInfo);
|
||||
await sysFileInfo.InsertAsync();
|
||||
|
||||
return fileId;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取我的报名
|
||||
/// 提交
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("getmyinfo")]
|
||||
public async Task<dynamic> GetMyInfo(NbzcGetMyInfoInput args)
|
||||
[Consumes("application/json", "multipart/form-data")]
|
||||
[HttpPost("submit")]
|
||||
[AllowAnonymous]
|
||||
public async Task<dynamic> Submit([FromForm] OutsideWallInput args)
|
||||
{
|
||||
var newToken = args.token;
|
||||
nbzc_person entity = null;
|
||||
if (!string.IsNullOrEmpty(args.token))
|
||||
try
|
||||
{
|
||||
var tokenData = JWTEncryption.ReadJwtToken(args.token);
|
||||
//_ = (tokenData == null) ? throw Oops.Oh("您还没有提交过或者手机号码填写错误") : 1;
|
||||
if (tokenData == null)
|
||||
repoutside_wall.Ado.BeginTran();
|
||||
var wall = args.Adapt<outside_wall>();
|
||||
wall.Id = Guid.NewGuid().ToString();
|
||||
wall.createtime = DateTime.Now;
|
||||
wall.isdeleted = 0;
|
||||
wall = await repoutside_wall.InsertReturnEntityAsync(wall);
|
||||
if (args.fileList != null)
|
||||
{
|
||||
newToken = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
var userId = tokenData.Claims.Where(a => a.Type == "UserId").FirstOrDefault().Value;
|
||||
entity = await repPerson.DetachedEntities.Where(a => a.Id == userId).FirstOrDefaultAsync();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_ = (string.IsNullOrEmpty(args.code)) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
_ = (lastSend == null || lastSend.code != args.code || lastSend.expire_time < DateTime.Now) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
entity = await repPerson.DetachedEntities.Where(a => a.phone == args.phone && !a.IsDeleted).FirstOrDefaultAsync();
|
||||
if (entity != null)
|
||||
newToken = JWTEncryption.Encrypt(new Dictionary<string, object>()
|
||||
foreach (var item in args.fileList)
|
||||
{
|
||||
{ "UserId", entity.Id },
|
||||
{ "Account",entity.phone }
|
||||
});
|
||||
await repoutside_wall_photo.InsertReturnEntityAsync(new outside_wall_photo
|
||||
{
|
||||
outsidewallId = wall.Id,
|
||||
sysfileid = item
|
||||
});
|
||||
}
|
||||
}
|
||||
foreach (var item in args.buildings)
|
||||
{
|
||||
var build = item.Adapt<outside_wall_building>();
|
||||
build.Id = Guid.NewGuid().ToString();
|
||||
build.outsidewallId = wall.Id;
|
||||
build.BuildingId = build.Id;
|
||||
build.createtime = DateTime.Now;
|
||||
build = await repoutside_wall_building.InsertReturnEntityAsync(build);
|
||||
if (item.problemfiles != null)
|
||||
{
|
||||
foreach (var item1 in item.problemfiles)
|
||||
{
|
||||
await repoutside_wall_building_photo.InsertReturnEntityAsync(new outside_wall_building_photo
|
||||
{
|
||||
outsidewallBuildingId = build.Id,
|
||||
sysfileid = item1.file,
|
||||
toward = item1.Toward
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
repoutside_wall.Ado.CommitTran();
|
||||
return "提交成功";
|
||||
}
|
||||
return new { success = true, entity, token = newToken };
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取时间线路人数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
||||
[Route("getnumber")]
|
||||
public async Task<dynamic> GetNumber(NbzcGetNumberInput args)
|
||||
{
|
||||
var n = await repPerson.DetachedEntities.Where(a => !a.IsDeleted && a.date == args.date).CountAsync();
|
||||
return new { success = true, n = App.GetConfig<int>("NingboZhiChun:TotalCount") - n };
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取清单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Route("GetPersonList")]
|
||||
public async Task<dynamic> GetPersonList(NbzcGetListInput args)
|
||||
{
|
||||
var list = await repPerson.DetachedEntities.Where(a => !a.IsDeleted).OrderByDescending(a => a.CreatedTime).ToListAsync();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 导出Excel
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Route("export_excel")]
|
||||
public async Task<dynamic> ExportExcel(NbzcGetListInput args)
|
||||
{
|
||||
var list = await repPerson.DetachedEntities.Where(a => !a.IsDeleted).OrderByDescending(a => a.CreatedTime).ToListAsync();
|
||||
var filepath = Tools.ExcelHelper.WriteExcelNingBoZhiChun(list);
|
||||
return new FileStreamResult(new FileStream(filepath, FileMode.Open), "application/octet-stream") { FileDownloadName = filepath };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[UnitOfWork]
|
||||
[Route("query")]
|
||||
public async Task<dynamic> Query(NbzcQueryInput args)
|
||||
{
|
||||
List<nbzc_person> result = null;
|
||||
var iquery = repPerson.DetachedEntities.Where(a => !a.IsDeleted);
|
||||
if (args == null)
|
||||
result = await iquery.ToListAsync();
|
||||
else
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(args.date))
|
||||
iquery = iquery.Where(a => a.date == args.date);
|
||||
if (!string.IsNullOrEmpty(args.name))
|
||||
iquery = iquery.Where(a => a.name.Contains(args.name));
|
||||
if (!string.IsNullOrEmpty(args.phone))
|
||||
iquery = iquery.Where(a => a.phone.Contains(args.phone));
|
||||
if (!string.IsNullOrEmpty(args.line))
|
||||
iquery = iquery.Where(a => a.line == args.line);
|
||||
result = await iquery.ToListAsync();
|
||||
repoutside_wall.Ado.RollbackTran();
|
||||
throw Oops.Oh(ex.Message + ex.StackTrace);
|
||||
}
|
||||
return new { success = true, result };
|
||||
//var lastSend = await repSmsCode.DetachedEntities.Where(p => p.phone == args.phone && !p.IsDeleted).OrderByDescending(a => a.CreatedTime).FirstOrDefaultAsync();
|
||||
//_ = (lastSend == null || lastSend.code != args.code || lastSend.expire_time < DateTime.Now) ? throw Oops.Oh("验证码错误或已失效") : 1;
|
||||
//var totalCount = await repPerson.DetachedEntities.Where(a => !a.IsDeleted && a.date == args.date).CountAsync();
|
||||
//_ = totalCount >= App.GetConfig<int>("NingboZhiChun:TotalCount") ? throw Oops.Oh("提交失败,名额已满。") : 1;
|
||||
//_ = (await repPerson.DetachedEntities.Where(a => !a.IsDeleted && (a.phone == args.phone || a.cardno == args.cardno)).CountAsync() > 0) ? throw Oops.Oh("您已提交,无需再次提交") : 1;
|
||||
//var now = DateTime.Now;
|
||||
//var model = new Entities.nbzc_person
|
||||
//{
|
||||
// address = args.address,
|
||||
// phone = args.phone,
|
||||
// cardno = args.cardno,
|
||||
// CreatedTime = DateTime.Now,
|
||||
// date = args.date,
|
||||
// hangye = args.hangye,
|
||||
// IsDeleted = false,
|
||||
// line = args.line,
|
||||
// name = args.name,
|
||||
// weixin_number = args.weixin_number
|
||||
//};
|
||||
//model = await model.InsertOrUpdate();
|
||||
//lastSend.IsDeleted = true;
|
||||
//await repSmsCode.UpdateIncludeAsync(lastSend, new string[] { nameof(lastSend.IsDeleted) });
|
||||
//var token = JWTEncryption.Encrypt(new Dictionary<string, object>() // 加密
|
||||
//{
|
||||
// { "UserId", model.Id },
|
||||
// { "Account",model.phone }
|
||||
//});
|
||||
//return new { success = true, token };
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
96
20220330_Vote/Vote.Services/Dto/OutsideWallInput.cs
Normal file
96
20220330_Vote/Vote.Services/Dto/OutsideWallInput.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using Furion.DatabaseAccessor;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Vote.Services.Entities;
|
||||
|
||||
namespace Vote.Services.Dto
|
||||
{
|
||||
public class aaaaa
|
||||
{
|
||||
public string appid { get; set; }
|
||||
public OutsideWallInput wall { get; set; }
|
||||
public FormFileCollection file { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class OutsideWallInput
|
||||
{
|
||||
public string communityId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string communityName { get; set; }
|
||||
public string deliveryear { get; set; }
|
||||
public List<string> fileList { get; set; }
|
||||
public decimal buildcount { get; set; }
|
||||
public decimal householdcount { get; set; }
|
||||
public decimal totalfloorage { get; set; }
|
||||
public int isExistProblem { get; set; }
|
||||
public int problemismodify { get; set; }
|
||||
public string problemmodifyunitname { get; set; }
|
||||
public string problemmodifyisagain { get; set; }
|
||||
public string contract { get; set; }
|
||||
public List<SanjuBuilding> buildings { get; set; }
|
||||
}
|
||||
public class SanjuCommunity
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string ID { get; set; }
|
||||
public string Code { get; set; }
|
||||
}
|
||||
public class SanjuBuilding
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public string AreaName { get; set; }
|
||||
public string RoadName { get; set; }
|
||||
public string CompletedDate { get; set; }
|
||||
public string BuildingName { get; set; }
|
||||
public string Address { get; set; }
|
||||
public int LevelCount { get; set; }
|
||||
public int HouseHolds { get; set; }
|
||||
public string BuildingUnit { get; set; }
|
||||
public string DesingerUnit { get; set; }
|
||||
public string ConstructionUnit { get; set; }
|
||||
public string MonitorUnit { get; set; }
|
||||
public string WuYeUnit { get; set; }
|
||||
public decimal AreaCount { get; set; }
|
||||
public List<string> curwallproblems { get; set; } = new List<string>();
|
||||
public string curwallproblemother { get; set; }
|
||||
public string wallproblemsfirst { get; set; }
|
||||
public string firstproblemdate { get; set; }
|
||||
public string problemfrequency { get; set; }
|
||||
public List<string> problemseason { get; set; } = new List<string>();
|
||||
public List<string> wallproblemtoward { get; set; } = new List<string>();
|
||||
public List<ProblemToward> problemfiles { get; set; } = new List<ProblemToward>();
|
||||
//public List<string> problemfiles2 { get; set; }
|
||||
//public List<string> problemfiles3 { get; set; }
|
||||
//public List<string> problemfiles4 { get; set; }
|
||||
public string problemfanwei { get; set; }
|
||||
public List<string> problemheight { get; set; } = new List<string>();
|
||||
public List<string> diaoluowu { get; set; } = new List<string>();
|
||||
}
|
||||
public class ProblemToward
|
||||
{
|
||||
public string Toward { get; set; }
|
||||
public string file { get; set; }
|
||||
}
|
||||
public class Mapper : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.ForType<SanjuBuilding, outside_wall_building>()
|
||||
.Map(dest => dest.curwallproblems, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.curwallproblems))
|
||||
.Map(dest => dest.problemseason, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.problemseason))
|
||||
.Map(dest => dest.wallproblemtoward, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.wallproblemtoward))
|
||||
//.Map(dest => dest.problemfiles, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.problemfiles))
|
||||
.Map(dest => dest.problemheight, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.problemheight))
|
||||
.Map(dest => dest.diaoluowu, src => Newtonsoft.Json.JsonConvert.SerializeObject(src.diaoluowu));
|
||||
}
|
||||
}
|
||||
}
|
||||
106
20220330_Vote/Vote.Services/Entities/outside_wall.cs
Normal file
106
20220330_Vote/Vote.Services/Entities/outside_wall.cs
Normal file
@@ -0,0 +1,106 @@
|
||||
using Furion.DatabaseAccessor;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class outside_wall
|
||||
{
|
||||
/// <summary>
|
||||
/// Id主键
|
||||
/// </summary>
|
||||
[DisplayName("Id主键")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 社区id,关联三居系统社区id
|
||||
/// </summary>
|
||||
[DisplayName("社区id,关联三居系统社区id")]
|
||||
public string communityId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 社区/小区名称
|
||||
/// </summary>
|
||||
[DisplayName("社区/小区名称")]
|
||||
public string communityName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 交付年份
|
||||
/// </summary>
|
||||
[DisplayName("交付年份")]
|
||||
public string deliveryear { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 楼栋数
|
||||
/// </summary>
|
||||
[DisplayName("楼栋数")]
|
||||
public decimal buildcount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 住户总数
|
||||
/// </summary>
|
||||
[DisplayName("住户总数")]
|
||||
public decimal? householdcount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总建筑面积
|
||||
/// </summary>
|
||||
[DisplayName("总建筑面积")]
|
||||
public decimal? totalfloorage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否存在外墙问题
|
||||
/// </summary>
|
||||
[DisplayName("是否存在外墙问题")]
|
||||
public int? isExistProblem { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题发生后是否请人修复了
|
||||
/// </summary>
|
||||
[DisplayName("问题发生后是否请人修复了")]
|
||||
public int? problemismodify { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 请提供修复单位的名称
|
||||
/// </summary>
|
||||
[DisplayName("请提供修复单位的名称")]
|
||||
public string problemmodifyunitname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修复后的部位是否再次发生问题
|
||||
/// </summary>
|
||||
[DisplayName("修复后的部位是否再次发生问题")]
|
||||
public int? problemmodifyisagain { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 联系方式
|
||||
/// </summary>
|
||||
[DisplayName("联系方式")]
|
||||
public string contract { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// createtime
|
||||
/// </summary>
|
||||
[DisplayName("createtime")]
|
||||
public DateTime? createtime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// isdeleted
|
||||
/// </summary>
|
||||
[DisplayName("isdeleted")]
|
||||
public int? isdeleted { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public List<outside_wall_photo> outside_wall_photos { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public List<outside_wall_building> outside_wall_buildings { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
159
20220330_Vote/Vote.Services/Entities/outside_wall_building.cs
Normal file
159
20220330_Vote/Vote.Services/Entities/outside_wall_building.cs
Normal file
@@ -0,0 +1,159 @@
|
||||
using Furion.DatabaseAccessor;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class outside_wall_building
|
||||
{
|
||||
/// <summary>
|
||||
/// Id主键
|
||||
/// </summary>
|
||||
[DisplayName("Id主键")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外墙id
|
||||
/// </summary>
|
||||
[DisplayName("外墙id")]
|
||||
public string outsidewallId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 幢Id 关联三居幢id
|
||||
/// </summary>
|
||||
[DisplayName("幢Id 关联三居幢id")]
|
||||
public string BuildingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 幢名称
|
||||
/// </summary>
|
||||
[DisplayName("幢名称")]
|
||||
public string BuildingName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 地址
|
||||
/// </summary>
|
||||
[DisplayName("地址")]
|
||||
public string Address { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 层数
|
||||
/// </summary>
|
||||
[DisplayName("层数")]
|
||||
public int? LevelCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总户数
|
||||
/// </summary>
|
||||
[DisplayName("总户数")]
|
||||
public int? Households { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 建设单位
|
||||
/// </summary>
|
||||
[DisplayName("建设单位")]
|
||||
public string BuildingUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 设计单位
|
||||
/// </summary>
|
||||
[DisplayName("设计单位")]
|
||||
public string DesingerUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 施工单位
|
||||
/// </summary>
|
||||
[DisplayName("施工单位")]
|
||||
public string ConstructionUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 监理单位
|
||||
/// </summary>
|
||||
[DisplayName("监理单位")]
|
||||
public string MonitorUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 物业单位
|
||||
/// </summary>
|
||||
[DisplayName("物业单位")]
|
||||
public string WuYeUnit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 墙体问题的类型是
|
||||
/// </summary>
|
||||
[DisplayName("墙体问题的类型是")]
|
||||
public string curwallproblems { get; set; }
|
||||
/// <summary>
|
||||
/// 墙体问题的类型-其他
|
||||
/// </summary>
|
||||
[DisplayName("墙体问题的类型-其他")]
|
||||
public string curwallproblemother { get; set; }
|
||||
/// <summary>
|
||||
/// 哪个问题最先开始出现
|
||||
/// </summary>
|
||||
[DisplayName("哪个问题最先开始出现")]
|
||||
public string wallproblemsfirst { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第一次出现墙体问题是建成后____年
|
||||
/// </summary>
|
||||
[DisplayName("第一次出现墙体问题是建成后____年")]
|
||||
public string firstproblemdate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 墙体脱落发生频率如何
|
||||
/// </summary>
|
||||
[DisplayName("墙体脱落发生频率如何")]
|
||||
public string problemfrequency { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 问题多发生在哪个季节
|
||||
/// </summary>
|
||||
[DisplayName("问题多发生在哪个季节")]
|
||||
public string problemseason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 墙体问题发生的朝向是哪面
|
||||
/// </summary>
|
||||
[DisplayName("墙体问题发生的朝向是哪面")]
|
||||
public string wallproblemtoward { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 发生外墙问题的范围有多大
|
||||
/// </summary>
|
||||
[DisplayName("发生外墙问题的范围有多大")]
|
||||
public string problemfanwei { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外墙问题发生在哪个高度
|
||||
/// </summary>
|
||||
[DisplayName("外墙问题发生在哪个高度")]
|
||||
public string problemheight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 掉落物是什么
|
||||
/// </summary>
|
||||
[DisplayName("掉落物是什么")]
|
||||
public string diaoluowu { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// createtime
|
||||
/// </summary>
|
||||
[DisplayName("createtime")]
|
||||
public DateTime? createtime { get; set; }
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public List<outside_wall_building_photo> outside_wall_building_photos { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using Ewide.Core;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class outside_wall_building_photo
|
||||
{
|
||||
/// <summary>
|
||||
/// 朝向
|
||||
/// </summary>
|
||||
[DisplayName("朝向")]
|
||||
public string toward { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// outsidewallBuildingId
|
||||
/// </summary>
|
||||
[DisplayName("outsidewallBuildingId")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string outsidewallBuildingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// sysfileid
|
||||
/// </summary>
|
||||
[DisplayName("sysfileid")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string sysfileid { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
36
20220330_Vote/Vote.Services/Entities/outside_wall_photo.cs
Normal file
36
20220330_Vote/Vote.Services/Entities/outside_wall_photo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using Furion.DatabaseAccessor;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Vote.Services.Entities
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class outside_wall_photo
|
||||
{
|
||||
/// <summary>
|
||||
/// outsidewallId
|
||||
/// </summary>
|
||||
[DisplayName("outsidewallId")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string outsidewallId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// sysfileid
|
||||
/// </summary>
|
||||
[DisplayName("sysfileid")]
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string sysfileid { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -98,6 +98,80 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Vote.Services.ApiController.OutsideWallService">
|
||||
<summary>
|
||||
外墙调查问卷
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.#ctor(Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_building_photo},Ewide.Core.SqlSugarRepository{Vote.Services.Entities.outside_wall_photo},Microsoft.Extensions.Caching.Memory.IMemoryCache,Ewide.Core.SqlSugarRepository{Ewide.Core.SysFile},Microsoft.Extensions.Options.IOptions{Ewide.Core.UploadFileOptions})">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="_repoutside_wall"></param>
|
||||
<param name="_repoutside_wall_building"></param>
|
||||
<param name="_repoutside_wall_building_photo"></param>
|
||||
<param name="_repoutside_wall_photo"></param>
|
||||
<param name="memoryCache"></param>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.Query(System.String)">
|
||||
<summary>
|
||||
获取三居系统中的社区
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.GetCommunitys(System.String)">
|
||||
<summary>
|
||||
获取三居系统中的社区
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.GetCommunityInfo(System.String)">
|
||||
<summary>
|
||||
获取三居系统中的社区
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.GetTimeStamp">
|
||||
<summary>
|
||||
获取时间戳
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.UploadFileDefault(Microsoft.AspNetCore.Http.IFormFile)">
|
||||
<summary>
|
||||
上传文件
|
||||
</summary>
|
||||
<param name="file"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.DeleteFile(System.String)">
|
||||
<summary>
|
||||
删除文件
|
||||
</summary>
|
||||
<param name="file"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.PreviewFileInfo(System.String)">
|
||||
<summary>
|
||||
预览文件
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.UploadFile(Microsoft.AspNetCore.Http.IFormFile,Ewide.Core.FileDescription)">
|
||||
<summary>
|
||||
上传文件
|
||||
</summary>
|
||||
<param name="file"></param>
|
||||
<param name="pathType"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Vote.Services.ApiController.OutsideWallService.Submit(Vote.Services.Dto.OutsideWallInput)">
|
||||
<summary>
|
||||
提交
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Vote.Services.ApiController.ProjectsService">
|
||||
<summary>
|
||||
项目
|
||||
@@ -315,6 +389,16 @@
|
||||
希望上传到的目录和文件名 , 如果为空则上传到根目录 ,大小写敏感! ,斜杠必须使用/ , eg: files/COC/202011/11/2020KDFJ0075.pdf
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Dto.OutsideWallInput">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.OutsideWallInput.communityName">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Dto.ProjectsInput.type">
|
||||
<summary>
|
||||
项目类型
|
||||
@@ -520,6 +604,236 @@
|
||||
过期时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.outside_wall">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.Id">
|
||||
<summary>
|
||||
Id主键
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.communityId">
|
||||
<summary>
|
||||
社区id,关联三居系统社区id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.communityName">
|
||||
<summary>
|
||||
社区/小区名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.deliveryear">
|
||||
<summary>
|
||||
交付年份
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.buildcount">
|
||||
<summary>
|
||||
楼栋数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.householdcount">
|
||||
<summary>
|
||||
住户总数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.totalfloorage">
|
||||
<summary>
|
||||
总建筑面积
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.isExistProblem">
|
||||
<summary>
|
||||
是否存在外墙问题
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.problemismodify">
|
||||
<summary>
|
||||
问题发生后是否请人修复了
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.problemmodifyunitname">
|
||||
<summary>
|
||||
请提供修复单位的名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.problemmodifyisagain">
|
||||
<summary>
|
||||
修复后的部位是否再次发生问题
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.contract">
|
||||
<summary>
|
||||
联系方式
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.createtime">
|
||||
<summary>
|
||||
createtime
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall.isdeleted">
|
||||
<summary>
|
||||
isdeleted
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.outside_wall_building">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.Id">
|
||||
<summary>
|
||||
Id主键
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.outsidewallId">
|
||||
<summary>
|
||||
外墙id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.BuildingId">
|
||||
<summary>
|
||||
幢Id 关联三居幢id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.BuildingName">
|
||||
<summary>
|
||||
幢名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.Address">
|
||||
<summary>
|
||||
地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.LevelCount">
|
||||
<summary>
|
||||
层数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.Households">
|
||||
<summary>
|
||||
总户数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.BuildingUnit">
|
||||
<summary>
|
||||
建设单位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.DesingerUnit">
|
||||
<summary>
|
||||
设计单位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.ConstructionUnit">
|
||||
<summary>
|
||||
施工单位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.MonitorUnit">
|
||||
<summary>
|
||||
监理单位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.WuYeUnit">
|
||||
<summary>
|
||||
物业单位
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.curwallproblems">
|
||||
<summary>
|
||||
墙体问题的类型是
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.curwallproblemother">
|
||||
<summary>
|
||||
墙体问题的类型-其他
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.wallproblemsfirst">
|
||||
<summary>
|
||||
哪个问题最先开始出现
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.firstproblemdate">
|
||||
<summary>
|
||||
第一次出现墙体问题是建成后____年
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.problemfrequency">
|
||||
<summary>
|
||||
墙体脱落发生频率如何
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.problemseason">
|
||||
<summary>
|
||||
问题多发生在哪个季节
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.wallproblemtoward">
|
||||
<summary>
|
||||
墙体问题发生的朝向是哪面
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.problemfanwei">
|
||||
<summary>
|
||||
发生外墙问题的范围有多大
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.problemheight">
|
||||
<summary>
|
||||
外墙问题发生在哪个高度
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.diaoluowu">
|
||||
<summary>
|
||||
掉落物是什么
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building.createtime">
|
||||
<summary>
|
||||
createtime
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.outside_wall_building_photo">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building_photo.toward">
|
||||
<summary>
|
||||
朝向
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building_photo.outsidewallBuildingId">
|
||||
<summary>
|
||||
outsidewallBuildingId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_building_photo.sysfileid">
|
||||
<summary>
|
||||
sysfileid
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.outside_wall_photo">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_photo.outsidewallId">
|
||||
<summary>
|
||||
outsidewallId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Vote.Services.Entities.outside_wall_photo.sysfileid">
|
||||
<summary>
|
||||
sysfileid
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Vote.Services.Entities.Projects">
|
||||
<summary>
|
||||
项目表
|
||||
|
||||
Reference in New Issue
Block a user