diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index 833ecde6..8f305c70 100644
Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
index 7db1622b..ab53050c 100644
--- a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
+++ b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
@@ -204,5 +204,20 @@ namespace WMS.Web.Api.Controllers
//再刷新3天内所有的
return await _outStockTaskService.Sync(null, begin);
}
+ ///
+ /// 出库任务单详情
+ ///
+ ///
+ ///
+ [HttpGet]
+ [Route("GetInfo/{id}")]
+ public async Task> GetInfo([FromRoute] int id)
+ {
+ var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ if (loginInfo == null || loginInfo.UserInfo == null)
+ return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+
+ return await _outStockTaskService.GetInfo(id, loginInfo);
+ }
}
}
diff --git a/src/WMS.Web.Api/Controllers/SubscribeNotificationController.cs b/src/WMS.Web.Api/Controllers/SubscribeNotificationController.cs
index 595067d6..4d729e39 100644
--- a/src/WMS.Web.Api/Controllers/SubscribeNotificationController.cs
+++ b/src/WMS.Web.Api/Controllers/SubscribeNotificationController.cs
@@ -128,5 +128,23 @@ namespace WMS.Web.Api.Controllers
if (!res) Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ [HttpGet]
+ [Route("GetInfo/{id}")]
+ public async Task> GetInfo([FromRoute] int id)
+ {
+ var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ if (loginInfo == null || loginInfo.UserInfo == null)
+ return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+
+ var entity = await _repositories.Get(id);
+ if (entity == null || entity.IsDelete == true) Result.ReFailure(ResultCodes.SubscribeNotificationNoData);
+ return Result.ReSuccess(_mapper.Map(entity));
+ }
}
}
diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs
index 4077980a..8a5003ec 100644
--- a/src/WMS.Web.Api/Controllers/SysConfigController.cs
+++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs
@@ -275,7 +275,7 @@ namespace WMS.Web.Api.Controllers
}
///
- /// 获取出库单客户下拉列表
+ /// 获取客户下拉列表(包含组织信息)
///
/// 客户名
///
@@ -308,7 +308,33 @@ namespace WMS.Web.Api.Controllers
});
}
- return Result>.ReSuccess(pullList);
+ return Result>.ReSuccess(pullList.Take(20).ToList());
+ }
+ ///
+ /// 获取客户下拉列表(纯客户信息 不包含组织信息)
+ ///
+ /// 客户名
+ ///
+ [HttpGet]
+ [Route("GetCustomersNoOrg/{name}")]
+ public async Task>> GetCustomersNoOrg([FromRoute] string name)
+ {
+ var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ if (loginInfo == null || loginInfo.UserInfo == null)
+ return Result>.ReFailure(ResultCodes.Token_Invalid_Error);
+ var customers = await _erpService.BillQueryForCustomer();
+
+ List pullList = new List();
+ foreach (var c in customers.Data.Where(w => w.Name.Contains(name)))
+ {
+ pullList.Add(new PullDownStrResponse()
+ {
+ Id = c.Id.ToString(),
+ Name = c.Name,
+ Code = c.Number
+ });
+ }
+ return Result>.ReSuccess(pullList.Take(20).ToList());
}
///
@@ -459,10 +485,11 @@ namespace WMS.Web.Api.Controllers
///
/// 序列号或规格型号或物料编码
/// 组织编码
+ /// 是否需要支持老ops条码查询
///
[HttpGet]
[Route("GetMaterial")]
- public async Task> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null)
+ public async Task> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null, [FromQuery] bool IsOps = false)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index 43380d37..483669d1 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -499,6 +499,13 @@
+
+
+ 出库任务单详情
+
+
+
+
获取序列号信息
@@ -539,6 +546,13 @@
+
+
+ 获取详情
+
+
+
+
系统配置
@@ -593,7 +607,14 @@
- 获取出库单客户下拉列表
+ 获取客户下拉列表(包含组织信息)
+
+ 客户名
+
+
+
+
+ 获取客户下拉列表(纯客户信息 不包含组织信息)
客户名
@@ -641,12 +662,13 @@
必填
-
+
根据序列号或规格型号,物料编码搜索物料信息-PDA
序列号或规格型号或物料编码
组织编码
+ 是否需要支持老ops条码查询
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 9b3c988c..b23e6bce 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -4664,6 +4664,106 @@
单号
+
+
+ 出库任务单对应出库明细
+
+
+
+
+ 物料编码
+
+
+
+
+ 物料规格型号
+
+
+
+
+ 箱号
+
+
+
+
+ 序列号
+
+
+
+
+ 出库数量
+
+
+
+
+ 应出库数量
+
+
+
+
+ 出库方式
+
+
+
+
+ 出库人
+
+
+
+
+ 出库时间
+
+
+
+
+ 出库任务单详情
+
+
+
+
+ 主键
+
+
+
+
+ 单据编号
+
+
+
+
+ 来源单号
+
+
+
+
+ 发货组织
+
+
+
+
+ 客户
+
+
+
+
+ 单据状态
+
+
+
+
+ 单据类型
+
+
+
+
+ 创建时间(erp那边的创建时间)
+
+
+
+
+ 出库箱信息
+
+
出库单任务列表
@@ -5399,6 +5499,36 @@
邮件
+
+
+ 订阅通知详情
+
+
+
+
+ 主键
+
+
+
+
+ 客户名称
+
+
+
+
+ 客户编码
+
+
+
+
+ 电话
+
+
+
+
+ 邮件
+
+
订阅通知列表
@@ -5469,12 +5599,12 @@
操作人
-
+
操作时间 开始
-
+
操作时间 结束
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 1168d252..ee8125c8 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -2088,6 +2088,76 @@
出库单号
+
+
+ 老ops序列码
+
+
+
+
+ 主键 订单编号
+
+
+
+
+ 序列号
+
+
+
+
+ 物料编码
+
+
+
+
+ wms箱ID
+
+
+
+
+ 对应老OPS的箱ID
+
+
+
+
+ 创建人(老ops过来)
+
+
+
+
+ 创建时间(老ops过来)
+
+
+
+
+ 完成装箱时间
+
+
+
+
+ 出库单对应销售订单号
+
+
+
+
+ 出库时间
+
+
+
+
+ 采购单号
+
+
+
+
+ 入库时间
+
+
+
+
+ 收货客户
+
+
订阅通知信息
@@ -3883,6 +3953,13 @@
+
+
+ 查询出库任务单详情
+
+
+
+
单点数据返回服务接口
@@ -4993,6 +5070,13 @@
+
+
+ 获取出库任务单详情
+
+
+
+
同步erp基础数据
diff --git a/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs
new file mode 100644
index 00000000..2b498e7f
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.OutStockTask
+{
+ ///
+ /// 出库任务单对应出库明细
+ ///
+ public class OutStockTaskInfoDetailsResponse
+ {
+ ///
+ /// 物料编码
+ ///
+ public string MaterialNumber { get; set; }
+ ///
+ /// 物料规格型号
+ ///
+ public string Specifications { get; set; }
+ ///
+ /// 箱号
+ ///
+ public string BoxBillNo { get; set; }
+ ///
+ /// 序列号
+ ///
+ public string SerialNumbers { get; set; }
+ ///
+ /// 出库数量
+ ///
+ public decimal Qty { get; set; }
+ ///
+ /// 应出库数量
+ ///
+ public decimal AccruedQty { get; set; }
+ ///
+ /// 出库方式
+ ///
+ public string Method { get; set; }
+ ///
+ /// 出库人
+ ///
+ public string Creator { get; set; }
+ ///
+ /// 出库时间
+ ///
+ public string CreateTime { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoResponse.cs b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoResponse.cs
new file mode 100644
index 00000000..ad0e17f6
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoResponse.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.OutStockTask
+{
+ ///
+ /// 出库任务单详情
+ ///
+ public class OutStockTaskInfoResponse
+ {
+ ///
+ /// 主键
+ ///
+ public int Id { get; set; }
+ ///
+ /// 单据编号
+ ///
+ public string BillNo { get; set; }
+ ///
+ /// 来源单号
+ ///
+ public string SourceBillNo { get; set; }
+ ///
+ /// 发货组织
+ ///
+ public string DeliveryOrg { get; set; }
+ ///
+ /// 客户
+ ///
+ public string ReceiptCustomer { get; set; }
+ ///
+ /// 单据状态
+ ///
+ public string Status { get; set; }
+ ///
+ /// 单据类型
+ ///
+ public string Type { get; set; }
+ ///
+ /// 创建时间(erp那边的创建时间)
+ ///
+ public string CreateTime { get; set; }
+ ///
+ /// 出库箱信息
+ ///
+ public List Details { get; set; } = new List();
+ }
+}
diff --git a/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationInfoResponse.cs b/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationInfoResponse.cs
new file mode 100644
index 00000000..43cd82e1
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationInfoResponse.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.SubscribeNotification
+{
+ ///
+ /// 订阅通知详情
+ ///
+ public class SubscribeNotificationInfoResponse
+ {
+ ///
+ /// 主键
+ ///
+ public int Id { get; set; }
+ ///
+ /// 客户名称
+ ///
+ public string CustomerName { get; set; }
+ ///
+ /// 客户编码
+ ///
+ public string CustomerNumber { get; set; }
+ ///
+ /// 电话
+ ///
+ public string Telephones { get; set; }
+ ///
+ /// 邮件
+ ///
+ public string Emails { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationQueryRequest.cs b/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationQueryRequest.cs
index 6725892b..5cc936e2 100644
--- a/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationQueryRequest.cs
+++ b/src/WMS.Web.Core/Dto/SubscribeNotification/SubscribeNotificationQueryRequest.cs
@@ -24,10 +24,10 @@ namespace WMS.Web.Core.Dto.SubscribeNotification
///
/// 操作时间 开始
///
- public DateTime? OperateBeginDate { get; set; }
+ public DateTime? CreateBeginDate { get; set; }
///
/// 操作时间 结束
///
- public DateTime? OperateEndDate { get; set; }
+ public DateTime? CreateEndDate { get; set; }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs
new file mode 100644
index 00000000..5bea43c1
--- /dev/null
+++ b/src/WMS.Web.Domain/Entitys/SerialNumbers_Ops.cs
@@ -0,0 +1,85 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using System.Text;
+using WMS.Web.Core;
+using WMS.Web.Domain.Values;
+
+namespace WMS.Web.Domain.Entitys
+{
+ ///
+ /// 老ops序列码
+ ///
+ [Serializable]
+ [Table("t_wms_serialnumbers_ops")]
+ public class SerialNumbers_Ops : EntityBase
+ {
+ ///
+ /// 主键 订单编号
+ ///
+ [Column("Id")]
+ public override int Id { get; set; }
+ ///
+ /// 序列号
+ ///
+ [Column("SerialNumber")]
+ public string SerialNumber { get; set; }
+ ///
+ /// 物料编码
+ ///
+ [Column("MaterialNumber")]
+ public string MaterialNumber { get; set; }
+ ///
+ /// wms箱ID
+ ///
+ [Column("BoxId")]
+ public int BoxId { get; set; }
+ ///
+ /// 对应老OPS的箱ID
+ ///
+ [Column("OpsBoxId")]
+ public int OpsBoxId { get; set; }
+ ///
+ /// 创建人(老ops过来)
+ ///
+ [Column("Creator")]
+ public string Creator { get; set; }
+ ///
+ /// 创建时间(老ops过来)
+ ///
+ [Column("CreateTime")]
+ public DateTime CreateTime { get; set; } = DateTime.Now;
+ ///
+ /// 完成装箱时间
+ ///
+ [Column("CompleteCartonTime")]
+ public DateTime? CompleteCartonTime { get; set; }
+ ///
+ /// 出库单对应销售订单号
+ ///
+ [Column("SalBillNo")]
+ public string SalBillNo { get; set; }
+ ///
+ /// 出库时间
+ ///
+ [Column("OutStockTime")]
+ public DateTime? OutStockTime { get; set; }
+ ///
+ /// 采购单号
+ ///
+ [Column("PurchaseBillNo")]
+ public string PurchaseBillNo { get; set; }
+ ///
+ /// 入库时间
+ ///
+ [Column("InStockTime")]
+ public DateTime? InStockTime { get; set; }
+ ///
+ /// 收货客户
+ ///
+ [Column("CustomerId")]
+ public int CustomerId { get; set; } = 0;
+ }
+}
diff --git a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
index 6e492436..fd1c1314 100644
--- a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
@@ -5,6 +5,7 @@ using System.Threading.Tasks;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.Login;
+using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Core.Internal.Results;
namespace WMS.Web.Domain.IService.Public
@@ -56,5 +57,11 @@ namespace WMS.Web.Domain.IService.Public
///
///
Task Sync(List billNos = null,DateTime? begin=null);
+ ///
+ /// 查询出库任务单详情
+ ///
+ ///
+ ///
+ Task> GetInfo(int id, LoginInDto loginInfo);
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs
index cfdb13b6..308df288 100644
--- a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs
@@ -15,7 +15,7 @@ namespace WMS.Web.Domain.Infrastructure
//编辑
Task Edit(OutStock entity, bool isTransaction = true);
//根据任务单Id搜索
- Task GetByTaskId(int taskId);
+ Task> GetByTaskId(int taskId);
// 获取列表
Task<(List list, int total)> GetListAsync(OutStockQueryRequest dto, int companyId = 0);
/// 查询实体集合
diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
index 06d285a9..6574dd2b 100644
--- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
@@ -21,7 +21,7 @@ namespace WMS.Web.Domain.Infrastructure
///
Task AddRange(List entitys, bool isTransaction = true);
//根据序列号模糊搜索信息
- Task GetSerialNumber(string serialNumber, string orgCode);
+ Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false);
//根据序列号搜索信息
Task Get(string serialNumber);
/// 查询实体集合
diff --git a/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs b/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs
new file mode 100644
index 00000000..660f05b7
--- /dev/null
+++ b/src/WMS.Web.Domain/Mappers/SerialNumbersMapper.cs
@@ -0,0 +1,16 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using WMS.Web.Domain.Entitys;
+
+namespace WMS.Web.Domain.Mappers
+{
+ public class SerialNumbersMapper : Profile
+ {
+ public SerialNumbersMapper()
+ {
+ CreateMap().ReverseMap();
+ }
+ }
+}
diff --git a/src/WMS.Web.Domain/Mappers/SubscribeNotificationMapper.cs b/src/WMS.Web.Domain/Mappers/SubscribeNotificationMapper.cs
index 13bcc485..213128e6 100644
--- a/src/WMS.Web.Domain/Mappers/SubscribeNotificationMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/SubscribeNotificationMapper.cs
@@ -17,6 +17,11 @@ namespace WMS.Web.Domain.Mappers
CreateMap();
CreateMap();
CreateMap();
+ CreateMap()
+ .ForMember(x => x.Emails, ops => ops.MapFrom(x => string.Join(",", x.Emails)))
+ .ForMember(x => x.Telephones, ops => ops.MapFrom(x => string.Join(",", x.Telephones)));
+
+
}
}
}
diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
index 9ce7c40e..ef38c481 100644
--- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
@@ -5,9 +5,14 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WMS.Web.Core;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.Erp;
+using WMS.Web.Core.Dto.Erp.Customer;
+using WMS.Web.Core.Dto.Erp.Org;
using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.Login;
+using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Core.Help;
using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys;
@@ -16,6 +21,7 @@ using WMS.Web.Domain.IService;
using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Services.Public;
using WMS.Web.Domain.Values;
+using WMS.Web.Domain.Values.Single;
namespace WMS.Web.Domain.Services
{
@@ -32,10 +38,13 @@ namespace WMS.Web.Domain.Services
private readonly IOutStockTaskRepositories _outStockTaskRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
private readonly RedisClientService _redisClientService;
+ private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
+ private readonly ISingleDataService _singleDataService;
public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
- RedisClientService redisClientService)
+ RedisClientService redisClientService, IErpBasicDataExtendService erpBasicDataExtendService,
+ ISingleDataService singleDataService)
{
_mapper = mapper;
_erpService = erpService;
@@ -45,6 +54,8 @@ namespace WMS.Web.Domain.Services
_outStockTaskRepositories = outStockTaskRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
_redisClientService = redisClientService;
+ _erpBasicDataExtendService = erpBasicDataExtendService;
+ _singleDataService = singleDataService;
}
///
@@ -435,6 +446,70 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess();
}
+ ///
+ /// 获取出库任务单详情
+ ///
+ ///
+ ///
+ public async Task> GetInfo(int id, LoginInDto loginInfo)
+ {
+ var entity = await _outStockTaskRepositories.Get(id);
+ if (entity == null)
+ return Result.ReFailure(ResultCodes.OutStockTaskNoData);
+ //获取任务单对应出库信息
+ var outStockList = await _outStockRepositories.GetByTaskId(id);
+ //取组织
+ var org_result = await _erpService.BillQueryForOrg();
+ List orgs = new List();
+ if (org_result.IsSuccess)
+ orgs = org_result.Data.ToList();
+
+ //取客户
+ var customer_result = await _erpService.BillQueryForCustomer();
+ List customers = new List();
+ if (customer_result.IsSuccess)
+ customers = customer_result.Data.ToList();
+
+ var materials_result = await _erpService.BillQueryForMaterial();
+ List materials = new List();
+ if (materials_result.IsSuccess)
+ materials = materials_result.Data.ToList();
+
+ OutStockTaskInfoResponse response = new OutStockTaskInfoResponse()
+ {
+ Id = entity.Id,
+ BillNo = entity.BillNo,
+ SourceBillNo = string.Join(",", entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)),
+ CreateTime = entity.CreateTime.DateToStringSeconds(),
+ Status = entity.Status.GetRemark(),
+ Type = entity.Type.GetRemark(),
+ DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, entity.DeliveryOrgId),
+ ReceiptCustomer = entity.Type == OutStockType.Sal
+ ? _erpBasicDataExtendService.GetCustomerName(customers, entity.ReceiptCustomerId)
+ : _erpBasicDataExtendService.GetOrgName(orgs, entity.DeliveryOrgId),
+ };
+ var details = outStockList.SelectMany(s => s.Details).ToList();
+ var boxDetails = outStockList.SelectMany(s => s.Details).SelectMany(s => s.BoxsDetails).ToList();
+ foreach (var b in boxDetails)
+ {
+ var detail = details.FirstOrDefault(f => f.Id == b.DetailId);
+ var outStock = outStockList.FirstOrDefault(f => f.Id == detail.Fid);
+ OutStockTaskInfoDetailsResponse infoDetail = new OutStockTaskInfoDetailsResponse()
+ {
+ BoxBillNo = b.BoxId.ToString(),
+ Qty = b.Qty,
+ SerialNumbers = string.Join(",", b.SerialNumbers),
+ Method = outStock.Method.GetRemark(),
+ Creator = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, outStock.CreatorId),
+ CreateTime = outStock.CreateTime.DateToStringSeconds(),
+ MaterialNumber = detail.MaterialNumber,
+ Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, detail.MaterialNumber),
+ AccruedQty = entity.Details.FirstOrDefault(f => f.MaterialNumber == detail.MaterialNumber)?.AccruedQty ?? 0
+ };
+ }
+
+ return Result.ReSuccess(response);
+ }
}
}
diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
index 790d539d..c75ef90a 100644
--- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
+++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
@@ -66,18 +66,26 @@ namespace WMS.Web.Repositories.Configuration
v => JsonConvert.DeserializeObject>(v));
});
+ #region 序列号
//序列号
builder.Entity(ent =>
{
ent.ToTable("t_wms_serialnumbers");
ent.HasKey(x => x.Id);
});
+ //序列号
+ builder.Entity(ent =>
+ {
+ ent.ToTable("t_wms_serialnumbers_ops");
+ ent.HasKey(x => x.Id);
+ });
//序列号操作记录
builder.Entity(ent =>
{
ent.ToTable("t_wms_serialnumberoperate");
ent.HasKey(x => x.Id);
});
+ #endregion
//定时任务时间记录表
builder.Entity(ent =>
@@ -397,6 +405,7 @@ namespace WMS.Web.Repositories.Configuration
public DbSet BoxMark { get; set; }
public DbSet FileDownManager { get; set; }
public DbSet SerialNumbers { get; set; }
+ public DbSet SerialNumbers_Ops { get; set; }
public DbSet ErpOpsSyncDate { get; set; }
public DbSet SerialNumberOperate { get; set; }
public DbSet ChangeBoxRecord { get; set; }
diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs
index 85d5cbcd..e1a3107f 100644
--- a/src/WMS.Web.Repositories/OutStockRepositories.cs
+++ b/src/WMS.Web.Repositories/OutStockRepositories.cs
@@ -306,12 +306,12 @@ namespace WMS.Web.Repositories
///
///
///
- public async Task GetByTaskId(int taskId)
+ public async Task> GetByTaskId(int taskId)
{
var res = await _context.OutStock
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Include(s => s.Details).ThenInclude(s => s.BoxsDetails)
- .FirstOrDefaultAsync(f => taskId == f.TaskId);
+ .Where(f => taskId == f.TaskId).ToListAsync();
return res.Clone();
}
diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
index 48b9d444..52e3ab3c 100644
--- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
+++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
@@ -81,6 +81,16 @@ namespace WMS.Web.Repositories
var res = await _context.SerialNumbers
.Where(f => list.Contains(f.Id)).ToListAsync();
+ var ids_e = res.Select(s => s.Id).ToList();
+ //在序列表里没找到的序列码 则到老ops序列码数据里去处理 list比较 取差集
+ var ids_c = list.Except(ids_e);
+ if (ids_c.Count() > 0)
+ {
+ var entitys_ops = entitys.Where(w => ids_c.Contains(w.Id)).ToList();
+ var res_ops = await EditEntityList_Ops(entitys_ops, false);
+ if (!res_ops) return false;
+ }
+
_mapper.ToMapList(entitys, res);
await _context.SaveChangesAsync();
@@ -178,7 +188,7 @@ namespace WMS.Web.Repositories
///
///
///
- public async Task GetSerialNumber(string serialNumber, string orgCode)
+ public async Task GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false)
{
MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial();
@@ -203,6 +213,46 @@ namespace WMS.Web.Repositories
.GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
.SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
.FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber));
+ if (entity == null || entity.serial == null)
+ {
+ if (IsOps)
+ return await GetSerialNumber_Ops(serialNumber);
+ else
+ return null;
+ }
+ response.BoxId = entity.serial.BoxId;
+ response.BoxBillNo = entity?.box?.BoxBillNo ?? "";
+ response.SubStockCode = entity?.boxInventory?.SubStockCode ?? "";
+ response.SerialNumber = entity.serial.SerialNumber;
+ response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber);
+ response.MaterialNumber = entity.serial.MaterialNumber;
+ response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber);
+ if (entity.boxInventory != null)
+ response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false;
+
+
+ return response;
+ }
+
+ ///
+ /// 查询老ops序列码
+ ///
+ ///
+ ///
+ private async Task GetSerialNumber_Ops(string serialNumber)
+ {
+ MaterialResponse response = new MaterialResponse();
+ var materials_result = await _erpService.BillQueryForMaterial();
+ if (!materials_result.IsSuccess)
+ return response;
+ var materials = materials_result.Data.ToList();
+
+ var entity = await _context.SerialNumbers_Ops
+ .GroupJoin(_context.BoxInventory.Include(x => x.Details), serial => serial.BoxId, boxInventory => boxInventory.BoxId, (serial, boxInventory) => new { serial, boxInventory })
+ .SelectMany(x => x.boxInventory.DefaultIfEmpty(), (p, boxInventory) => new { p.serial, boxInventory })
+ .GroupJoin(_context.Box, s => s.serial.BoxId, box => box.Id, (s, box) => new { s.serial, s.boxInventory, box })
+ .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
+ .FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber));
if (entity == null || entity.serial == null) return null;
response.BoxId = entity.serial.BoxId;
response.BoxBillNo = entity?.box?.BoxBillNo ?? "";
@@ -217,5 +267,39 @@ namespace WMS.Web.Repositories
return response;
}
+ ///
+ /// 老ops条码批量修改
+ ///
+ ///
+ ///
+ ///
+ private async Task EditEntityList_Ops(List entitys, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+ try
+ {
+ var opsList = _mapper.Map>(entitys);
+
+ List list = opsList.Select(s => s.Id).ToList();
+
+ var res = await _context.SerialNumbers_Ops
+ .Where(f => list.Contains(f.Id)).ToListAsync();
+
+ _mapper.ToMapList(opsList, res);
+
+ await _context.SaveChangesAsync();
+ if (_transaction != null)
+ _transaction.Commit();
+ }
+ catch (Exception ex)
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return false;
+ }
+ return true;
+ }
}
}
diff --git a/src/WMS.Web.Repositories/SubscribeNotificationRepositories.cs b/src/WMS.Web.Repositories/SubscribeNotificationRepositories.cs
index 796e34ce..4c43be6c 100644
--- a/src/WMS.Web.Repositories/SubscribeNotificationRepositories.cs
+++ b/src/WMS.Web.Repositories/SubscribeNotificationRepositories.cs
@@ -184,10 +184,10 @@ namespace WMS.Web.Repositories
query = query.Where(w => EF.Functions.Like(w.CustomerName, "%" + dto.CustomerName + "%"));
if (!string.IsNullOrEmpty(dto.CustomerNumber))
query = query.Where(w => EF.Functions.Like(w.CustomerNumber, "%" + dto.CustomerNumber + "%"));
- if (dto.OperateBeginDate != null)
- query = query.Where(w => w.OperateTime >= dto.OperateBeginDate);
- if (dto.OperateEndDate != null)
- query = query.Where(w => w.OperateTime <= dto.OperateEndDate);
+ if (dto.CreateBeginDate != null)
+ query = query.Where(w => w.OperateTime >= dto.CreateBeginDate);
+ if (dto.CreateEndDate != null)
+ query = query.Where(w => w.OperateTime <= dto.CreateEndDate);
//组装
int total = await query.CountAsync();
var list = await query.Select(s => new SubscribeNotificationQueryInfoResponse()
@@ -196,8 +196,8 @@ namespace WMS.Web.Repositories
Id = s.Id,
CustomerName = s.CustomerName,
CustomerNumber = s.CustomerNumber,
- Telephones = s.CustomerName,
- Emails = s.CustomerName,
+ Telephones = string.Join(",", s.Telephones),
+ Emails = string.Join(",", s.Emails),
Operate = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.OperateId),
OperateTime = s.OperateTime.DateToStringSeconds(),
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.CreatorId),