立即调用erp接口 任务单批次生成修改
This commit is contained in:
@@ -34,5 +34,20 @@ namespace Tnb.BasicData
|
|||||||
/// 白班夜班时间
|
/// 白班夜班时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string DAYNIGHTWORKTIME = "dayNightWorkTime";
|
public const string DAYNIGHTWORKTIME = "dayNightWorkTime";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否立刻调用erp接口
|
||||||
|
/// </summary>
|
||||||
|
public const string CALLERP = "callErp";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 换批号数量
|
||||||
|
/// </summary>
|
||||||
|
public const string CHANGEBATCHNUM = "changeBatchNum";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 换批号天数
|
||||||
|
/// </summary>
|
||||||
|
public const string CHANGEBATCHDAY = "changeBatchDay";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
16
BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs
Normal file
16
BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using SqlSugar;
|
||||||
|
using Tnb.BasicData.Entities;
|
||||||
|
|
||||||
|
namespace Tnb.BasicData.Interfaces
|
||||||
|
{
|
||||||
|
public interface IThirdApiRecordService
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 请求erp
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <param name="send_type">手动 自动</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<string> Send(List<ThirdWebapiRecord> records, string send_type,ISqlSugarClient db=null);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,11 +11,13 @@ using Microsoft.AspNetCore.Authorization;
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
using NPOI.Util;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.BasicData.Entities;
|
using Tnb.BasicData.Entities;
|
||||||
using Tnb.WarehouseMgr.Entities;
|
using Tnb.WarehouseMgr.Entities;
|
||||||
using Tnb.BasicData.Entities.Dto;
|
using Tnb.BasicData.Entities.Dto;
|
||||||
using Tnb.ProductionMgr.Entities;
|
using Tnb.ProductionMgr.Entities;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.BasicData
|
namespace Tnb.BasicData
|
||||||
{
|
{
|
||||||
@@ -24,7 +26,7 @@ namespace Tnb.BasicData
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
|
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
|
||||||
[Route("api/[area]/[controller]/[action]")]
|
[Route("api/[area]/[controller]/[action]")]
|
||||||
public class ThirdApiRecordService : IDynamicApiController, ITransient
|
public class ThirdApiRecordService : IThirdApiRecordService, IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
private readonly ISqlSugarRepository<ThirdWebapiRecord> _repository;
|
private readonly ISqlSugarRepository<ThirdWebapiRecord> _repository;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
@@ -41,171 +43,8 @@ namespace Tnb.BasicData
|
|||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<string> Send(string id)
|
public async Task<string> Send(string id)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
|
||||||
string response = "";
|
|
||||||
ThirdWebapiRecord record = await _repository.GetSingleAsync(x=>x.id==id);
|
ThirdWebapiRecord record = await _repository.GetSingleAsync(x=>x.id==id);
|
||||||
DateTime now = DateTime.Now;
|
return await Send(Arrays.AsList(record), "手动");
|
||||||
Stopwatch stopwatch = Stopwatch.StartNew();
|
|
||||||
switch (record.method.ToUpper())
|
|
||||||
{
|
|
||||||
case "GET":
|
|
||||||
response = HttpUtils.RequestGet(record.url);
|
|
||||||
break;
|
|
||||||
case "POST":
|
|
||||||
response = HttpUtils.RequestPost(record.url, record.request_data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
stopwatch.Stop();
|
|
||||||
var elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
|
|
||||||
ThirdResult thirdResult = new ThirdResult();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (response != null && !response.IsEmpty())
|
|
||||||
{
|
|
||||||
thirdResult = JsonConvert.DeserializeObject<ThirdResult>(response);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
thirdResult.Code = 500;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
thirdResult.Code = 500;
|
|
||||||
thirdResult.msgResult = response;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await db.Ado.BeginTranAsync();
|
|
||||||
if (thirdResult.Code == 200)
|
|
||||||
{
|
|
||||||
await db.Updateable<ThirdWebapiRecord>()
|
|
||||||
.SetColumns(x => x.response_data == response)
|
|
||||||
.SetColumns(x => x.response_code == thirdResult.Code)
|
|
||||||
.SetColumns(x => x.last_send_time == now)
|
|
||||||
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
|
||||||
.SetColumns(x => x.send_type == "手动")
|
|
||||||
.SetColumns(x => x.status == "1")
|
|
||||||
.Where(x=>x.id==record.id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await db.Updateable<ThirdWebapiRecord>()
|
|
||||||
.SetColumns(x => x.response_data == response)
|
|
||||||
.SetColumns(x => x.response_code == thirdResult.Code)
|
|
||||||
.SetColumns(x => x.last_send_time == now)
|
|
||||||
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
|
||||||
.Where(x=>x.id==record.id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "采购到货")
|
|
||||||
{
|
|
||||||
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
|
||||||
//((JObject)requestData[0]["dtls"]).SelectTokens("csourcebid")
|
|
||||||
|
|
||||||
string billCode = requestData.ContainsKey("vbillcode") ? requestData["vbillcode"].ToString() : "";
|
|
||||||
if (string.IsNullOrEmpty(billCode))
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录id{record.id}采购到货单号为空");
|
|
||||||
}
|
|
||||||
var requestDtos = ((JArray)requestData["dtls"]).Select(x => new ErpPurchaseDto()
|
|
||||||
{
|
|
||||||
csourcebid = x["csourcebid"]?.ToString(),
|
|
||||||
mes_detail_id = x["mes_detail_id"]?.ToString(),
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
JObject data = (JObject)thirdResult.msg;
|
|
||||||
JToken children = data.SelectToken("children")[0];
|
|
||||||
var responsetDtos = children.Select(x => new ErpPurchaseDto()
|
|
||||||
{
|
|
||||||
pk_arriveorder = x["valueIndex"]["pk_arriveorder"].ToString(),
|
|
||||||
pk_arriveorder_b = x["valueIndex"]["pk_arriveorder_b"].ToString(),
|
|
||||||
csourcebid = x["valueIndex"]["csourcebid"].ToString()
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
string pk_arriveorder = responsetDtos[0]?.pk_arriveorder ?? "";
|
|
||||||
int updateDRow = 0;
|
|
||||||
bool flag = !string.IsNullOrEmpty(pk_arriveorder);
|
|
||||||
foreach (var item in requestDtos)
|
|
||||||
{
|
|
||||||
string pk_arriveorder_b = responsetDtos.Find(x => x.csourcebid == item.csourcebid)?.pk_arriveorder_b;
|
|
||||||
if (string.IsNullOrEmpty(pk_arriveorder_b))
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
updateDRow += await db.Updateable<WmsPurchaseD>()
|
|
||||||
.SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
|
|
||||||
.Where(x => x.id == item.mes_detail_id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
int updateRow = await db.Updateable<WmsPurchaseH>()
|
|
||||||
.SetColumns(x => x.erp_arriveorder_pk == pk_arriveorder)
|
|
||||||
.Where(x => x.bill_code == billCode)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
|
|
||||||
if (flag || updateRow <= 0 || updateDRow <= 0)
|
|
||||||
{
|
|
||||||
Log.Error($"更新失败,requestDtos:{JsonConvert.SerializeObject(requestDtos)},responsetDtos:{JsonConvert.SerializeObject(responsetDtos)}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "生产报告")
|
|
||||||
{
|
|
||||||
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
|
||||||
|
|
||||||
string reportId = requestData.ContainsKey("report_id") ? requestData["report_id"].ToString() : "";
|
|
||||||
if (string.IsNullOrEmpty(reportId))
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录id{record.id}生产报告提报id为空");
|
|
||||||
}
|
|
||||||
|
|
||||||
JObject data = (JObject)thirdResult.msg;
|
|
||||||
JToken children = data.SelectToken("children")[0];
|
|
||||||
var responsetDtos = children.Select(x => new ErpReportDto()
|
|
||||||
{
|
|
||||||
// pk_wr_product = x["valueIndex"]["pk_wr_product"].ToString(),
|
|
||||||
// pk_wr_product = x["qualityvos"][0]["pk_wr_product_q"].ToString(),
|
|
||||||
pk_wr_product = x["qualityvos"][0]["valueIndex"]["pk_wr_quality"].ToString(),
|
|
||||||
pk_wr = x["valueIndex"]["pk_wr"].ToString(),
|
|
||||||
report_id = reportId
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
int updateRow = 0;
|
|
||||||
foreach (var item in responsetDtos)
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrEmpty(item.pk_wr) && !string.IsNullOrEmpty(item.pk_wr_product))
|
|
||||||
{
|
|
||||||
updateRow += await db.Updateable<PrdReport>()
|
|
||||||
.SetColumns(x => x.erp_pk_wr == item.pk_wr)
|
|
||||||
.SetColumns(x => x.erp_pk_wr_product == item.pk_wr_product)
|
|
||||||
.Where(x => x.id == item.report_id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (updateRow <= 0)
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录{record.id}更新失败");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await db.Ado.CommitTranAsync();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Log.Error(e.Message,e);
|
|
||||||
await db.Ado.RollbackTranAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return thirdResult.Code == 200 ? "成功" : "失败";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
@@ -248,6 +87,194 @@ namespace Tnb.BasicData
|
|||||||
|
|
||||||
return "失败";
|
return "失败";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<string> Send(List<ThirdWebapiRecord> records, string send_type,ISqlSugarClient db=null)
|
||||||
|
{
|
||||||
|
ThirdResult thirdResult = null;
|
||||||
|
bool tranFlag = true;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (records == null || records.IsEmpty())
|
||||||
|
return "";
|
||||||
|
|
||||||
|
if (db == null)
|
||||||
|
{
|
||||||
|
db = _repository.AsSugarClient();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tranFlag = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
DateTime now = DateTime.Now;
|
||||||
|
Stopwatch stopwatch = null;
|
||||||
|
string response = "";
|
||||||
|
var elapsedMilliseconds = 0l;
|
||||||
|
foreach (var record in records)
|
||||||
|
{
|
||||||
|
now = DateTime.Now;
|
||||||
|
stopwatch = Stopwatch.StartNew();
|
||||||
|
switch (record.method.ToUpper())
|
||||||
|
{
|
||||||
|
case "GET":
|
||||||
|
response = HttpUtils.RequestGet(record.url);
|
||||||
|
break;
|
||||||
|
case "POST":
|
||||||
|
response = HttpUtils.RequestPost(record.url, record.request_data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
stopwatch.Stop();
|
||||||
|
elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
|
||||||
|
thirdResult = new ThirdResult();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (response != null && !response.IsEmpty())
|
||||||
|
{
|
||||||
|
thirdResult = JsonConvert.DeserializeObject<ThirdResult>(response);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
thirdResult.Code = 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
thirdResult.Code = 500;
|
||||||
|
thirdResult.msgResult = response;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(db==null) await db.Ado.BeginTranAsync();
|
||||||
|
if (thirdResult.Code == 200)
|
||||||
|
{
|
||||||
|
await db.Updateable<ThirdWebapiRecord>()
|
||||||
|
.SetColumns(x => x.response_data == response)
|
||||||
|
.SetColumns(x => x.response_code == thirdResult.Code)
|
||||||
|
.SetColumns(x => x.last_send_time == now)
|
||||||
|
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
||||||
|
.SetColumns(x => x.send_type == send_type)
|
||||||
|
.SetColumns(x => x.status == "1")
|
||||||
|
.Where(x=>x.id==record.id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await db.Updateable<ThirdWebapiRecord>()
|
||||||
|
.SetColumns(x => x.response_data == response)
|
||||||
|
.SetColumns(x => x.response_code == thirdResult.Code)
|
||||||
|
.SetColumns(x => x.last_send_time == now)
|
||||||
|
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
||||||
|
.Where(x=>x.id==record.id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "采购到货")
|
||||||
|
{
|
||||||
|
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
||||||
|
//((JObject)requestData[0]["dtls"]).SelectTokens("csourcebid")
|
||||||
|
|
||||||
|
string billCode = requestData.ContainsKey("vbillcode") ? requestData["vbillcode"].ToString() : "";
|
||||||
|
if (string.IsNullOrEmpty(billCode))
|
||||||
|
{
|
||||||
|
Log.Error($"请求记录id{record.id}采购到货单号为空");
|
||||||
|
}
|
||||||
|
var requestDtos = ((JArray)requestData["dtls"]).Select(x => new ErpPurchaseDto()
|
||||||
|
{
|
||||||
|
csourcebid = x["csourcebid"]?.ToString(),
|
||||||
|
mes_detail_id = x["mes_detail_id"]?.ToString(),
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
JObject data = (JObject)thirdResult.msg;
|
||||||
|
JToken children = data.SelectToken("children")[0];
|
||||||
|
var responsetDtos = children.Select(x => new ErpPurchaseDto()
|
||||||
|
{
|
||||||
|
pk_arriveorder = x["valueIndex"]["pk_arriveorder"].ToString(),
|
||||||
|
pk_arriveorder_b = x["valueIndex"]["pk_arriveorder_b"].ToString(),
|
||||||
|
csourcebid = x["valueIndex"]["csourcebid"].ToString()
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
string pk_arriveorder = responsetDtos[0]?.pk_arriveorder ?? "";
|
||||||
|
int updateDRow = 0;
|
||||||
|
bool flag = !string.IsNullOrEmpty(pk_arriveorder);
|
||||||
|
foreach (var item in requestDtos)
|
||||||
|
{
|
||||||
|
string pk_arriveorder_b = responsetDtos.Find(x => x.csourcebid == item.csourcebid)?.pk_arriveorder_b;
|
||||||
|
if (string.IsNullOrEmpty(pk_arriveorder_b))
|
||||||
|
{
|
||||||
|
flag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
updateDRow += await db.Updateable<WmsPurchaseD>()
|
||||||
|
.SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
|
||||||
|
.Where(x => x.id == item.mes_detail_id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
int updateRow = await db.Updateable<WmsPurchaseH>()
|
||||||
|
.SetColumns(x => x.erp_arriveorder_pk == pk_arriveorder)
|
||||||
|
.Where(x => x.bill_code == billCode)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
|
||||||
|
if (flag || updateRow <= 0 || updateDRow <= 0)
|
||||||
|
{
|
||||||
|
Log.Error($"更新失败,requestDtos:{JsonConvert.SerializeObject(requestDtos)},responsetDtos:{JsonConvert.SerializeObject(responsetDtos)}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "生产报告")
|
||||||
|
{
|
||||||
|
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
||||||
|
|
||||||
|
string reportId = requestData.ContainsKey("report_id") ? requestData["report_id"].ToString() : "";
|
||||||
|
if (string.IsNullOrEmpty(reportId))
|
||||||
|
{
|
||||||
|
Log.Error($"请求记录id{record.id}生产报告提报id为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
JObject data = (JObject)thirdResult.msg;
|
||||||
|
JToken children = data.SelectToken("children")[0];
|
||||||
|
var responsetDtos = children.Select(x => new ErpReportDto()
|
||||||
|
{
|
||||||
|
// pk_wr_product = x["valueIndex"]["pk_wr_product"].ToString(),
|
||||||
|
// pk_wr_product = x["qualityvos"][0]["pk_wr_product_q"].ToString(),
|
||||||
|
pk_wr_product = x["qualityvos"][0]["valueIndex"]["pk_wr_quality"].ToString(),
|
||||||
|
pk_wr = x["valueIndex"]["pk_wr"].ToString(),
|
||||||
|
report_id = reportId
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
int updateRow = 0;
|
||||||
|
foreach (var item in responsetDtos)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(item.pk_wr) && !string.IsNullOrEmpty(item.pk_wr_product))
|
||||||
|
{
|
||||||
|
updateRow += await db.Updateable<PrdReport>()
|
||||||
|
.SetColumns(x => x.erp_pk_wr == item.pk_wr)
|
||||||
|
.SetColumns(x => x.erp_pk_wr_product == item.pk_wr_product)
|
||||||
|
.Where(x => x.id == item.report_id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (updateRow <= 0)
|
||||||
|
{
|
||||||
|
Log.Error($"请求记录{record.id}更新失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(tranFlag) await db.Ado.CommitTranAsync();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Log.Error(e.Message,e);
|
||||||
|
if(tranFlag) await db.Ado.RollbackTranAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return thirdResult.Code == 200 ? "成功" : "失败";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -109,6 +109,11 @@ public partial class PrdMoTask : BaseEntity<string>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime? plan_end_date { get; set; }
|
public DateTime? plan_end_date { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 第一次开工日期
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? first_start_date { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实际开工日期
|
/// 实际开工日期
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -245,4 +250,14 @@ public partial class PrdMoTask : BaseEntity<string>
|
|||||||
/// 定时任务key
|
/// 定时任务key
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string timer_key { get; set; }
|
public string timer_key { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 按时间更换批次次数
|
||||||
|
/// </summary>
|
||||||
|
public int change_batch_count_by_day { get; set; } = -1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 按产量更换批次次数
|
||||||
|
/// </summary>
|
||||||
|
public int change_batch_count_by_qty { get; set; } = -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ using Tnb.WarehouseMgr;
|
|||||||
using Tnb.WarehouseMgr.Entities.Enums;
|
using Tnb.WarehouseMgr.Entities.Enums;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.ProductionMgr.Helpers;
|
using Tnb.ProductionMgr.Helpers;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
// using Tnb.PerMgr.Entities;
|
// using Tnb.PerMgr.Entities;
|
||||||
|
|
||||||
@@ -83,6 +84,7 @@ namespace Tnb.ProductionMgr
|
|||||||
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build<ElevatorControlConfiguration>();
|
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build<ElevatorControlConfiguration>();
|
||||||
private readonly RedisData _redisData;
|
private readonly RedisData _redisData;
|
||||||
private static SemaphoreSlim prdreportSemaphore = new(1);
|
private static SemaphoreSlim prdreportSemaphore = new(1);
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
||||||
public PrdMoTaskService(
|
public PrdMoTaskService(
|
||||||
@@ -96,6 +98,7 @@ namespace Tnb.ProductionMgr
|
|||||||
IOrganizeService organizeService,
|
IOrganizeService organizeService,
|
||||||
WmsPrdInstockHService wmsPrdInstockHService,
|
WmsPrdInstockHService wmsPrdInstockHService,
|
||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IQcCheckPlanService qcCheckPlanService
|
IQcCheckPlanService qcCheckPlanService
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -112,6 +115,7 @@ namespace Tnb.ProductionMgr
|
|||||||
_prdInstockService = prdInstockService;
|
_prdInstockService = prdInstockService;
|
||||||
_qcCheckPlanService = qcCheckPlanService;
|
_qcCheckPlanService = qcCheckPlanService;
|
||||||
_wmsCarryService = wmsCarryService;
|
_wmsCarryService = wmsCarryService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_wmsPrdInstockHService = wmsPrdInstockHService;
|
_wmsPrdInstockHService = wmsPrdInstockHService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1288,6 +1292,11 @@ namespace Tnb.ProductionMgr
|
|||||||
{
|
{
|
||||||
throw Oops.Bah("状态错误无法开始");
|
throw Oops.Bah("状态错误无法开始");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.first_start_date == null)
|
||||||
|
{
|
||||||
|
item.first_start_date = DateTime.Now;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case PrdTaskBehavior.Pause:
|
case PrdTaskBehavior.Pause:
|
||||||
if (item.mo_task_status == status)
|
if (item.mo_task_status == status)
|
||||||
@@ -2032,19 +2041,82 @@ namespace Tnb.ProductionMgr
|
|||||||
string batch = "";
|
string batch = "";
|
||||||
|
|
||||||
PrdMo mo = await _db.Queryable<PrdMo>().SingleAsync(x => x.id == prdMoTask.mo_id);
|
PrdMo mo = await _db.Queryable<PrdMo>().SingleAsync(x => x.id == prdMoTask.mo_id);
|
||||||
|
|
||||||
|
bool changeBatchFlag = false;
|
||||||
|
int changeCountNumByDay = 0;
|
||||||
|
int changeCountNumByQty = 0;
|
||||||
|
if (mo.mo_type == DictConst.PrdMoTypeZS || mo.mo_type == DictConst.PrdMoTypeJC)
|
||||||
|
{
|
||||||
|
BasFactoryConfig changeBatchNum = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CHANGEBATCHNUM);
|
||||||
|
BasFactoryConfig changeBatchDay = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CHANGEBATCHDAY);
|
||||||
|
|
||||||
|
DateTime date1 = new DateTime(prdMoTask.first_start_date.Value.Year,prdMoTask.first_start_date.Value.Month,prdMoTask.first_start_date.Value.Day);
|
||||||
|
DateTime date2 = new DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day);
|
||||||
|
TimeSpan diff = date2.Subtract(date1);
|
||||||
|
int diffDays = diff.Days + 1;
|
||||||
|
|
||||||
|
changeCountNumByDay = (diffDays + 1) / int.Parse(changeBatchDay.value) - 1;
|
||||||
|
changeCountNumByQty = ((int)(prdMoTask.reported_work_qty ?? 0 + prdMoTask.scrap_qty ?? 0) + 1) / int.Parse(changeBatchNum.value) - 1;
|
||||||
|
|
||||||
|
if (changeCountNumByDay > prdMoTask.change_batch_count_by_day )
|
||||||
|
{
|
||||||
|
changeBatchFlag = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changeCountNumByQty > prdMoTask.change_batch_count_by_qty)
|
||||||
|
{
|
||||||
|
changeBatchFlag = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (mo.mo_type == DictConst.PrdMoTypeZS)
|
if (mo.mo_type == DictConst.PrdMoTypeZS)
|
||||||
{
|
{
|
||||||
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
|
if (changeBatchFlag)
|
||||||
batch = $"{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
{
|
||||||
|
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
|
||||||
|
batch = $"{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
||||||
|
await db.Updateable<PrdMoTask>()
|
||||||
|
.SetColumns(x => x.batch == batch)
|
||||||
|
.SetColumns(x=>x.change_batch_count_by_day==changeCountNumByDay)
|
||||||
|
.SetColumns(x=>x.change_batch_count_by_qty==changeCountNumByQty)
|
||||||
|
.Where(x => x.id == prdMoTask.id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batch = prdMoTask.batch;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}else if (mo.mo_type == DictConst.PrdMoTypeJC)
|
}else if (mo.mo_type == DictConst.PrdMoTypeJC)
|
||||||
{
|
{
|
||||||
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
|
if (changeBatchFlag)
|
||||||
ToolMolds toolMolds = await _db.Queryable<ToolMolds>().SingleAsync(x => x.id == prdMoTask.mold_id);
|
{
|
||||||
batch = $"{toolMolds.mold_code.Substring(toolMolds.mold_code.Length - 2, 2)}{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
EqpEquipment equipment = await _db.Queryable<EqpEquipment>().SingleAsync(x => x.id == prdMoTask.eqp_id);
|
||||||
|
ToolMolds toolMolds = await _db.Queryable<ToolMolds>().SingleAsync(x => x.id == prdMoTask.mold_id);
|
||||||
|
batch = $"{toolMolds.mold_code.Substring(toolMolds.mold_code.Length - 2, 2)}{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
||||||
|
await db.Updateable<PrdMoTask>()
|
||||||
|
.SetColumns(x => x.batch == batch)
|
||||||
|
.SetColumns(x=>x.change_batch_count_by_day==changeCountNumByDay)
|
||||||
|
.SetColumns(x=>x.change_batch_count_by_qty==changeCountNumByQty)
|
||||||
|
.Where(x => x.id == prdMoTask.id)
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
batch = prdMoTask.batch;
|
||||||
|
}
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
OrganizeEntity organizeEntity = await _db.Queryable<OrganizeEntity>().SingleAsync(x => x.Id == prdMoTask.workline_id);
|
// OrganizeEntity organizeEntity = await _db.Queryable<OrganizeEntity>().SingleAsync(x => x.Id == prdMoTask.workline_id);
|
||||||
batch = $"{organizeEntity.EnCode.Substring(organizeEntity.EnCode.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
// batch = $"{organizeEntity.EnCode.Substring(organizeEntity.EnCode.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
|
||||||
|
batch = prdMoTask.batch;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(batch))
|
||||||
|
{
|
||||||
|
throw Oops.Bah($"任务单{prdMoTask.mo_task_code}批次号为空,无法提报");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prdMoTask.has_last_check == 0)
|
if (prdMoTask.has_last_check == 0)
|
||||||
@@ -2568,8 +2640,8 @@ namespace Tnb.ProductionMgr
|
|||||||
erpRequestData.Add("AggWrDtl", erpRequestDataDetails);
|
erpRequestData.Add("AggWrDtl", erpRequestDataDetails);
|
||||||
requestData.Add(erpRequestData);
|
requestData.Add(erpRequestData);
|
||||||
|
|
||||||
BasFactoryConfig config = await _db.Queryable<BasFactoryConfig>()
|
BasFactoryConfig config = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
|
||||||
.FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
|
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
|
||||||
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
|
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
|
||||||
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
|
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
|
||||||
@@ -2581,6 +2653,10 @@ namespace Tnb.ProductionMgr
|
|||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
thirdWebapiRecord.remark = $"载具编号:{report?.material_box_code ?? ""}";
|
thirdWebapiRecord.remark = $"载具编号:{report?.material_box_code ?? ""}";
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -4083,6 +4159,24 @@ namespace Tnb.ProductionMgr
|
|||||||
return row>0 ? "分配成功" : "分配失败";
|
return row>0 ? "分配成功" : "分配失败";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置批号
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<string> SetBatch(Dictionary<String,String> input)
|
||||||
|
{
|
||||||
|
string ids = input.GetOrDefault("ids");
|
||||||
|
string[] idList = ids.Split(",");
|
||||||
|
string batch = input.GetOrDefault("batch");
|
||||||
|
int row = await _db.Updateable<PrdMoTask>()
|
||||||
|
.SetColumns(x => x.batch == batch)
|
||||||
|
.Where(x => idList.Contains(x.id))
|
||||||
|
.ExecuteCommandAsync();
|
||||||
|
return row>0 ? "设置成功" : "设置失败";
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 末检
|
/// 末检
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ using Tnb.ProductionMgr.Entities.Entity;
|
|||||||
using Tnb.ProductionMgr.Entities.Entity.ErpEntity;
|
using Tnb.ProductionMgr.Entities.Entity.ErpEntity;
|
||||||
using Tnb.BasicData.Entities.Dto;
|
using Tnb.BasicData.Entities.Dto;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
using Tnb.PerMgr.Entities;
|
using Tnb.PerMgr.Entities;
|
||||||
|
|
||||||
namespace Tnb.ProductionMgr
|
namespace Tnb.ProductionMgr
|
||||||
@@ -59,6 +60,7 @@ namespace Tnb.ProductionMgr
|
|||||||
private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService;
|
private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService;
|
||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
private readonly IPrdMoTaskService _prdMoTaskService;
|
private readonly IPrdMoTaskService _prdMoTaskService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
public TimeWorkService(
|
public TimeWorkService(
|
||||||
RedisData redisData,
|
RedisData redisData,
|
||||||
@@ -67,6 +69,7 @@ namespace Tnb.ProductionMgr
|
|||||||
IOrganizeService organizeService,
|
IOrganizeService organizeService,
|
||||||
IWmsEmptyOutstockService wmsEmptyOutstockService,
|
IWmsEmptyOutstockService wmsEmptyOutstockService,
|
||||||
IPrdMoTaskService prdMoTaskService,
|
IPrdMoTaskService prdMoTaskService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IWareHouseService wareHouseService
|
IWareHouseService wareHouseService
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -77,6 +80,7 @@ namespace Tnb.ProductionMgr
|
|||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
_wmsEmptyOutstockService = wmsEmptyOutstockService;
|
_wmsEmptyOutstockService = wmsEmptyOutstockService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_prdMoTaskService = prdMoTaskService;
|
_prdMoTaskService = prdMoTaskService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -718,178 +722,12 @@ namespace Tnb.ProductionMgr
|
|||||||
List<ThirdWebapiRecord> records = await _db.Queryable<ThirdWebapiRecord>().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1 && x.error_count<10).ToListAsync();
|
List<ThirdWebapiRecord> records = await _db.Queryable<ThirdWebapiRecord>().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1 && x.error_count<10).ToListAsync();
|
||||||
if (records.IsEmpty())
|
if (records.IsEmpty())
|
||||||
{
|
{
|
||||||
records = await _db.Queryable<ThirdWebapiRecord>().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1).ToListAsync();
|
records = await _db.Queryable<ThirdWebapiRecord>().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1 && x.error_count<100).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (records.IsEmpty()) return "";
|
if (records.IsEmpty()) return "";
|
||||||
|
|
||||||
DateTime now = DateTime.Now;
|
await _thirdApiRecordService.Send(records, "自动");
|
||||||
Stopwatch stopwatch = null;
|
|
||||||
string response = "";
|
|
||||||
var elapsedMilliseconds = 0l;
|
|
||||||
ThirdResult thirdResult = new ThirdResult();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await _db.Ado.BeginTranAsync();
|
|
||||||
foreach (var record in records)
|
|
||||||
{
|
|
||||||
now = DateTime.Now;
|
|
||||||
stopwatch = Stopwatch.StartNew();
|
|
||||||
switch (record.method.ToUpper())
|
|
||||||
{
|
|
||||||
case "GET":
|
|
||||||
response = HttpUtils.RequestGet(record.url);
|
|
||||||
break;
|
|
||||||
case "POST":
|
|
||||||
response = HttpUtils.RequestPost(record.url, record.request_data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
stopwatch.Stop();
|
|
||||||
elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (response != null && !response.IsEmpty())
|
|
||||||
{
|
|
||||||
thirdResult = JsonConvert.DeserializeObject<ThirdResult>(response);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
thirdResult.Code = 500;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
thirdResult.Code = 500;
|
|
||||||
thirdResult.msgResult = response;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thirdResult.Code == 200)
|
|
||||||
{
|
|
||||||
await _db.Updateable<ThirdWebapiRecord>()
|
|
||||||
.SetColumns(x => x.response_data == response)
|
|
||||||
.SetColumns(x => x.response_code == thirdResult.Code)
|
|
||||||
.SetColumns(x => x.last_send_time == now)
|
|
||||||
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
|
||||||
.SetColumns(x => x.send_type == "自动")
|
|
||||||
.SetColumns(x => x.status == "1")
|
|
||||||
.Where(x=>x.id==record.id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await _db.Updateable<ThirdWebapiRecord>()
|
|
||||||
.SetColumns(x => x.response_data == response)
|
|
||||||
.SetColumns(x => x.response_code == thirdResult.Code)
|
|
||||||
.SetColumns(x => x.last_send_time == now)
|
|
||||||
.SetColumns(x => x.response_time == elapsedMilliseconds)
|
|
||||||
.SetColumns(x => x.error_count == x.error_count + 1)
|
|
||||||
.Where(x=>x.id==record.id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "采购到货")
|
|
||||||
{
|
|
||||||
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
|
||||||
//((JObject)requestData[0]["dtls"]).SelectTokens("csourcebid")
|
|
||||||
|
|
||||||
string billCode = requestData.ContainsKey("vbillcode") ? requestData["vbillcode"].ToString() : "";
|
|
||||||
if (string.IsNullOrEmpty(billCode))
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录id{record.id}采购到货单号为空");
|
|
||||||
}
|
|
||||||
var requestDtos = ((JArray)requestData["dtls"]).Select(x => new ErpPurchaseDto()
|
|
||||||
{
|
|
||||||
csourcebid = x["csourcebid"]?.ToString(),
|
|
||||||
mes_detail_id = x["mes_detail_id"]?.ToString(),
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
JObject data = (JObject)thirdResult.msg;
|
|
||||||
JToken children = data.SelectToken("children")[0];
|
|
||||||
var responsetDtos = children.Select(x => new ErpPurchaseDto()
|
|
||||||
{
|
|
||||||
pk_arriveorder = x["valueIndex"]["pk_arriveorder"].ToString(),
|
|
||||||
pk_arriveorder_b = x["valueIndex"]["pk_arriveorder_b"].ToString(),
|
|
||||||
csourcebid = x["valueIndex"]["csourcebid"].ToString()
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
string pk_arriveorder = responsetDtos[0]?.pk_arriveorder ?? "";
|
|
||||||
int updateDRow = 0;
|
|
||||||
bool flag = !string.IsNullOrEmpty(pk_arriveorder);
|
|
||||||
foreach (var item in requestDtos)
|
|
||||||
{
|
|
||||||
string pk_arriveorder_b = responsetDtos.Find(x => x.csourcebid == item.csourcebid)?.pk_arriveorder_b;
|
|
||||||
if (string.IsNullOrEmpty(pk_arriveorder_b))
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
updateDRow += await _db.Updateable<WmsPurchaseD>()
|
|
||||||
.SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
|
|
||||||
.Where(x => x.id == item.mes_detail_id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
int updateRow = await _db.Updateable<WmsPurchaseH>()
|
|
||||||
.SetColumns(x => x.erp_arriveorder_pk == pk_arriveorder)
|
|
||||||
.Where(x => x.bill_code == billCode)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
|
|
||||||
if (flag || updateRow <= 0 || updateDRow <= 0)
|
|
||||||
{
|
|
||||||
Log.Error($"更新失败,requestDtos:{JsonConvert.SerializeObject(requestDtos)},responsetDtos:{JsonConvert.SerializeObject(responsetDtos)}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thirdResult.Code == 200 && record.third_name == "BIP" && record.name == "生产报告")
|
|
||||||
{
|
|
||||||
Dictionary<string,object> requestData = JsonConvert.DeserializeObject<Dictionary<string,object>>(record.request_data);
|
|
||||||
|
|
||||||
string reportId = requestData.ContainsKey("report_id") ? requestData["report_id"].ToString() : "";
|
|
||||||
if (string.IsNullOrEmpty(reportId))
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录id{record.id}生产报告提报id为空");
|
|
||||||
}
|
|
||||||
|
|
||||||
JObject data = (JObject)thirdResult.msg;
|
|
||||||
JToken children = data.SelectToken("children")[0];
|
|
||||||
var responsetDtos = children.Select(x => new ErpReportDto()
|
|
||||||
{
|
|
||||||
// pk_wr_product = x["valueIndex"]["pk_wr_product"].ToString(),
|
|
||||||
pk_wr_product = x["qualityvos"][0]["valueIndex"]["pk_wr_quality"].ToString(),
|
|
||||||
pk_wr = x["valueIndex"]["pk_wr"].ToString(),
|
|
||||||
report_id = reportId
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
int updateRow = 0;
|
|
||||||
foreach (var item in responsetDtos)
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrEmpty(item.pk_wr) && !string.IsNullOrEmpty(item.pk_wr_product))
|
|
||||||
{
|
|
||||||
updateRow += await _db.Updateable<PrdReport>()
|
|
||||||
.SetColumns(x => x.erp_pk_wr == item.pk_wr)
|
|
||||||
.SetColumns(x => x.erp_pk_wr_product == item.pk_wr_product)
|
|
||||||
.Where(x => x.id == item.report_id)
|
|
||||||
.ExecuteCommandAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (updateRow <= 0)
|
|
||||||
{
|
|
||||||
Log.Error($"请求记录{record.id}更新失败");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
await _db.Ado.CommitTranAsync();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Log.Error(e.Message,e);
|
|
||||||
await _db.Ado.RollbackTranAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return "true";
|
return "true";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ using NPOI.SS.Format;
|
|||||||
using Aspose.Cells.Drawing;
|
using Aspose.Cells.Drawing;
|
||||||
using SQLitePCL;
|
using SQLitePCL;
|
||||||
using Tnb.BasicData.Entities.Entity;
|
using Tnb.BasicData.Entities.Entity;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -78,7 +79,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
||||||
private readonly IWmsOutinStockDetailService _wmsOutinStockDetailService;
|
private readonly IWmsOutinStockDetailService _wmsOutinStockDetailService;
|
||||||
private static ISqlSugarClient db_agvElevatorTaskExceptionHandles;
|
private static ISqlSugarClient db_agvElevatorTaskExceptionHandles;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -156,6 +157,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
IWmsCarryUnbindService wmsCarryUnbindService,
|
IWmsCarryUnbindService wmsCarryUnbindService,
|
||||||
IRunService runService,
|
IRunService runService,
|
||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IWmsOutinStockDetailService wmsOutinStockDetailService
|
IWmsOutinStockDetailService wmsOutinStockDetailService
|
||||||
//IConfiguration configuration
|
//IConfiguration configuration
|
||||||
) : base(repository.AsSugarClient())
|
) : base(repository.AsSugarClient())
|
||||||
@@ -171,6 +173,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_wmsCarryUnbindService = wmsCarryUnbindService;
|
_wmsCarryUnbindService = wmsCarryUnbindService;
|
||||||
_runService = runService;
|
_runService = runService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_wmsOutinStockDetailService = wmsOutinStockDetailService;
|
_wmsOutinStockDetailService = wmsOutinStockDetailService;
|
||||||
//_configuration = configuration;
|
//_configuration = configuration;
|
||||||
|
|
||||||
@@ -3323,6 +3326,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
|
thirdWebapiRecord.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
|
||||||
|
|
||||||
await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
|
|||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -47,6 +48,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
private readonly IOtherOutstockHService _otherOutstockHService;
|
private readonly IOtherOutstockHService _otherOutstockHService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
public WmsMaterialSignHService(
|
public WmsMaterialSignHService(
|
||||||
ISqlSugarRepository<WmsCarryH> repository,
|
ISqlSugarRepository<WmsCarryH> repository,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
@@ -55,6 +57,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
IWmsPDAScanInStockService wmsPDAScanInStock,
|
IWmsPDAScanInStockService wmsPDAScanInStock,
|
||||||
IWmsCarryUnbindService wmsCarryUnbindService,
|
IWmsCarryUnbindService wmsCarryUnbindService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IWareHouseService wareHouseService,
|
IWareHouseService wareHouseService,
|
||||||
IOtherOutstockHService otherOutstockHService)
|
IOtherOutstockHService otherOutstockHService)
|
||||||
{
|
{
|
||||||
@@ -66,6 +69,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_wmsPDAScanInStock = wmsPDAScanInStock;
|
_wmsPDAScanInStock = wmsPDAScanInStock;
|
||||||
_wmsCarryUnbindService = wmsCarryUnbindService;
|
_wmsCarryUnbindService = wmsCarryUnbindService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_otherOutstockHService = otherOutstockHService;
|
_otherOutstockHService = otherOutstockHService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -445,6 +449,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
thirdWebapiRecord.remark = $"原材料调拨出库wms_rawmat_transferoutstock_h:{wmsRawmatTransferoutstockH.bill_code}";
|
thirdWebapiRecord.remark = $"原材料调拨出库wms_rawmat_transferoutstock_h:{wmsRawmatTransferoutstockH.bill_code}";
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -551,6 +560,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它出库单到erp成功");
|
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它出库单到erp成功");
|
||||||
|
|
||||||
|
BasFactoryConfig callErp2 = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp2.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
|
|
||||||
if (wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_JZGLRK_CODE
|
if (wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_JZGLRK_CODE
|
||||||
|| wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE
|
|| wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE
|
||||||
@@ -623,6 +636,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
|
||||||
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它入库单到erp成功");
|
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它入库单到erp成功");
|
||||||
|
|
||||||
|
if(callErp2.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord2 }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ using Tnb.BasicData;
|
|||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
|
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -65,6 +66,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
||||||
private readonly IOrganizeService _organizeService;
|
private readonly IOrganizeService _organizeService;
|
||||||
private readonly IWmsCarryQueryService _wmsCarryQueryService;
|
private readonly IWmsCarryQueryService _wmsCarryQueryService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
public static SemaphoreSlim s_taskDistributeToZCC = new(1);
|
public static SemaphoreSlim s_taskDistributeToZCC = new(1);
|
||||||
public static SemaphoreSlim s_taskDistributeYCL2ZCC = new(1);
|
public static SemaphoreSlim s_taskDistributeYCL2ZCC = new(1);
|
||||||
@@ -82,6 +84,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
IWmsCarryUnbindService wmsCarryUnbindService,
|
IWmsCarryUnbindService wmsCarryUnbindService,
|
||||||
IOrganizeService organizeService,
|
IOrganizeService organizeService,
|
||||||
IWmsCarryQueryService wmsCarryQueryService,
|
IWmsCarryQueryService wmsCarryQueryService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IWmsCarryBindService wmsCarryBindService)
|
IWmsCarryBindService wmsCarryBindService)
|
||||||
{
|
{
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
@@ -94,6 +97,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_wmsCarryUnbindService = wmsCarryUnbindService;
|
_wmsCarryUnbindService = wmsCarryUnbindService;
|
||||||
_organizeService = organizeService;
|
_organizeService = organizeService;
|
||||||
_wmsCarryQueryService = wmsCarryQueryService;
|
_wmsCarryQueryService = wmsCarryQueryService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
OverideFuncs.GetListAsync = GetList;
|
OverideFuncs.GetListAsync = GetList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1165,6 +1169,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord2.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
|
thirdWebapiRecord2.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
|
||||||
|
|
||||||
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord2 }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 其它出库
|
// 其它出库
|
||||||
else
|
else
|
||||||
@@ -1268,6 +1277,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功");
|
Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功");
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
|
|||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -44,15 +45,20 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IVisualDevService _visualDevService;
|
private readonly IVisualDevService _visualDevService;
|
||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
private readonly IBillRullService _billRullService;
|
private readonly IBillRullService _billRullService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
public WmsPrdInstockHService(ISqlSugarRepository<WmsCarryH> repository, IRunService runService,
|
public WmsPrdInstockHService(ISqlSugarRepository<WmsCarryH> repository, IRunService runService,
|
||||||
IVisualDevService visualDevService, IWareHouseService wareHouseService, IBillRullService billRullService)
|
IVisualDevService visualDevService,
|
||||||
|
IWareHouseService wareHouseService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
|
IBillRullService billRullService)
|
||||||
{
|
{
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
_runService = runService;
|
_runService = runService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -462,6 +468,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.remark = $"载具编号:{prdReport?.material_box_code ?? ""}";
|
thirdWebapiRecord.remark = $"载具编号:{prdReport?.material_box_code ?? ""}";
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ using JNPF.Common.Dtos.VisualDev;
|
|||||||
using JNPF.Common.Extension;
|
using JNPF.Common.Extension;
|
||||||
using JNPF.FriendlyException;
|
using JNPF.FriendlyException;
|
||||||
using JNPF.VisualDev.Entitys;
|
using JNPF.VisualDev.Entitys;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -43,18 +44,21 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly ISqlSugarClient _db;
|
private readonly ISqlSugarClient _db;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
private readonly IDictionaryDataService _dictionaryDataService;
|
private readonly IDictionaryDataService _dictionaryDataService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
||||||
|
|
||||||
public WmsPurchaseDService(
|
public WmsPurchaseDService(
|
||||||
ISqlSugarRepository<WmsPurchaseD> repository,
|
ISqlSugarRepository<WmsPurchaseD> repository,
|
||||||
DataBaseManager dbManager,
|
DataBaseManager dbManager,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IDictionaryDataService dictionaryDataService)
|
IDictionaryDataService dictionaryDataService)
|
||||||
{
|
{
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
_dbManager = dbManager;
|
_dbManager = dbManager;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_dictionaryDataService = dictionaryDataService;
|
_dictionaryDataService = dictionaryDataService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,6 +261,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.remark = "采购收货单号:" + (wmsPurchaseH?.bill_code ?? "")+ ",erp采购订单号:"+wmsPurchaseOrderH.erp_bill_code;
|
thirdWebapiRecord.remark = "采购收货单号:" + (wmsPurchaseH?.bill_code ?? "")+ ",erp采购订单号:"+wmsPurchaseOrderH.erp_bill_code;
|
||||||
|
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
|
|
||||||
await _db.Ado.CommitTranAsync();
|
await _db.Ado.CommitTranAsync();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using JNPF.VisualDev.Interfaces;
|
using JNPF.VisualDev.Interfaces;
|
||||||
using JNPF.VisualDev.Entitys;
|
using JNPF.VisualDev.Entitys;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -52,8 +53,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
private readonly IRunService _runService;
|
private readonly IRunService _runService;
|
||||||
private readonly IVisualDevService _visualDevService;
|
private readonly IVisualDevService _visualDevService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
public WmsPurchaseService(ISqlSugarRepository<WmsPurchaseH> repo, IUserManager userManager, IQcCheckPlanService qcCheckPlanService, IBillRullService billRullService,
|
public WmsPurchaseService(ISqlSugarRepository<WmsPurchaseH> repo, IUserManager userManager, IQcCheckPlanService qcCheckPlanService, IBillRullService billRullService,
|
||||||
IWareHouseService wareHouseService, IRunService runService,
|
IWareHouseService wareHouseService, IRunService runService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IVisualDevService visualDevService)
|
IVisualDevService visualDevService)
|
||||||
: base(repo, userManager, qcCheckPlanService)
|
: base(repo, userManager, qcCheckPlanService)
|
||||||
{
|
{
|
||||||
@@ -62,6 +65,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
_runService = runService;
|
_runService = runService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -283,6 +287,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.remark = $"erp采购订单:{wmsPurchaseOrderH.erp_bill_code}";
|
thirdWebapiRecord.remark = $"erp采购订单:{wmsPurchaseOrderH.erp_bill_code}";
|
||||||
|
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//通知Mes接口
|
//通知Mes接口
|
||||||
//_ = SyncMesData(instock.id, instockDs.Select(x => x.material_id).ToList(), EnumTriggerEvent.入厂检按物料编号);
|
//_ = SyncMesData(instock.id, instockDs.Select(x => x.material_id).ToList(), EnumTriggerEvent.入厂检按物料编号);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
|
|||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -50,6 +51,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IVisualDevService _visualDevService;
|
private readonly IVisualDevService _visualDevService;
|
||||||
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
|
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
|
||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
public WmsRawmatOutstockService(
|
public WmsRawmatOutstockService(
|
||||||
ISqlSugarRepository<WmsCarryH> repository,
|
ISqlSugarRepository<WmsCarryH> repository,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
@@ -57,6 +59,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
IRunService runService,
|
IRunService runService,
|
||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
IWmsPDAScanInStockService wmsPDAScanInStock,
|
IWmsPDAScanInStockService wmsPDAScanInStock,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IWareHouseService wareHouseService)
|
IWareHouseService wareHouseService)
|
||||||
{
|
{
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
@@ -66,6 +69,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
_wmsPDAScanInStock = wmsPDAScanInStock;
|
_wmsPDAScanInStock = wmsPDAScanInStock;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
|
|
||||||
OverideFuncs.GetDetailsAsync = GetDetailsAsync;
|
OverideFuncs.GetDetailsAsync = GetDetailsAsync;
|
||||||
}
|
}
|
||||||
@@ -183,6 +187,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ using Tnb.WarehouseMgr.Interfaces;
|
|||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.WarehouseMgr.Entities.Attributes;
|
using Tnb.WarehouseMgr.Entities.Attributes;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -50,11 +51,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IRunService _runService;
|
private readonly IRunService _runService;
|
||||||
private readonly IVisualDevService _visualDevService;
|
private readonly IVisualDevService _visualDevService;
|
||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
public WmsRawmatTransferinstockService(
|
public WmsRawmatTransferinstockService(
|
||||||
ISqlSugarRepository<WmsRawmatTransferinstockH> repository,
|
ISqlSugarRepository<WmsRawmatTransferinstockH> repository,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
IBillRullService billRullService,
|
IBillRullService billRullService,
|
||||||
IRunService runService,
|
IRunService runService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
IWareHouseService wareHouseService)
|
IWareHouseService wareHouseService)
|
||||||
{
|
{
|
||||||
@@ -62,6 +65,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
_runService = runService;
|
_runService = runService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
}
|
}
|
||||||
@@ -195,9 +199,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
|
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
|
||||||
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
|
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
|
||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
thirdWebapiRecord.remark = "原材料调拨入库";
|
thirdWebapiRecord.remark = $"原材料调拨入库wms_rawmat_transferinstock_h:{wmsRawmatTransferinstockH.bill_code}";
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
Logger.Information($"完成原材料调拨入库单上传BIP逻辑");
|
Logger.Information($"完成原材料调拨入库单上传BIP逻辑");
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ using Tnb.WarehouseMgr.Entities.Enums;
|
|||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -41,6 +42,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IWareHouseService _wareHouseService;
|
private readonly IWareHouseService _wareHouseService;
|
||||||
private readonly IBillRullService _billRullService;
|
private readonly IBillRullService _billRullService;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
|
|
||||||
public WmsSterilizationInstockHService(
|
public WmsSterilizationInstockHService(
|
||||||
ISqlSugarRepository<WmsCarryH> repository,
|
ISqlSugarRepository<WmsCarryH> repository,
|
||||||
@@ -49,6 +51,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
IWareHouseService wareHouseService,
|
IWareHouseService wareHouseService,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
IBillRullService billRullService,
|
IBillRullService billRullService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IEventPublisher publisher)
|
IEventPublisher publisher)
|
||||||
{
|
{
|
||||||
_db = repository.AsSugarClient();
|
_db = repository.AsSugarClient();
|
||||||
@@ -57,6 +60,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_wareHouseService = wareHouseService;
|
_wareHouseService = wareHouseService;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,6 +204,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(erpRequestData);
|
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(erpRequestData);
|
||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
|
|||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
using Tnb.ProductionMgr.Entities.Entity;
|
using Tnb.ProductionMgr.Entities.Entity;
|
||||||
|
using Tnb.BasicData.Interfaces;
|
||||||
|
|
||||||
namespace Tnb.WarehouseMgr
|
namespace Tnb.WarehouseMgr
|
||||||
{
|
{
|
||||||
@@ -46,12 +47,14 @@ namespace Tnb.WarehouseMgr
|
|||||||
private readonly IBillRullService _billRullService;
|
private readonly IBillRullService _billRullService;
|
||||||
private readonly IRunService _runService;
|
private readonly IRunService _runService;
|
||||||
private readonly IVisualDevService _visualDevService;
|
private readonly IVisualDevService _visualDevService;
|
||||||
|
private readonly IThirdApiRecordService _thirdApiRecordService;
|
||||||
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
|
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
|
||||||
public WmsTransferInstockService(
|
public WmsTransferInstockService(
|
||||||
ISqlSugarRepository<WmsCarryH> repository,
|
ISqlSugarRepository<WmsCarryH> repository,
|
||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
IBillRullService billRullService,
|
IBillRullService billRullService,
|
||||||
IRunService runService,
|
IRunService runService,
|
||||||
|
IThirdApiRecordService thirdApiRecordService,
|
||||||
IVisualDevService visualDevService,
|
IVisualDevService visualDevService,
|
||||||
IWmsPDAScanInStockService wmsPDAScanInStock)
|
IWmsPDAScanInStockService wmsPDAScanInStock)
|
||||||
{
|
{
|
||||||
@@ -59,6 +62,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_billRullService = billRullService;
|
_billRullService = billRullService;
|
||||||
_runService = runService;
|
_runService = runService;
|
||||||
|
_thirdApiRecordService = thirdApiRecordService;
|
||||||
_visualDevService = visualDevService;
|
_visualDevService = visualDevService;
|
||||||
_wmsPDAScanInStock = wmsPDAScanInStock;
|
_wmsPDAScanInStock = wmsPDAScanInStock;
|
||||||
}
|
}
|
||||||
@@ -183,8 +187,12 @@ namespace Tnb.WarehouseMgr
|
|||||||
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
|
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
|
||||||
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
|
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
|
||||||
thirdWebapiRecord.create_time = DateTime.Now;
|
thirdWebapiRecord.create_time = DateTime.Now;
|
||||||
thirdWebapiRecord.remark = "成品调拨入库";
|
thirdWebapiRecord.remark = $"成品调拨入库wms_transfer_instock_h:{wmsTransferInstockH.bill_code}";
|
||||||
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
|
||||||
|
BasFactoryConfig callErp = await _db.Queryable<BasFactoryConfig>().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
|
||||||
|
if(callErp.value=="1"){
|
||||||
|
await _thirdApiRecordService.Send(new List<ThirdWebapiRecord> { thirdWebapiRecord }, "自动", _db);
|
||||||
|
}
|
||||||
Logger.Information($"完成成品调拨入库单上传BIP逻辑");
|
Logger.Information($"完成成品调拨入库单上传BIP逻辑");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user