From f35dd85d29220d26abc123eae97643e5c8b03944 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Fri, 10 Nov 2023 16:17:03 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E8=9D=B6?=
=?UTF-8?q?=E6=93=8D=E4=BD=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 30 ++--
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 34 +++-
.../Erp/{ErpSubmitDto.cs => ErpOperateDto.cs} | 4 +-
.../IService/Public/IErpService.cs | 11 +-
.../Services/Public/ErpService.cs | 148 ++++++++++++++++--
.../Services/TakeStockService.cs | 4 +-
6 files changed, 200 insertions(+), 31 deletions(-)
rename src/WMS.Web.Core/Dto/Erp/{ErpSubmitDto.cs => ErpOperateDto.cs} (86%)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 350faf9c..8bf4adc6 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -550,6 +550,21 @@
表单所在的子系统内码,字符串类型(非必录)
+
+
+ erp 提交和审核
+
+
+
+
+ 业务对象表单Id(必录)
+
+
+
+
+ 单据Id
+
+
下推
@@ -590,21 +605,6 @@
单据体
-
-
- erp 提交和审核
-
-
-
-
- 业务对象表单Id(必录)
-
-
-
-
- 单据Id
-
-
对应金蝶,物料信息
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 835ab409..fe023f34 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -2743,7 +2743,7 @@
-
+
同步数据(保存提交审核)
@@ -2751,6 +2751,38 @@
+
+
+ 提交
+
+
+
+
+
+
+
+ 审核
+
+
+
+
+
+
+
+ 反审核
+
+
+
+
+
+
+
+ 删除
+
+
+
+
+
下推
diff --git a/src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs
similarity index 86%
rename from src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs
rename to src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs
index 5c2c0653..746866fe 100644
--- a/src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs
+++ b/src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs
@@ -8,9 +8,9 @@ namespace WMS.Web.Core.Dto.Erp
///
/// erp 提交和审核
///
- public class ErpSubmitDto
+ public class ErpOperateDto
{
- public ErpSubmitDto(string formId, string id)
+ public ErpOperateDto(string formId, string id)
{
this.FormId = formId;
this.Ids = id;
diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs
index 7453f060..d839c12d 100644
--- a/src/WMS.Web.Domain/IService/Public/IErpService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs
@@ -83,9 +83,16 @@ namespace WMS.Web.Domain.IService.Public
///
Task> BillQueryForSubStock(string code=null);
//同步数据(保存提交审核)
- Task Sync(T dto, string formId);
+ Task Save(T dto, string formId);
+ //提交
+ Task Submit(ErpOperateDto dto, string formId);
+ //审核
+ Task Audit(ErpOperateDto dto, string formId);
+ //反审核
+ Task NoAudit(ErpOperateDto dto, string formId);
+ //删除
+ Task Delete(ErpOperateDto dto, string formId);
//下推
Task Push(ErpPushDto dto);
-
}
}
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 3f4bb62b..04a60f76 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -5,6 +5,7 @@ using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -607,13 +608,15 @@ namespace WMS.Web.Domain.Services.Public
return ResultList.ReFailure("错误", 10002);
}
}
+
+ #region 金蝶操作交互
///
/// 同步数据(保存提交审核)
///
///
///
///
- public async Task Sync(T dto, string formId)
+ public async Task Save(T dto, string formId)
{
try
{
@@ -625,15 +628,143 @@ namespace WMS.Web.Domain.Services.Public
query.Data = JsonConvert.SerializeObject(param);
//保存
var result_json = await _client.SaveAsync(JsonConvert.SerializeObject(query));
+
+ JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
+ var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
+
+ if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
+ return Result.ReSuccess();
+
+ var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
+ return Result.ReFailure(msg, 10002);
+ }
+ catch (Exception)
+ {
+ return Result.ReFailure("错误", 10002);
+ }
+ }
+ ///
+ /// 提交
+ ///
+ ///
+ ///
+ ///
+ public async Task Submit(ErpOperateDto dto, string formId)
+ {
+ try
+ {
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return token_result;
+ var query = new ErpBillQueryDto(token_result.Data);
+
//提交
- var sparam = new ErpSubmitDto(formId, "");
- query.Data = JsonConvert.SerializeObject(sparam);
- result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query));
- //审核
- result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query));
+ query.Data = JsonConvert.SerializeObject(dto);
+ var result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query));
+ JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
+ var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
- return Result.ReSuccess();
+ if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
+ return Result.ReSuccess();
+ var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
+ return Result.ReFailure(msg, 10002);
+ }
+ catch (Exception)
+ {
+ return Result.ReFailure("错误", 10002);
+ }
+ }
+ ///
+ /// 审核
+ ///
+ ///
+ ///
+ ///
+ public async Task Audit(ErpOperateDto dto, string formId)
+ {
+ try
+ {
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return token_result;
+ var query = new ErpBillQueryDto(token_result.Data);
+
+ //提交
+ query.Data = JsonConvert.SerializeObject(dto);
+ var result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query));
+ JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
+ var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
+
+ if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
+ return Result.ReSuccess();
+
+ var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
+ return Result.ReFailure(msg, 10002);
+ }
+ catch (Exception)
+ {
+ return Result.ReFailure("错误", 10002);
+ }
+ }
+ ///
+ /// 反审核
+ ///
+ ///
+ ///
+ ///
+ public async Task NoAudit(ErpOperateDto dto, string formId)
+ {
+ try
+ {
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return token_result;
+ var query = new ErpBillQueryDto(token_result.Data);
+
+ //提交
+ query.Data = JsonConvert.SerializeObject(dto);
+ var result_json = await _client.UnAuditAsync(JsonConvert.SerializeObject(query));
+ JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
+ var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
+
+ if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
+ return Result.ReSuccess();
+
+ var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
+ return Result.ReFailure(msg, 10002);
+ }
+ catch (Exception)
+ {
+ return Result.ReFailure("错误", 10002);
+ }
+ }
+ ///
+ /// 删除
+ ///
+ ///
+ ///
+ ///
+ public async Task Delete(ErpOperateDto dto, string formId)
+ {
+ try
+ {
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return token_result;
+ var query = new ErpBillQueryDto(token_result.Data);
+
+ //提交
+ query.Data = JsonConvert.SerializeObject(dto);
+ var result_json = await _client.DeleteAsync(JsonConvert.SerializeObject(query));
+ JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
+ var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
+
+ if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
+ return Result.ReSuccess();
+
+ var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
+ return Result.ReFailure(msg, 10002);
}
catch (Exception)
{
@@ -657,6 +788,7 @@ namespace WMS.Web.Domain.Services.Public
return Result.ReSuccess();
}
+ #endregion
#region 出库
public async Task> BillQueryForDeliveryNoticeOutStock(List sourceBillNos = null, DateTime? beginTime = null)
@@ -1118,8 +1250,6 @@ namespace WMS.Web.Domain.Services.Public
}
}
-
-
#endregion
}
}
diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs
index 0665b3bc..8a082608 100644
--- a/src/WMS.Web.Domain/Services/TakeStockService.cs
+++ b/src/WMS.Web.Domain/Services/TakeStockService.cs
@@ -133,7 +133,7 @@ namespace WMS.Web.Domain.Services
};
#endregion
- var resSync = await _erpService.Sync(dto, FormIdParam.STK_StockCountGain.ToString());
+ var resSync = await _erpService.Save(dto, FormIdParam.STK_StockCountGain.ToString());
entity.Sync(resSync.IsSuccess, resSync.Message);
await _takeStockRepositories.Edit(entity, true);
return res;
@@ -180,7 +180,7 @@ namespace WMS.Web.Domain.Services
#endregion
//判断盘盈盘亏
string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString();
- var resSync = await _erpService.Sync(dto, formId);
+ var resSync = await _erpService.Save(dto, formId);
entity.Sync(resSync.IsSuccess, resSync.Message);
await _takeStockRepositories.Edit(entity, true);
return res;
From bddd26993f18294507ab9d060f27948672516445 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Fri, 10 Nov 2023 16:23:27 +0800
Subject: [PATCH 2/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.Api/wwwroot/WMS.Web.Domain.xml | 5 +++++
src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs | 8 +++++++-
src/WMS.Web.Domain/Services/Public/ErpService.cs | 2 +-
.../Configuration/RepositoryDbContext.cs | 1 +
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index fe023f34..985c6e8e 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -281,6 +281,11 @@
定时任务最新一次时间管理
+
+
+ 主键 订单编号
+
+
同步类型
diff --git a/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs b/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs
index c7030575..ea11618a 100644
--- a/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs
+++ b/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
+using WMS.Web.Core;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
@@ -13,8 +14,13 @@ namespace WMS.Web.Domain.Entitys
///
[Serializable]
[Table("t_wms_sync_date")]
- public class ErpOpsSyncDate
+ public class ErpOpsSyncDate : EntityBase
{
+ ///
+ /// 主键 订单编号
+ ///
+ [Column("Id")]
+ public override int Id { get; set; }
///
/// 同步类型
///
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 04a60f76..64b2d098 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -814,7 +814,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.SAL_DELIVERYNOTICE.ToString());
- param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID,FStockID,FStockLocID,FQty,FNoteEntry,FCreateDate";
+ param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID,FStockID,FStockLocID,FQty,FNoteEntry,FCreateDate,FEntryID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
index 1a7ff910..248e7e4b 100644
--- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
+++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs
@@ -60,6 +60,7 @@ namespace WMS.Web.Repositories.Configuration
builder.Entity(ent =>
{
ent.ToTable("t_wms_sync_date");
+ ent.HasKey(x => x.Id);
});
From de10b40d2e170395b78cf0e54b18077954de71e9 Mon Sep 17 00:00:00 2001
From: 18942506660 <18942506660@A18942506660>
Date: Fri, 10 Nov 2023 16:34:20 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=91=E8=9D=B6?=
=?UTF-8?q?=E6=98=8E=E7=BB=86id?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 +++++
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 5 +++++
.../Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs | 4 ++++
src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs | 5 +++++
src/WMS.Web.Domain/Services/Public/ErpService.cs | 1 +
5 files changed, 20 insertions(+)
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 8bf4adc6..b1f8d0a8 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -685,6 +685,11 @@
收货客户
+
+
+ 对应金蝶单据明细id(销售出库同步金蝶下推使用)
+
+
物料Id
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 985c6e8e..d7b06fd9 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -952,6 +952,11 @@
单据头Id
+
+
+ 对应金蝶单据明细id(销售出库同步金蝶下推使用)
+
+
销售订单号
diff --git a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
index bbdcecd1..9ea3dfe9 100644
--- a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
+++ b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs
@@ -26,6 +26,10 @@ namespace WMS.Web.Core.Dto.Erp.OutStock
///
public int ReceiptCustomerId { get; set; }
///
+ /// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
+ ///
+ public int Erp_DetailId { get; set; } = 0;
+ ///
/// 物料Id
///
public int MaterialId { get; set; }
diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
index e7009944..6dca3b95 100644
--- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
@@ -27,6 +27,11 @@ namespace WMS.Web.Domain.Entitys
[Column("Fid")]
public int Fid { get; set; }
///
+ /// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
+ ///
+ [Column("Erp_DetailId")]
+ public int Erp_DetailId { get; set; }
+ ///
/// 销售订单号
///
[Column("SaleBillNo")]
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 64b2d098..66e88bde 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -855,6 +855,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.Sal;
+ lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList.ReSuccess(erp_list);