jianghaiqing 1 year ago
commit 651cff8933

@ -13,7 +13,7 @@ namespace Myshipping.Application.Entity
/// </summary>
[SugarTable("booking_auto_yard_import")]
[Description("场站自动引入信息")]
public class Booking_AutoYardImport
public class BookingAutoYardImport
{
/// <summary>
/// 主键
@ -40,5 +40,21 @@ namespace Myshipping.Application.Entity
/// 比对数据时填写的箱信息JSON
/// </summary>
public string CtnJson { get; set; }
/// <summary>
/// 只读标志
/// </summary>
public bool IsRead { get; set; }
/// <summary>
/// 读取时间
/// </summary>
public DateTime? ReadTime { get; set; }
/// <summary>
/// 读取人
/// </summary>
public string ReadUser { get; set; }
}
}

@ -42,5 +42,9 @@ namespace Myshipping.Application.Entity
public int print { get; set; }
/// <summary>
/// 是否封账
/// </summary>
public bool IsLockBooking { get; set; }
}
}

@ -144,6 +144,12 @@ namespace Myshipping.Application.Enum
/// </summary>
[ErrorCodeItemMetadata("附件不存在")]
BOOK200,
/// <summary>
/// 请上传正确数据
/// </summary>
[ErrorCodeItemMetadata("请上传正确数据")]
BOOK201,
#endregion
}
}

