diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnDetDTO.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnDetDTO.cs
index ca2ff8f..4fe8030 100644
--- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnDetDTO.cs
+++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnDetDTO.cs
@@ -1,5 +1,6 @@
using System;
using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Scp.WebApi.Domain.Shared;
namespace Win_in.Sfs.Scp.WebApi
@@ -7,7 +8,7 @@ namespace Win_in.Sfs.Scp.WebApi
///
/// QAD发货单明细(ASN detail) SupplierAsnDetailInput
///
- public class AsnDetDTO :EntityDtoBase
+ public class AsnDetDTO : EntityDto
{
///
/// 送货单号(ASN number)(Asn number)
diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnMstrDTO.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnMstrDTO.cs
index 47db1e6..f940aae 100644
--- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnMstrDTO.cs
+++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/AsnMstrDTO.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Scp.WebApi.Asns;
using Win_in.Sfs.Scp.WebApi.Domain.Shared;
@@ -9,8 +10,13 @@ namespace Win_in.Sfs.Scp.WebApi
///
/// QAD发货单主表(ASN Master) SupplierAsnCreateInput ISupplierAsnAppService
///
- public class AsnMstrDTO:EntityDtoBase
+ public class AsnMstrDTO:EntityDto
{
+ ///
+ ///
+ ///
+ public virtual string TraceId { get; set; }
+
///
///
///
@@ -31,6 +37,11 @@ namespace Win_in.Sfs.Scp.WebApi
///
public virtual string AsnNbr { get; set; }
+ ///
+ /// 要货计划号(Request plan number)
+ ///
+ public virtual string RpNbr { get; set; }
+
///
/// 采购订单号(Purchase order number)
///
@@ -40,7 +51,12 @@ namespace Win_in.Sfs.Scp.WebApi
/// 供应商(Vendor)
///
public virtual string VendorCode { get; set; }
-
+
+ ///
+ /// 状态
+ ///
+ public string Status { get; set; }
+
///
/// 联系人(Contacts name)
///
@@ -83,10 +99,7 @@ namespace Win_in.Sfs.Scp.WebApi
///
public string TimeWindow { get; set; }
- ///
- /// 状态
- ///
- public string Status { get; set; }
+
///
/// 备注(Remark)
diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/IX12AsnAppService.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/IX12AsnAppService.cs
index 3446cbb..751ca87 100644
--- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/IX12AsnAppService.cs
+++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application.Contracts/Asns/IX12AsnAppService.cs
@@ -15,7 +15,12 @@ namespace Win_in.Sfs.Scp.WebApi
public interface IX12AsnAppService : IReadOnlyAppService
{
Task> GetUnreadListAsync(string site, int count,bool autoUpdateStatus);
- Task> GetNoPoUnreadListAsync(string site, int count, bool autoUpdateStatus);
+
+ Task> GetNoPoUnreadListAsync(string site, int count, bool autoUpdateStatus);
+
+ Task> GetNoPoUnreadFirstAsync(string site);
+
+ Task> GetNoPoAsync(string site, long uid);
Task> GetListAsync(string site, long beginUid,long endUid);
diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs
index 0bb049b..e9b5bab 100644
--- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs
+++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Asns/X12AsnAppService.cs
@@ -29,6 +29,7 @@ using System.Security.Cryptography;
using IdentityModel;
using Microsoft.Extensions.Options;
using Volo.Abp;
+using System.Drawing;
namespace Win_in.Sfs.Scp.WebApi
{
@@ -122,15 +123,15 @@ namespace Win_in.Sfs.Scp.WebApi
}
///
- /// 获取未读无POASN列表(Get unread Asn listwithout PO)
+ /// 获取未读无PO ASN列表(Get unread Asn list without PO)
///
/// 地点(Site)
/// 数量(Count)
/// 是否自动更新状态(Auto update data status to finish)
///
[HttpGet]
- [Route("nopo-unread-list")]
- public async Task> GetNoPoUnreadListAsync(string site, int count, bool autoUpdateStatus)
+ [Route("nopo/unread-list")]
+ public async Task> GetNoPoUnreadListAsync(string site, int count, bool autoUpdateStatus)
{
try
{
@@ -151,10 +152,85 @@ namespace Win_in.Sfs.Scp.WebApi
var entities = await _x12AsnRepository.GetNoPoUnreadListAsync(site, count, autoUpdateStatus);
- var dtos = BuildDtos(entities);
+ // var dtos = BuildDtos(entities);
- return new ListResultDto(dtos);
+ var dtos = BuildAsnMstrDtos(entities);
+
+ return new ListResultDto(dtos);
+
+ }
+
+ ///
+ /// 获取首个未读无PO ASN,并更新状态为已读(Get first unread Asn without PO and update status to read)
+ ///
+ /// 地点
+ ///
+ ///
+ [HttpGet]
+ [Route("nopo/unread-first")]
+ public async Task> GetNoPoUnreadFirstAsync(string site)
+ {
+ try
+ {
+ Validator.CheckSite(_tenantRepository, site);
+
+ }
+ catch (Exception ex)
+ {
+ throw new AbpValidationException(new List
+ {
+ new(ex.Message)
+ });
+ }
+
+ var entities = await _x12AsnRepository.GetNoPoUnreadListAsync(site, 1, true);
+
+ if (entities == null || entities.Count == 0)
+ {
+ return new OkResult();
+ }
+ // var dtos = BuildDtos(entities);
+
+ var dto = BuildAsnMstrDto(entities[0]);
+
+ return dto;
+ }
+
+ ///
+ /// 根据UID获取无PO ASN(Get Asn without PO by UID)
+ ///
+ /// 地点(Site)
+ /// UID(UID)
+ ///
+ ///
+ [HttpGet]
+ [Route("nopo/by-uid")]
+ public async Task> GetNoPoAsync(string site,long uid)
+ {
+ X12Asn entity;
+ try
+ {
+ Validator.CheckSite(_tenantRepository, site);
+ entity = await _x12AsnRepository.FirstOrDefaultAsync(p => p.Site == site && p.DataType==ScpWebApiConsts.NO_PO_ASN && p.UID == uid);
+
+ if (entity == null)
+ {
+
+ throw new UserFriendlyException($"No Po ASN of {uid} in {site} is not found");
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new AbpValidationException(new List
+ {
+ new(ex.Message)
+ });
+ }
+
+ var dto = BuildAsnMstrDto(entity);
+
+ return dto;
}
///
@@ -352,6 +428,24 @@ namespace Win_in.Sfs.Scp.WebApi
return dtos;
}
+ private List BuildAsnMstrDtos(List entities)
+ {
+ var dtos = new List();
+ foreach (var entity in entities)
+ {
+ var dto = BuildAsnMstrDto(entity);
+ dtos.Add(dto);
+ }
+ return dtos;
+ }
+
+ private AsnMstrDTO BuildAsnMstrDto(X12Asn entity)
+ {
+ var dto = JsonSerializer.Deserialize(entity.JsonString);
+ dto.TraceId = $"{dto.Site}-{dto.UID}-{DateTime.Now.Ticks}";
+ return dto;
+ }
+
private X12AsnDTO BuildDto(X12Asn entity)
{
var dto = ObjectMapper.Map(entity);
diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj
index a831399..244f957 100644
--- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj
+++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj
@@ -7,8 +7,8 @@
Win_in.Sfs.Scp.WebApi
true
Win_in.Sfs.Scp.WebApi-4681b4fd-151f-4221-84a4-929d86723e4c
- 1.22.0706.1
- 1.22.0706.1
+ 1.22.0711.1
+ 1.22.0711.1