You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.6 KiB
C#
119 lines
3.6 KiB
C#
using Myshipping.Core;
|
|
using Furion.DependencyInjection;
|
|
using Furion.DynamicApiController;
|
|
using Mapster;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using SqlSugar;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Myshipping.Core.Entity;
|
|
using Myshipping.Application.Entity;
|
|
using Furion.FriendlyException;
|
|
using System.Collections.Generic;
|
|
using System;
|
|
|
|
namespace Myshipping.Core.Service
|
|
{
|
|
/// <summary>
|
|
/// 船期手工维护模块
|
|
/// </summary>
|
|
[ApiDescriptionSettings(Name = "DjyVesselInfo", Order = 1)]
|
|
public class DjyVesselInfoService : IDjyVesselInfoService, IDynamicApiController, ITransient
|
|
{
|
|
private readonly SqlSugarRepository<DjyVesselInfo> _rep;
|
|
private readonly ISysCacheService _sysCacheService;
|
|
public DjyVesselInfoService(SqlSugarRepository<DjyVesselInfo> rep, ISysCacheService sysCacheService)
|
|
{
|
|
_sysCacheService = sysCacheService;
|
|
_rep = rep;
|
|
}
|
|
/// <summary>
|
|
/// 获取列表
|
|
/// </summary>
|
|
/// <param name="KeyWord"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("/DjyVesselInfoService/GetListPage")]
|
|
public async Task<dynamic> GetListPage([FromQuery] string KeyWord) {
|
|
|
|
return await _rep.AsQueryable().WhereIF(!string.IsNullOrWhiteSpace(KeyWord), x => x.Vessel.Contains(KeyWord)).ToListAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
/// <param name="Id"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("/DjyVesselInfoService/Delete")]
|
|
public async Task Delete([FromQuery] long[] Ids)
|
|
{
|
|
|
|
var entity = await _rep.FirstOrDefaultAsync(u => Ids.Contains(u.Id));
|
|
await _rep.DeleteAsync(entity);
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 新增编辑
|
|
/// </summary>
|
|
/// <param name="dto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("/DjyVesselInfoService/AddOrUpdate")]
|
|
public async Task<long> AddOrUpdate(DjyVesselInfo dto)
|
|
{
|
|
if (dto == null)
|
|
{
|
|
throw Oops.Bah("请传入数据!");
|
|
}
|
|
if (dto.Id == 0)
|
|
{
|
|
await _rep.InsertAsync(dto);
|
|
}
|
|
else
|
|
{
|
|
await _rep.AsUpdateable(dto).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
|
|
}
|
|
return dto.Id;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 下拉列表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("/DjyVesselInfoService/GetList")]
|
|
public async Task<dynamic> GetList([FromQuery] string KeyWord, string CarrierID)
|
|
{
|
|
//获取船名
|
|
List<CodeVessel> list = await _sysCacheService.GetAllCodeVessel();
|
|
|
|
var tlist = await _rep.AsQueryable().Where(x => x.Vessel.Contains(KeyWord) && x.CARRIERID == CarrierID&&x.ETD>DateTime.Now.AddDays(-7)).
|
|
Select(x=> new {
|
|
Voyno =x.Voyno,
|
|
VoynoInside =x.VoynoInside,
|
|
Vessel = x.Vessel,
|
|
ETD =x.ETD,
|
|
ATD = x.ATD,
|
|
}).Take(20).
|
|
ToListAsync();
|
|
|
|
if (tlist.Count() == 0)
|
|
{
|
|
return list.Where(x => x.Name.Contains(KeyWord)).Select(x => new
|
|
{
|
|
|
|
Voyno = "",
|
|
VoynoInside="",
|
|
Vessel = x.Name,
|
|
ETD = "",
|
|
ATD="",
|
|
}).Take(20).ToList();
|
|
}
|
|
else
|
|
{
|
|
return tlist;
|
|
}
|
|
}
|
|
}
|
|
}
|