This commit is contained in:
tongfei
2024-03-27 10:12:54 +08:00
22 changed files with 729 additions and 21 deletions

View File

@@ -204,5 +204,20 @@ namespace WMS.Web.Api.Controllers
//再刷新3天内所有的
return await _outStockTaskService.Sync(null, begin);
}
/// <summary>
/// 出库任务单详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetInfo/{id}")]
public async Task<Result<OutStockTaskInfoResponse>> GetInfo([FromRoute] int id)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<OutStockTaskInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
return await _outStockTaskService.GetInfo(id, loginInfo);
}
}
}

View File

@@ -128,5 +128,23 @@ namespace WMS.Web.Api.Controllers
if (!res) Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetInfo/{id}")]
public async Task<Result<SubscribeNotificationInfoResponse>> GetInfo([FromRoute] int id)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<SubscribeNotificationInfoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var entity = await _repositories.Get(id);
if (entity == null || entity.IsDelete == true) Result<SubscribeNotificationInfoResponse>.ReFailure(ResultCodes.SubscribeNotificationNoData);
return Result<SubscribeNotificationInfoResponse>.ReSuccess(_mapper.Map<SubscribeNotificationInfoResponse>(entity));
}
}
}

View File

@@ -275,7 +275,7 @@ namespace WMS.Web.Api.Controllers
}
/// <summary>
/// 获取出库单客户下拉列表
/// 获取客户下拉列表(包含组织信息)
/// </summary>
/// <param name="name">客户名</param>
/// <returns></returns>
@@ -308,7 +308,33 @@ namespace WMS.Web.Api.Controllers
});
}
return Result<List<PullDownStrResponse>>.ReSuccess(pullList);
return Result<List<PullDownStrResponse>>.ReSuccess(pullList.Take(20).ToList());
}
/// <summary>
/// 获取客户下拉列表(纯客户信息 不包含组织信息)
/// </summary>
/// <param name="name">客户名</param>
/// <returns></returns>
[HttpGet]
[Route("GetCustomersNoOrg/{name}")]
public async Task<Result<List<PullDownStrResponse>>> GetCustomersNoOrg([FromRoute] string name)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<List<PullDownStrResponse>>.ReFailure(ResultCodes.Token_Invalid_Error);
var customers = await _erpService.BillQueryForCustomer();
List<PullDownStrResponse> pullList = new List<PullDownStrResponse>();
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<List<PullDownStrResponse>>.ReSuccess(pullList.Take(20).ToList());
}
/// <summary>
@@ -459,10 +485,11 @@ namespace WMS.Web.Api.Controllers
/// </summary>
/// <param name="serialNumber">序列号或规格型号或物料编码</param>
/// <param name="orgCode">组织编码</param>
/// <param name="IsOps">是否需要支持老ops条码查询</param>
/// <returns></returns>
[HttpGet]
[Route("GetMaterial")]
public async Task<Result<MaterialResponse>> GetMaterial([FromQuery] string serialNumber, [FromQuery] string orgCode = null)
public async Task<Result<MaterialResponse>> 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)

View File

@@ -499,6 +499,13 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.OutStockTaskController.GetInfo(System.Int32)">
<summary>
出库任务单详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.SerialNumberController.Get(System.String)">
<summary>
获取序列号信息
@@ -539,6 +546,13 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.SubscribeNotificationController.GetInfo(System.Int32)">
<summary>
获取详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Api.Controllers.SysConfigController">
<summary>
系统配置
@@ -593,7 +607,14 @@
</member>
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetCustomers(System.String)">
<summary>
获取出库单客户下拉列表
获取客户下拉列表(包含组织信息)
</summary>
<param name="name">客户名</param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetCustomersNoOrg(System.String)">
<summary>
获取客户下拉列表(纯客户信息 不包含组织信息)
</summary>
<param name="name">客户名</param>
<returns></returns>
@@ -641,12 +662,13 @@
<param name="boxBillNo">必填</param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterial(System.String,System.String)">
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterial(System.String,System.String,System.Boolean)">
<summary>
根据序列号或规格型号,物料编码搜索物料信息-PDA
</summary>
<param name="serialNumber">序列号或规格型号或物料编码</param>
<param name="orgCode">组织编码</param>
<param name="IsOps">是否需要支持老ops条码查询</param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.SysConfigController.GetMaterialList(System.String)">

View File