@ -129,7 +129,7 @@ namespace Myshipping.Application
private readonly IBookingGoodsStatusConfigService _GoodsConfig;
private readonly SqlSugarRepository<BookingLineOpMgrConfig> _repLineOpMgrConfig;
private readonly SqlSugarRepository<SysEmp> _repSysEmp;
private readonly SqlSugarRepository<Booking_AutoYardImport> _repAutoYard;
private readonly SqlSugarRepository<BookingAutoYardImport> _repAutoYard;
private readonly SqlSugarRepository<BookingExtendState> _repextendstate;
@ -156,7 +156,7 @@ namespace Myshipping.Application
SqlSugarRepository<BookingExcelTemplate> excelrep, SqlSugarRepository<DjyUserMailAccount> repUserMail, SqlSugarRepository<BookingGoodsStatus> goodsStatus, SqlSugarRepository<BookingGoodsStatusConfig> goodsStatusConfig,
SqlSugarRepository<SysTenant> repTenant, SqlSugarRepository<BookingStatus> repBookingStatus, SqlSugarRepository<BookingEDIExt> bookingEDIExt, SqlSugarRepository<BookingServiceItem> serviceItem,
SqlSugarRepository<ParaContractNoInfo> paraContractNoInfoRepository, IHttpContextAccessor httpContextAccessor, IBookingGoodsStatusConfigService GoodsConfig, SqlSugarRepository<DjyWebsiteAccountConfig> djyWebsiteAccountConfigRepository,
ISysOrgService orgService, SqlSugarRepository<BookingLineOpMgrConfig> repLineOpMgrConfig, SqlSugarRepository<SysEmp> repSysEmp, SqlSugarRepository<Booking_AutoYardImport> repAutoYard,
ISysOrgService orgService, SqlSugarRepository<BookingLineOpMgrConfig> repLineOpMgrConfig, SqlSugarRepository<SysEmp> repSysEmp, SqlSugarRepository<BookingAutoYardImport> repAutoYard,
IServiceWorkFlowManageService serviceWorkFlowManageService)
{
this._logger = logger;
@ -453,7 +453,7 @@ namespace Myshipping.Application
var itgoodsStatus = new List<ITGoodsStatusDto>();
var itconfigs = new List<ITConfigsDto>();
List <ServiceProjectStatusDto> statusList = new List<ServiceProjectStatusDto>();
List<ServiceProjectStatusDto> statusList = new List<ServiceProjectStatusDto>();
if (App.Configuration["ServiceStatusOpenAuto"] == "1")
{
QueryServiceProjectWithStatusBatch batchQuery = new QueryServiceProjectWithStatusBatch
@ -596,9 +596,9 @@ namespace Myshipping.Application
{
var currStatusList = statusList.Where(a => long.Parse(a.BusiId) == item.Id).ToList();
if(currStatusList.Count > 0)
if (currStatusList.Count > 0)
{
if(currStatusList.Any(a=>a.StatusSKUCode.Equals("YFVGM",StringComparison.OrdinalIgnoreCase) && a.IsYield))
if (currStatusList.Any(a => a.StatusSKUCode.Equals("YFVGM", StringComparison.OrdinalIgnoreCase) && a.IsYield))
{
item.IsVGM = currStatusList.FirstOrDefault(a =>
a.StatusSKUCode.Equals("YFVGM", StringComparison.OrdinalIgnoreCase) && a.IsYield).ActDate.Value;
@ -616,15 +616,15 @@ namespace Myshipping.Application
item.GoodsStatusList = currStatusList.OrderBy(a => a.CalcSortNo)
.Select(a => new GoodsStatusList
{
{
FinishTime = a.ActDate,
IsLast = a.IsEnd,
Sort = a.ActSortNo,
StatusName = a.ShowName,
SystemCode = a.StatusSKUCode,
ExtData = !string.IsNullOrWhiteSpace(a.ActVal)? a.ActVal:string.Empty,
Remark = !string.IsNullOrWhiteSpace(a.ActRemark)? a.ActRemark:string.Empty
}).ToList();
ExtData = !string.IsNullOrWhiteSpace(a.ActVal) ? a.ActVal : string.Empty,
Remark = !string.IsNullOrWhiteSpace(a.ActRemark) ? a.ActRemark : string.Empty
}).ToList();
}
else
{
@ -906,9 +906,9 @@ namespace Myshipping.Application
var mlist = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync();
var rightlist = await _right.GetDataScopeList(MenuConst.MenuBookingOrder, true);
_logger.LogInformation("保存权限范围:"+rightlist.ToJsonString());
_logger.LogInformation("保存权限范围:" + rightlist.ToJsonString());
//除现有配置权限外 操作和本人具有编辑权限
if (rightlist!=null&&!(
if (rightlist != null && !(
mlist.OPID == UserManager.UserId.ToString() || mlist.OP == UserManager.Name.ToString() ||
mlist.DOCID == UserManager.UserId.ToString() || mlist.DOC == UserManager.Name.ToString() ||
mlist.CUSTSERVICEID == UserManager.UserId.ToString() || mlist.CUSTSERVICE == UserManager.Name.ToString() ||
@ -926,7 +926,7 @@ namespace Myshipping.Application
entity.VOYNO = entity.VOYNOINNER;
}
entity.VERSION = Guid.NewGuid().ToString();
//判断如果船名航次船公司变动 同步更新船期字段
if (entity.CARRIERID != mlist.CARRIERID || entity.VOYNO != mlist.VOYNO || entity.VESSEL != mlist.VESSEL)
{
var vess = await _vesselInfo.AsQueryable().Filter(null, true).Where(x => x.IsDeleted == false && x.TenantId == UserManager.TENANT_ID && x.CARRIERID == entity.CARRIERID &&
@ -978,6 +978,7 @@ namespace Myshipping.Application
it.ATA
}).ExecuteCommandAsync();
var ctnlist = await _repCtn.AsQueryable().Filter(null, true).Where(x => x.BILLID == input.Id && x.IsDeleted == false).Select(x => x.Id).ToListAsync();
//删除箱信息 重新插入
await _repCtn.DeleteAsync(x => x.BILLID == input.Id);
await _ctndetailrep.DeleteAsync(x => ctnlist.Contains((long)x.CTNID));
if (input.ctnInputs != null)
@ -7928,12 +7929,15 @@ HLCUTA12307DPXJ3 以这票为例 6个柜
}
_logger.LogInformation($"{bookId}({order.MBLNO})的箱封号自动引入完成");
}
//写入提示
await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson());
//写入提示
await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson());
}
else
{
//写入提示
await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson(), read: true);
}
}
}
@ -7942,17 +7946,23 @@ HLCUTA12307DPXJ3 以这票为例 6个柜
/// </summary>
/// <returns></returns>
[NonAction]
private async Task SaveAutoYardData(long bookId, bool success, string content, string ctnJson, string yardJson)
private async Task SaveAutoYardData(long bookId, bool success, string content, string ctnJson, string yardJson, bool read = false)
{
await _repAutoYard.DeleteAsync(x => x.Id == bookId);
//写入提示
var autoYard = new Booking_AutoYardImport();
var autoYard = new BookingAutoYardImport();
autoYard.Id = bookId;
autoYard.Status = success ? "已导入" : "未导入";
autoYard.Content = content;
autoYard.CtnJson = ctnJson;
autoYard.YardJson = yardJson;
if (read) //未开启自动写入的用户,自动已读
{
autoYard.IsRead = true;
autoYard.ReadTime = DateTime.Now;
autoYard.ReadUser = "系统";
}
await _repAutoYard.InsertAsync(autoYard);
}
@ -9235,6 +9245,7 @@ HLCUTA12307DPXJ3 以这票为例 6个柜
extends.noApply = noApply;
extends.applyNoPrint = applyNoPrint;
extends.print = print;
extends.IsLockBooking = false;
await _repextendstate.InsertAsync(extends);
}
else

