From c4e4b1a59b2068f167dc396ecada088d78663c49 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Mon, 6 Nov 2023 14:56:17 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E8=9D=B6?=
=?UTF-8?q?=E5=90=8C=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ErpDeliveryNoticeOutStockResultDto.cs | 4 +
src/WMS.Web.Domain/Entitys/OutStock.cs | 4 +-
src/WMS.Web.Domain/Entitys/OutStockTask.cs | 14 +++-
.../IService/Public/IOutStockTaskService.cs | 2 +-
.../IOutStockTaskRepositories.cs | 13 ++++
src/WMS.Web.Domain/Mappers/OutStockMapper.cs | 3 +
.../Services/OutStockTaskService.cs | 77 +++++++++++++++++--
.../Services/Public/ErpService.cs | 1 +
.../OutStockTaskRepositories.cs | 52 ++++++++++++-
9 files changed, 158 insertions(+), 12 deletions(-)
diff --git a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
index e5ab45bd..bbdcecd1 100644
--- a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
+++ b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
@@ -49,5 +49,9 @@ namespace WMS.Web.Core.Dto.Erp.OutStock
/// 创建时间(erp那边的创建时间)
///
public DateTime? CreateTime { get; set; }
+ ///
+ /// 用来自动构建单据类型 跟OutStockType 一致
+ ///
+ public int Type { get; set; }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/OutStock.cs b/src/WMS.Web.Domain/Entitys/OutStock.cs
index a7b84333..a97e9301 100644
--- a/src/WMS.Web.Domain/Entitys/OutStock.cs
+++ b/src/WMS.Web.Domain/Entitys/OutStock.cs
@@ -44,7 +44,7 @@ namespace WMS.Web.Domain.Entitys
/// 单据类型
///
[Column("Type")]
- public OrderType Type { get; set; } = OrderType.Sal_Out;
+ public OutStockType Type { get; set; } = OutStockType.Sal;
///
/// 发货组织
///
@@ -78,7 +78,7 @@ namespace WMS.Web.Domain.Entitys
/// 创建
///
///
- public void Create(int creatorId,int taskId, OrderType type)
+ public void Create(int creatorId,int taskId, OutStockType type)
{
this.TaskId = taskId;
this.Type = type;
diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs
index 7a59aebc..26451462 100644
--- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs
+++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs
@@ -51,7 +51,7 @@ namespace WMS.Web.Domain.Entitys
/// 单据类型
///
[Column("Type")]
- public OrderType Type { get; set; } = OrderType.Sal_Out;
+ public OutStockType Type { get; set; } = OutStockType.Sal;
///
/// 操作人(出库人)
///
@@ -71,6 +71,14 @@ namespace WMS.Web.Domain.Entitys
/// 明细
///
public List Details = new List();
+ public void Create(OutStockType type, string sourceBillNo, int deliveryOrgId, int receiptCustomerId, DateTime createTime)
+ {
+ this.Type = type;
+ this.SourceBillNo = sourceBillNo;
+ this.DeliveryOrgId = deliveryOrgId;
+ this.ReceiptCustomerId = receiptCustomerId;
+ this.CreateTime = createTime;
+ }
///
/// 生成单据号
///
@@ -114,7 +122,7 @@ namespace WMS.Web.Domain.Entitys
{
// 符合合并数据逻辑:出库状态为”待拣货”+出库类型为:销售出库+发货组织一致+收货客户一致+发货仓库一致
if (list.Where(w => w.Status != OutStockStatus.Wait).Any()) return Result.ReFailure(ResultCodes.MergeStatusError);
- if (list.Where(w => w.Type != OrderType.Sal_Out).Any()) return Result.ReFailure(ResultCodes.MergeStatusError);
+ if (list.Where(w => w.Type != OutStockType.Sal).Any()) return Result.ReFailure(ResultCodes.MergeStatusError);
if (list.GroupBy(g => g.DeliveryOrgId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
if (list.GroupBy(g => g.ReceiptCustomerId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
@@ -131,7 +139,7 @@ namespace WMS.Web.Domain.Entitys
this.OperatorId = creatorId;
this.OperateTime = DateTime.Now;
this.Status = OutStockStatus.Wait;
- this.Type = OrderType.Sal_Out;
+ this.Type = OutStockType.Sal;
this.Details = details;
return Result.ReSuccess();
diff --git a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
index d595171d..2ef222e7 100644
--- a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
@@ -18,7 +18,7 @@ namespace WMS.Web.Domain.IService.Public
///
///
///
- Task SsynDeliveryNoticeOutStock(bool isTransaction);
+ Task SsynDeliveryNoticeOutStock(bool isTransaction,List sourceBillNos = null);
//出库任务作废
Task Repeal(OperateRequest dto, LoginInDto loginInfo);
//出库任务作废
diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
index e56baac5..811a8b26 100644
--- a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
@@ -11,10 +11,23 @@ namespace WMS.Web.Domain.Infrastructure
{
// 新增
Task Add(OutStockTask entity, bool isTransaction = true);
+ ///
+ /// 批量添加
+ ///
+ ///
+ ///
+ ///
+ Task AddRange(List entitys, bool isTransaction = true);
// 获取列表
Task<(List list, int total)> GetListAsync(OutStockTaskQueryRequest dto);
/// 查询实体集合
Task> GetEntityList(List ids);
+ ///
+ /// 列表-根据明细中的来源单号
+ ///
+ ///
+ ///
+ Task> GetListBySourceBillNo(List sourceBillNos);
/// 修改实体集合
Task EditEntityList(List entitys, bool isTransaction = true);
//编辑
diff --git a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
index 042de07d..94d4b627 100644
--- a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
+using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.OutStock;
using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Domain.Entitys;
@@ -22,6 +23,8 @@ namespace WMS.Web.Domain.Mappers
CreateMap();
CreateMap();
+
+ CreateMap();
}
}
}
diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
index edb11381..727b193b 100644
--- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
@@ -6,6 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.Erp.OutStock;
using WMS.Web.Core.Dto.Erp.Purchase;
using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Internal.Results;
@@ -20,7 +21,7 @@ namespace WMS.Web.Domain.Services
///
/// 出库任务
///
- public class OutStockTaskService: IOutStockTaskService
+ public class OutStockTaskService : IOutStockTaskService
{
private readonly IMapper _mapper;
private readonly IErpService _erpService;
@@ -85,20 +86,86 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess();
}
+
+ ///
+ /// erp数据转化wms 执行数据库操作
+ ///
+ ///
+ ///
+ ///
+ public async Task SsynDate(List erp_list, bool isTransaction)
+ {
+ //2.通过单据编号找到wms系统现有的任务单;并修改
+ var erp_removeList = new List();
+ var SourceBillNo_list = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList();
+ var data_list = await _outStockTaskRepositories.GetListBySourceBillNo(SourceBillNo_list);
+ if (data_list.Count != 0)
+ {
+ //2.1提取出wms任务单明细信息
+ foreach (var e in erp_list)
+ {
+ //代表单据已经存在 那么就对单据进行修改
+ var data = data_list.FirstOrDefault(f => f.SourceBillNo == e.SourceBillNo);
+ var detail = data.Details.FirstOrDefault(w => w.MaterialId == e.MaterialId);
+ //存在就修改,没有就添加
+ if (detail != null)
+ detail.AccruedQty = e.AccruedQty;
+ else
+ data.Details.Add(_mapper.Map(e));
+
+ erp_removeList.Add(e);
+ }
+ //2.2.提交修改
+ var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction);
+ if (!isSuccess)
+ return Result.ReFailure(ResultCodes.DateWriteError);
+
+ //2.3剔除:已修改的单据
+ foreach (var item in erp_removeList)
+ erp_list.Remove(item);
+
+ //3.wms任务单的来源单据编号不存在于erp中,那么就新增
+ if (erp_list.Count != 0)
+ {
+ var add_entitys = new List();
+ var billNos = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList();
+ foreach (var item in billNos)
+ {
+ var e = erp_list.FirstOrDefault(f => f.SourceBillNo == item);
+ var dto = new OutStockTask();
+ dto.SourceBillNo = e.SourceBillNo;
+ dto.Create((OutStockType)e.Type, e.SourceBillNo, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
+
+ //找到当前对应来源单据编号的集合数据
+ var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList();
+ //给到dto的实体明细中
+ dto.Details = _mapper.Map>(current_erp_details);
+ add_entitys.Add(dto);
+ }
+ //3.1提交新增
+ isSuccess = await _outStockTaskRepositories.AddRange(add_entitys, isTransaction);
+ if (!isSuccess)
+ return Result.ReFailure(ResultCodes.DateWriteError);
+ }
+
+ }
+
+ return Result.ReSuccess();
+ }
+
///
/// 发货通知单同步数据
///
///
///
- public async Task SsynDeliveryNoticeOutStock(bool isTransaction)
+ public async Task SsynDeliveryNoticeOutStock(bool isTransaction, List sourceBillNos = null)
{
//1.获取金蝶数据:采购订单数据
- var erp_result = await _erpService.BillQueryForPurchaseInStock();
+ var erp_result = await _erpService.BillQueryForDeliveryNoticeOutStock(sourceBillNos);
if (!erp_result.IsSuccess)
return Result.ReFailure(erp_result.Message, erp_result.Status);
- var erp_list = erp_result.Data;
- return Result.ReSuccess();
+ return await this.SsynDate(erp_result.Data.ToList(), isTransaction);
}
}
}
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 4e789263..7efc9431 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -424,6 +424,7 @@ namespace WMS.Web.Domain.Services.Public
lis.AccruedQty = Convert.ToDecimal(item[7]);
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.Sal;
erp_list.Add(lis);
}
return ResultList.ReSuccess(erp_list);
diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
index d37eb6f3..1651f5e2 100644
--- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
+++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
@@ -225,7 +225,7 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.SourceBillNo))
query = query.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%"));
if (dto.Type != null)
- query = query.Where(w => w.order.Type == (OrderType)dto.Type);
+ query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
if (dto.Status != null)
query = query.Where(w => w.order.Status == (OutStockStatus)dto.Status);
if (dto.DeliveryOrgId != null)
@@ -273,5 +273,55 @@ namespace WMS.Web.Repositories
var mIds = entity.Details.Select(s => s.MaterialId).ToList();
return response;
}
+ ///
+ /// 根据来源单号搜索
+ ///
+ ///
+ ///
+ public async Task> GetListBySourceBillNo(List sourceBillNos)
+ {
+ var entitys = await _context.OutStockTask
+ .Include(s => s.Details)
+ .Where(w => sourceBillNos.Contains(w.SourceBillNo))
+ .ToListAsync();
+
+ return entitys.Clone();
+ }
+ ///
+ /// 批量添加
+ ///
+ ///
+ ///
+ ///
+ public async Task AddRange(List entitys, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+ try
+ {
+ if (entitys != null && entitys.Count != 0)
+ {
+ await _context.OutStockTask.AddRangeAsync(entitys);
+ await _context.SaveChangesAsync();
+ foreach (var item in entitys)
+ {
+ if (string.IsNullOrEmpty(item.BillNo))
+ //自动生成单据编号
+ item.GenerateNo();
+ }
+ await _context.SaveChangesAsync();
+ }
+ if (_transaction != null)
+ _transaction.Commit();
+ return true;
+ }
+ catch
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return false;
+ }
+ }
}
}
From 3b67d95f1c40d696d4a2ca1ccd9fbf36e9fa56ba Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Mon, 6 Nov 2023 16:23:52 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E9=87=91=E8=9D=B6=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=87=BA=E5=BA=93=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/Controllers/TestController.cs | 2 +-
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 +
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 162 +++++++-
.../IService/Public/IErpService.cs | 29 +-
.../IService/Public/IOutStockTaskService.cs | 21 +
.../QuartzJob/OutStockOrderQuartzJob.cs | 81 ++++
.../Services/OutStockTaskService.cs | 64 +++
.../Services/Public/ErpService.cs | 384 +++++++++++++++++-
src/WMS.Web.Domain/Values/Erp/FormIdParam.cs | 10 +-
.../OutStockRepositories.cs | 2 +-
10 files changed, 749 insertions(+), 11 deletions(-)
create mode 100644 src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs
diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs
index decf6cbc..f7ad0aa6 100644
--- a/src/WMS.Web.Api/Controllers/TestController.cs
+++ b/src/WMS.Web.Api/Controllers/TestController.cs
@@ -35,7 +35,7 @@ namespace WMS.Web.Api.Controllers
[Route("hj")]
public async Task TestHJ()
{
- var res = await this._erpService.BillQueryForDeliveryNoticeOutStock();
+ var res = await this._erpService.BillQueryForTransferDirectOutStock();
//var result= await this._erpService.BillQueryForPurchaseInStock();
//var result = await this._erpService.BillQueryForOrg();
var result = await this._erpService.BillQueryForMaterial();
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index e52b42f5..1619210c 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -675,6 +675,11 @@
创建时间(erp那边的创建时间)
+
+
+ 用来自动构建单据类型 跟OutStockType 一致
+
+
出库单同步金蝶
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 925140bc..3944b0be 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -746,7 +746,7 @@
明细
-
+
创建
@@ -1332,9 +1332,24 @@
修改实体集合
+
+
+ 批量添加
+
+
+
+
+
查询实体集合
+
+
+ 列表-根据明细中的来源单号
+
+
+
+
修改实体集合
@@ -1456,7 +1471,37 @@
- erp:单据查询-采购入库单
+ erp:单据查询-出库单
+
+
+
+
+
+ erp:单据查询-直接调拨出库
+
+
+
+
+
+ erp:单据查询-分布式调出
+
+
+
+
+
+ erp:单据查询-组装拆卸单(拆卸 主出)
+
+
+
+
+
+ erp:单据查询-组装拆卸单(组装 子出)
+
+
+
+
+
+ erp:单据查询-其他出库
@@ -1553,13 +1598,37 @@
出库任务
-
+
采购发货通知单
+
+
+ erp:单据查询-直接调拨出库
+
+
+
+
+
+ erp:单据查询-分布式调出
+
+
+
+
+
+ erp:单据查询-组装拆卸单(拆卸 主出) 组装 子出
+
+
+
+
+
+ erp:单据查询-其他出库
+
+
+
单点数据返回服务接口
@@ -2104,13 +2173,53 @@
-
+
+
+ erp数据转化wms 执行数据库操作
+
+
+
+
+
+
发货通知单同步数据
+
+
+ 直接调拨
+
+
+
+
+
+
+
+ 分布式调出
+
+
+
+
+
+
+
+ 组装拆卸单
+
+
+
+
+
+
+
+ 其他入库单
+
+
+
+
+
erp数据交互服务
@@ -2161,6 +2270,41 @@
+
+
+ 直接调拨出库
+
+
+
+
+
+
+ 分布式调出
+
+
+
+
+
+
+ 组装拆卸单 (拆卸 主出)
+
+
+
+
+
+
+ 其他出库
+
+
+
+
+
+
+ 组装拆卸单 (组装 子出)
+
+
+
+
Get方法
@@ -2623,6 +2767,16 @@
销售发货通知单
+
+
+ 其他出库单
+
+
+
+
+ 分布式调出单
+
+
入库状态
diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs
index ad9f1dec..52aefd13 100644
--- a/src/WMS.Web.Domain/IService/Public/IErpService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs
@@ -19,12 +19,35 @@ namespace WMS.Web.Domain.IService.Public
///
Task> BillQueryForPurchaseInStock();
///
- /// erp:单据查询-采购入库单
+ /// erp:单据查询-出库单
///
///
Task> BillQueryForDeliveryNoticeOutStock(List sourceBillNos = null);
-
-
+ ///
+ /// erp:单据查询-直接调拨出库
+ ///
+ ///
+ Task> BillQueryForTransferDirectOutStock(List sourceBillNos = null);
+ ///
+ /// erp:单据查询-分布式调出
+ ///
+ ///
+ Task> BillQueryForTransferOutOutStock(List sourceBillNos = null);
+ ///
+ /// erp:单据查询-组装拆卸单(拆卸 主出)
+ ///
+ ///
+ Task> BillQueryForAssembledAppOutStock_Dassembly(List sourceBillNos = null);
+ ///
+ /// erp:单据查询-组装拆卸单(组装 子出)
+ ///
+ ///
+ Task> BillQueryForAssembledAppOutStock_Assembly(List sourceBillNos = null);
+ ///
+ /// erp:单据查询-其他出库
+ ///
+ ///
+ Task> BillQueryForMisDeliveryOutStock(List sourceBillNos = null);
///
/// erp:单据查询-物料
///
diff --git a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
index 2ef222e7..4df6006e 100644
--- a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text;
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.Internal.Results;
@@ -19,6 +20,26 @@ namespace WMS.Web.Domain.IService.Public
///
///
Task SsynDeliveryNoticeOutStock(bool isTransaction,List sourceBillNos = null);
+ ///
+ /// erp:单据查询-直接调拨出库
+ ///
+ ///
+ Task BillQueryForTransferDirectOutStock(bool isTransaction, List sourceBillNos = null);
+ ///
+ /// erp:单据查询-分布式调出
+ ///
+ ///
+ Task BillQueryForTransferOutOutStock(bool isTransaction, List sourceBillNos = null);
+ ///
+ /// erp:单据查询-组装拆卸单(拆卸 主出) 组装 子出
+ ///
+ ///
+ Task BillQueryForAssembledAppOutStock(bool isTransaction, List sourceBillNos = null);
+ ///
+ /// erp:单据查询-其他出库
+ ///
+ ///
+ Task BillQueryForMisDeliveryOutStock(bool isTransaction, List sourceBillNos = null);
//出库任务作废
Task Repeal(OperateRequest dto, LoginInDto loginInfo);
//出库任务作废
diff --git a/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs
new file mode 100644
index 00000000..a8f6a448
--- /dev/null
+++ b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs
@@ -0,0 +1,81 @@
+using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+using WMS.Web.Domain.Infrastructure;
+using WMS.Web.Domain.IService;
+using WMS.Web.Domain.IService.Public;
+using WMS.Web.Domain.Options;
+
+namespace WMS.Web.Domain.QuartzJob
+{
+ public class OutStockOrderQuartzJob : IJob
+ {
+ private readonly ILogger _logger;
+ private readonly IServiceScopeFactory _serviceScopeFactory;
+ private readonly AppOptions _options;
+ private readonly IOutStockTaskService _outStockTaskService;
+ private readonly ITransactionRepositories _transactionRepositories;
+
+ public OutStockOrderQuartzJob(ILogger logger,
+ IServiceScopeFactory serviceScopeFactory,
+ IOptions options,
+ IOutStockTaskService inStockTaskService,
+ ITransactionRepositories transactionRepositories)
+ {
+ this._logger = logger;
+ _serviceScopeFactory = serviceScopeFactory;
+ this._options = options?.Value;
+ _outStockTaskService = inStockTaskService;
+ _transactionRepositories = transactionRepositories;
+ }
+
+ ///
+ /// 执行方法
+ ///
+ ///
+ ///
+ public async Task Execute(IJobExecutionContext context)
+ {
+ try
+ {
+ //1.事务
+ IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
+ bool isRollback = false;
+ bool isTransaction = false;
+ //2.记录:开始时间
+ var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+ _logger.LogInformation($"出库单-同步金蝶入库单数据:执行开始时间->{begindatetime}");
+ //3.同步数据
+ var result = await _outStockTaskService.SsynDeliveryNoticeOutStock(isTransaction);
+ if (!result.IsSuccess) isRollback = true;
+ result = await _outStockTaskService.BillQueryForTransferDirectOutStock(isTransaction);
+ if (!result.IsSuccess) isRollback = true;
+ result = await _outStockTaskService.BillQueryForTransferOutOutStock(isTransaction);
+ if (!result.IsSuccess) isRollback = true;
+ result = await _outStockTaskService.BillQueryForMisDeliveryOutStock(isTransaction);
+ if (!result.IsSuccess) isRollback = true;
+ result = await _outStockTaskService.BillQueryForAssembledAppOutStock(isTransaction);
+ if (!result.IsSuccess) isRollback = true;
+
+ //4.提交事务
+ var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
+
+ //5.记录:结束时间
+ var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+ _logger.LogInformation($"出库单-同步金蝶入库单数据:执行结束时间->{begindatetime}");
+
+ }
+ catch (Exception ex)
+ {
+ _logger.LogInformation($"同步金蝶入库单数据:定时任务执行失败->{ex.Message}");
+ }
+
+ }
+ }
+}
diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
index 727b193b..df8014c5 100644
--- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs
@@ -167,5 +167,69 @@ namespace WMS.Web.Domain.Services
return await this.SsynDate(erp_result.Data.ToList(), isTransaction);
}
+ ///
+ /// 直接调拨
+ ///
+ ///
+ ///
+ ///
+ public async Task BillQueryForTransferDirectOutStock(bool isTransaction, List sourceBillNos = null)
+ {
+ var erp_result = await _erpService.BillQueryForTransferDirectOutStock(sourceBillNos);
+ if (!erp_result.IsSuccess)
+ return Result.ReFailure(erp_result.Message, erp_result.Status);
+
+ return await this.SsynDate(erp_result.Data.ToList(), isTransaction);
+ }
+ ///
+ /// 分布式调出
+ ///
+ ///
+ ///
+ ///
+ public async Task BillQueryForTransferOutOutStock(bool isTransaction, List sourceBillNos = null)
+ {
+ var erp_result = await _erpService.BillQueryForTransferOutOutStock(sourceBillNos);
+ if (!erp_result.IsSuccess)
+ return Result.ReFailure(erp_result.Message, erp_result.Status);
+
+ return await this.SsynDate(erp_result.Data.ToList(), isTransaction);
+ }
+ ///
+ /// 组装拆卸单
+ ///
+ ///
+ ///
+ ///
+ public async Task BillQueryForAssembledAppOutStock(bool isTransaction, List sourceBillNos = null)
+ {
+ List list = new List();
+
+ var erp_result = await _erpService.BillQueryForAssembledAppOutStock_Dassembly(sourceBillNos);
+ if (!erp_result.IsSuccess)
+ return Result.ReFailure(erp_result.Message, erp_result.Status);
+ list.AddRange(erp_result.Data);
+
+ var erp_result_a = await _erpService.BillQueryForAssembledAppOutStock_Assembly(sourceBillNos);
+ if (!erp_result_a.IsSuccess)
+ return Result.ReFailure(erp_result_a.Message, erp_result_a.Status);
+ list.AddRange(erp_result_a.Data);
+
+ return await this.SsynDate(list, isTransaction);
+ }
+ ///
+ /// 其他入库单
+ ///
+ ///
+ ///
+ ///
+ public async Task BillQueryForMisDeliveryOutStock(bool isTransaction, List sourceBillNos = null)
+ {
+ var erp_result = await _erpService.BillQueryForMisDeliveryOutStock(sourceBillNos);
+ if (!erp_result.IsSuccess)
+ return Result.ReFailure(erp_result.Message, erp_result.Status);
+
+ return await this.SsynDate(erp_result.Data.ToList(), isTransaction);
+ }
}
}
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 7efc9431..1d4dbf3f 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -363,6 +363,7 @@ namespace WMS.Web.Domain.Services.Public
return Result.ReSuccess();
}
+ #region 出库
public async Task> BillQueryForDeliveryNoticeOutStock(List sourceBillNos = null)
{
try
@@ -379,7 +380,7 @@ namespace WMS.Web.Domain.Services.Public
return ResultList.ReFailure(token_result);
//2.时间条件:可能还有其它条件
- var beginTime = DateTime.Now.AddDays(-2000).ToString("yyyy-MM-dd 00:00:00");
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
@@ -434,5 +435,386 @@ namespace WMS.Web.Domain.Services.Public
return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
+ ///
+ /// 直接调拨出库
+ ///
+ ///
+ ///
+ public async Task> BillQueryForTransferDirectOutStock(List sourceBillNos = null)
+ {
+ try
+ {
+
+ var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
+ if (stocks.Count == 0)
+ return ResultList.ReFailure(ResultCodes.ErpStockNoData);
+ var stocks_codes = stocks.Select(x => x.Id).ToList();
+
+ //1.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //2.时间条件:可能还有其它条件
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //3.获取金蝶采购订单:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.STK_TransferDirect.ToString());
+ param.FieldKeys = "FBillNo,'',FStockOutOrgId,FStockOrgId,FMaterialID,FSrcStockId,FSrcStockLocId,FQty,FNoteEntry,FCreateDate";
+ param.Limit = 10;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.未出库数量>0
+ //4.日期>=系统上线之日
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
+ //string srt = JsonConvert.SerializeObject(stocks_codes);
+ //param.FilterString = param.FilterString + " and FSrcStockId in (" + srt.Substring(1, srt.Length - 2) + ")";
+
+ //根据原订单号查询
+ if (sourceBillNos != null && sourceBillNos.Count() > 0)
+ {
+ var srt_b = JsonConvert.SerializeObject(sourceBillNos);
+ param.FilterString = param.FilterString + " and FBillNo in (" + srt_b.Substring(1, srt_b.Length - 2) + ")";
+ }
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.请求查询接口
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+
+ //5.返回数据的组装
+ var erp_list = new List();
+ foreach (var item in result)
+ {
+ var lis = new ErpDeliveryNoticeOutStockResultDto();
+ lis.SourceBillNo = item[0];
+ lis.SaleBillNo = item[1];
+ lis.DeliveryOrgId = Convert.ToInt32(item[2]);
+ lis.ReceiptCustomerId = Convert.ToInt32(item[3]);
+ lis.MaterialId = Convert.ToInt32(item[4]);
+ lis.StockId = Convert.ToInt32(item[5]);
+ lis.SubStockId = Convert.ToInt32(item[6]);
+ lis.AccruedQty = Convert.ToDecimal(item[7]);
+ lis.Remark = item[8];
+ lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.Stkdirecttransfers;
+ erp_list.Add(lis);
+ }
+ return ResultList.ReSuccess(erp_list);
+ }
+ catch (Exception ex)
+ {
+ return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
+ }
+ }
+ ///
+ /// 分布式调出
+ ///
+ ///
+ ///
+ public async Task> BillQueryForTransferOutOutStock(List sourceBillNos = null)
+ {
+ try
+ {
+
+ var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
+ if (stocks.Count == 0)
+ return ResultList.ReFailure(ResultCodes.ErpStockNoData);
+ var stocks_codes = stocks.Select(x => x.Id).ToList();
+
+ //1.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //2.时间条件:可能还有其它条件
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //3.获取金蝶采购订单:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.STK_TRANSFEROUT.ToString());
+ param.FieldKeys = "FBillNo,'',FStockOrgID,FStockInOrgID,FMaterialID,FSrcStockID,FSrcStockLocId,FQty,FEntryNote,FCreateDate";
+ param.Limit = 10;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.未出库数量>0
+ //4.日期>=系统上线之日
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
+ //string srt = JsonConvert.SerializeObject(stocks_codes);
+ //param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
+
+ //根据原订单号查询
+ if (sourceBillNos != null && sourceBillNos.Count() > 0)
+ {
+ var srt_b = JsonConvert.SerializeObject(sourceBillNos);
+ param.FilterString = param.FilterString + " and FBillNo in (" + srt_b.Substring(1, srt_b.Length - 2) + ")";
+ }
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.请求查询接口
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+
+ //5.返回数据的组装
+ var erp_list = new List();
+ foreach (var item in result)
+ {
+ var lis = new ErpDeliveryNoticeOutStockResultDto();
+ lis.SourceBillNo = item[0];
+ lis.SaleBillNo = item[1];
+ lis.DeliveryOrgId = Convert.ToInt32(item[2]);
+ lis.ReceiptCustomerId = Convert.ToInt32(item[3]);
+ lis.MaterialId = Convert.ToInt32(item[4]);
+ lis.StockId = Convert.ToInt32(item[5]);
+ lis.SubStockId = Convert.ToInt32(item[6]);
+ lis.AccruedQty = Convert.ToDecimal(item[7]);
+ lis.Remark = item[8];
+ lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.StktransferInst;
+ erp_list.Add(lis);
+ }
+ return ResultList.ReSuccess(erp_list);
+ }
+ catch (Exception ex)
+ {
+ return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
+ }
+ }
+ ///
+ /// 组装拆卸单 (拆卸 主出)
+ ///
+ ///
+ ///
+ public async Task> BillQueryForAssembledAppOutStock_Dassembly(List sourceBillNos = null)
+ {
+ try
+ {
+
+ var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
+ if (stocks.Count == 0)
+ return ResultList.ReFailure(ResultCodes.ErpStockNoData);
+ var stocks_codes = stocks.Select(x => x.Id).ToList();
+
+ //1.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //2.时间条件:可能还有其它条件
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //3.获取金蝶采购订单:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
+ param.FieldKeys = "FBillNo,'','','',FMaterialID,FStockID,FStockLocId,FQty,FDescription,FCreateDate";
+ param.Limit = 10;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.未出库数量>0
+ //4.日期>=系统上线之日
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and FAffairType='Dassembly'";
+ //string srt = JsonConvert.SerializeObject(stocks_codes);
+ //param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
+
+ //根据原订单号查询
+ if (sourceBillNos != null && sourceBillNos.Count() > 0)
+ {
+ var srt_b = JsonConvert.SerializeObject(sourceBillNos);
+ param.FilterString = param.FilterString + " and FBillNo in (" + srt_b.Substring(1, srt_b.Length - 2) + ")";
+ }
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.请求查询接口
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+
+ //5.返回数据的组装
+ var erp_list = new List();
+ foreach (var item in result)
+ {
+ var lis = new ErpDeliveryNoticeOutStockResultDto();
+ lis.SourceBillNo = item[0];
+ lis.SaleBillNo = item[1];
+ lis.DeliveryOrgId = Convert.ToInt32(item[2]);
+ lis.ReceiptCustomerId = Convert.ToInt32(item[3]);
+ lis.MaterialId = Convert.ToInt32(item[4]);
+ lis.StockId = Convert.ToInt32(item[5]);
+ lis.SubStockId = Convert.ToInt32(item[6]);
+ lis.AccruedQty = Convert.ToDecimal(item[7]);
+ lis.Remark = item[8];
+ lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.Assembled;
+ erp_list.Add(lis);
+ }
+ return ResultList.ReSuccess(erp_list);
+ }
+ catch (Exception ex)
+ {
+ return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
+ }
+ }
+ ///
+ /// 其他出库
+ ///
+ ///
+ ///
+ public async Task> BillQueryForMisDeliveryOutStock(List sourceBillNos = null)
+ {
+ try
+ {
+
+ var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
+ if (stocks.Count == 0)
+ return ResultList.ReFailure(ResultCodes.ErpStockNoData);
+ var stocks_codes = stocks.Select(x => x.Id).ToList();
+
+ //1.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //2.时间条件:可能还有其它条件
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //3.获取金蝶采购订单:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.STK_MisDelivery.ToString());
+ param.FieldKeys = "FBillNo,'',FStockOrgId,FPickOrgId,FMaterialId,FStockId,FStockLocId ,FQty,FEntryNote,FCreateDate";
+ param.Limit = 10;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.未出库数量>0
+ //4.日期>=系统上线之日
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C'";
+ //string srt = JsonConvert.SerializeObject(stocks_codes);
+ //param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
+
+ //根据原订单号查询
+ if (sourceBillNos != null && sourceBillNos.Count() > 0)
+ {
+ var srt_b = JsonConvert.SerializeObject(sourceBillNos);
+ param.FilterString = param.FilterString + " and FBillNo in (" + srt_b.Substring(1, srt_b.Length - 2) + ")";
+ }
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.请求查询接口
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+
+ //5.返回数据的组装
+ var erp_list = new List();
+ foreach (var item in result)
+ {
+ var lis = new ErpDeliveryNoticeOutStockResultDto();
+ lis.SourceBillNo = item[0];
+ lis.SaleBillNo = item[1];
+ lis.DeliveryOrgId = Convert.ToInt32(item[2]);
+ lis.ReceiptCustomerId = Convert.ToInt32(item[3]);
+ lis.MaterialId = Convert.ToInt32(item[4]);
+ lis.StockId = Convert.ToInt32(item[5]);
+ lis.SubStockId = Convert.ToInt32(item[6]);
+ lis.AccruedQty = Convert.ToDecimal(item[7]);
+ lis.Remark = item[8];
+ lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.Miscellaneous;
+ erp_list.Add(lis);
+ }
+ return ResultList.ReSuccess(erp_list);
+ }
+ catch (Exception ex)
+ {
+ return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
+ }
+ }
+ ///
+ /// 组装拆卸单 (组装 子出)
+ ///
+ ///
+ ///
+ public async Task> BillQueryForAssembledAppOutStock_Assembly(List sourceBillNos = null)
+ {
+ try
+ {
+
+ var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
+ if (stocks.Count == 0)
+ return ResultList.ReFailure(ResultCodes.ErpStockNoData);
+ var stocks_codes = stocks.Select(x => x.Id).ToList();
+
+ //1.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //2.时间条件:可能还有其它条件
+ var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ //3.获取金蝶采购订单:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
+ param.FieldKeys = "FBillNo,'',FSubProOwnerIdH,FOwnerIdHead,FMaterialIDSETY,FStockIDSETY,FStockLocIdSETY,FQtySETY,FDescriptionSETY,FCreateDate";
+ param.Limit = 10;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.未出库数量>0
+ //4.日期>=系统上线之日
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 FBillTypeID
+ param.FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and FAffairType='Assembly'";
+ //string srt = JsonConvert.SerializeObject(stocks_codes);
+ //param.FilterString = param.FilterString + " and FSrcStockID in (" + srt.Substring(1, srt.Length - 2) + ")";
+
+ //根据原订单号查询
+ if (sourceBillNos != null && sourceBillNos.Count() > 0)
+ {
+ var srt_b = JsonConvert.SerializeObject(sourceBillNos);
+ param.FilterString = param.FilterString + " and FBillNo in (" + srt_b.Substring(1, srt_b.Length - 2) + ")";
+ }
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.请求查询接口
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+
+ //5.返回数据的组装
+ var erp_list = new List();
+ foreach (var item in result)
+ {
+ var lis = new ErpDeliveryNoticeOutStockResultDto();
+ lis.SourceBillNo = item[0];
+ lis.SaleBillNo = item[1];
+ lis.DeliveryOrgId = Convert.ToInt32(item[2]);
+ lis.ReceiptCustomerId = Convert.ToInt32(item[3]);
+ lis.MaterialId = Convert.ToInt32(item[4]);
+ lis.StockId = Convert.ToInt32(item[5]);
+ lis.SubStockId = Convert.ToInt32(item[6]);
+ lis.AccruedQty = Convert.ToDecimal(item[7]);
+ lis.Remark = item[8];
+ lis.CreateTime = Convert.ToDateTime(item[9]);
+ lis.Type = (int)OutStockType.Assembled;
+ erp_list.Add(lis);
+ }
+ return ResultList.ReSuccess(erp_list);
+ }
+ catch (Exception ex)
+ {
+ return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error);
+ }
+ }
+ #endregion
}
}
diff --git a/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs b/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs
index 0e2367f2..9221849a 100644
--- a/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs
+++ b/src/WMS.Web.Domain/Values/Erp/FormIdParam.cs
@@ -60,6 +60,14 @@ namespace WMS.Web.Domain.Values.Erp
///
/// 销售发货通知单
///
- SAL_DELIVERYNOTICE = 13
+ SAL_DELIVERYNOTICE = 13,
+ ///
+ /// 其他出库单
+ ///
+ STK_MisDelivery=14,
+ ///
+ /// 分布式调出单
+ ///
+ STK_TRANSFEROUT=15
}
}
diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs
index 2ca30412..80282631 100644
--- a/src/WMS.Web.Repositories/OutStockRepositories.cs
+++ b/src/WMS.Web.Repositories/OutStockRepositories.cs
@@ -99,7 +99,7 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.SourceBillNo))
query = query.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%"));
if (dto.Type != null)
- query = query.Where(w => w.order.Type == (OrderType)dto.Type);
+ query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
if (dto.SuccessSync != null)
query = query.Where(w => w.order.SuccessSync == dto.SuccessSync);
if (dto.DeliveryOrgId != null)
From d92c58b15f9b1b5ceae6ebb0399be237309d7827 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Mon, 6 Nov 2023 16:42:29 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Domain/Services/Public/ErpService.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 1d4dbf3f..16ff22b9 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -613,7 +613,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
- param.FieldKeys = "FBillNo,'','','',FMaterialID,FStockID,FStockLocId,FQty,FDescription,FCreateDate";
+ param.FieldKeys = "FBillNo,'','0','0',FMaterialID,FStockID,FStockLocId,FQty,FDescription,FCreateDate";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间