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天内所有的 //再刷新3天内所有的
return await _outStockTaskService.Sync(null, begin); 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); if (!res) Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess(); 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>
/// 获取出库单客户下拉列表 /// 获取客户下拉列表(包含组织信息)
/// </summary> /// </summary>
/// <param name="name">客户名</param> /// <param name="name">客户名</param>
/// <returns></returns> /// <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> /// <summary>
@@ -459,10 +485,11 @@ namespace WMS.Web.Api.Controllers
/// </summary> /// </summary>
/// <param name="serialNumber">序列号或规格型号或物料编码</param> /// <param name="serialNumber">序列号或规格型号或物料编码</param>
/// <param name="orgCode">组织编码</param> /// <param name="orgCode">组织编码</param>
/// <param name="IsOps">是否需要支持老ops条码查询</param>
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[Route("GetMaterial")] [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"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)

View File

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

View File

@@ -4664,6 +4664,106 @@
单号 单号
</summary> </summary>
</member> </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"> <member name="T:WMS.Web.Core.Dto.OutStockTask.OutStockTaskQueryInfoResponse">
<summary> <summary>
出库单任务列表 出库单任务列表
@@ -5399,6 +5499,36 @@
邮件 邮件
</summary> </summary>
</member> </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"> <member name="T:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryInfoResponse">
<summary> <summary>
订阅通知列表 订阅通知列表
@@ -5469,12 +5599,12 @@
操作人 操作人
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.OperateBeginDate"> <member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.CreateBeginDate">
<summary> <summary>
操作时间 开始 操作时间 开始
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.OperateEndDate"> <member name="P:WMS.Web.Core.Dto.SubscribeNotification.SubscribeNotificationQueryRequest.CreateEndDate">
<summary> <summary>
操作时间 结束 操作时间 结束
</summary> </summary>

View File

@@ -2088,6 +2088,76 @@
</summary> </summary>
<param name="inStockBillNo">出库单号</param> <param name="inStockBillNo">出库单号</param>
</member> </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"> <member name="T:WMS.Web.Domain.Entitys.SubscribeNotification">
<summary> <summary>
订阅通知信息 订阅通知信息
@@ -3883,6 +3953,13 @@
<param name="begin"></param> <param name="begin"></param>
<returns></returns> <returns></returns>
</member> </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"> <member name="T:WMS.Web.Domain.IService.Public.ISingleDataService">
<summary> <summary>
单点数据返回服务接口 单点数据返回服务接口
@@ -4993,6 +5070,13 @@
<param name="sourceBillNos"></param> <param name="sourceBillNos"></param>
<returns></returns> <returns></returns>
</member> </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"> <member name="T:WMS.Web.Domain.Services.Public.ErpBaseDataSync">
<summary> <summary>
同步erp基础数据 同步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>
/// 操作时间 开始 /// 操作时间 开始
/// </summary> /// </summary>
public DateTime? OperateBeginDate { get; set; } public DateTime? CreateBeginDate { get; set; }
/// <summary> /// <summary>
/// 操作时间 结束 /// 操作时间 结束
/// </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;
using WMS.Web.Core.Dto.Erp.OutStock; using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
namespace WMS.Web.Domain.IService.Public namespace WMS.Web.Domain.IService.Public
@@ -56,5 +57,11 @@ namespace WMS.Web.Domain.IService.Public
/// <param name="begin"></param> /// <param name="begin"></param>
/// <returns></returns> /// <returns></returns>
Task<Result> Sync(List<string> billNos = null,DateTime? begin=null); 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); Task<OutStock> Edit(OutStock entity, bool isTransaction = true);
//根据任务单Id搜索 //根据任务单Id搜索
Task<OutStock> GetByTaskId(int taskId); Task<List<OutStock>> GetByTaskId(int taskId);
// 获取列表 // 获取列表
Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto, int companyId = 0); 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> /// <returns></returns>
Task<bool> AddRange(List<SerialNumbers> entitys, bool isTransaction = true); 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); 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<SubscribeNotification, SubscribeNotification>();
CreateMap<SaveSubscribeNotificationRequest, SubscribeNotification>(); CreateMap<SaveSubscribeNotificationRequest, SubscribeNotification>();
CreateMap<EditSubscribeNotificationRequest, 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.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core;
using WMS.Web.Core.Dto; 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.Erp.OutStock;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Core.Help; using WMS.Web.Core.Help;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Entitys;
@@ -16,6 +21,7 @@ using WMS.Web.Domain.IService;
using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Services.Public; using WMS.Web.Domain.Services.Public;
using WMS.Web.Domain.Values; using WMS.Web.Domain.Values;
using WMS.Web.Domain.Values.Single;
namespace WMS.Web.Domain.Services namespace WMS.Web.Domain.Services
{ {
@@ -32,10 +38,13 @@ namespace WMS.Web.Domain.Services
private readonly IOutStockTaskRepositories _outStockTaskRepositories; private readonly IOutStockTaskRepositories _outStockTaskRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories; private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
private readonly RedisClientService _redisClientService; private readonly RedisClientService _redisClientService;
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
private readonly ISingleDataService _singleDataService;
public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService, public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
IBasicsRepositories transactionRepositories, IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories, IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
RedisClientService redisClientService) RedisClientService redisClientService, IErpBasicDataExtendService erpBasicDataExtendService,
ISingleDataService singleDataService)
{ {
_mapper = mapper; _mapper = mapper;
_erpService = erpService; _erpService = erpService;
@@ -45,6 +54,8 @@ namespace WMS.Web.Domain.Services
_outStockTaskRepositories = outStockTaskRepositories; _outStockTaskRepositories = outStockTaskRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories; _erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
_redisClientService = redisClientService; _redisClientService = redisClientService;
_erpBasicDataExtendService = erpBasicDataExtendService;
_singleDataService = singleDataService;
} }
/// <summary> /// <summary>
@@ -435,6 +446,70 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess(); 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)); v => JsonConvert.DeserializeObject<List<string>>(v));
}); });
#region
//序列号 //序列号
builder.Entity<SerialNumbers>(ent => builder.Entity<SerialNumbers>(ent =>
{ {
ent.ToTable("t_wms_serialnumbers"); ent.ToTable("t_wms_serialnumbers");
ent.HasKey(x => x.Id); 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 => builder.Entity<SerialNumberOperate>(ent =>
{ {
ent.ToTable("t_wms_serialnumberoperate"); ent.ToTable("t_wms_serialnumberoperate");
ent.HasKey(x => x.Id); ent.HasKey(x => x.Id);
}); });
#endregion
//定时任务时间记录表 //定时任务时间记录表
builder.Entity<ErpOpsSyncDate>(ent => builder.Entity<ErpOpsSyncDate>(ent =>
@@ -397,6 +405,7 @@ namespace WMS.Web.Repositories.Configuration
public DbSet<BoxMark> BoxMark { get; set; } public DbSet<BoxMark> BoxMark { get; set; }
public DbSet<FileDownManager> FileDownManager { get; set; } public DbSet<FileDownManager> FileDownManager { get; set; }
public DbSet<SerialNumbers> SerialNumbers { get; set; } public DbSet<SerialNumbers> SerialNumbers { get; set; }
public DbSet<SerialNumbers_Ops> SerialNumbers_Ops { get; set; }
public DbSet<ErpOpsSyncDate> ErpOpsSyncDate { get; set; } public DbSet<ErpOpsSyncDate> ErpOpsSyncDate { get; set; }
public DbSet<SerialNumberOperate> SerialNumberOperate { get; set; } public DbSet<SerialNumberOperate> SerialNumberOperate { get; set; }
public DbSet<ChangeBoxRecord> ChangeBoxRecord { get; set; } public DbSet<ChangeBoxRecord> ChangeBoxRecord { get; set; }

View File

@@ -306,12 +306,12 @@ namespace WMS.Web.Repositories
/// </summary> /// </summary>
/// <param name="taskId"></param> /// <param name="taskId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<OutStock> GetByTaskId(int taskId) public async Task<List<OutStock>> GetByTaskId(int taskId)
{ {
var res = await _context.OutStock var res = await _context.OutStock
.Include(s => s.Details).ThenInclude(s => s.ErpDetails) .Include(s => s.Details).ThenInclude(s => s.ErpDetails)
.Include(s => s.Details).ThenInclude(s => s.BoxsDetails) .Include(s => s.Details).ThenInclude(s => s.BoxsDetails)
.FirstOrDefaultAsync(f => taskId == f.TaskId); .Where(f => taskId == f.TaskId).ToListAsync();
return res.Clone(); return res.Clone();
} }

View File

@@ -81,6 +81,16 @@ namespace WMS.Web.Repositories
var res = await _context.SerialNumbers var res = await _context.SerialNumbers
.Where(f => list.Contains(f.Id)).ToListAsync(); .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); _mapper.ToMapList(entitys, res);
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
@@ -178,7 +188,7 @@ namespace WMS.Web.Repositories
/// </summary> /// </summary>
/// <param name="serialNumbers"></param> /// <param name="serialNumbers"></param>
/// <returns></returns> /// <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(); MaterialResponse response = new MaterialResponse();
var materials_result = await _erpService.BillQueryForMaterial(); 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 }) .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 }) .SelectMany(x => x.box.DefaultIfEmpty(), (p, box) => new { p.serial, p.boxInventory, box })
.FirstOrDefaultAsync(w => serialNumber.Equals(w.serial.SerialNumber)); .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; if (entity == null || entity.serial == null) return null;
response.BoxId = entity.serial.BoxId; response.BoxId = entity.serial.BoxId;
response.BoxBillNo = entity?.box?.BoxBillNo ?? ""; response.BoxBillNo = entity?.box?.BoxBillNo ?? "";
@@ -217,5 +267,39 @@ namespace WMS.Web.Repositories
return response; 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 + "%")); query = query.Where(w => EF.Functions.Like(w.CustomerName, "%" + dto.CustomerName + "%"));
if (!string.IsNullOrEmpty(dto.CustomerNumber)) if (!string.IsNullOrEmpty(dto.CustomerNumber))
query = query.Where(w => EF.Functions.Like(w.CustomerNumber, "%" + dto.CustomerNumber + "%")); query = query.Where(w => EF.Functions.Like(w.CustomerNumber, "%" + dto.CustomerNumber + "%"));
if (dto.OperateBeginDate != null) if (dto.CreateBeginDate != null)
query = query.Where(w => w.OperateTime >= dto.OperateBeginDate); query = query.Where(w => w.OperateTime >= dto.CreateBeginDate);
if (dto.OperateEndDate != null) if (dto.CreateEndDate != null)
query = query.Where(w => w.OperateTime <= dto.OperateEndDate); query = query.Where(w => w.OperateTime <= dto.CreateEndDate);
//组装 //组装
int total = await query.CountAsync(); int total = await query.CountAsync();
var list = await query.Select(s => new SubscribeNotificationQueryInfoResponse() var list = await query.Select(s => new SubscribeNotificationQueryInfoResponse()
@@ -196,8 +196,8 @@ namespace WMS.Web.Repositories
Id = s.Id, Id = s.Id,
CustomerName = s.CustomerName, CustomerName = s.CustomerName,
CustomerNumber = s.CustomerNumber, CustomerNumber = s.CustomerNumber,
Telephones = s.CustomerName, Telephones = string.Join(",", s.Telephones),
Emails = s.CustomerName, Emails = string.Join(",", s.Emails),
Operate = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.OperateId), Operate = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.OperateId),
OperateTime = s.OperateTime.DateToStringSeconds(), OperateTime = s.OperateTime.DateToStringSeconds(),
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.CreatorId), Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.CreatorId),