@ -75,6 +75,7 @@ namespace Myshipping.Application
private readonly SqlSugarRepository<BookingStatusLogDetail> _statuslogdetail;
private readonly SqlSugarRepository<BookingStatus> _repBookingStatus;
private readonly IBookingOrderService _bookingorderservice;
private readonly SqlSugarRepository<BookingExtendState> _bookingextstate;
public DataSyncService(ILogger<DataSyncService> logger, ISysCacheService cache, SqlSugarRepository<BookingOrder> rep, SqlSugarRepository<BookingCtn> repCtn,
@ -83,7 +84,7 @@ namespace Myshipping.Application
SqlSugarRepository<DjyCustomerContact> djycustomercontact, SqlSugarRepository<DjyVesselInfo> vesselinfo, SqlSugarRepository<BookingCtnDetail> ctndetailrep
, SqlSugarRepository<BookingEDIExt> bookingEDIExt, SqlSugarRepository<BookingLog> bookinglog, SqlSugarRepository<BookingLogDetail> bookinglogdetail,
SqlSugarRepository<BookingGoodsStatus> goodsStatus, SqlSugarRepository<BookingGoodsStatusConfig> goodsStatusConfig, SqlSugarRepository<DjyTenantLine> repline,
SqlSugarRepository<BookingRemark> bookingremark, SqlSugarRepository<MappingCarrier> mapcarrier, SqlSugarRepository<CodeForwarder> codeForwarder,
SqlSugarRepository<BookingRemark> bookingremark, SqlSugarRepository<MappingCarrier> mapcarrier, SqlSugarRepository<CodeForwarder> codeForwarder, SqlSugarRepository<BookingExtendState> bookingextstate,
SqlSugarRepository<CodePort> codePortRep, SqlSugarRepository<CodeLane> codeLaneRep, ICommonDBService commonDBService, SqlSugarRepository<RelaPortCarrierLane> relaPortLane,
SqlSugarRepository<DjyWebsiteAccountConfig> accountconfig, SqlSugarRepository<BookingFile> bookingfile, IBookingOrderService bookingorderservice)
{
@ -116,6 +117,7 @@ namespace Myshipping.Application
this._repStatuslog = statuslog;
this._statuslogdetail = statuslogdetail;
this._repBookingStatus = repBookingStatus;
this._bookingextstate = bookingextstate;
}
@ -2585,6 +2587,45 @@ namespace Myshipping.Application
}
}
/// <summary>
/// 东胜封账
/// </summary>
/// <param dto=""></param>
/// <returns></returns>
[SqlSugarUnitOfWork]
[HttpPost("/DataSync/SaveBookingOrderLock"), ApiUser(ApiCode = "SaveBookingOrderLock")]
public async Task SaveBookingOrderLock(List<BookingOrderLock> dto) {
if (dto==null) {
throw Oops.Bah(BookingErrorCode.BOOK201);
}
foreach (var item in dto)
{
var extends = _bookingextstate.FirstOrDefault(x => x.bookingId == item.BookingId);
if (extends == null)
{
extends.bookingId = item.BookingId;
extends.IsLockBooking = item.LockStatus;
await _bookingextstate.InsertAsync(extends);
}
else
{
extends.IsLockBooking = item.LockStatus;
await _bookingextstate.AsUpdateable(extends).IgnoreColumns().ExecuteCommandAsync();
}
}
}
#endregion
}
}

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application.Service.DataSync.Dto
{
public class BookingOrderLock
{
///// <summary>
///// 主键
///// </summary>
public long BookingId { get; set; }
/// <summary>
/// 锁定状态 false 解锁 true 锁定
/// </summary>
public bool LockStatus { get; set; }
}
}
Loading…
Cancel
Save