1.车间管理调整为异步

2.明确生产制造的部署模式为单账套部署,多账套采用多服务的形式部署
This commit is contained in:
qmj
2025-07-23 08:57:44 +08:00
parent 1141095898
commit b8a9595cc1
12 changed files with 395 additions and 191 deletions
@@ -6,6 +6,7 @@ using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Threading.Tasks;
using UFIDA.U8.Framework.Api.ControlObject.Common;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
@@ -26,43 +27,51 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
/// <summary>
/// 报工单
/// </summary>
public class MoRoutingBill: IBaseBF
public class MoRoutingBill:IBaseBF
{
protected readonly ILog logInfo = LogManager.GetLogger("logInfo");
private IContextContainer callar { get; set; }
private MoRoutingBillDs GetEmptyDs(string cCardNum)
private async Task<MoRoutingBillDs> GetEmptyDs(IContextContainer callar, string cCardNum)
{
var ds = SFExecutor.BFMoRoutingBill_LoadData("LoadFirst", 0, "", cCardNum, callar);
#region 清除数据集里的数据
if (ds.Tables.Contains("fc_MoRoutingBilldetail_ExtraDefine"))
try
{
ds.Tables["fc_MoRoutingBilldetail_ExtraDefine"].Clear();
var ds = SFExecutor.BFMoRoutingBill_LoadData("LoadFirst", 0, "", cCardNum, callar);
#region 清除数据集里的数据
if (ds.Tables.Contains("fc_MoRoutingBilldetail_ExtraDefine"))
{
ds.Tables["fc_MoRoutingBilldetail_ExtraDefine"].Clear();
}
if (ds.Tables.Contains("fc_MoRoutingBill_ExtraDefine"))
{
ds.Tables["fc_MoRoutingBill_ExtraDefine"].Clear();
}
ds.MoRoutingBillRes.Clear();
ds.MoRoutingBillDetail.Clear();
ds.MoRoutingBill.Clear();
#endregion
return ds;
}
if (ds.Tables.Contains("fc_MoRoutingBill_ExtraDefine"))
catch
{
ds.Tables["fc_MoRoutingBill_ExtraDefine"].Clear();
await Task.Delay(1);
throw;
}
ds.MoRoutingBillRes.Clear();
ds.MoRoutingBillDetail.Clear();
ds.MoRoutingBill.Clear();
#endregion
return ds;
}
private MoRoutingBillDs GetVoucherDs(string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary<string, object> input)
private async Task<MoRoutingBillDs> GetVoucherDs(IContextContainer callar, string cCardNum, AutoDocNoGenerateParam docNoParam, Dictionary<string, object> input)
{
var ds = GetEmptyDs(cCardNum);
var ds = await GetEmptyDs(callar, cCardNum);
var head = ds.MoRoutingBill.NewMoRoutingBillRow();
@@ -104,18 +113,18 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
public BaseResult<string> Save(string cCardNum, Dictionary<string, object> input)
public async Task<BaseResult<string>> Save(BaseLogin baseLogin, string cCardNum, Dictionary<string, object> input)
{
try
{
callar = new DefaultContextContainer();
var callar = baseLogin.callar;
var docNoParam = new AutoDocNoGenerateParam(EnumAutoDocNoType.HandAuto, cCardNum)
{
IsCurrentDocNoByHand = false
};
var ds = GetVoucherDs(cCardNum, docNoParam, input);
var ds =GetVoucherDs(callar, cCardNum, docNoParam, input);
if (ds == null)
{
@@ -127,7 +136,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
logInfo.Debug($"单据编码:{cCardNum},开始保存");
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds, docNoParam, callar);
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillSave(ds.Result, docNoParam, callar);
logInfo.Debug($"单据编码:{cCardNum},保存完成,id:{id}");
@@ -139,6 +148,8 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (TargetInvocationException ex)
@@ -147,12 +158,16 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{
logInfo.Error(ex.InnerException.Message, ex.InnerException);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.InnerException.Message };
}
else
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
@@ -162,11 +177,13 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
}
public BaseResult<string> Save(string cCardNum, List<Dictionary<string, object>> inputs)
public async Task<BaseResult<string>> Save(BaseLogin baseLogin, string cCardNum, List<Dictionary<string, object>> inputs)
{
var idList = new List<int>();
@@ -175,11 +192,11 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{
foreach (var input in inputs)
{
var iRes = Save(cCardNum, input);
var iRes = await Save(baseLogin, cCardNum, input);
if (!iRes.bSuccess && idList.Count > 0)
{
Delete(idList);
await Delete(baseLogin, idList);
return iRes;
}
@@ -204,7 +221,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
}
public BaseResult<string> Delete(string cCardNum, List<string> inputs)
public async Task<BaseResult<string>> Delete(BaseLogin baseLogin,string cCardNum, List<string> inputs)
{
try
{
@@ -220,7 +237,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
newInput.Add(int.Parse($"{dataReader[0]}"));
}
return Delete(newInput);
return await Delete(baseLogin, newInput);
}
catch (U8MReferenceBENotExistException ex)
{
@@ -236,7 +253,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
}
}
public BaseResult<string> Delete(List<int> inputs)
public async Task<BaseResult<string>> Delete(BaseLogin baseLogin,List<int> inputs)
{
try
{
@@ -250,7 +267,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
ht.Add(input, input);
}
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, new DefaultContextContainer());
var id = SFExecutor.BFMoRoutingBill_MoRoutingBillBatchDelete(ht, baseLogin.callar);
return new BaseResult<string> { bSuccess = true, message = "删除成功", result = $"{id}" };
}
@@ -258,19 +275,23 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
}
}
public BaseResult<string> Verify(string cCardNum, List<string> inputs)
public async Task<BaseResult<string>> Verify(BaseLogin baseLogin,string cCardNum, List<string> inputs)
{
try
{
@@ -286,7 +307,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
newInput.Add(int.Parse($"{dataReader[0]}"));
}
return Verify(newInput);
return await Verify(baseLogin,newInput);
}
catch (U8MReferenceBENotExistException ex)
{
@@ -302,7 +323,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
}
}
public BaseResult<string> Verify(List<int> inputs)
public async Task<BaseResult<string>> Verify(BaseLogin baseLogin, List<int> inputs)
{
try
{
@@ -316,7 +337,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
ht.Add(input, $"{input}");
}
var id = SFExecutor.BFMoRoutingBill_Verify(ht, new DefaultContextContainer());
var id = SFExecutor.BFMoRoutingBill_Verify(ht,baseLogin.callar);
return new BaseResult<string> { bSuccess = true, message = "审核成功", result = $"{id}" };
}
@@ -324,12 +345,16 @@ namespace UFIDA.U8.Framework.Api.ControlObject.U8M
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "新增失败", result = ex.Message };
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
await Task.Delay(1);
return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
}