@@ -4664,6 +4664,106 @@
单号
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse">
<summary>
出库任务单对应出库明细
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.MaterialNumber">
<summary>
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.Specifications">
<summary>
物料规格型号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.BoxBillNo">
<summary>
箱号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.SerialNumbers">
<summary>
序列号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.Qty">
<summary>
出库数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.AccruedQty">
<summary>
应出库数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.Method">
<summary>
出库方式
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.Creator">
<summary>
出库人
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoDetailsResponse.CreateTime">
<summary>
出库时间
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse">
<summary>
出库任务单详情
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.Id">
<summary>
主键
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.BillNo">
<summary>
单据编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.SourceBillNo">
<summary>
来源单号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.DeliveryOrg">
<summary>
发货组织
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.ReceiptCustomer">
<summary>
客户
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.Status">
<summary>
单据状态
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.Type">
<summary>
单据类型
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.CreateTime">
<summary>
创建时间erp那边的创建时间
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.OutStockTask.OutStockTaskInfoResponse.Details">
<summary>
出库箱信息
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.OutStockTask.OutStockTaskQueryInfoResponse">
<summary>
出库单任务列表
@@ -5399,6 +5499,36 @@
邮件
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse">
<summary>
订阅通知详情
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse.Id">
<summary>
主键
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse.CustomerName">
<summary>
客户名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse.CustomerNumber">
<summary>
客户编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse.Telephones">
<summary>
电话
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationInfoResponse.Emails">
<summary>
邮件
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryInfoResponse">
<summary>
订阅通知列表
@@ -5469,12 +5599,12 @@
操作人
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.OperateBeginDate">
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.CreateBeginDate">
<summary>
操作时间 开始
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.OperateEndDate">
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.CreateEndDate">
<summary>
操作时间 结束
</summary>

View File

@@ -2088,6 +2088,76 @@
</summary>
<param name="inStockBillNo">出库单号</param>
</member>
<member name="T:WMS.Web.Domain.Entitys.SerialNumbers_Ops">
<summary>
老ops序列码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.Id">
<summary>
主键 订单编号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.SerialNumber">
<summary>
序列号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.MaterialNumber">
<summary>
物料编码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.BoxId">
<summary>
wms箱ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.OpsBoxId">
<summary>
对应老OPS的箱ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.Creator">
<summary>
创建人(老ops过来)
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.CreateTime">
<summary>
创建时间(老ops过来)
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.CompleteCartonTime">
<summary>
完成装箱时间
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.SalBillNo">
<summary>
出库单对应销售订单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.OutStockTime">
<summary>
出库时间
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.PurchaseBillNo">
<summary>
采购单号
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.InStockTime">
<summary>
入库时间
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.SerialNumbers_Ops.CustomerId">
<summary>
收货客户
</summary>
</member>
<member name="T:WMS.Web.Domain.Entitys.SubscribeNotification">
<summary>
订阅通知信息
@@ -3883,6 +3953,13 @@
<param name="begin"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IOutStockTaskService.GetInfo(System.Int32,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary>
查询出库任务单详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.Public.ISingleDataService">
<summary>
单点数据返回服务接口
@@ -4993,6 +5070,13 @@
<param name="sourceBillNos"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.OutStockTaskService.GetInfo(System.Int32,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary>
获取出库任务单详情
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Services.Public.ErpBaseDataSync">
<summary>
同步erp基础数据

View File

@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.OutStockTask
{
/// <summary>
/// 出库任务单对应出库明细
/// </summary>
public class OutStockTaskInfoDetailsResponse
{
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 物料规格型号
/// </summary>
public string Specifications { get; set; }
/// <summary>
/// 箱号
/// </summary>
public string BoxBillNo { get; set; }
/// <summary>
/// 序列号
/// </summary>
public string SerialNumbers { get; set; }
/// <summary>
/// 出库数量
///</summary>
public decimal Qty { get; set; }
/// <summary>
/// 应出库数量
///</summary>
public decimal AccruedQty { get; set; }
/// <summary>
/// 出库方式
/// </summary>
public string Method { get; set; }
/// <summary>
/// 出库人
/// </summary>
public string Creator { get; set; }
/// <summary>
/// 出库时间
/// </summary>
public string CreateTime { get; set; }
}
}

View File

@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.OutStockTask
{
/// <summary>
/// 出库任务单详情
/// </summary>
public class OutStockTaskInfoResponse
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 单据编号
/// </summary>
public string BillNo { get; set; }
/// <summary>
/// 来源单号
/// </summary>
public string SourceBillNo { get; set; }
/// <summary>
/// 发货组织
///</summary>
public string DeliveryOrg { get; set; }
/// <summary>
/// 客户
///</summary>
public string ReceiptCustomer { get; set; }
/// <summary>
/// 单据状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 单据类型
/// </summary>
public string Type { get; set; }
/// <summary>
/// 创建时间erp那边的创建时间
///</summary>
public string CreateTime { get; set; }
/// <summary>
/// 出库箱信息
/// </summary>
public List<OutStockTaskInfoDetailsResponse> Details { get; set; } = new List<OutStockTaskInfoDetailsResponse>();
}
}

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.SubscribeNotification
{
/// <summary>
/// 订阅通知详情
/// </summary>
public class SubscribeNotificationInfoResponse
{
/// <summary>
/// 主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 客户名称
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// 客户编码
/// </summary>
public string CustomerNumber { get; set; }
/// <summary>
/// 电话
/// </summary>
public string Telephones { get; set; }
/// <summary>
/// 邮件
/// </summary>
public string Emails { get; set; }
}
}

View File

@@ -24,10 +24,10 @@ namespace WMS.Web.Core.Dto.SubscribeNotification
/// <summary>
/// 操作时间 开始
/// </summary>
public DateTime? OperateBeginDate { get; set; }
public DateTime? CreateBeginDate { get; set; }
/// <summary>
/// 操作时间 结束
/// </summary>
public DateTime? OperateEndDate { get; set; }
public DateTime? CreateEndDate { get; set; }
}
}

