diff --git a/ds-wms-service/DS.WMS.Core/Op/Method/DataCallBackService.cs b/ds-wms-service/DS.WMS.Core/Op/Method/DataCallBackService.cs
index c0b680d1..e965dfac 100644
--- a/ds-wms-service/DS.WMS.Core/Op/Method/DataCallBackService.cs
+++ b/ds-wms-service/DS.WMS.Core/Op/Method/DataCallBackService.cs
@@ -16,6 +16,7 @@ using Mapster;
using Microsoft.AspNetCore.Identity;
using DS.Module.Core.Constants;
using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json;
namespace DS.WMS.Core.Op.Method
{
@@ -49,408 +50,423 @@ namespace DS.WMS.Core.Op.Method
///
///
public async Task AddBookingStatusLog(List req)
- {
+ {
try
{
- if (req.Count == 0)
+ // 当BusinessId不为空时,将BusinessId的值转为订舱主键;否则仍然使用BookingId作为订舱记录主键
+ if (!string.IsNullOrEmpty(req[0].BusinessId))
{
-
- return;
+ if (long.TryParse(req[0].BusinessId, out long itemBusinessId))
+ {
+ req[0].BookingId = itemBusinessId;
+ }
+ else
+ {
+ _logger.Error($"在将item.BusinessId转为BookingId时发生异常,货运动态插入失败;item.BusinessId的值为:{req[0].BusinessId}");
+ return;
+ }
}
- else
+ _logger.Info($"货运动态回调:"+ JsonConvert.SerializeObject(req));
+ //订舱状态
+ var dicList = db.Queryable().Where(x => x.TypeId == 1788810332945387520).ToList();
+ foreach (var item in req)
{
- //订舱状态
- var dicList = db.Queryable().Where(x => x.TypeId == 1788810332945387520).ToList();
- foreach (var item in req)
- {
- // 当BusinessId不为空时,将BusinessId的值转为订舱主键;否则仍然使用BookingId作为订舱记录主键
- if (!string.IsNullOrEmpty(item.BusinessId))
+ // 当BusinessId不为空时,将BusinessId的值转为订舱主键;否则仍然使用BookingId作为订舱记录主键
+ if (!string.IsNullOrEmpty(item.BusinessId))
+ {
+ if (long.TryParse(item.BusinessId, out long itemBusinessId))
{
- if (long.TryParse(item.BusinessId, out long itemBusinessId))
- {
- item.BookingId = itemBusinessId;
- }
- else
- {
- _logger.Error($"在将item.BusinessId转为BookingId时发生异常,货运动态插入失败;item.BusinessId的值为:{item.BusinessId}");
- continue;
- }
+ item.BookingId = itemBusinessId;
}
- var tenantId= accessor.HttpContext.Request.Headers["PushBackKey"].FirstOrDefault();
- var tenantDb = saasService.GetBizDbScopeById(tenantId);
- var businessId = item.BookingId;
- //TODO
- var list = await tenantDb.Queryable().Filter(null, true)
- .InnerJoin((d, t) => d.StatusCode == t.Value && d.StatusGroup == "booking_status_group_billtrace" && d.BusinessId == businessId).Select((d, t) => new
- {
- BusinessId = d.BusinessId,
- StatusCode = d.StatusCode,
- StatusName = d.StatusName,
- StatusTime = d.StatusTime,
- Name = t.Name,
- Value = t.Value
- }).ToListAsync();
- // var list = await tenantDb.Queryable().Filter(null, true).Where(x=>x.StatusGroup == "booking_status_group_billtrace" && x.BusinessId == businessId).Select(d=> new
- //{
- // BusinessId = d.BusinessId,
- // StatusCode = d.StatusCode,
- // StatusName = d.StatusName,
- // StatusTime = d.StatusTime
- //}).ToListAsync();
-
- var oldLog = await tenantDb.Queryable().Where(x => x.BusinessId == businessId && x.Group == "yunzong").FirstAsync();
+ else
+ {
+ _logger.Error($"在将item.BusinessId转为BookingId时发生异常,货运动态插入失败;item.BusinessId的值为:{item.BusinessId}");
+ continue;
+ }
+ }
+ var tenantId = accessor.HttpContext.Request.Headers["PushBackKey"].FirstOrDefault();
+ var tenantDb = saasService.GetBizDbScopeById(tenantId);
+ var businessId = item.BookingId;
+ //TODO
+ var list = await tenantDb.Queryable().Filter(null, true)
+ .InnerJoin((d, t) => d.StatusCode == t.Value && t.TypeId == 1788810332945387520 && d.StatusGroup == "booking_status_group_billtrace"
+ && d.BusinessId == businessId, "shippingweb8_dev.sys_dict_data")
+ .Select((d, t) => new
+ {
+ BusinessId = d.BusinessId,
+ StatusCode = d.StatusCode,
+ StatusName = d.StatusName,
+ StatusTime = d.StatusTime,
+ Name = t.Name,
+ Value = t.Value
+ }).ToListAsync();
+ // var list = await tenantDb.Queryable().Filter(null, true).Where(x=>x.StatusGroup == "booking_status_group_billtrace" && x.BusinessId == businessId).Select(d=> new
+ //{
+ // BusinessId = d.BusinessId,
+ // StatusCode = d.StatusCode,
+ // StatusName = d.StatusName,
+ // StatusTime = d.StatusTime
+ //}).ToListAsync();
+
+ var oldLog = await tenantDb.Queryable().Where(x => x.BusinessId == businessId && x.Group == "yunzong").FirstAsync();
+ if (oldLog.IsNotNull()) {
//删除日志详情和日志
var oldLogDetails = await tenantDb.Queryable().Where(x => x.PId == oldLog.Id).ToListAsync();
- await tenantDb.Deleteable(oldLogDetails).ExecuteCommandAsync();
+ if (oldLogDetails.Count > 0)
+ {
+ await tenantDb.Deleteable(oldLogDetails).ExecuteCommandAsync();
+ }
await tenantDb.Deleteable(oldLog).ExecuteCommandAsync();
+ }
+
- #region 日志
- //新增数据
- var statusLog = new BookingStatusLog()
- {
- BusinessId = businessId,
- Group = "yunzong",
- Status = item.Status,
- OpTime = item.OpTime,
- MBLNO = item.MBLNO
- };
- await tenantDb.Insertable(statusLog).ExecuteCommandAsync();
- if (item.detail != null && item.detail.Count > 0)
+ #region 日志
+ //新增数据
+ var statusLog = new BookingStatusLog()
+ {
+ BusinessId = businessId,
+ Group = "yunzong",
+ Status = item.Status,
+ OpTime = item.OpTime,
+ MBLNO = item.MBLNO
+ };
+ await tenantDb.Insertable(statusLog).ExecuteCommandAsync();
+ if (item.detail != null && item.detail.Count > 0)
+ {
+ foreach (var dt in item.detail)
{
- foreach (var dt in item.detail)
+ var logDetail = new BookingStatusLogDetail()
{
- var logDetail = new BookingStatusLogDetail()
- {
- PId = statusLog.Id,
- Status = dt.Status,
- CNTRNO = dt.CNTRNO,
- OpTime = dt.OPTime
- };
- await tenantDb.Insertable(logDetail).ExecuteCommandAsync();
- }
+ PId = statusLog.Id,
+ Status = dt.Status,
+ CNTRNO = dt.CNTRNO,
+ OpTime = dt.OPTime
+ };
+ await tenantDb.Insertable(logDetail).ExecuteCommandAsync();
}
- if (item.Status == "提箱")
- {
- //自动引入场站箱型箱量数据
- //await _bookingorderservice.AutoYardData(item.BookingId);
+ }
+ if (item.Status == "提箱")
+ {
+ //自动引入场站箱型箱量数据
+ //await _bookingorderservice.AutoYardData(item.BookingId);
- //#region 推送已提箱状态
- ////2023-12-28 JHQ 增加提箱推送状态
- //DateTime opTime = DateTime.MinValue;
+ //#region 推送已提箱状态
+ ////2023-12-28 JHQ 增加提箱推送状态
+ //DateTime opTime = DateTime.MinValue;
- //if (item.detail != null && item.detail.Count > 0 && item.detail.Any(x => x.OPTime.HasValue))
- // opTime = item.detail.Where(x => x.OPTime.HasValue).Max(x => x.OPTime.Value);
+ //if (item.detail != null && item.detail.Count > 0 && item.detail.Any(x => x.OPTime.HasValue))
+ // opTime = item.detail.Where(x => x.OPTime.HasValue).Max(x => x.OPTime.Value);
- //var pushModel = new ModifyServiceProjectStatusDto
- //{
- // BookingId = businessId,
- // SourceType = TrackingSourceTypeEnum.AUTO,
- // StatusCodes = new List {
- // new ModifyServiceProjectStatusDetailDto { StatusCode = "YTX" } }
- //};
+ //var pushModel = new ModifyServiceProjectStatusDto
+ //{
+ // BookingId = businessId,
+ // SourceType = TrackingSourceTypeEnum.AUTO,
+ // StatusCodes = new List {
+ // new ModifyServiceProjectStatusDetailDto { StatusCode = "YTX" } }
+ //};
- //if (opTime != DateTime.MinValue)
- //{
- // pushModel.StatusCodes[0].SetActDate = opTime;
- //}
+ //if (opTime != DateTime.MinValue)
+ //{
+ // pushModel.StatusCodes[0].SetActDate = opTime;
+ //}
- //var saveStatusRlt = await _bookingValueAddedService.SaveServiceStatus(pushModel);
+ //var saveStatusRlt = await _bookingValueAddedService.SaveServiceStatus(pushModel);
- //_logger.Info("请求JSON={json} 异步推送服务状态完成,结果={rlt}", JSON.Serialize(pushModel), JSON.Serialize(saveStatusRlt));
- //#endregion
- }
+ //_logger.Info("请求JSON={json} 异步推送服务状态完成,结果={rlt}", JSON.Serialize(pushModel), JSON.Serialize(saveStatusRlt));
+ //#endregion
+ }
- #endregion
+ #endregion
- #region 订舱状态
- if (item.Status == "舱单")
+ #region 订舱状态
+ if (item.Status == "舱单")
+ {
+ if (list.Where(x => x.Value == "status_cangdan").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_cangdan").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_cangdan",
- StatusName = dicList.Where(x => x.Value == "status_cangdan").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- //2023-12-28 JHQ 增加舱单放行推送状态
- await seaComService.SetGoodsStatus("CDFX", item.BookingId);
- }
+ BusinessId = businessId,
+ StatusCode = "status_cangdan",
+ StatusName = dicList.Where(x => x.Value == "status_cangdan").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ //2023-12-28 JHQ 增加舱单放行推送状态
+ await seaComService.SetGoodsStatus("CDFX", item.BookingId);
}
- if (item.Status == "海关放行")
+ }
+ if (item.Status == "海关放行")
+ {
+ if (list.Where(x => x.Value == "status_haifang").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_haifang").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_haifang",
- StatusName = dicList.Where(x => x.Value == "status_haifang").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- await seaComService.SetGoodsStatus("BG", item.BookingId);
+ BusinessId = businessId,
+ StatusCode = "status_haifang",
+ StatusName = dicList.Where(x => x.Value == "status_haifang").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ await seaComService.SetGoodsStatus("BG", item.BookingId);
- }
}
- if (item.Status == "装载")
+ }
+ if (item.Status == "装载")
+ {
+ if (list.Where(x => x.Value == "status_zhuangzai").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_zhuangzai").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_zhuangzai",
- StatusName = dicList.Where(x => x.Value == "status_zhuangzai").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- await seaComService.SetGoodsStatus("ZZFX", item.BookingId);
+ BusinessId = businessId,
+ StatusCode = "status_zhuangzai",
+ StatusName = dicList.Where(x => x.Value == "status_zhuangzai").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ await seaComService.SetGoodsStatus("ZZFX", item.BookingId);
- }
}
- if (item.Status == "码放")
+ }
+ if (item.Status == "码放")
+ {
+ if (list.Where(x => x.Value == "status_mafang").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_mafang").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_mafang",
- StatusName = dicList.Where(x => x.Value == "status_mafang").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- await seaComService.SetGoodsStatus("MTFX", item.BookingId);
+ BusinessId = businessId,
+ StatusCode = "status_mafang",
+ StatusName = dicList.Where(x => x.Value == "status_mafang").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ await seaComService.SetGoodsStatus("MTFX", item.BookingId);
- }
}
- if (item.Status == "装船")
+ }
+ if (item.Status == "装船")
+ {
+ if (list.Where(x => x.Value == "status_zhuangchuan").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_zhuangchuan").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_zhuangchuan",
- StatusName = dicList.Where(x => x.Value == "status_zhuangchuan").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- }
+ BusinessId = businessId,
+ StatusCode = "status_zhuangchuan",
+ StatusName = dicList.Where(x => x.Value == "status_zhuangchuan").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
}
- if (item.Status == "ATD")
+ }
+ if (item.Status == "ATD")
+ {
+ if (list.Where(x => x.Value == "status_atd").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_atd").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_atd",
- StatusName = dicList.Where(x => x.Value == "status_atd").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ BusinessId = businessId,
+ StatusCode = "status_atd",
+ StatusName = dicList.Where(x => x.Value == "status_atd").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- }
}
- if (item.Status == "MDGETA")
+ }
+ if (item.Status == "MDGETA")
+ {
+ if (list.Where(x => x.Value == "status_mdgeta").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_mdgeta").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_mdgeta",
- StatusName = dicList.Where(x => x.Value == "status_mdgeta").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ BusinessId = businessId,
+ StatusCode = "status_mdgeta",
+ StatusName = dicList.Where(x => x.Value == "status_mdgeta").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- }
+ }
- var order = tenantDb.Queryable().Filter(null, true).Where(x => x.Id == businessId && x.Deleted == false).First();
+ var order = tenantDb.Queryable().Filter(null, true).Where(x => x.Id == businessId && x.Deleted == false).First();
- if (order.ETA != item.OpTime && item.OpTime != null)
- {
- order.ETA = item.OpTime;
- await tenantDb.Updateable(order).EnableDiffLogEvent().ExecuteCommandAsync();
- }
+ if (order.ETA != item.OpTime && item.OpTime != null)
+ {
+ order.ETA = item.OpTime;
+ await tenantDb.Updateable(order).EnableDiffLogEvent().ExecuteCommandAsync();
}
- if (item.Status == "MDGATA")
+ }
+ if (item.Status == "MDGATA")
+ {
+ if (list.Where(x => x.Value == "status_mdgata").FirstOrDefault() == null)
{
- if (list.Where(x => x.Value == "status_mdgata").FirstOrDefault() == null)
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_mdgata",
- StatusName = dicList.Where(x => x.Value == "status_mdgata").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- }
+ BusinessId = businessId,
+ StatusCode = "status_mdgata",
+ StatusName = dicList.Where(x => x.Value == "status_mdgata").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ }
- var order = tenantDb.Queryable().Filter(null, true).Where(x => x.Id == businessId && x.Deleted == false).First();
+ var order = tenantDb.Queryable().Filter(null, true).Where(x => x.Id == businessId && x.Deleted == false).First();
- if (order.ATA != item.OpTime && item.OpTime != null)
- {
- order.ATA = item.OpTime;
- await tenantDb.Updateable(order).EnableDiffLogEvent().ExecuteCommandAsync();
- }
- }
- #region 入港时间
- if (item.Status == "入港")
+ if (order.ATA != item.OpTime && item.OpTime != null)
{
+ order.ATA = item.OpTime;
+ await tenantDb.Updateable(order).EnableDiffLogEvent().ExecuteCommandAsync();
+ }
+ }
+ #region 入港时间
+ if (item.Status == "入港")
+ {
- if (list.Where(x => x.Value == "status_rugang").FirstOrDefault() == null)
+ if (list.Where(x => x.Value == "status_rugang").FirstOrDefault() == null)
+ {
+ var bookingStatus = new BookingStatus()
{
- var bookingStatus = new BookingStatus()
- {
- BusinessId = businessId,
- StatusCode = "status_rugang",
- StatusName = dicList.Where(x => x.Value == "status_rugang").Select(x => x.Name).First(),
- StatusTime = item.OpTime,
- StatusGroup = "booking_status_group_billtrace"
- };
- await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
- await seaComService.SetGoodsStatus("YRG", item.BookingId);
- }
+ BusinessId = businessId,
+ StatusCode = "status_rugang",
+ StatusName = dicList.Where(x => x.Value == "status_rugang").Select(x => x.Name).First(),
+ StatusTime = item.OpTime,
+ StatusGroup = "booking_status_group_billtrace"
+ };
+ await tenantDb.Insertable(bookingStatus).ExecuteCommandAsync();
+ await seaComService.SetGoodsStatus("YRG", item.BookingId);
}
- #endregion
- #endregion
+ }
+ #endregion
+ #endregion
+
+ #region 船舶动态:ATD ETD ATA ETA MDGETA MDGATA
+ if (item.Status == "ATD" || item.Status == "ETD" || item.Status == "ATA" || item.Status == "ETA" || item.Status == "MDGETA" || item.Status == "MDGATA")
+ {
+ var config = await db.Queryable().FirstAsync(x => x.Code == TenantParamCode.ENABLE_STATUS_TO_SAILING_DATE);
- #region 船舶动态:ATD ETD ATA ETA MDGETA MDGATA
- if (item.Status == "ATD" || item.Status == "ETD" || item.Status == "ATA" || item.Status == "ETA" || item.Status == "MDGETA" || item.Status == "MDGATA")
+ if (config.IsNotNull() && config.Value == "YES")
{
- var config = await db.Queryable().FirstAsync(x => x.Code == TenantParamCode.ENABLE_STATUS_TO_SAILING_DATE);
-
- if (config.IsNotNull() && config.Value == "YES")
+ var order = await tenantDb.Queryable().Where(x => x.Id == businessId && x.MBLNO == item.MBLNO).FirstAsync();
+ if (item.Status == "ATD")
{
- var order = await tenantDb.Queryable().Where(x => x.Id == businessId && x.MBLNO == item.MBLNO).FirstAsync();
- if (item.Status == "ATD")
- {
- //2023-8-31,排查单号为177GZHZHQ5711V的数据,原来录入的船已开船,运踪港前不再查询,而因订阅港后数据会继续回推数据,所以导致ATD被改
- //因此,暂时取消运踪回推时写入ATD,还是以船期表查询为准
+ //2023-8-31,排查单号为177GZHZHQ5711V的数据,原来录入的船已开船,运踪港前不再查询,而因订阅港后数据会继续回推数据,所以导致ATD被改
+ //因此,暂时取消运踪回推时写入ATD,还是以船期表查询为准
+
+ // 2024-4-8 因为港捷需要,重新开启,并通过租户参数判断
+ //变更ATD
- // 2024-4-8 因为港捷需要,重新开启,并通过租户参数判断
- //变更ATD
-
- if (order != null && item.OpTime != null && order.ATD != item.OpTime)
+ if (order != null && item.OpTime != null && order.ATD != item.OpTime)
+ {
+ order.ATD = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.ATD = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.ATD
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //sendDsList.Add(item.BookingId);
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
-
- /*
- * 2023年8月24日改,取消运踪回推ATD的批量更新功能
- * 和川操作经常修改提单号和船名航次,但修改时间会差好几天,导致运踪根据提单号查询的数据,回写回来之后,再根据船名航次去批量更新数据时,错误的把其他数据修改了
- * 因此,不能根据船名航次去批量修改数据,因为操作写的船名航次可能是错误的,导致把他人的数据修改错误
- */
- ////批量变更相同船期
- //if (!string.IsNullOrEmpty(o.VESSEL) && !string.IsNullOrEmpty(o.VOYNO) && !string.IsNullOrEmpty(o.CARRIERID))
- //{
- // var order = await _rep.AsQueryable().Filter(null, true).Where(x => x.VOYNO == o.VOYNO && x.VESSEL == o.VESSEL && x.CARRIERID == o.CARRIERID && x.TenantId == o.TenantId && x.IsDeleted == false && x.Id != item.BookingId).ToListAsync();
-
- // foreach (var it in order)
- // {
- // var _oldorder = it;
- // var _oldatd = it.ATD;
- // if (_oldatd != item.OpTime)
- // {
- // it.ATD = item.OpTime;
- // await _rep.UpdateAsync(it);
- // await _bookingorderservice.SaveLog(it, _oldorder);
- // await _bookingorderservice.SendBookingOrder(new long[] { it.Id });
- // }
- // }
- //}
+ x.ATD
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //sendDsList.Add(item.BookingId);
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
- else if (item.Status == "ETD")
+
+ /*
+ * 2023年8月24日改,取消运踪回推ATD的批量更新功能
+ * 和川操作经常修改提单号和船名航次,但修改时间会差好几天,导致运踪根据提单号查询的数据,回写回来之后,再根据船名航次去批量更新数据时,错误的把其他数据修改了
+ * 因此,不能根据船名航次去批量修改数据,因为操作写的船名航次可能是错误的,导致把他人的数据修改错误
+ */
+ ////批量变更相同船期
+ //if (!string.IsNullOrEmpty(o.VESSEL) && !string.IsNullOrEmpty(o.VOYNO) && !string.IsNullOrEmpty(o.CARRIERID))
+ //{
+ // var order = await _rep.AsQueryable().Filter(null, true).Where(x => x.VOYNO == o.VOYNO && x.VESSEL == o.VESSEL && x.CARRIERID == o.CARRIERID && x.TenantId == o.TenantId && x.IsDeleted == false && x.Id != item.BookingId).ToListAsync();
+
+ // foreach (var it in order)
+ // {
+ // var _oldorder = it;
+ // var _oldatd = it.ATD;
+ // if (_oldatd != item.OpTime)
+ // {
+ // it.ATD = item.OpTime;
+ // await _rep.UpdateAsync(it);
+ // await _bookingorderservice.SaveLog(it, _oldorder);
+ // await _bookingorderservice.SendBookingOrder(new long[] { it.Id });
+ // }
+ // }
+ //}
+ }
+ else if (item.Status == "ETD")
+ {
+ if (order != null && item.OpTime != null && order.YgtETD != item.OpTime)
{
- if (order != null && item.OpTime != null && order.YgtETD != item.OpTime)
+ order.YgtETD = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.YgtETD = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.YgtETD
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
+ x.YgtETD
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
- else if (item.Status == "ATA")
+ }
+ else if (item.Status == "ATA")
+ {
+ if (order != null && item.OpTime != null && order.StartATA != item.OpTime)
{
- if (order != null && item.OpTime != null && order.StartATA != item.OpTime)
+ order.StartATA = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.StartATA = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.StartATA
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
+ x.StartATA
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
- else if (item.Status == "ETA")
+ }
+ else if (item.Status == "ETA")
+ {
+ if (order != null && item.OpTime != null && order.StartETA != item.OpTime)
{
- if (order != null && item.OpTime != null && order.StartETA != item.OpTime)
+ order.StartETA = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.StartETA = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.StartETA
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
+ x.StartETA
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
- else if (item.Status == "MDGETA")
+ }
+ else if (item.Status == "MDGETA")
+ {
+ if (order != null && item.OpTime != null && order.ETA != item.OpTime)
{
- if (order != null && item.OpTime != null && order.ETA != item.OpTime)
+ order.ETA = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.ETA = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.ETA
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
-
+ x.ETA
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
- else if (item.Status == "MDGATA")
+
+ }
+ else if (item.Status == "MDGATA")
+ {
+ if (order != null && item.OpTime != null && order.ATA != item.OpTime)
{
- if (order != null && item.OpTime != null && order.ATA != item.OpTime)
+ order.ATA = item.OpTime;
+ await tenantDb.Updateable(order).UpdateColumns(x => new
{
- order.ATA = item.OpTime;
- await tenantDb.Updateable(order).UpdateColumns(x => new
- {
- x.ATA
- }).EnableDiffLogEvent().ExecuteCommandAsync();
- //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
- }
-
+ x.ATA
+ }).EnableDiffLogEvent().ExecuteCommandAsync();
+ //await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
+
}
}
- #endregion
}
-
+ #endregion
}
+
+
}
catch (Exception ex)
{
@@ -465,6 +481,6 @@ namespace DS.WMS.Core.Op.Method
-
+
}
}
diff --git a/ds-wms-service/DS.WMS.Core/Op/Method/SeaExportTraceService.cs b/ds-wms-service/DS.WMS.Core/Op/Method/SeaExportTraceService.cs
index ab9d09db..9022d3fe 100644
--- a/ds-wms-service/DS.WMS.Core/Op/Method/SeaExportTraceService.cs
+++ b/ds-wms-service/DS.WMS.Core/Op/Method/SeaExportTraceService.cs
@@ -114,6 +114,7 @@ namespace DS.WMS.Core.Op.Method
billdto.PWD = userPwd;
billdto.url = resUrl;
billdto.Gid = userId;
+ billdto.PushBackKey = user.TenantId;//根据回传的租户Id回调
var json = billdto.ToJsonString();
var postData =new { msg = json };
@@ -163,7 +164,7 @@ namespace DS.WMS.Core.Op.Method
Key = userKey,
PWD = userPwd,
Gid = userId,
- PushBackKey= user.TenantId.ToString(),
+ PushBackKey= user.TenantId,
};
foreach (var item in req)
{
diff --git a/ds-wms-service/DS.WMS.Core/Sys/Dtos/UserReq.cs b/ds-wms-service/DS.WMS.Core/Sys/Dtos/UserReq.cs
index 6c7e15d2..cbe9605a 100644
--- a/ds-wms-service/DS.WMS.Core/Sys/Dtos/UserReq.cs
+++ b/ds-wms-service/DS.WMS.Core/Sys/Dtos/UserReq.cs
@@ -24,7 +24,7 @@ public class UserReq
///
/// 密码
///
- [RegularExpression(pattern:@"^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,}$",ErrorMessage ="密码至少要包含8个字符,同时包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符")]
+ //[RegularExpression(pattern:@"^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,}$",ErrorMessage ="密码至少要包含8个字符,同时包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符")]
public string Password { get; set; }
///
diff --git a/ds-wms-service/DS.WMS.Core/Sys/Interface/IUserService.cs b/ds-wms-service/DS.WMS.Core/Sys/Interface/IUserService.cs
index 3dc8f88b..3622534e 100644
--- a/ds-wms-service/DS.WMS.Core/Sys/Interface/IUserService.cs
+++ b/ds-wms-service/DS.WMS.Core/Sys/Interface/IUserService.cs
@@ -1,4 +1,5 @@
using DS.Module.Core;
+using DS.Module.Core.Data;
using DS.WMS.Core.Sys.Dtos;
namespace DS.WMS.Core.Sys.Interface;
@@ -32,4 +33,12 @@ public interface IUserService
///
///
public Task CheckUserCode(string code);
+
+
+ ///
+ /// 删除用户
+ ///
+ ///
+ ///
+ public Task BatchDelUser(IdModel req);
}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.Core/Sys/Method/UserService.cs b/ds-wms-service/DS.WMS.Core/Sys/Method/UserService.cs
index fc74b8a5..58a4c544 100644
--- a/ds-wms-service/DS.WMS.Core/Sys/Method/UserService.cs
+++ b/ds-wms-service/DS.WMS.Core/Sys/Method/UserService.cs
@@ -1,7 +1,10 @@
using DS.Module.Core;
+using DS.Module.Core.Data;
using DS.Module.Core.Extensions;
using DS.Module.Core.Helpers;
+using DS.Module.SqlSugar;
using DS.Module.UserModule;
+using DS.WMS.Core.Code.Entity;
using DS.WMS.Core.Sys.Dtos;
using DS.WMS.Core.Sys.Entity;
using DS.WMS.Core.Sys.Interface;
@@ -114,7 +117,6 @@ public class UserService : IUserService
}
}
-
#endregion
var data = model.MapTo();
@@ -150,7 +152,7 @@ public class UserService : IUserService
}
if (model.LaneIds.Count() > 0)
{
- foreach (var item in model.OrgIds)
+ foreach (var item in model.LaneIds)
{
var laneUser = new SysUserLane
{
@@ -263,4 +265,39 @@ public class UserService : IUserService
return DataResult.Successed("更新成功!",MultiLanguageConst.DataUpdateSuccess);
}
}
+ ///
+ /// 删除用户
+ ///
+ ///
+ ///
+ public async Task BatchDelUser(IdModel req)
+ {
+ if (req.Ids.Contains(long.Parse(user.UserId)))
+ {
+ return await Task.FromResult(DataResult.Failed("不能删除本人账号!"));
+ }
+ var list = await db.Queryable().Where(x => req.Ids.Contains(x.Id)).ToListAsync();
+ if (list.Count > 0)
+ {
+ foreach (var item in list)
+ {
+
+ var roleUsers = await db.Queryable().Where(x => x.UserId == item.Id).ToListAsync();
+ if (roleUsers.Count > 0)
+ await db.Deleteable(roleUsers).ExecuteCommandAsync();
+
+ var orgUsers = await db.Queryable().Where(x => x.UserId == item.Id).ToListAsync();
+ if (orgUsers.Count > 0)
+ await db.Deleteable(orgUsers).ExecuteCommandAsync();
+
+ var userLanes = await db.Queryable().Where(x => x.UserId == item.Id).ToListAsync();
+ if (userLanes.Count > 0)
+ await db.Deleteable(userLanes).ExecuteCommandAsync();
+ }
+ await db.Deleteable(list).ExecuteCommandAsync();
+
+ }
+ return await Task.FromResult(DataResult.Successed("删除成功!", MultiLanguageConst.DataDelSuccess));
+
+ }
}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/UserController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/UserController.cs
index cc1b2819..abc8258c 100644
--- a/ds-wms-service/DS.WMS.MainApi/Controllers/UserController.cs
+++ b/ds-wms-service/DS.WMS.MainApi/Controllers/UserController.cs
@@ -1,4 +1,5 @@
using DS.Module.Core;
+using DS.Module.Core.Data;
using DS.WMS.Core.Sys.Dtos;
using DS.WMS.Core.Sys.Interface;
using Microsoft.AspNetCore.Mvc;
@@ -72,4 +73,17 @@ public class UserController : ApiController
var res = await _invokeService.CheckUserCode(code);
return res;
}
+
+ ///
+ /// 批量删除用户
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("BatchDelUser")]
+ public async Task BatchDelUser([FromBody] IdModel req)
+ {
+ var res =await _invokeService.BatchDelUser(req);
+ return res;
+ }
}
\ No newline at end of file