diff --git a/Myshipping.Application/Entity/BookingPrintTemplate.cs b/Myshipping.Application/Entity/BookingPrintTemplate.cs
index 96c0aab1..22e23755 100644
--- a/Myshipping.Application/Entity/BookingPrintTemplate.cs
+++ b/Myshipping.Application/Entity/BookingPrintTemplate.cs
@@ -39,5 +39,9 @@ namespace Myshipping.Application.Entity
/// 分单
///
public bool IsSub { get; set; }
+ ///
+ /// 显示名称
+ ///
+ public string DisplayName { get; set; }
}
}
\ No newline at end of file
diff --git a/Myshipping.Application/Myshipping.Application.xml b/Myshipping.Application/Myshipping.Application.xml
index 8a4e7f28..39404dd6 100644
--- a/Myshipping.Application/Myshipping.Application.xml
+++ b/Myshipping.Application/Myshipping.Application.xml
@@ -3446,6 +3446,11 @@
分单
+
+
+ 显示名称
+
+
订舱打印模板权限表
@@ -9250,18 +9255,26 @@
- 增加订舱打印模板
+ 增加订舱打印模板(准备作废)
- 更新订舱打印模板
+ 更新订舱打印模板(准备作废)
+
+
+ 保存订舱打印模板(新增或修改)
+
+
+
+
+
删除订舱打印模板
@@ -9296,6 +9309,13 @@
+
+
+ 删除打印模板权限
+
+
+
+
订舱打印模板输入参数
@@ -9303,12 +9323,12 @@
- 模板类型
+ 模板类型(准备作废)
- 类型名称
+ 类型名称(准备作废)
@@ -9323,12 +9343,27 @@
- 主单
+ 主单(准备作废)
- 分单
+ 分单(准备作废)
+
+
+
+
+ 显示名称
+
+
+
+
+ 分类代码
+
+
+
+
+ 分类名称
@@ -9346,6 +9381,11 @@
主键Id
+
+
+ 主键Id
+
+
订舱打印模板获取(删除)输入参数
@@ -9474,6 +9514,26 @@
+
+
+ 获取excel模板
+
+ 模板名称
+
+
+
+
+ 获取excel模板详情
+
+ 模板名称
+
+
+
+
+ 导出excel
+
+
+
订舱模板输入参数
diff --git a/Myshipping.Application/Service/BookingPrintTemplate/BookingPrintTemplateService.cs b/Myshipping.Application/Service/BookingPrintTemplate/BookingPrintTemplateService.cs
index 8086c8d1..38709039 100644
--- a/Myshipping.Application/Service/BookingPrintTemplate/BookingPrintTemplateService.cs
+++ b/Myshipping.Application/Service/BookingPrintTemplate/BookingPrintTemplateService.cs
@@ -80,7 +80,7 @@ namespace Myshipping.Application
///
- /// 增加订舱打印模板
+ /// 增加订舱打印模板(准备作废)
///
///
///
@@ -148,7 +148,7 @@ namespace Myshipping.Application
///
- /// 更新订舱打印模板
+ /// 更新订舱打印模板(准备作废)
///
///
///
@@ -209,6 +209,81 @@ namespace Myshipping.Application
await _rep.UpdateAsync(entity);
}
+ ///
+ /// 保存订舱打印模板(新增或修改)
+ ///
+ ///
+ ///
+ ///
+ [HttpPost("/BookingPrintTemplate/save")]
+ public async Task Save(IFormFile file, [FromForm] SaveBookingPrintTemplateInput input)
+ {
+ var opt = App.GetOptions();
+ if (file != null && file.Length > 0)
+ {
+ var fileSuffix = Path.GetExtension(file.FileName).ToLower(); // 文件后缀
+ if (!opt.fileType.Contains(fileSuffix))
+ {
+ throw Oops.Bah(BookingErrorCode.BOOK114);
+ }
+ }
+
+ BookingPrintTemplate entity = null;
+ if (input.Id > 0)
+ {
+ entity = _rep.AsQueryable().Filter(null, true).First(x => x.Id == input.Id);
+ input.Adapt(entity);
+ await _rep.UpdateAsync(entity);
+ }
+ else
+ {
+ //新增时必须上传文件
+ if (file == null || file.Length == 0)
+ {
+ throw Oops.Bah(BookingErrorCode.BOOK113);
+ }
+
+ entity = input.Adapt();
+ await _rep.InsertAsync(entity);
+ }
+
+ if (file != null && file.Length > 0)
+ {
+ var originalFilename = file.FileName; // 文件原始名称
+
+ var dirAbs = string.Empty;
+ if (string.IsNullOrEmpty(opt.basePath))
+ {
+ dirAbs = Path.Combine(App.WebHostEnvironment.WebRootPath, opt.relativePath);
+ }
+ else
+ {
+ dirAbs = Path.Combine(opt.basePath, opt.relativePath);
+ }
+
+ if (!Directory.Exists(dirAbs))
+ Directory.CreateDirectory(dirAbs);
+
+
+ // 先存库获取Id
+ var id = YitIdHelper.NextId();
+ var fileSuffix = Path.GetExtension(file.FileName).ToLower();
+ var fileSaveName = $"{id}{fileSuffix}".ToLower();
+ var fileRelaPath = Path.Combine(opt.relativePath, fileSaveName).ToLower();
+ var fileAbsPath = Path.Combine(dirAbs, fileSaveName).ToLower();
+ using (var stream = File.Create(fileAbsPath))
+ {
+ await file.CopyToAsync(stream);
+ }
+
+ entity.FileName = originalFilename;
+ entity.FilePath = fileRelaPath;
+ await _rep.UpdateAsync(entity);
+ }
+
+ return entity.Id;
+ }
+
///
/// 删除订舱打印模板
///
@@ -290,13 +365,17 @@ namespace Myshipping.Application
throw Oops.Bah("未上传正确数据");
}
- await _repRight.DeleteAsync(x => x.SysUserId == input.SysUserId);
+ // await _repRight.DeleteAsync(x => x.SysUserId == input.SysUserId);
foreach (var item in input.PrintTemplateId)
{
- BookingPrinttemplateRight right = new BookingPrinttemplateRight();
- right.SysUserId = input.SysUserId;
- right.PrintTemplateId = item;
- await _repRight.InsertAsync(right);
+ var ent = _repRight.FirstOrDefault(x => x.SysUserId == input.SysUserId && x.PrintTemplateId == item);
+ if (ent==null) {
+ BookingPrinttemplateRight right = new BookingPrinttemplateRight();
+ right.SysUserId = input.SysUserId;
+ right.PrintTemplateId = item;
+ await _repRight.InsertAsync(right);
+ }
+
}
}
///
@@ -311,6 +390,7 @@ namespace Myshipping.Application
WhereIF(userId != 0, d => d.SysUserId == userId).
Select((d, t) => new BookingPrinttemplateDto
{
+ Id=d.Id,
PrintTemplateId=t.Id,
SysUserId=d.SysUserId,
TypeCode = t.TypeCode,
@@ -327,5 +407,19 @@ namespace Myshipping.Application
}
return list;
}
+
+ ///
+ /// 删除打印模板权限
+ ///
+ ///
+ ///
+ [HttpGet("/BookingPrintTemplate/DeletePrinttemplateRight")]
+ public async Task DeletePrinttemplateRight([FromQuery] List Ids) {
+
+ await _repRight.DeleteAsync(x => Ids.Contains(x.Id));
+ }
+
+
+
}
}
diff --git a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs
index af8b669b..671d326d 100644
--- a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs
+++ b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrintTemplateInput.cs
@@ -10,12 +10,12 @@ namespace Myshipping.Application
public class BookingPrintTemplateInput
{
///
- /// 模板类型
+ /// 模板类型(准备作废)
///
public string TypeCode { get; set; }
///
- /// 类型名称
+ /// 类型名称(准备作废)
///
public virtual string TypeName { get; set; }
@@ -30,14 +30,29 @@ namespace Myshipping.Application
public string TenantName { get; set; }
///
- /// 主单
+ /// 主单(准备作废)
///
public bool IsMain { get; set; }
///
- /// 分单
+ /// 分单(准备作废)
///
public bool IsSub { get; set; }
+ ///
+ /// 显示名称
+ ///
+ public string DisplayName { get; set; }
+
+ ///
+ /// 分类代码
+ ///
+ public string CateCode { get; set; }
+
+ ///
+ /// 分类名称
+ ///
+ public virtual string CateName { get; set; }
+
}
///
@@ -60,6 +75,15 @@ namespace Myshipping.Application
}
+ public class SaveBookingPrintTemplateInput : BookingPrintTemplateInput
+ {
+ ///
+ /// 主键Id
+ ///
+ public long Id { get; set; }
+
+ }
+
///
/// 订舱打印模板获取(删除)输入参数
///
diff --git a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrinttemplateRightDto.cs b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrinttemplateRightDto.cs
index 91c38b09..b99a54c2 100644
--- a/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrinttemplateRightDto.cs
+++ b/Myshipping.Application/Service/BookingPrintTemplate/Dto/BookingPrinttemplateRightDto.cs
@@ -21,7 +21,7 @@ namespace Myshipping.Application.Service.BookingPrintTemplate.Dto
public class BookingPrinttemplateDto
{
-
+ public long Id { get; set; }
public long PrintTemplateId { get; set; }
public long SysUserId { get; set; }
public string TypeCode { get; set; }
diff --git a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs
index f912791a..dbf04010 100644
--- a/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs
+++ b/Myshipping.Application/Service/BookingTemplate/BookingTemplateService.cs
@@ -13,6 +13,8 @@ using Myshipping.Application.Enum;
using System.ComponentModel;
using System.Collections.Generic;
using Myshipping.Application.Service.BookingTemplate.Dto;
+using System.IO;
+using MiniExcelLibs;
namespace Myshipping.Application
{
@@ -135,12 +137,13 @@ namespace Myshipping.Application
}
return dic;
}
+
///
/// 新增编辑excel模板
///
///
///
- [HttpGet("/BookingTemplate/AddOrUpdateExcelTemplate")]
+ [HttpPost("/BookingTemplate/AddOrUpdateExcelTemplate")]
public async Task AddOrUpdateExcelTemplate(BookingExcelTemplateDto dto) {
if (dto.Id == 0)
@@ -149,23 +152,69 @@ namespace Myshipping.Application
bookingExcel.Name = dto.Name;
bookingExcel.Type = dto.Type;
await _excelrep.InsertAsync(bookingExcel);
-
-
-
-
+ foreach (var item in dto.children)
+ {
+ var entity = item.Adapt();
+ entity.Pid = bookingExcel.Id;
+ await _excelsubrep.InsertAsync(entity);
+ }
}
- else {
-
-
-
-
-
-
+ else {
+ var entity = dto.Adapt();
+ await _excelrep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ await _excelsubrep.DeleteAsync(x => x.Pid == dto.Id);
+ foreach (var item in dto.children)
+ {
+ var ent = item.Adapt();
+ ent.Pid = dto.Id;
+ await _excelsubrep.InsertAsync(ent);
+ }
}
return null;
}
+ ///
+ /// 获取excel模板
+ ///
+ /// 模板名称
+ ///
+ [HttpGet("/BookingTemplate/BookingExcelTemplateList")]
+ public async Task BookingExcelTemplateList(string Name) {
+ return await _excelrep.AsQueryable().WhereIF(!string.IsNullOrWhiteSpace(Name), x => x.Name.Contains(Name)).ToListAsync();
+ }
+ ///
+ /// 获取excel模板详情
+ ///
+ /// 模板名称
+ ///
+ [HttpGet("/BookingTemplate/BookingExcelTemplateDetailList")]
+ public async Task BookingExcelTemplateDetailList(long Id)
+ {
+ return await _excelsubrep.AsQueryable().Where( x => x.Pid==Id).ToListAsync();
+ }
+
+ /////
+ ///// 导出excel
+ /////
+ /////
+ //[HttpGet("/BookingTemplate/ExportExcel")]
+ //public async Task ExportExcel() {
+ // var order = await _repOrder.ToListAsync();
+
+ // using (MemoryStream ms = new MemoryStream())
+ // {
+ // ms.SaveAs(order);
+ // ms.Seek(0, SeekOrigin.Begin);
+ // return await Task.FromResult(new FileStreamResult(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ // {
+ // FileDownloadName = "order.xlsx"
+ // });
+ // }
+ //}
+
+
+
diff --git a/Myshipping.Core/Service/DjyVesselInfo/DjyVesselInfoService.cs b/Myshipping.Core/Service/DjyVesselInfo/DjyVesselInfoService.cs
index 8b389070..bfcbd3d7 100644
--- a/Myshipping.Core/Service/DjyVesselInfo/DjyVesselInfoService.cs
+++ b/Myshipping.Core/Service/DjyVesselInfo/DjyVesselInfoService.cs
@@ -34,6 +34,7 @@ namespace Myshipping.Core.Service
///
///
///
+ [HttpPost("/DjyVesselInfoService/AddOrUpdate")]
public async Task AddOrUpdate(DjyVesselInfo dto)
{
if (dto == null)
@@ -56,7 +57,8 @@ namespace Myshipping.Core.Service
/// 下拉列表
///
///
- public async Task GetList(string KeyWord, string CarrierID)
+ [HttpGet("/DjyVesselInfoService/GetList")]
+ public async Task GetList([FromQuery] string KeyWord, string CarrierID)
{
//获取船名
List list = await _sysCacheService.GetAllCodeVessel();