View File

@@ -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
{
/// <summary>
/// 老ops序列码
/// </summary>
[Serializable]
[Table("t_wms_serialnumbers_ops")]
public class SerialNumbers_Ops : EntityBase
{
/// <summary>
/// 主键 订单编号
/// </summary>
[Column("Id")]
public override int Id { get; set; }
/// <summary>
/// 序列号
/// </summary>
[Column("SerialNumber")]
public string SerialNumber { get; set; }
/// <summary>
/// 物料编码
/// </summary>
[Column("MaterialNumber")]
public string MaterialNumber { get; set; }
/// <summary>
/// wms箱ID
/// </summary>
[Column("BoxId")]
public int BoxId { get; set; }
/// <summary>
/// 对应老OPS的箱ID
/// </summary>
[Column("OpsBoxId")]
public int OpsBoxId { get; set; }
/// <summary>
/// 创建人(老ops过来)
/// </summary>
[Column("Creator")]
public string Creator { get; set; }
/// <summary>
/// 创建时间(老ops过来)
/// </summary>
[Column("CreateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 完成装箱时间
/// </summary>
[Column("CompleteCartonTime")]
public DateTime? CompleteCartonTime { get; set; }
/// <summary>
/// 出库单对应销售订单号
/// </summary>
[Column("SalBillNo")]
public string SalBillNo { get; set; }
/// <summary>
/// 出库时间
/// </summary>
[Column("OutStockTime")]
public DateTime? OutStockTime { get; set; }
/// <summary>
/// 采购单号
///</summary>
[Column("PurchaseBillNo")]
public string PurchaseBillNo { get; set; }
/// <summary>
/// 入库时间
/// </summary>
[Column("InStockTime")]
public DateTime? InStockTime { get; set; }
/// <summary>
/// 收货客户
///</summary>
[Column("CustomerId")]
public int CustomerId { get; set; } = 0;
}
}

View File

@@ -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
/// <param name="begin"></param>
/// <returns></returns>
Task<Result> Sync(List<string> billNos = null,DateTime? begin=null);
/// <summary>
/// 查询出库任务单详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<Result<OutStockTaskInfoResponse>> GetInfo(int id, LoginInDto loginInfo);
}
}

View File

@@ -15,7 +15,7 @@ namespace WMS.Web.Domain.Infrastructure
//编辑
Task<OutStock> Edit(OutStock entity, bool isTransaction = true);
//根据任务单Id搜索
Task<OutStock> GetByTaskId(int taskId);
Task<List<OutStock>> GetByTaskId(int taskId);
// 获取列表
Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto, int companyId = 0);
/// 查询实体集合

View File

@@ -21,7 +21,7 @@ namespace WMS.Web.Domain.Infrastructure
/// <returns></returns>
Task<bool> AddRange(List<SerialNumbers> entitys, bool isTransaction = true);
//根据序列号模糊搜索信息
Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode);
Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode, bool IsOps = false);
//根据序列号搜索信息
Task<SerialNumbersResponse> Get(string serialNumber);
/// 查询实体集合

