From 3210ca6c6156b63c4dbe0d0da759ba3036f4d757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=87=E9=98=B3=20=E9=82=B9?= Date: Sun, 26 Nov 2023 16:10:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/LawyerArchivesController.cs | 230 ++++++++++++++++++ 1 file changed, 230 insertions(+) diff --git a/24Hour/Controllers/Common/LawyerArchivesController.cs b/24Hour/Controllers/Common/LawyerArchivesController.cs index 5267aea..c360798 100644 --- a/24Hour/Controllers/Common/LawyerArchivesController.cs +++ b/24Hour/Controllers/Common/LawyerArchivesController.cs @@ -19,14 +19,18 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Newtonsoft.Json; +using NPOI.OpenXmlFormats.Spreadsheet; +using NPOI.SS.Formula.Functions; using SqlSugar; using SqlSugar.Extensions; using System.Data; +using System.IO.Compression; using System.Linq; using System.Net.WebSockets; using System.Text; using static _24Hour.TwentySystemProxyClient; using static com.sun.tools.@internal.xjc.reader.xmlschema.bindinfo.BIConversion; +using static NPOI.HSSF.Util.HSSFColor; using Exception = System.Exception; using User = Elight.Utility.User; @@ -1098,6 +1102,232 @@ namespace _24Hour.Controllers.Common return Task.FromResult(result); } + [HttpGet] + [Route("ImportLawyerArchivesInfo")] + public async Task ImportLawyerArchivesInfo(string path) + { + if (System.IO.File.Exists(path)==false) + { + result.Message = "文件丢失"; + result.IsSucceed = false; + return result; + } + var dir = Path.Combine(Environment.CurrentDirectory,"wwwroot","CaseFile","imports"); + var userdir = Path.Combine(dir, "users"); + var lawyersvcs = Path.Combine(dir, "lawyersvcs"); + + var extratname = Path.GetFileNameWithoutExtension(path); + var extratdirpath = Path.Combine(dir, extratname); + ZipFile.ExtractToDirectory(path, extratdirpath,true); + var zipusers = Path.Combine(extratdirpath, "users"); + var ziplawyersvcs = Path.Combine(extratdirpath, "lawyerservices"); + var zipjson = Path.Combine(extratdirpath, "data"); + if (System.IO.File.Exists(zipjson)==false) + { + result.Message = "文件丢失"; + result.IsSucceed = false; + return result; + } + var json = System.IO.File.ReadAllText(zipjson); + + var jsonstr = Encoding.UTF8.GetString(Convert.FromBase64String(json)); + + var importdata = jsonstr.ConvertToAnonymousType(new + { + lawyerservices=default(List), + users=default(List) + }); + foreach (var userim in importdata.users) + { + var user = await _db.Queryable() + .Where(x => x.cardId == userim.cardId) + .Where(x => x.IsDeleted == 0) + .Where(x => x.isdeactivate == 0) + .Where(x => x.identity == "律师") + .FirstAsync(); + var identityphotopath = Path.Combine(zipusers, userim.cardId, "identityphotos"); + var files = new DirectoryInfo(identityphotopath) + .GetFiles() + .Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) + .Replace(@"\", @"/")) + .ToList() + .ConvertToJsonStr(); + + var departmentPhotos = Path.Combine(zipusers, userim.cardId, "departmentPhotos"); + var departments = new DirectoryInfo(departmentPhotos) + .GetFiles() + .Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) + .Replace(@"\", @"/")) + .ToList() + .ConvertToJsonStr(); + + var cardidphotos = Path.Combine(zipusers, userim.cardId, "cardids"); + var cardids = new DirectoryInfo(cardidphotos) + .GetFiles() + .Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) + .Replace(@"\", @"/")) + .ToList() + .ConvertToJsonStr(); + + if (user==null) + { + userim.cardIdphoto = cardids; + userim.identityphoto = files; + userim.departmentPhoto = departments; + + _db.BeginTran(); + var num = await _db.Insertable(userim).ExecuteCommandAsync(); + _db.CommitTran(); + } + else + { + user.cardIdphoto = cardids; + user.identityphoto = files; + user.departmentPhoto = departments; + _db.BeginTran(); + var num = await _db.Updateable(user) + .UpdateColumns(x => new + { + x.cardIdphoto, + x.identityphoto, + x.departmentPhoto + }) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); + _db.CommitTran(); + } + } + foreach (var lawyersvc in importdata.lawyerservices) + { + var svc =await _db.Queryable() + .Where(x => x.Id == lawyersvc.Id).FirstAsync(); + var annexphoto = Path.Combine(ziplawyersvcs, lawyersvc.Id, "annexs"); + var annexs = new DirectoryInfo(annexphoto) + .GetFiles() + .Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) + .Replace(@"\", @"/")) + .ToList() + .ConvertToJsonStr(); + if (svc==null) + { + lawyersvc.annex = annexs; + _db.BeginTran(); + var num = await _db.Insertable(lawyersvc).ExecuteCommandAsync(); + _db.CommitTran(); + } + else + { + svc.annex = annexs; + _db.BeginTran(); + var num = await _db.Updateable(svc) + .UpdateColumns(x => new + { + x.annex + }) + .IgnoreColumns(ignoreAllNullColumns: true) + .ExecuteCommandAsync(); + _db.CommitTran(); + } + } + return result; + } + [HttpPost] + [Route("PackegLawyerArchivesInfo")] + public async Task ExportLawyerArchivesInfo(IEnumerable ids) + { + var lawyerarchives = await _db.Queryable() + .In(info => info.Id, ids) + .ToListAsync(); + var userids=lawyerarchives + .Select(x=>x.createuserId) + .Distinct() + .ToList(); + var users = await _db.Queryable() + .In(x => x.Id, userids) + .ToListAsync(); + var packegdirname = DateTime.Now.Ticks.ToString(); + var dir = Path.Combine(Environment.CurrentDirectory,"wwwroot","temp"); + var packegdir = Path.Combine(dir, packegdirname); + var packegzipname = Path.ChangeExtension(packegdir, ".zip"); + if (Directory.Exists(packegdir) == false) Directory.CreateDirectory(packegdir); + var jsonfilepath = Path.Combine(packegdir, "data"); + var jsonstr = new + { + lawyerservices = lawyerarchives, + users = users + }.ConvertToJsonStr().ConvertToBase64(); + System.IO.File.WriteAllText(jsonfilepath, jsonstr); + //存储预约申请的相关附件 + foreach (var item in lawyerarchives) + { + var lawyerdir = Path.Combine(packegdir,"lawyerservices", item.Id); + if (Directory.Exists(lawyerdir)==false) Directory.CreateDirectory(lawyerdir); + var files = item.annex.ConvertToModel>(); + var annecdir = Path.Combine(lawyerdir,"annexs"); + if (Directory.Exists(annecdir) == false) Directory.CreateDirectory(annecdir); + + foreach (var file in files) + { + var filepath = Path.Combine(Environment.CurrentDirectory,"wwwroot") + file.Replace("/",@"\"); + if (System.IO.File.Exists(filepath)) + { + var targetfile = Path.Combine(annecdir, Path.GetFileName(filepath)); + System.IO.File.Copy(filepath, targetfile); + } + } + } + //存储用户的相关附件 + foreach (var item in users) + { + //["/CaseFile/card/2023-11-21/20231121200659497.jpg"] + var userdir= Path.Combine(packegdir, "users", item.cardId); + + //保存身份证图片 + var cardids = item.cardIdphoto.ConvertToModel>(); + var cardidDir = Path.Combine(userdir, "cardids"); + if (Directory.Exists(cardidDir) == false) Directory.CreateDirectory(cardidDir); + foreach (var file in cardids) + { + var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); + if (System.IO.File.Exists(filepath)) + { + System.IO.File.Copy(filepath, Path.Combine(cardidDir, Path.GetFileName(filepath))); + } + } + //保存工作证图片 律师职业证书 + var identityphotos = item.identityphoto.ConvertToModel>(); + var identityphotosDir = Path.Combine(userdir, "identityphotos"); + if (Directory.Exists(identityphotosDir) == false) Directory.CreateDirectory(identityphotosDir); + foreach (var file in identityphotos) + { + var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); + if (System.IO.File.Exists(filepath)) + { + System.IO.File.Copy(filepath, Path.Combine(identityphotosDir, Path.GetFileName(filepath))); + } + } + + var departmentPhotos = item.departmentPhoto.ConvertToModel>(); + var departmentPhotosDir = Path.Combine(userdir, "departmentPhotos"); + if (Directory.Exists(departmentPhotosDir) == false) Directory.CreateDirectory(departmentPhotosDir); + foreach (var file in departmentPhotos) + { + var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); + if (System.IO.File.Exists(filepath)) + { + System.IO.File.Copy(filepath, Path.Combine(departmentPhotosDir, Path.GetFileName(filepath))); + } + } + } + + ZipFile.CreateFromDirectory(packegdir, packegzipname); + Directory.Delete(packegdir, true); + + result.result = $"/temp/{packegdirname}.zip"; + result.IsSucceed = true; + return result; + } + [HttpPost] [Route("UploadSignImage")] ///