From a5b84f0764b6588ca6c6165cdbe32ed81ef41e2d Mon Sep 17 00:00:00 2001 From: wet <1034391973@qq.com> Date: Mon, 29 May 2023 09:08:04 +0800 Subject: [PATCH] 1 --- .../BookingOrder/BookingOrderService.cs | 536 +++++++++--------- 1 file changed, 266 insertions(+), 270 deletions(-) diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index fd1e4fff..c1db3990 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -794,113 +794,113 @@ namespace Myshipping.Application } - - - [HttpPost("/BookingOrder/AddOrUpdate")] - public async Task AddOrUpdate(BookingOrderDto Dto) - { - if (Dto == null) - { - throw Oops.Bah("请传入正常数据!"); - } - - if (Dto.Id == 0) - { - return await Add(Dto); - } - else - { - await Update(Dto); - return Dto.Id; - } - } - - /// - /// 增加订舱 - /// - /// - /// - [SqlSugarUnitOfWork] - [HttpPost("/BookingOrder/Add")] - public async Task Add(BookingOrderDto input) - { - JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YARDID", "YardContract", "YardContractTel", "YardContractEmail", "MARKS", "DESCRIPTION", "CONSIGNEENAME", "SHIPPERNAME", "NOTIFYPARTYNAME"); - var ms = JsonUtil.TrimFields(input); - if (!string.IsNullOrEmpty(ms)) - { - throw Oops.Bah(ms); - } - if (input.ctnInputs != null) - { - var groupList = input.ctnInputs.Where(x => x.CTNNUM > 0).GroupBy(c => c.CTNALL).Select(g => $"{g.Key}*{g.Sum(gg => gg.CTNNUM)}"); - input.CNTRTOTAL = string.Join(" / ", groupList); - } - if (!string.IsNullOrWhiteSpace(input.MBLNO)) - { - var et = await _rep.Where(x => x.MBLNO == input.MBLNO && x.TenantId == UserManager.TENANT_ID && x.HBLNO == input.HBLNO && x.ParentId == input.ParentId).FirstAsync(); - if (et != null) - { - - throw Oops.Bah("当前提单号已存在,请勿重复录入!"); - - } - } - - - var entity = input.Adapt(); - entity.BOOKINGNO = Yitter.IdGenerator.YitIdHelper.NextId().ToString(); - //entity.TOTALNO = NumberToUpper.ToUpper(entity.PKGS == null ? 0 : entity.PKGS); - await _rep.InsertAsync(entity); - if (input.ctnInputs != null) - { - foreach (var item in input.ctnInputs) - { - var ctnentity = item.Adapt(); - ctnentity.BILLID = entity.Id; - await _repCtn.InsertAsync(ctnentity); - - //这里保存有可能没有添加多品名,所有箱下没有货物信息 - if (item.ctnDetailInputs != null) - { - foreach (var it in item.ctnDetailInputs) - { - var ctndetail = it.Adapt(); - ctndetail.CTNID = ctnentity.Id; - await _ctndetailrep.InsertAsync(ctndetail); - } - } - } - } - - if (input.BookingEDIExt != null) - { - //写入EDI扩展 - var ediExtEntity = input.BookingEDIExt.Adapt(); - - ediExtEntity.BookingId = entity.Id; - - await _bookingEDIExt.InsertAsync(ediExtEntity); - } - - ////添加booking日志 - await _bookinglog.InsertAsync(new BookingLog - { - Type = "Add", - BookingId = entity.Id, - TenantId = Convert.ToInt64(UserManager.TENANT_ID), - CreatedTime = DateTime.Now, - CreatedUserId = UserManager.UserId, - CreatedUserName = UserManager.Name - }); - - //////分单不调用 - //if (!string.IsNullOrWhiteSpace(input.YARDID) && !string.IsNullOrWhiteSpace(input.YARD) && !string.IsNullOrWhiteSpace(input.MBLNO)) - //{ - // await SendTrace(entity.Id.ToString(), entity.YARDID, entity.YARD, entity.MBLNO); - //} - return entity.Id; - } - + #region 废弃代码 + + //[HttpPost("/BookingOrder/AddOrUpdate")] + //public async Task AddOrUpdate(BookingOrderDto Dto) + //{ + // if (Dto == null) + // { + // throw Oops.Bah("请传入正常数据!"); + // } + + // if (Dto.Id == 0) + // { + // return await Add(Dto); + // } + // else + // { + // await Update(Dto); + // return Dto.Id; + // } + //} + + ///// + ///// 增加订舱 + ///// + ///// + ///// + //[SqlSugarUnitOfWork] + //[HttpPost("/BookingOrder/Add")] + //public async Task Add(BookingOrderDto input) + //{ + // JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YARDID", "YardContract", "YardContractTel", "YardContractEmail", "MARKS", "DESCRIPTION", "CONSIGNEENAME", "SHIPPERNAME", "NOTIFYPARTYNAME"); + // var ms = JsonUtil.TrimFields(input); + // if (!string.IsNullOrEmpty(ms)) + // { + // throw Oops.Bah(ms); + // } + // if (input.ctnInputs != null) + // { + // var groupList = input.ctnInputs.Where(x => x.CTNNUM > 0).GroupBy(c => c.CTNALL).Select(g => $"{g.Key}*{g.Sum(gg => gg.CTNNUM)}"); + // input.CNTRTOTAL = string.Join(" / ", groupList); + // } + // if (!string.IsNullOrWhiteSpace(input.MBLNO)) + // { + // var et = await _rep.Where(x => x.MBLNO == input.MBLNO && x.TenantId == UserManager.TENANT_ID && x.HBLNO == input.HBLNO && x.ParentId == input.ParentId).FirstAsync(); + // if (et != null) + // { + + // throw Oops.Bah("当前提单号已存在,请勿重复录入!"); + + // } + // } + + + // var entity = input.Adapt(); + // entity.BOOKINGNO = Yitter.IdGenerator.YitIdHelper.NextId().ToString(); + // //entity.TOTALNO = NumberToUpper.ToUpper(entity.PKGS == null ? 0 : entity.PKGS); + // await _rep.InsertAsync(entity); + // if (input.ctnInputs != null) + // { + // foreach (var item in input.ctnInputs) + // { + // var ctnentity = item.Adapt(); + // ctnentity.BILLID = entity.Id; + // await _repCtn.InsertAsync(ctnentity); + + // //这里保存有可能没有添加多品名,所有箱下没有货物信息 + // if (item.ctnDetailInputs != null) + // { + // foreach (var it in item.ctnDetailInputs) + // { + // var ctndetail = it.Adapt(); + // ctndetail.CTNID = ctnentity.Id; + // await _ctndetailrep.InsertAsync(ctndetail); + // } + // } + // } + // } + + // if (input.BookingEDIExt != null) + // { + // //写入EDI扩展 + // var ediExtEntity = input.BookingEDIExt.Adapt(); + + // ediExtEntity.BookingId = entity.Id; + + // await _bookingEDIExt.InsertAsync(ediExtEntity); + // } + + // ////添加booking日志 + // await _bookinglog.InsertAsync(new BookingLog + // { + // Type = "Add", + // BookingId = entity.Id, + // TenantId = Convert.ToInt64(UserManager.TENANT_ID), + // CreatedTime = DateTime.Now, + // CreatedUserId = UserManager.UserId, + // CreatedUserName = UserManager.Name + // }); + + // //////分单不调用 + // //if (!string.IsNullOrWhiteSpace(input.YARDID) && !string.IsNullOrWhiteSpace(input.YARD) && !string.IsNullOrWhiteSpace(input.MBLNO)) + // //{ + // // await SendTrace(entity.Id.ToString(), entity.YARDID, entity.YARD, entity.MBLNO); + // //} + // return entity.Id; + //} + #endregion /// /// 删除订舱 /// @@ -1051,161 +1051,161 @@ namespace Myshipping.Application } - - /// - /// 更新订舱 - /// - /// - /// - [SqlSugarUnitOfWork] - [HttpPost("/BookingOrder/Update")] - public async Task Update(BookingOrderDto input) - { - - JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YARDID", "YardContract", "YardContractTel", "YardContractEmail", "MARKS", "DESCRIPTION", "CONSIGNEENAME", "SHIPPERNAME", "NOTIFYPARTYNAME"); - JsonUtil.TrimFields(input); - if (input.ctnInputs != null) - { - var groupList = input.ctnInputs.Where(x => x.CTNNUM > 0).GroupBy(c => c.CTNALL).Select(g => $"{g.Key}*{g.Sum(gg => gg.CTNNUM)}"); - input.CNTRTOTAL = string.Join(" / ", groupList); - } - var main = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync(); - - if (!string.IsNullOrWhiteSpace(input.MBLNO)) - { - var et = await _rep.Where(x => x.MBLNO == input.MBLNO && x.TenantId == UserManager.TENANT_ID && x.HBLNO == input.HBLNO && x.ParentId == input.ParentId && x.Id != input.Id).FirstAsync(); - if (et != null) - { - - throw Oops.Bah("当前提单号已存在,请勿重复录入!"); - - } - } - - - var entity = input.Adapt(); - //entity.TOTALNO = NumberToUpper.ToUpper(entity.PKGS == null ? 0 : entity.PKGS); - await _rep.AsUpdateable(entity).IgnoreColumns(it => new - { - it.ParentId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName, - it.TenantName, - it.IsDeleted, - it.BOOKINGNO - }).ExecuteCommandAsync(); - var ctnlist = await _repCtn.AsQueryable().Where(x => x.BILLID == input.Id).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) - { - foreach (var item in input.ctnInputs) - { - var ctnentity = item.Adapt(); - ctnentity.BILLID = entity.Id; - await _repCtn.InsertAsync(ctnentity); - if (item.ctnDetailInputs != null) - { - foreach (var it in item.ctnDetailInputs) - { - var ctndetail = it.Adapt(); - ctndetail.CTNID = ctnentity.Id; - await _ctndetailrep.InsertAsync(ctndetail); - } - } - } - } - - if (input.BookingEDIExt != null) - { - //检索EDI扩展 - var ediExtEntity = _bookingEDIExt.FirstOrDefault(u => u.BookingId == input.Id); - - if (ediExtEntity == null) - { - //写入EDI扩展 - ediExtEntity = input.BookingEDIExt.Adapt(); - ediExtEntity.BookingId = entity.Id; - - await _bookingEDIExt.InsertAsync(ediExtEntity); - } - else - { - //更新EDI扩展 - var currEdiExtEntity = input.BookingEDIExt.Adapt(); - - currEdiExtEntity.Id = ediExtEntity.Id; - currEdiExtEntity.BookingId = ediExtEntity.BookingId; - - await _bookingEDIExt.AsUpdateable(currEdiExtEntity).IgnoreColumns(it => new - { - it.BookingId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName - }).ExecuteCommandAsync(); - } - } - - - bool flag = true; - long bid = 0; - foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(entity)) - { - string name = descriptor.Name; - if (name == "TenantId" || name == "CreatedTime" || name == "UpdatedTime" || name == "CreatedUserId" || name == "CreatedUserName") - { - continue; - } - object value = descriptor.GetValue(entity); - var oldvalue = main.GetType().GetProperty(name).GetValue(main, null); - - if (name == "KGS" || name == "CBM") - { - if (Convert.ToDecimal(value) == Convert.ToDecimal(oldvalue)) - { - continue; - } - } - string _oldvalue = oldvalue != null ? oldvalue.ToString() : ""; - string _value = value != null ? value.ToString() : ""; - if (_oldvalue != _value && !string.IsNullOrWhiteSpace(descriptor.Description)) - { - if (flag) - { - ////添加booking日志 - bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog - { - Type = "Edit", - BookingId = entity.Id, - TenantId = Convert.ToInt64(UserManager.TENANT_ID), - CreatedTime = DateTime.Now, - CreatedUserId = UserManager.UserId, - CreatedUserName = UserManager.Name - }); - flag = false; - } - await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail - { - PId = bid, - Field = descriptor.Description, - OldValue = _oldvalue, - NewValue = _value, - }); - //if (descriptor.Name == "YARDID" || descriptor.Name == "YARD" || descriptor.Name == "MBLNO") - //{ - // if (!string.IsNullOrWhiteSpace(input.YARDID) && !string.IsNullOrWhiteSpace(input.YARD) && !string.IsNullOrWhiteSpace(input.MBLNO)) - // { - // await SendTrace(entity.Id.ToString(), entity.YARDID, entity.YARD, entity.MBLNO); - // } - //} - } - } - } - + #region 废弃代码 + ///// + ///// 更新订舱 + ///// + ///// + ///// + //[SqlSugarUnitOfWork] + //[HttpPost("/BookingOrder/Update")] + //public async Task Update(BookingOrderDto input) + //{ + + // JsonUtil.PropToUpper(input, "ORDNO", "BSSTATUS", "YARDID", "YardContract", "YardContractTel", "YardContractEmail", "MARKS", "DESCRIPTION", "CONSIGNEENAME", "SHIPPERNAME", "NOTIFYPARTYNAME"); + // JsonUtil.TrimFields(input); + // if (input.ctnInputs != null) + // { + // var groupList = input.ctnInputs.Where(x => x.CTNNUM > 0).GroupBy(c => c.CTNALL).Select(g => $"{g.Key}*{g.Sum(gg => gg.CTNNUM)}"); + // input.CNTRTOTAL = string.Join(" / ", groupList); + // } + // var main = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync(); + + // if (!string.IsNullOrWhiteSpace(input.MBLNO)) + // { + // var et = await _rep.Where(x => x.MBLNO == input.MBLNO && x.TenantId == UserManager.TENANT_ID && x.HBLNO == input.HBLNO && x.ParentId == input.ParentId && x.Id != input.Id).FirstAsync(); + // if (et != null) + // { + + // throw Oops.Bah("当前提单号已存在,请勿重复录入!"); + + // } + // } + + + // var entity = input.Adapt(); + // //entity.TOTALNO = NumberToUpper.ToUpper(entity.PKGS == null ? 0 : entity.PKGS); + // await _rep.AsUpdateable(entity).IgnoreColumns(it => new + // { + // it.ParentId, + // it.TenantId, + // it.CreatedTime, + // it.CreatedUserId, + // it.CreatedUserName, + // it.TenantName, + // it.IsDeleted, + // it.BOOKINGNO + // }).ExecuteCommandAsync(); + // var ctnlist = await _repCtn.AsQueryable().Where(x => x.BILLID == input.Id).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) + // { + // foreach (var item in input.ctnInputs) + // { + // var ctnentity = item.Adapt(); + // ctnentity.BILLID = entity.Id; + // await _repCtn.InsertAsync(ctnentity); + // if (item.ctnDetailInputs != null) + // { + // foreach (var it in item.ctnDetailInputs) + // { + // var ctndetail = it.Adapt(); + // ctndetail.CTNID = ctnentity.Id; + // await _ctndetailrep.InsertAsync(ctndetail); + // } + // } + // } + // } + + // if (input.BookingEDIExt != null) + // { + // //检索EDI扩展 + // var ediExtEntity = _bookingEDIExt.FirstOrDefault(u => u.BookingId == input.Id); + + // if (ediExtEntity == null) + // { + // //写入EDI扩展 + // ediExtEntity = input.BookingEDIExt.Adapt(); + // ediExtEntity.BookingId = entity.Id; + + // await _bookingEDIExt.InsertAsync(ediExtEntity); + // } + // else + // { + // //更新EDI扩展 + // var currEdiExtEntity = input.BookingEDIExt.Adapt(); + + // currEdiExtEntity.Id = ediExtEntity.Id; + // currEdiExtEntity.BookingId = ediExtEntity.BookingId; + + // await _bookingEDIExt.AsUpdateable(currEdiExtEntity).IgnoreColumns(it => new + // { + // it.BookingId, + // it.TenantId, + // it.CreatedTime, + // it.CreatedUserId, + // it.CreatedUserName + // }).ExecuteCommandAsync(); + // } + // } + + + // bool flag = true; + // long bid = 0; + // foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(entity)) + // { + // string name = descriptor.Name; + // if (name == "TenantId" || name == "CreatedTime" || name == "UpdatedTime" || name == "CreatedUserId" || name == "CreatedUserName") + // { + // continue; + // } + // object value = descriptor.GetValue(entity); + // var oldvalue = main.GetType().GetProperty(name).GetValue(main, null); + + // if (name == "KGS" || name == "CBM") + // { + // if (Convert.ToDecimal(value) == Convert.ToDecimal(oldvalue)) + // { + // continue; + // } + // } + // string _oldvalue = oldvalue != null ? oldvalue.ToString() : ""; + // string _value = value != null ? value.ToString() : ""; + // if (_oldvalue != _value && !string.IsNullOrWhiteSpace(descriptor.Description)) + // { + // if (flag) + // { + // ////添加booking日志 + // bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog + // { + // Type = "Edit", + // BookingId = entity.Id, + // TenantId = Convert.ToInt64(UserManager.TENANT_ID), + // CreatedTime = DateTime.Now, + // CreatedUserId = UserManager.UserId, + // CreatedUserName = UserManager.Name + // }); + // flag = false; + // } + // await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail + // { + // PId = bid, + // Field = descriptor.Description, + // OldValue = _oldvalue, + // NewValue = _value, + // }); + // //if (descriptor.Name == "YARDID" || descriptor.Name == "YARD" || descriptor.Name == "MBLNO") + // //{ + // // if (!string.IsNullOrWhiteSpace(input.YARDID) && !string.IsNullOrWhiteSpace(input.YARD) && !string.IsNullOrWhiteSpace(input.MBLNO)) + // // { + // // await SendTrace(entity.Id.ToString(), entity.YARDID, entity.YARD, entity.MBLNO); + // // } + // //} + // } + // } + //} + #endregion /// /// 获取订舱明细 /// @@ -1571,7 +1571,7 @@ namespace Myshipping.Application var userid = order.CreatedUserId; if (userid != null) { - + //获取当前用户已经录入的货物状态 var list = await _goodsStatus.AsQueryable().LeftJoin(_goodsStatusConfig.AsQueryable(), (goods, config) => config.Id == goods.ConfigId).Where((goods, config) => config.CreatedUserId == userid && goods.bookingId == input.BookingId). OrderBy((goods, config) => config.Sort). @@ -1589,7 +1589,7 @@ namespace Myshipping.Application Sort = config.Sort }).ToListAsync(); - + //配置中所有的货物状态 var config = _goodsStatusConfig.AsQueryable().Where(config => config.CreatedUserId == userid).ToList().DistinctBy(x => x.StatusName).Select(config => new GoodsStatusQuery { @@ -1604,11 +1604,12 @@ namespace Myshipping.Application Remark = null, Sort = config.Sort }).ToList(); - + //去掉两个list中重复的货物状态 foreach (var item in list) { config.RemoveAll(x => x.ConfigId == item.ConfigId); } + var t = list.Union(config).OrderBy(x => x.Sort).DistinctBy(x => x.StatusName).ToList(); if (t != null) { @@ -1632,12 +1633,7 @@ namespace Myshipping.Application it.BOOKINGNO }).ExecuteCommandAsync(); - } - - - - List tslist = new List(); tslist.Add((long)input.BookingId); var itemcode = _cache.GetAllTenantParam().Result.Where(x => x.ParaCode == "BOOKING_DATA_PUSH" && x.TenantId == UserManager.TENANT_ID).Select(x => x.ItemCode).FirstOrDefault();