洁 任 2026-02-04 14:05:09 +08:00
commit cdfc62bab1
9 changed files with 493 additions and 168 deletions

View File

@ -52,6 +52,7 @@
<Folder Include="BaseApp\Permission\" />
<Folder Include="BaseApp\WFTask\Response\新文件夹\" />
<Folder Include="ServiceApp\DroneCaseInfoTaskManage\Response\" />
<Folder Include="ServiceApp\MiManager\Response\" />
</ItemGroup>
</Project>

View File

@ -1,9 +1,11 @@
using DocumentFormat.OpenXml.Office.CustomUI;
using Infrastructure;
using OpenAuth.App.BaseApp.Base;
using OpenAuth.App.Interface;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.App.ServiceApp.Request;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using SqlSugar;
@ -26,7 +28,7 @@ namespace OpenAuth.App
/// 分页
/// </summary>
public async Task<Response<PageInfo<List<MiViolationReport>>>> LoadAllPage(PageReq request)
{
{
RefAsync<int> totalCount = 0;
var result = new PageInfo<SysRole>();
var list = await base.Repository.AsQueryable()
@ -53,7 +55,7 @@ namespace OpenAuth.App
/// 添加
/// </summary>
public async Task<Response<bool>> Add(MiViolationReport model)
{
{
var flag = await Repository.InsertAsync(model);
return new Response<bool>
@ -71,14 +73,14 @@ namespace OpenAuth.App
/// <param name="ids"></param>
public async Task<Response<bool>> Delete(List<MiViolationReport> models)
{
var flag = await Repository.DeleteAsync(models);
var flag = await Repository.DeleteAsync(models);
return new Response<bool>
{
Result = flag,
Message = flag == true ? "success" : "error"
};
return new Response<bool>
{
Result = flag,
Message = flag == true ? "success" : "error"
};
}
/// <summary>
@ -104,7 +106,7 @@ namespace OpenAuth.App
public async Task<Response<bool>> AssignModule()
{
using (var uwo = UnitWork.CreateContext())
{
{
//await uwo.SysRoleElement.InsertRangeAsync(model.ElementIds.Select(a => new SysRoleElement { RoleId = model.RoleId, ElementId = a }).ToList());
var flag = uwo.Commit();
@ -116,5 +118,61 @@ namespace OpenAuth.App
}
}
public async Task<Response<bool>> Report(MiViolationReportRequest request)
{
using (var uwo = UnitWork.CreateContext())
{
//上报信息
var model = request.MapTo<MiViolationReport>();
model.Id = Guid.NewGuid().ToString();
model.Status = "待处理";
//现场照片
var photos = request.SencePhotos.MapToList<MiScenePhoto>();
photos.ForEach(a =>
{
a.Id = Guid.NewGuid().ToString();
a.ViolationReportId = model.Id;
});
var vehicleList = new List<MiVehicle>();
var vehicleImageList = new List<MiVehicleImage>();
foreach (var item in request.Vehicles)
{
//车辆信息
var vehicle = item.MapTo<MiVehicle>();
vehicle.Id = Guid.NewGuid().ToString();
vehicle.ViolationReportId = model.Id;
//车辆图片
var images = item.VehicleImages.MapToList<MiVehicleImage>();
images.ForEach(a =>
{
a.Id = Guid.NewGuid().ToString();
a.ViolationReportId = model.Id;
a.ParkingId = model.ParkingId;
a.VehicleId = vehicle.Id;
vehicleImageList.Add(a);
});
vehicleList.Add(vehicle);
}
await uwo.MiViolationReport.InsertAsync(model);
await uwo.MiScenePhoto.InsertRangeAsync(photos);
await uwo.MiVehicle.InsertRangeAsync(vehicleList);
await uwo.MiVehicleImage.InsertRangeAsync(vehicleImageList);
var flag = uwo.Commit();
return new Response<bool>
{
Result = flag,
Message = flag == true ? "success" : "error"
};
}
}
}
}

View File

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App.ServiceApp.Request
{
public class MiViolationReportRequest
{
/// <summary>
/// Desc:标题
/// Default:
/// Nullable:False
/// </summary>
public string Title { get; set; }
/// <summary>
/// Desc:当事人姓名
/// Default:
/// Nullable:True
/// </summary>
public string PartyName { get; set; }
/// <summary>
/// Desc:当事人电话
/// Default:
/// Nullable:True
/// </summary>
public string PartyPhone { get; set; }
/// <summary>
/// Desc:违法类型
/// Default:
/// Nullable:True
/// </summary>
public string ViolationType { get; set; }
/// <summary>
/// Desc:问题描述
/// Default:
/// Nullable:True
/// </summary>
public string ProblemDescription { get; set; }
/// <summary>
/// Desc:处理意见
/// Default:
/// Nullable:True
/// </summary>
public string HandlingOpinion { get; set; }
/// <summary>
/// Desc:停车场 id
/// Default:
/// Nullable:True
/// </summary>
public string ParkingId { get; set; }
/// <summary>
/// Desc:经度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lng { get; set; }
/// <summary>
/// Desc:纬度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lat { get; set; }
/// <summary>
/// Desc:处理单位
/// Default:
/// Nullable:True
/// </summary>
public string HandlingUnit { get; set; }
/// <summary>
/// Desc:处理人
/// Default:
/// Nullable:True
/// </summary>
public string Handler { get; set; }
/// <summary>
/// Desc:处理时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? HandlingTime { get; set; }
/// <summary>
/// Desc:上报时间
/// Default:DateTime.Now
/// Nullable:True
/// </summary>
public DateTime? ReportTime { get; set; }
/// <summary>
/// Desc:上报人
/// Default:
/// Nullable:True
/// </summary>
public string Reporter { get; set; }
/// <summary>
/// Desc:盗采点id
/// Default:
/// Nullable:True
/// </summary>
public string MinePointId { get; set; }
/// <summary>
/// 上报单位
/// </summary>
public string ReportUnit { get; set; }
/// <summary>
/// 现场图片
/// </summary>
public List<SencePhoto> SencePhotos { get; set; }
/// <summary>
/// 车辆信息
/// </summary>
public List<Vehicle> Vehicles { get; set; }
}
}

View File

@ -0,0 +1,22 @@
using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.Office2010.Excel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App.ServiceApp.Request
{
/// <summary>
/// 现场图片
/// </summary>
public class SencePhoto
{
public string Image { get; set; }
public double Lng { get; set; }
public double Lat { get; set; }
public double Angle { get; set; }
public DateTime CreateTime { get; set; }
}
}

View File

@ -0,0 +1,47 @@
using DocumentFormat.OpenXml.Office2010.Excel;
using OpenAuth.App.ServiceApp.MiManager.Request;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App.ServiceApp.Request
{
/// <summary>
/// 车辆信息
/// </summary>
public class Vehicle
{
/// <summary>
/// 牌照/编码
/// </summary>
public string LicensePlate { get; set; }
/// <summary>
/// 类型
/// </summary>
public string Type { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 身份证
/// </summary>
public string IdCard { get; set; }
/// <summary>
/// 电话
/// </summary>
public string Phone { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public string CreateTime { get; set; }
/// <summary>
/// 图片
/// </summary>
public List<VehicleImage> VehicleImages { get; set; }
}
}

View File

@ -0,0 +1,31 @@
using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.Office2010.Excel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App.ServiceApp.MiManager.Request
{
/// <summary>
/// 车辆图片
/// </summary>
public class VehicleImage
{
/// <summary>
/// 图片
/// </summary>
public string Image { get; set; }
public string Lng { get; set; }
public string Lat { get; set; }
/// <summary>
/// 角度
/// </summary>
public string Angle { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public string CreateTime { get; set; }
}
}

View File

@ -11,65 +11,70 @@ namespace OpenAuth.Repository.Domain
[SugarTable("mi_vehicle_image")]
public partial class MiVehicleImage
{
public MiVehicleImage(){
public MiVehicleImage()
{
}
/// <summary>
/// Desc:图片ID
/// Default:
/// Nullable:False
/// </summary>
public string Id {get;set;}
}
/// <summary>
/// Desc:图片ID
/// Default:
/// Nullable:False
/// </summary>
public string Id { get; set; }
/// <summary>
/// Desc:违法信息id
/// Default:
/// Nullable:True
/// </summary>
public string ViolationReportId {get;set;}
/// <summary>
/// Desc:违法信息id
/// Default:
/// Nullable:True
/// </summary>
public string ViolationReportId { get; set; }
/// <summary>
/// Desc:图片
/// Default:
/// Nullable:False
/// </summary>
public string Image {get;set;}
/// <summary>
/// Desc:图片
/// Default:
/// Nullable:False
/// </summary>
public string Image { get; set; }
/// <summary>
/// Desc:经度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lng {get;set;}
/// <summary>
/// Desc:经度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lng { get; set; }
/// <summary>
/// Desc:纬度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lat {get;set;}
/// <summary>
/// Desc:纬度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lat { get; set; }
/// <summary>
/// Desc:拍摄角度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Angle {get;set;}
/// <summary>
/// Desc:拍摄角度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Angle { get; set; }
/// <summary>
/// Desc:停车场 id
/// Default:
/// Nullable:True
/// </summary>
public string ParkingId {get;set;}
/// <summary>
/// Desc:停车场 id
/// Default:
/// Nullable:True
/// </summary>
public string ParkingId { get; set; }
/// <summary>
/// Desc:创建时间
/// Default:DateTime.Now
/// Nullable:True
/// </summary>
public DateTime? CreateTime {get;set;}
/// <summary>
/// Desc:创建时间
/// Default:DateTime.Now
/// Nullable:True
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 车辆 Id
/// </summary>
public string VehicleId { get; set; }
}
}

View File

@ -11,128 +11,133 @@ namespace OpenAuth.Repository.Domain
[SugarTable("mi_violation_report")]
public partial class MiViolationReport
{
public MiViolationReport(){
public MiViolationReport()
{
}
/// <summary>
/// Desc:违法上报ID
/// Default:
/// Nullable:False
/// </summary>
public string Id {get;set;}
}
/// <summary>
/// Desc:违法上报ID
/// Default:
/// Nullable:False
/// </summary>
public string Id { get; set; }
/// <summary>
/// Desc:标题
/// Default:
/// Nullable:False
/// </summary>
public string Title {get;set;}
/// <summary>
/// Desc:标题
/// Default:
/// Nullable:False
/// </summary>
public string Title { get; set; }
/// <summary>
/// Desc:状态
/// Default:'待处理'::character varying
/// Nullable:True
/// </summary>
public string Status {get;set;}
/// <summary>
/// Desc:状态
/// Default:'待处理'::character varying
/// Nullable:True
/// </summary>
public string Status { get; set; }
/// <summary>
/// Desc:当事人姓名
/// Default:
/// Nullable:True
/// </summary>
public string PartyName {get;set;}
/// <summary>
/// Desc:当事人姓名
/// Default:
/// Nullable:True
/// </summary>
public string PartyName { get; set; }
/// <summary>
/// Desc:当事人电话
/// Default:
/// Nullable:True
/// </summary>
public string PartyPhone {get;set;}
/// <summary>
/// Desc:当事人电话
/// Default:
/// Nullable:True
/// </summary>
public string PartyPhone { get; set; }
/// <summary>
/// Desc:违法类型
/// Default:
/// Nullable:True
/// </summary>
public string ViolationType {get;set;}
/// <summary>
/// Desc:违法类型
/// Default:
/// Nullable:True
/// </summary>
public string ViolationType { get; set; }
/// <summary>
/// Desc:问题描述
/// Default:
/// Nullable:True
/// </summary>
public string ProblemDescription {get;set;}
/// <summary>
/// Desc:问题描述
/// Default:
/// Nullable:True
/// </summary>
public string ProblemDescription { get; set; }
/// <summary>
/// Desc:处理意见
/// Default:
/// Nullable:True
/// </summary>
public string HandlingOpinion {get;set;}
/// <summary>
/// Desc:处理意见
/// Default:
/// Nullable:True
/// </summary>
public string HandlingOpinion { get; set; }
/// <summary>
/// Desc:停车场 id
/// Default:
/// Nullable:True
/// </summary>
public string ParkingId {get;set;}
/// <summary>
/// Desc:停车场 id
/// Default:
/// Nullable:True
/// </summary>
public string ParkingId { get; set; }
/// <summary>
/// Desc:经度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lng {get;set;}
/// <summary>
/// Desc:经度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lng { get; set; }
/// <summary>
/// Desc:纬度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lat {get;set;}
/// <summary>
/// Desc:纬度
/// Default:
/// Nullable:True
/// </summary>
public decimal? Lat { get; set; }
/// <summary>
/// Desc:处理单位
/// Default:
/// Nullable:True
/// </summary>
public string HandlingUnit {get;set;}
/// <summary>
/// Desc:处理单位
/// Default:
/// Nullable:True
/// </summary>
public string HandlingUnit { get; set; }
/// <summary>
/// Desc:处理人
/// Default:
/// Nullable:True
/// </summary>
public string Handler {get;set;}
/// <summary>
/// Desc:处理人
/// Default:
/// Nullable:True
/// </summary>
public string Handler { get; set; }
/// <summary>
/// Desc:处理时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? HandlingTime {get;set;}
/// <summary>
/// Desc:处理时间
/// Default:
/// Nullable:True
/// </summary>
public DateTime? HandlingTime { get; set; }
/// <summary>
/// Desc:上报时间
/// Default:DateTime.Now
/// Nullable:True
/// </summary>
public DateTime? ReportTime {get;set;}
/// <summary>
/// Desc:上报时间
/// Default:DateTime.Now
/// Nullable:True
/// </summary>
public DateTime? ReportTime { get; set; }
/// <summary>
/// Desc:上报人
/// Default:
/// Nullable:True
/// </summary>
public string Reporter {get;set;}
/// <summary>
/// Desc:上报人
/// Default:
/// Nullable:True
/// </summary>
public string Reporter { get; set; }
/// <summary>
/// Desc:盗采点id
/// Default:
/// Nullable:True
/// </summary>
public string MinePointId {get;set;}
/// <summary>
/// Desc:盗采点id
/// Default:
/// Nullable:True
/// </summary>
public string MinePointId { get; set; }
/// <summary>
/// 上报单位
/// </summary>
public string ReportUnit { get; set; }
}
}

View File

@ -1,13 +1,15 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.EMMA;
using Infrastructure;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.App.ServiceApp.Request;
using OpenAuth.Repository.Domain;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace OpenAuth.WebApi.Controllers
{
@ -48,7 +50,7 @@ namespace OpenAuth.WebApi.Controllers
var result = new Response<MiViolationReport>();
try
{
result.Result =await _app.Get(id);
result.Result = await _app.Get(id);
}
catch (Exception ex)
{
@ -130,6 +132,31 @@ namespace OpenAuth.WebApi.Controllers
return result;
}
#endregion
#region 上报
/// <summary>
/// 上报
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<Response<bool>> Report(MiViolationReportRequest request)
{
var result = new Response<bool>();
try
{
result = await _app.Report(request);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
#endregion
#endregion
}
}