erp-其他入库单

This commit is contained in:
tongfei
2023-11-10 16:43:09 +08:00
10 changed files with 225 additions and 74 deletions

View File

@@ -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
/// </summary>
[Serializable]
[Table("t_wms_sync_date")]
public class ErpOpsSyncDate
public class ErpOpsSyncDate : EntityBase
{
/// <summary>
/// 主键 订单编号
/// </summary>
[Column("Id")]
public override int Id { get; set; }
/// <summary>
/// 同步类型
/// </summary>

View File

@@ -27,6 +27,11 @@ namespace WMS.Web.Domain.Entitys
[Column("Fid")]
public int Fid { get; set; }
/// <summary>
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
/// </summary>
[Column("Erp_DetailId")]
public int Erp_DetailId { get; set; }
/// <summary>
/// 销售订单号
///</summary>
[Column("SaleBillNo")]

View File

@@ -97,9 +97,16 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns>
Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code=null);
//同步数据(保存提交审核)
Task<Result> Sync<T>(T dto, string formId);
Task<Result> Save<T>(T dto, string formId);
//提交
Task<Result> Submit(ErpOperateDto dto, string formId);
//审核
Task<Result> Audit(ErpOperateDto dto, string formId);
//反审核
Task<Result> NoAudit(ErpOperateDto dto, string formId);
//删除
Task<Result> Delete(ErpOperateDto dto, string formId);
//下推
Task<Result> Push(ErpPushDto dto);
}
}

View File

@@ -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;
@@ -758,13 +759,15 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpStockDto>.ReFailure("错误", 10002);
}
}
#region
/// <summary>
/// 同步数据(保存提交审核)
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
public async Task<Result> Sync<T>(T dto, string formId)
public async Task<Result> Save<T>(T dto, string formId)
{
try
{
@@ -776,15 +779,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);
}
}
/// <summary>
/// 提交
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
public async Task<Result> 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);
}
}
/// <summary>
/// 审核
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
public async Task<Result> 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);
}
}
/// <summary>
/// 反审核
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
public async Task<Result> 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);
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
public async Task<Result> 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)
{
@@ -808,6 +939,7 @@ namespace WMS.Web.Domain.Services.Public
return Result.ReSuccess();
}
#endregion
#region
public async Task<ResultList<ErpDeliveryNoticeOutStockResultDto>> BillQueryForDeliveryNoticeOutStock(List<string> sourceBillNos = null, DateTime? beginTime = null)
@@ -833,7 +965,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.创建时间在两天前和当天时间之间
@@ -874,6 +1006,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<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);
@@ -1269,8 +1402,6 @@ namespace WMS.Web.Domain.Services.Public
}
}
#endregion
}
}

View File

@@ -133,7 +133,7 @@ namespace WMS.Web.Domain.Services
};
#endregion
var resSync = await _erpService.Sync<ErpTakeStockSaveDto>(dto, FormIdParam.STK_StockCountGain.ToString());
var resSync = await _erpService.Save<ErpTakeStockSaveDto>(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<ErpTakeStockSaveDto>(dto, formId);
var resSync = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId);
entity.Sync(resSync.IsSuccess, resSync.Message);
await _takeStockRepositories.Edit(entity, true);
return res;