From 1dc51107f57d3b6df6830ed35801785ea4a2d156 Mon Sep 17 00:00:00 2001
From: zhou keda <1315948824@qq.com>
Date: Mon, 23 Sep 2024 15:07:00 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E8=B0=83=E7=94=A8erp?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E4=BB=BB=E5=8A=A1=E5=8D=95=E6=89=B9?=
=?UTF-8?q?=E6=AC=A1=E7=94=9F=E6=88=90=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Consts/FactoryConfigConst.cs | 15 +
.../IThirdApiRecordService.cs | 16 +
.../Tnb.BasicData/ThirdApiRecordService.cs | 357 ++++++++++--------
.../Entity/PrdMoTask.cs | 15 +
.../Tnb.ProductionMgr/PrdMoTaskService.cs | 112 +++++-
.../Tnb.ProductionMgr/TimeWorkService.cs | 174 +--------
.../Tnb.WarehouseMgr/WareHouseService.cs | 10 +-
.../WmsMaterialSignHService.cs | 17 +
.../WmsMaterialTransferService.cs | 14 +
.../Tnb.WarehouseMgr/WmsPrdInstockHService.cs | 13 +-
.../Tnb.WarehouseMgr/WmsPurchaseDService.cs | 9 +
.../Tnb.WarehouseMgr/WmsPurchaseService.cs | 8 +
.../WmsRawmatOutstockService.cs | 9 +
.../WmsRawmatTransferinstockService.cs | 10 +-
.../WmsSterilizationInstockHService.cs | 9 +
.../WmsTransferInstockService.cs | 10 +-
16 files changed, 452 insertions(+), 346 deletions(-)
create mode 100644 BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs
diff --git a/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs b/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
index aaa43e9b..6f743894 100644
--- a/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
+++ b/BasicData/Tnb.BasicData.Entities/Consts/FactoryConfigConst.cs
@@ -34,5 +34,20 @@ namespace Tnb.BasicData
/// 白班夜班时间
///
public const string DAYNIGHTWORKTIME = "dayNightWorkTime";
+
+ ///
+ /// 是否立刻调用erp接口
+ ///
+ public const string CALLERP = "callErp";
+
+ ///
+ /// 换批号数量
+ ///
+ public const string CHANGEBATCHNUM = "changeBatchNum";
+
+ ///
+ /// 换批号天数
+ ///
+ public const string CHANGEBATCHDAY = "changeBatchDay";
}
}
\ No newline at end of file
diff --git a/BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs b/BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs
new file mode 100644
index 00000000..1940089d
--- /dev/null
+++ b/BasicData/Tnb.BasicData.Interfaces/IThirdApiRecordService.cs
@@ -0,0 +1,16 @@
+using SqlSugar;
+using Tnb.BasicData.Entities;
+
+namespace Tnb.BasicData.Interfaces
+{
+ public interface IThirdApiRecordService
+ {
+ ///
+ /// 请求erp
+ ///
+ ///
+ /// 手动 自动
+ ///
+ Task Send(List records, string send_type,ISqlSugarClient db=null);
+ }
+}
\ No newline at end of file
diff --git a/BasicData/Tnb.BasicData/ThirdApiRecordService.cs b/BasicData/Tnb.BasicData/ThirdApiRecordService.cs
index 4a8884bf..6b80dee3 100644
--- a/BasicData/Tnb.BasicData/ThirdApiRecordService.cs
+++ b/BasicData/Tnb.BasicData/ThirdApiRecordService.cs
@@ -11,11 +11,13 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using NPOI.Util;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.BasicData.Entities.Dto;
using Tnb.ProductionMgr.Entities;
+using Tnb.BasicData.Interfaces;
namespace Tnb.BasicData
{
@@ -24,7 +26,7 @@ namespace Tnb.BasicData
///
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
- public class ThirdApiRecordService : IDynamicApiController, ITransient
+ public class ThirdApiRecordService : IThirdApiRecordService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository _repository;
private readonly IUserManager _userManager;
@@ -41,171 +43,8 @@ namespace Tnb.BasicData
[HttpGet]
public async Task Send(string id)
{
- var db = _repository.AsSugarClient();
- string response = "";
ThirdWebapiRecord record = await _repository.GetSingleAsync(x=>x.id==id);
- DateTime now = DateTime.Now;
- 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(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()
- .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()
- .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 requestData = JsonConvert.DeserializeObject>(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()
- .SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
- .Where(x => x.id == item.mes_detail_id)
- .ExecuteCommandAsync();
- }
-
- int updateRow = await db.Updateable()
- .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 requestData = JsonConvert.DeserializeObject>(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()
- .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 ? "成功" : "失败";
+ return await Send(Arrays.AsList(record), "手动");
}
[HttpGet]
@@ -248,6 +87,194 @@ namespace Tnb.BasicData
return "失败";
}
+
+ public async Task Send(List 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(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()
+ .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()
+ .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 requestData = JsonConvert.DeserializeObject>(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()
+ .SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
+ .Where(x => x.id == item.mes_detail_id)
+ .ExecuteCommandAsync();
+ }
+
+ int updateRow = await db.Updateable()
+ .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 requestData = JsonConvert.DeserializeObject>(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()
+ .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 ? "成功" : "失败";
+ }
}
}
\ No newline at end of file
diff --git a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs
index 471fda28..4c6b2d15 100644
--- a/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs
+++ b/ProductionMgr/Tnb.ProductionMgr.Entities/Entity/PrdMoTask.cs
@@ -109,6 +109,11 @@ public partial class PrdMoTask : BaseEntity
///
public DateTime? plan_end_date { get; set; }
+ ///
+ /// 第一次开工日期
+ ///
+ public DateTime? first_start_date { get; set; }
+
///
/// 实际开工日期
///
@@ -245,4 +250,14 @@ public partial class PrdMoTask : BaseEntity
/// 定时任务key
///
public string timer_key { get; set; }
+
+ ///
+ /// 按时间更换批次次数
+ ///
+ public int change_batch_count_by_day { get; set; } = -1;
+
+ ///
+ /// 按产量更换批次次数
+ ///
+ public int change_batch_count_by_qty { get; set; } = -1;
}
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
index 7e574287..3bfb29ff 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
@@ -50,6 +50,7 @@ using Tnb.WarehouseMgr;
using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.ProductionMgr.Helpers;
+using Tnb.BasicData.Interfaces;
// using Tnb.PerMgr.Entities;
@@ -83,6 +84,7 @@ namespace Tnb.ProductionMgr
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build();
private readonly RedisData _redisData;
private static SemaphoreSlim prdreportSemaphore = new(1);
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public PrdMoTaskService(
@@ -96,6 +98,7 @@ namespace Tnb.ProductionMgr
IOrganizeService organizeService,
WmsPrdInstockHService wmsPrdInstockHService,
IVisualDevService visualDevService,
+ IThirdApiRecordService thirdApiRecordService,
IQcCheckPlanService qcCheckPlanService
)
{
@@ -112,6 +115,7 @@ namespace Tnb.ProductionMgr
_prdInstockService = prdInstockService;
_qcCheckPlanService = qcCheckPlanService;
_wmsCarryService = wmsCarryService;
+ _thirdApiRecordService = thirdApiRecordService;
_wmsPrdInstockHService = wmsPrdInstockHService;
}
@@ -1288,6 +1292,11 @@ namespace Tnb.ProductionMgr
{
throw Oops.Bah("状态错误无法开始");
}
+
+ if (item.first_start_date == null)
+ {
+ item.first_start_date = DateTime.Now;
+ }
break;
case PrdTaskBehavior.Pause:
if (item.mo_task_status == status)
@@ -2032,19 +2041,82 @@ namespace Tnb.ProductionMgr
string batch = "";
PrdMo mo = await _db.Queryable().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().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CHANGEBATCHNUM);
+ BasFactoryConfig changeBatchDay = await _db.Queryable().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)
{
- EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id);
- batch = $"{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
+ if (changeBatchFlag)
+ {
+ EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id);
+ batch = $"{equipment.code.Substring(equipment.code.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
+ await db.Updateable()
+ .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)
{
- EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id);
- ToolMolds toolMolds = await _db.Queryable().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")}";
+ if (changeBatchFlag)
+ {
+ EqpEquipment equipment = await _db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id);
+ ToolMolds toolMolds = await _db.Queryable().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()
+ .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
{
- OrganizeEntity organizeEntity = await _db.Queryable().SingleAsync(x => x.Id == prdMoTask.workline_id);
- batch = $"{organizeEntity.EnCode.Substring(organizeEntity.EnCode.Length - 2, 2)}{DateTime.Now.ToString("yyMMdd")}";
+ // OrganizeEntity organizeEntity = await _db.Queryable().SingleAsync(x => x.Id == prdMoTask.workline_id);
+ // 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)
@@ -2568,8 +2640,8 @@ namespace Tnb.ProductionMgr
erpRequestData.Add("AggWrDtl", erpRequestDataDetails);
requestData.Add(erpRequestData);
- BasFactoryConfig config = await _db.Queryable()
- .FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
+ BasFactoryConfig config = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL);
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord();
thirdWebapiRecord.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord.third_name = WmsWareHouseConst.BIP;
@@ -2581,6 +2653,10 @@ namespace Tnb.ProductionMgr
thirdWebapiRecord.create_time = DateTime.Now;
thirdWebapiRecord.remark = $"载具编号:{report?.material_box_code ?? ""}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
@@ -4083,6 +4159,24 @@ namespace Tnb.ProductionMgr
return row>0 ? "分配成功" : "分配失败";
}
+ ///
+ /// 设置批号
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SetBatch(Dictionary input)
+ {
+ string ids = input.GetOrDefault("ids");
+ string[] idList = ids.Split(",");
+ string batch = input.GetOrDefault("batch");
+ int row = await _db.Updateable()
+ .SetColumns(x => x.batch == batch)
+ .Where(x => idList.Contains(x.id))
+ .ExecuteCommandAsync();
+ return row>0 ? "设置成功" : "设置失败";
+ }
+
///
/// 末检
///
diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
index 42bd27a0..a0f4cd0e 100644
--- a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
@@ -43,6 +43,7 @@ using Tnb.ProductionMgr.Entities.Entity;
using Tnb.ProductionMgr.Entities.Entity.ErpEntity;
using Tnb.BasicData.Entities.Dto;
using Tnb.BasicData;
+using Tnb.BasicData.Interfaces;
using Tnb.PerMgr.Entities;
namespace Tnb.ProductionMgr
@@ -59,6 +60,7 @@ namespace Tnb.ProductionMgr
private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService;
private readonly IWareHouseService _wareHouseService;
private readonly IPrdMoTaskService _prdMoTaskService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public TimeWorkService(
RedisData redisData,
@@ -67,6 +69,7 @@ namespace Tnb.ProductionMgr
IOrganizeService organizeService,
IWmsEmptyOutstockService wmsEmptyOutstockService,
IPrdMoTaskService prdMoTaskService,
+ IThirdApiRecordService thirdApiRecordService,
IWareHouseService wareHouseService
)
{
@@ -77,6 +80,7 @@ namespace Tnb.ProductionMgr
_billRullService = billRullService;
_wmsEmptyOutstockService = wmsEmptyOutstockService;
_wareHouseService = wareHouseService;
+ _thirdApiRecordService = thirdApiRecordService;
_prdMoTaskService = prdMoTaskService;
}
@@ -718,178 +722,12 @@ namespace Tnb.ProductionMgr
List records = await _db.Queryable().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1 && x.error_count<10).ToListAsync();
if (records.IsEmpty())
{
- records = await _db.Queryable().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1).ToListAsync();
+ records = await _db.Queryable().Where(x => thirdNameArr.Contains(x.third_name) && x.status == "0" && x.is_send == 1 && x.error_count<100).ToListAsync();
}
if (records.IsEmpty()) return "";
- DateTime now = DateTime.Now;
- 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(response);
- }
- else
- {
- thirdResult.Code = 500;
- }
- }
- catch (Exception e)
- {
- thirdResult.Code = 500;
- thirdResult.msgResult = response;
- }
-
- if (thirdResult.Code == 200)
- {
- await _db.Updateable()
- .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()
- .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 requestData = JsonConvert.DeserializeObject>(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()
- .SetColumns(x => x.erp_arriveorder_b_pk == pk_arriveorder_b)
- .Where(x => x.id == item.mes_detail_id)
- .ExecuteCommandAsync();
- }
-
- int updateRow = await _db.Updateable()
- .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 requestData = JsonConvert.DeserializeObject>(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()
- .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();
- }
-
+ await _thirdApiRecordService.Send(records, "自动");
return "true";
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
index 08dfeab5..dbb2a4b1 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
@@ -60,6 +60,7 @@ using NPOI.SS.Format;
using Aspose.Cells.Drawing;
using SQLitePCL;
using Tnb.BasicData.Entities.Entity;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -78,7 +79,7 @@ namespace Tnb.WarehouseMgr
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
private readonly IWmsOutinStockDetailService _wmsOutinStockDetailService;
private static ISqlSugarClient db_agvElevatorTaskExceptionHandles;
-
+ private readonly IThirdApiRecordService _thirdApiRecordService;
@@ -156,6 +157,7 @@ namespace Tnb.WarehouseMgr
IWmsCarryUnbindService wmsCarryUnbindService,
IRunService runService,
IVisualDevService visualDevService,
+ IThirdApiRecordService thirdApiRecordService,
IWmsOutinStockDetailService wmsOutinStockDetailService
//IConfiguration configuration
) : base(repository.AsSugarClient())
@@ -171,6 +173,7 @@ namespace Tnb.WarehouseMgr
_wmsCarryUnbindService = wmsCarryUnbindService;
_runService = runService;
_visualDevService = visualDevService;
+ _thirdApiRecordService = thirdApiRecordService;
_wmsOutinStockDetailService = wmsOutinStockDetailService;
//_configuration = configuration;
@@ -3323,6 +3326,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
await db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs
index 71548d40..6700d380 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs
@@ -29,6 +29,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Interfaces;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.BasicData;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -47,6 +48,7 @@ namespace Tnb.WarehouseMgr
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
private readonly IWareHouseService _wareHouseService;
private readonly IOtherOutstockHService _otherOutstockHService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsMaterialSignHService(
ISqlSugarRepository repository,
IUserManager userManager,
@@ -55,6 +57,7 @@ namespace Tnb.WarehouseMgr
IVisualDevService visualDevService,
IWmsPDAScanInStockService wmsPDAScanInStock,
IWmsCarryUnbindService wmsCarryUnbindService,
+ IThirdApiRecordService thirdApiRecordService,
IWareHouseService wareHouseService,
IOtherOutstockHService otherOutstockHService)
{
@@ -66,6 +69,7 @@ namespace Tnb.WarehouseMgr
_wmsPDAScanInStock = wmsPDAScanInStock;
_wmsCarryUnbindService = wmsCarryUnbindService;
_wareHouseService = wareHouseService;
+ _thirdApiRecordService = thirdApiRecordService;
_otherOutstockHService = otherOutstockHService;
}
@@ -445,6 +449,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.create_time = DateTime.Now;
thirdWebapiRecord.remark = $"原材料调拨出库wms_rawmat_transferoutstock_h:{wmsRawmatTransferoutstockH.bill_code}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
break;
}
@@ -551,6 +560,10 @@ namespace Tnb.WarehouseMgr
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它出库单到erp成功");
+ BasFactoryConfig callErp2 = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp2.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
if (wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_JZGLRK_CODE
|| wmsMaterialTransfer.type == WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE
@@ -623,6 +636,10 @@ namespace Tnb.WarehouseMgr
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它入库单到erp成功");
+
+ if(callErp2.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord2 }, "自动", _db);
+ }
}
break;
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
index 99473614..75d9e954 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs
@@ -44,6 +44,7 @@ using Tnb.BasicData;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
using System.Threading;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -65,6 +66,7 @@ namespace Tnb.WarehouseMgr
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
private readonly IOrganizeService _organizeService;
private readonly IWmsCarryQueryService _wmsCarryQueryService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public static SemaphoreSlim s_taskDistributeToZCC = new(1);
public static SemaphoreSlim s_taskDistributeYCL2ZCC = new(1);
@@ -82,6 +84,7 @@ namespace Tnb.WarehouseMgr
IWmsCarryUnbindService wmsCarryUnbindService,
IOrganizeService organizeService,
IWmsCarryQueryService wmsCarryQueryService,
+ IThirdApiRecordService thirdApiRecordService,
IWmsCarryBindService wmsCarryBindService)
{
_db = repository.AsSugarClient();
@@ -94,6 +97,7 @@ namespace Tnb.WarehouseMgr
_wmsCarryUnbindService = wmsCarryUnbindService;
_organizeService = organizeService;
_wmsCarryQueryService = wmsCarryQueryService;
+ _thirdApiRecordService = thirdApiRecordService;
OverideFuncs.GetListAsync = GetList;
}
@@ -1165,6 +1169,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord2.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord2 }, "自动", _db);
+ }
}
// 其它出库
else
@@ -1268,6 +1277,11 @@ namespace Tnb.WarehouseMgr
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功");
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
index 6d5a877d..b23a507e 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPrdInstockHService.cs
@@ -31,6 +31,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Interfaces;
using Tnb.ProductionMgr.Entities.Entity;
using System.Threading;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -44,15 +45,20 @@ namespace Tnb.WarehouseMgr
private readonly IVisualDevService _visualDevService;
private readonly IWareHouseService _wareHouseService;
private readonly IBillRullService _billRullService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsPrdInstockHService(ISqlSugarRepository repository, IRunService runService,
- IVisualDevService visualDevService, IWareHouseService wareHouseService, IBillRullService billRullService)
+ IVisualDevService visualDevService,
+ IWareHouseService wareHouseService,
+ IThirdApiRecordService thirdApiRecordService,
+ IBillRullService billRullService)
{
_db = repository.AsSugarClient();
_runService = runService;
_visualDevService = visualDevService;
_wareHouseService = wareHouseService;
_billRullService = billRullService;
+ _thirdApiRecordService = thirdApiRecordService;
}
///
@@ -462,6 +468,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.remark = $"载具编号:{prdReport?.material_box_code ?? ""}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
+
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseDService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseDService.cs
index 1811cd88..639901b3 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseDService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseDService.cs
@@ -24,6 +24,7 @@ using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Extension;
using JNPF.FriendlyException;
using JNPF.VisualDev.Entitys;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -43,18 +44,21 @@ namespace Tnb.WarehouseMgr
private readonly ISqlSugarClient _db;
private readonly IUserManager _userManager;
private readonly IDictionaryDataService _dictionaryDataService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public WmsPurchaseDService(
ISqlSugarRepository repository,
DataBaseManager dbManager,
IUserManager userManager,
+ IThirdApiRecordService thirdApiRecordService,
IDictionaryDataService dictionaryDataService)
{
_repository = repository;
_db = repository.AsSugarClient();
_dbManager = dbManager;
_userManager = userManager;
+ _thirdApiRecordService = thirdApiRecordService;
_dictionaryDataService = dictionaryDataService;
}
@@ -257,6 +261,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.remark = "采购收货单号:" + (wmsPurchaseH?.bill_code ?? "")+ ",erp采购订单号:"+wmsPurchaseOrderH.erp_bill_code;
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
await _db.Ado.CommitTranAsync();
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseService.cs
index 624e594f..a8dc5498 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseService.cs
@@ -37,6 +37,7 @@ using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Authorization;
using JNPF.VisualDev.Interfaces;
using JNPF.VisualDev.Entitys;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -52,8 +53,10 @@ namespace Tnb.WarehouseMgr
private readonly IWareHouseService _wareHouseService;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsPurchaseService(ISqlSugarRepository repo, IUserManager userManager, IQcCheckPlanService qcCheckPlanService, IBillRullService billRullService,
IWareHouseService wareHouseService, IRunService runService,
+ IThirdApiRecordService thirdApiRecordService,
IVisualDevService visualDevService)
: base(repo, userManager, qcCheckPlanService)
{
@@ -62,6 +65,7 @@ namespace Tnb.WarehouseMgr
_billRullService = billRullService;
_wareHouseService = wareHouseService;
_runService = runService;
+ _thirdApiRecordService = thirdApiRecordService;
_visualDevService = visualDevService;
}
@@ -283,6 +287,10 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.remark = $"erp采购订单:{wmsPurchaseOrderH.erp_bill_code}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
//通知Mes接口
//_ = SyncMesData(instock.id, instockDs.Select(x => x.material_id).ToList(), EnumTriggerEvent.入厂检按物料编号);
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
index b7defbc5..014f8782 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatOutstockService.cs
@@ -32,6 +32,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Interfaces;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.BasicData;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -50,6 +51,7 @@ namespace Tnb.WarehouseMgr
private readonly IVisualDevService _visualDevService;
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
private readonly IWareHouseService _wareHouseService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsRawmatOutstockService(
ISqlSugarRepository repository,
IUserManager userManager,
@@ -57,6 +59,7 @@ namespace Tnb.WarehouseMgr
IRunService runService,
IVisualDevService visualDevService,
IWmsPDAScanInStockService wmsPDAScanInStock,
+ IThirdApiRecordService thirdApiRecordService,
IWareHouseService wareHouseService)
{
_db = repository.AsSugarClient();
@@ -66,6 +69,7 @@ namespace Tnb.WarehouseMgr
_visualDevService = visualDevService;
_wmsPDAScanInStock = wmsPDAScanInStock;
_wareHouseService = wareHouseService;
+ _thirdApiRecordService = thirdApiRecordService;
OverideFuncs.GetDetailsAsync = GetDetailsAsync;
}
@@ -183,6 +187,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.create_time = DateTime.Now;
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
+
}
[NonAction]
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatTransferinstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatTransferinstockService.cs
index 9e4780a2..b1cdd60d 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatTransferinstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsRawmatTransferinstockService.cs
@@ -33,6 +33,7 @@ using Tnb.WarehouseMgr.Interfaces;
using Tnb.BasicData;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities.Attributes;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -50,11 +51,13 @@ namespace Tnb.WarehouseMgr
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
private readonly IWareHouseService _wareHouseService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsRawmatTransferinstockService(
ISqlSugarRepository repository,
IUserManager userManager,
IBillRullService billRullService,
IRunService runService,
+ IThirdApiRecordService thirdApiRecordService,
IVisualDevService visualDevService,
IWareHouseService wareHouseService)
{
@@ -62,6 +65,7 @@ namespace Tnb.WarehouseMgr
_userManager = userManager;
_billRullService = billRullService;
_runService = runService;
+ _thirdApiRecordService = thirdApiRecordService;
_visualDevService = visualDevService;
_wareHouseService = wareHouseService;
}
@@ -195,9 +199,13 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
thirdWebapiRecord.create_time = DateTime.Now;
- thirdWebapiRecord.remark = "原材料调拨入库";
+ thirdWebapiRecord.remark = $"原材料调拨入库wms_rawmat_transferinstock_h:{wmsRawmatTransferinstockH.bill_code}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
Logger.Information($"完成原材料调拨入库单上传BIP逻辑");
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
[HttpPost]
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
index 487ed96f..478e51bd 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsSterilizationInstockHService.cs
@@ -23,6 +23,7 @@ using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.WarehouseMgr.Interfaces;
using Tnb.ProductionMgr.Entities.Entity;
using Tnb.BasicData;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -41,6 +42,7 @@ namespace Tnb.WarehouseMgr
private readonly IWareHouseService _wareHouseService;
private readonly IBillRullService _billRullService;
private readonly IUserManager _userManager;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
public WmsSterilizationInstockHService(
ISqlSugarRepository repository,
@@ -49,6 +51,7 @@ namespace Tnb.WarehouseMgr
IWareHouseService wareHouseService,
IUserManager userManager,
IBillRullService billRullService,
+ IThirdApiRecordService thirdApiRecordService,
IEventPublisher publisher)
{
_db = repository.AsSugarClient();
@@ -57,6 +60,7 @@ namespace Tnb.WarehouseMgr
_wareHouseService = wareHouseService;
_userManager = userManager;
_billRullService = billRullService;
+ _thirdApiRecordService = thirdApiRecordService;
}
@@ -200,6 +204,11 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(erpRequestData);
thirdWebapiRecord.create_time = DateTime.Now;
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferInstockService.cs
index 583f624d..584843cc 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferInstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferInstockService.cs
@@ -29,6 +29,7 @@ using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Interfaces;
using Tnb.BasicData;
using Tnb.ProductionMgr.Entities.Entity;
+using Tnb.BasicData.Interfaces;
namespace Tnb.WarehouseMgr
{
@@ -46,12 +47,14 @@ namespace Tnb.WarehouseMgr
private readonly IBillRullService _billRullService;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
+ private readonly IThirdApiRecordService _thirdApiRecordService;
private readonly IWmsPDAScanInStockService _wmsPDAScanInStock;
public WmsTransferInstockService(
ISqlSugarRepository repository,
IUserManager userManager,
IBillRullService billRullService,
IRunService runService,
+ IThirdApiRecordService thirdApiRecordService,
IVisualDevService visualDevService,
IWmsPDAScanInStockService wmsPDAScanInStock)
{
@@ -59,6 +62,7 @@ namespace Tnb.WarehouseMgr
_userManager = userManager;
_billRullService = billRullService;
_runService = runService;
+ _thirdApiRecordService = thirdApiRecordService;
_visualDevService = visualDevService;
_wmsPDAScanInStock = wmsPDAScanInStock;
}
@@ -183,8 +187,12 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/transIn/save";
thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData);
thirdWebapiRecord.create_time = DateTime.Now;
- thirdWebapiRecord.remark = "成品调拨入库";
+ thirdWebapiRecord.remark = $"成品调拨入库wms_transfer_instock_h:{wmsTransferInstockH.bill_code}";
await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync();
+ BasFactoryConfig callErp = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.CALLERP);
+ if(callErp.value=="1"){
+ await _thirdApiRecordService.Send(new List { thirdWebapiRecord }, "自动", _db);
+ }
Logger.Information($"完成成品调拨入库单上传BIP逻辑");
}
}