View File

@@ -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<SerialNumbers_Ops, SerialNumbers>().ReverseMap();
}
}
}

View File

@@ -17,6 +17,11 @@ namespace WMS.Web.Domain.Mappers
CreateMap<SubscribeNotification, SubscribeNotification>();
CreateMap<SaveSubscribeNotificationRequest, SubscribeNotification>();
CreateMap<EditSubscribeNotificationRequest, SubscribeNotification>();
CreateMap<SubscribeNotification, SubscribeNotificationInfoResponse>()
.ForMember(x => x.Emails, ops => ops.MapFrom(x => string.Join(",", x.Emails)))
.ForMember(x => x.Telephones, ops => ops.MapFrom(x => string.Join(",", x.Telephones)));
}
}
}

View File

@@ -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;
}
/// <summary>
@@ -435,6 +446,70 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess();
}
/// <summary>
/// 获取出库任务单详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<Result<OutStockTaskInfoResponse>> GetInfo(int id, LoginInDto loginInfo)
{
var entity = await _outStockTaskRepositories.Get(id);
if (entity == null)
return Result<OutStockTaskInfoResponse>.ReFailure(ResultCodes.OutStockTaskNoData);
//获取任务单对应出库信息
var outStockList = await _outStockRepositories.GetByTaskId(id);
//取组织
var org_result = await _erpService.BillQueryForOrg();
List<ErpOrgDto> orgs = new List<ErpOrgDto>();
if (org_result.IsSuccess)
orgs = org_result.Data.ToList();
//取客户
var customer_result = await _erpService.BillQueryForCustomer();
List<ErpCustomerDto> customers = new List<ErpCustomerDto>();
if (customer_result.IsSuccess)
customers = customer_result.Data.ToList();
var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
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<OutStockTaskInfoResponse>.ReSuccess(response);
}
}
}

View File

@@ -66,18 +66,26 @@ namespace WMS.Web.Repositories.Configuration
v => JsonConvert.DeserializeObject<List<string>>(v));
});
#region
//序列号
builder.Entity<SerialNumbers>(ent =>
{
ent.ToTable("t_wms_serialnumbers");
ent.HasKey(x => x.Id);
});
//序列号
builder.Entity<SerialNumbers_Ops>(ent =>
{
ent.ToTable("t_wms_serialnumbers_ops");
ent.HasKey(x => x.Id);
});
//序列号操作记录
builder.Entity<SerialNumberOperate>(ent =>
{
ent.ToTable("t_wms_serialnumberoperate");
ent.HasKey(x => x.Id);
});
#endregion
//定时任务时间记录表
builder.Entity<ErpOpsSyncDate>(ent =>
@@ -397,6 +405,7 @@ namespace WMS.Web.Repositories.Configuration
public DbSet<BoxMark> BoxMark { get; set; }
public DbSet<FileDownManager> FileDownManager { get; set; }
public DbSet<SerialNumbers> SerialNumbers { get; set; }
public DbSet<SerialNumbers_Ops> SerialNumbers_Ops { get; set; }
public DbSet<ErpOpsSyncDate> ErpOpsSyncDate { get; set; }
public DbSet<SerialNumberOperate> SerialNumberOperate { get; set; }
public DbSet<ChangeBoxRecord> ChangeBoxRecord { get; set; }

View File

@@ -306,12 +306,12 @@ namespace WMS.Web.Repositories
/// </summary>
/// <param name="taskId"></param>
/// <returns></returns>
public async Task<OutStock> GetByTaskId(int taskId)
public async Task<List<OutStock>> 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();
}

View File

@@ -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
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
public async Task<MaterialResponse> GetSerialNumber(string serialNumber, string orgCode)
public async Task<MaterialResponse> 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;
}
/// <summary>
/// 查询老ops序列码
/// </summary>
/// <param name="serialNumbers"></param>
/// <returns></returns>
private async Task<MaterialResponse> 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;
}
/// <summary>
/// 老ops条码批量修改
/// </summary>
/// <param name="entitys"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
private async Task<bool> EditEntityList_Ops(List<SerialNumbers> entitys, bool isTransaction = true)
{
IDbContextTransaction _transaction = null;
if (isTransaction)
_transaction = _context.Database.BeginTransaction();
try
{
var opsList = _mapper.Map<List<SerialNumbers_Ops>>(entitys);
List<int> 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;
}
}
}

View File

@@ -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),