|
|
|
@ -11,6 +11,11 @@ using System.Threading.Tasks;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using StackExchange.Profiling.Internal;
|
|
|
|
|
using Aucma.Core.HwPLc;
|
|
|
|
|
using Org.BouncyCastle.Asn1.Tsp;
|
|
|
|
|
using NetTaste;
|
|
|
|
|
using System.Windows.Media.Media3D;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using Admin.Core.Model.Model_New;
|
|
|
|
|
|
|
|
|
|
namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
{
|
|
|
|
@ -104,13 +109,293 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
|
|
|
|
|
public InStoreBusiness()
|
|
|
|
|
{
|
|
|
|
|
MvCodeHelper.PQKReceiveCodeEvent += InStore;
|
|
|
|
|
MvCodeHelper.PQKReceiveCodeEvent += NewTask;
|
|
|
|
|
storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode");//泡前库code
|
|
|
|
|
init();
|
|
|
|
|
|
|
|
|
|
#region 入库任务
|
|
|
|
|
Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
await InitEnterStore();
|
|
|
|
|
});
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 根据条码入库
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 根据条码入库——泡前库始终只有一条任务在
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="materialBarCode"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task NewTask(string materialBarCode)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(materialBarCode))
|
|
|
|
|
{
|
|
|
|
|
LogDelegateEvent?.Invoke("未扫到二维码信息!");
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】未扫到二维码信息,请重新扫码!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string materialCode = SubString(materialBarCode);
|
|
|
|
|
//创建入库任务
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】扫码成功,物料条码:{materialBarCode}");
|
|
|
|
|
logHelper.Info($"扫码成功,物料条码:{materialBarCode}");
|
|
|
|
|
LogDelegateEvent?.Invoke($"扫码成功,物料条码:{materialBarCode}");
|
|
|
|
|
var taskList = await _realTaskInfoService.QueryAsync(d=>d.StoreCode== storeCode);
|
|
|
|
|
if (taskList.Count() > 0)
|
|
|
|
|
{
|
|
|
|
|
//如果存在多条物料任务删除重新创建
|
|
|
|
|
taskList.ForEach(d=>d.TaskStatus= 3);
|
|
|
|
|
_ = _realTaskInfoService.UpdateAsync(taskList).Result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var result = await CreateRecordTask(materialBarCode); //创建入库任务
|
|
|
|
|
if (result)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine($"【{DateTime.Now}】物料条码:{materialBarCode},创建任务成功!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await Task.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
#region 创建入库任务
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建入库任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="materialBarCode">物料条码</param>
|
|
|
|
|
private async Task<bool> CreateRecordTask(string materialBarCode)
|
|
|
|
|
{
|
|
|
|
|
bool result = false;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//生成入库任务
|
|
|
|
|
RealTaskInfo realTaskInfo = new RealTaskInfo();
|
|
|
|
|
realTaskInfo.TaskType = 1;
|
|
|
|
|
realTaskInfo.TaskCode = System.Guid.NewGuid().ToString("N").Substring(0, 6);
|
|
|
|
|
realTaskInfo.MaterialCode = materialBarCode;//存储物料条码
|
|
|
|
|
realTaskInfo.PlanAmount = 1;
|
|
|
|
|
realTaskInfo.TaskStatus = 1; //任务状态:1 - 待执行;2 - 执行中;3 - 完成
|
|
|
|
|
realTaskInfo.CreateTime = DateTime.Now;
|
|
|
|
|
realTaskInfo.StoreCode = storeCode;
|
|
|
|
|
int flag = await _realTaskInfoService.AddAsync(realTaskInfo);
|
|
|
|
|
if (flag > 0)
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("入库任务创建成功");
|
|
|
|
|
LogDelegateEvent?.Invoke($"[{materialBarCode}]入库任务创建成功");
|
|
|
|
|
RefreshInStoreTaskEvent?.Invoke(realTaskInfo);//刷新datagrid 列表
|
|
|
|
|
result = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("入库任务创建失败");
|
|
|
|
|
LogDelegateEvent?.Invoke($"[{materialBarCode}]入库任务创建失败");
|
|
|
|
|
result = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info($"入库任务创建异常:{ex.Message}");
|
|
|
|
|
result = false;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 任务执行入库
|
|
|
|
|
public async Task EnterStore(string barCode, int store)
|
|
|
|
|
{
|
|
|
|
|
//获取货道详情
|
|
|
|
|
string spaceCode = string.Empty;
|
|
|
|
|
switch (store)
|
|
|
|
|
{
|
|
|
|
|
case 1:
|
|
|
|
|
spaceCode = "PB01_001";
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
spaceCode = "PB01_002";
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
spaceCode = "PB01_003";
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
spaceCode = "PB01_004";
|
|
|
|
|
break;
|
|
|
|
|
case 5:
|
|
|
|
|
spaceCode = "PB01_005";
|
|
|
|
|
break;
|
|
|
|
|
case 6:
|
|
|
|
|
spaceCode = "PB01_006";
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (string.IsNullOrEmpty(spaceCode)) return;
|
|
|
|
|
var baseStoreInfo = await _baseStoreInfoServices.FirstAsync(d => d.StoreCode.Equals(storeCode));//仓库
|
|
|
|
|
var baseSpace = await _baseSpaceInfoServices.FirstAsync(d => d.SpaceCode.Equals(spaceCode));
|
|
|
|
|
//入库记录表
|
|
|
|
|
|
|
|
|
|
//根据条码获取物料详情
|
|
|
|
|
var material = _printBarCodeServices.FirstAsync(d => d.MaterialBarcode == barCode).Result;
|
|
|
|
|
RecordInStore recordInstore = new RecordInStore();
|
|
|
|
|
recordInstore.StoreCode = storeCode;
|
|
|
|
|
recordInstore.StoreArea = baseStoreInfo.StoreArea;
|
|
|
|
|
recordInstore.SpaceCode = baseSpace.SpaceCode;
|
|
|
|
|
string materialType = SubString(barCode);//截取中间物料条码
|
|
|
|
|
recordInstore.MaterialType = materialType;
|
|
|
|
|
recordInstore.MaterialCode = material.MaterialCode;
|
|
|
|
|
recordInstore.InStoreTime = DateTime.Now;
|
|
|
|
|
recordInstore.BarCodeCode = barCode;
|
|
|
|
|
recordInstore.MaterialName = material.MaterialName;
|
|
|
|
|
recordInstore.EntryPattern = 0;
|
|
|
|
|
recordInstore.IsFlag = 0;
|
|
|
|
|
recordInstore.CreatedTime = DateTime.Now;
|
|
|
|
|
//入库详情表
|
|
|
|
|
BaseSpaceDetail baseDetail = new BaseSpaceDetail();
|
|
|
|
|
baseDetail.StoreCode = storeCode;
|
|
|
|
|
baseDetail.SpaceCode = baseSpace.SpaceCode;
|
|
|
|
|
baseDetail.MaterialCode = material.MaterialCode;
|
|
|
|
|
baseDetail.MaterialName = material.MaterialName;
|
|
|
|
|
baseDetail.MaterialAmount = 1;
|
|
|
|
|
baseDetail.CreatedTime = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
bool result = _recordInstoreServices.SaveRecordToDb(recordInstore, null, baseSpace, baseDetail).Result;
|
|
|
|
|
if (result)
|
|
|
|
|
{
|
|
|
|
|
string message = $"物料[{material.MaterialName}], 入{baseSpace.SpaceName},入库成功!";
|
|
|
|
|
RefreshScanMateriaCodeEvent?.Invoke(material.MaterialCode, barCode, material.MaterialName, baseSpace.SpaceName, message); //刷新界面扫码信息
|
|
|
|
|
LogDelegateEvent?.Invoke($"物料[{material.MaterialName}], 入库[{baseSpace.SpaceName}]成功!");
|
|
|
|
|
RefreshDataGridDelegateEvent?.Invoke();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LogDelegateEvent?.Invoke($"物料[{material.MaterialName}], 入库[{baseSpace.SpaceName}]失败,任务回滚!");
|
|
|
|
|
logHelper.Error($"物料[{material.MaterialName}], 入库[{baseSpace.SpaceName}]失败,任务回滚!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 执行入库任务
|
|
|
|
|
public async Task InitEnterStore()
|
|
|
|
|
{
|
|
|
|
|
RealTaskInfo realTaskInfo = null;
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
bool flag = true;
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
var taskList = await _realTaskInfoService.QueryAsync(d=>d.StoreCode== storeCode&&d.TaskStatus==1);
|
|
|
|
|
if (taskList == null || taskList.Count() == 0) continue;
|
|
|
|
|
|
|
|
|
|
var taskTime = taskList.Max(d => d.CreateTime);
|
|
|
|
|
realTaskInfo = taskList.First(d => d.CreateTime == taskTime);
|
|
|
|
|
if (realTaskInfo==null) continue;
|
|
|
|
|
|
|
|
|
|
#region 执行任务
|
|
|
|
|
string materialCode = SubString(realTaskInfo.MaterialCode);
|
|
|
|
|
var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("PqPlc"));
|
|
|
|
|
if (obj != null)
|
|
|
|
|
{
|
|
|
|
|
if (obj.plc.IsConnected)
|
|
|
|
|
{
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
flag = false;
|
|
|
|
|
LogDelegateEvent?.Invoke($"获取物料编码:{materialCode}");
|
|
|
|
|
Console.WriteLine($"获取物料编码:{materialCode}");
|
|
|
|
|
obj.plc.WriteString("DB200.132", materialCode);
|
|
|
|
|
int store = obj.plc.ReadInt16("DB200.438");//读取货道
|
|
|
|
|
Console.WriteLine($"进入货道:{store}");
|
|
|
|
|
if (store == 0) continue;
|
|
|
|
|
{
|
|
|
|
|
LogDelegateEvent?.Invoke($"物料编码:{materialCode},进入货道:{store}货道");
|
|
|
|
|
bool r = obj.plc.WriteInt16("DB200.2", "1");
|
|
|
|
|
Console.WriteLine($"写入应答字为:1,写入结果为:{r}");
|
|
|
|
|
LogDelegateEvent?.Invoke($"写入应答字为:1,写入结果为:{r}");
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
LogDelegateEvent?.Invoke($"等待PLC入库完成信号....");
|
|
|
|
|
int an = obj.plc.ReadInt16("DB200.86");
|
|
|
|
|
if (an == 2)
|
|
|
|
|
{
|
|
|
|
|
LogDelegateEvent?.Invoke($"物料入库完成,清空物料信息。");
|
|
|
|
|
obj.plc.WriteString("DB200.132", "");
|
|
|
|
|
obj.plc.WriteInt16("DB200.86", "0");
|
|
|
|
|
|
|
|
|
|
//任务完成更新任务状态
|
|
|
|
|
realTaskInfo.TaskStatus = 3;
|
|
|
|
|
_ = _realTaskInfoService.UpdateAsync(realTaskInfo).Result;
|
|
|
|
|
//更新货道入库
|
|
|
|
|
await EnterStore(realTaskInfo.MaterialCode, store);
|
|
|
|
|
//更新过点数
|
|
|
|
|
await UpdateComplete(realTaskInfo.MaterialCode);
|
|
|
|
|
Console.WriteLine($"箱体入库成功!入库货道为:{store}货道");
|
|
|
|
|
LogDelegateEvent?.Invoke($"箱体入库成功!入库货道为:{store}货道");
|
|
|
|
|
RefreshInStoreTaskEvent?.Invoke(realTaskInfo);//刷新datagrid 列表
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logHelper.Error($"入库业务异常:{ex}");
|
|
|
|
|
LogDelegateEvent?.Invoke($"入库业务异常:{ex}");
|
|
|
|
|
Console.WriteLine($"入库业务异常:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("PLC连接中...");
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
} while (true);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 更新过点数
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 更新过点数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="materialBarCode"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task UpdateComplete(string materialBarCode)
|
|
|
|
|
{
|
|
|
|
|
#region 更新过点数据
|
|
|
|
|
PrintBarCode print = await _printBarCodeServices.FirstAsync(x => x.MaterialBarcode == materialBarCode);
|
|
|
|
|
MaterialCompletion completion = new MaterialCompletion();
|
|
|
|
|
completion.OrderCode = print.OrderCode;
|
|
|
|
|
completion.MaterialBarcode = materialBarCode;
|
|
|
|
|
completion.MaterialCode = print.MaterialCode;
|
|
|
|
|
completion.MaterialName = print.MaterialName;
|
|
|
|
|
completion.StationName = "1004";
|
|
|
|
|
completion.ProductLineCode = "CX_02";
|
|
|
|
|
completion.isDownLine = 0;
|
|
|
|
|
completion.CompleteDate = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
int i = await _iMaterialCompletionServices.AddAsync(completion);
|
|
|
|
|
Console.WriteLine($"过点数更新结果为{i > 0}");
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 20240315之前
|
|
|
|
|
|
|
|
|
|
#region 初始化入库任务---模拟测试启用
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化入库任务
|
|
|
|
@ -138,7 +423,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
logHelper.Info(ex.Message.ToString());
|
|
|
|
|
Console.WriteLine($"初始化异常:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 定时器实时监测入库出库完成信号
|
|
|
|
@ -194,7 +479,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 获取入库任务下发plc
|
|
|
|
@ -274,7 +559,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
logHelper.Info("获取待执行的入库任务异常", ex);
|
|
|
|
|
}
|
|
|
|
|
return taskInfo;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 入库
|
|
|
|
@ -446,7 +731,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
|
|
|
|
|
info = info.Where(x => x.SpaceStatus == 1 && x.SpaceCapacity > (x.SpaceStock + x.OnRouteAmount)).ToList();
|
|
|
|
|
if (info == null || info.Count == 0) return result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result = info.OrderByDescending(x => x.SpaceStock).First();
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
@ -476,7 +761,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
spaceInfo.SpaceStock = obj.plc.ReadInt16(spaceAddress.onStore);//获取
|
|
|
|
|
}
|
|
|
|
|
return spaceInfo;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
@ -512,7 +797,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
//写入货道物料类型
|
|
|
|
|
obj.plc.WriteString(spaceAddress.materialType, taskInfo.BoxType);
|
|
|
|
|
//写入货道号,plc收到货道号开始入库,并非应答字,所以货道号最后下发
|
|
|
|
|
obj.plc.WriteInt16("DB200.0", taskInfo.SpaceCode.Substring(7,1));
|
|
|
|
|
obj.plc.WriteInt16("DB200.0", taskInfo.SpaceCode.Substring(7, 1));
|
|
|
|
|
//写入完成后读取反馈号进行复位
|
|
|
|
|
ReadShellAnswer_InStore(taskInfo);
|
|
|
|
|
result = true;
|
|
|
|
@ -540,37 +825,37 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("泡前库Plc"));
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (obj != null && obj.plc.IsConnected)
|
|
|
|
|
|
|
|
|
|
if (obj != null && obj.plc.IsConnected)
|
|
|
|
|
{
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
do
|
|
|
|
|
//读取PLC反馈号,上位机清空写入的入库内容
|
|
|
|
|
if (obj.plc.ReadInt16("DB200.86") == 2)
|
|
|
|
|
{
|
|
|
|
|
//读取PLC反馈号,上位机清空写入的入库内容
|
|
|
|
|
if (obj.plc.ReadInt16("DB200.86") == 2)
|
|
|
|
|
{
|
|
|
|
|
obj.plc.WriteInt16("DB200.86", "0");
|
|
|
|
|
//-------------plc清
|
|
|
|
|
//写入货道号
|
|
|
|
|
obj.plc.WriteInt16("DB200.0", "0");
|
|
|
|
|
// 写入应答字
|
|
|
|
|
obj.plc.WriteInt16("DB200.2", "0");
|
|
|
|
|
//写入货道物料类型
|
|
|
|
|
// obj.plc.WriteInt16(spaceAddress.materialType, taskInfo.MaterialType);
|
|
|
|
|
//----------------------
|
|
|
|
|
|
|
|
|
|
isFlag = false;
|
|
|
|
|
InStoreAnswer(taskInfo.TaskCode);
|
|
|
|
|
// TaskInfos.Add(taskInfo);
|
|
|
|
|
// ReadShellFinish_InStore(taskCode);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
} while (isFlag);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("PLC未连接");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
obj.plc.WriteInt16("DB200.86", "0");
|
|
|
|
|
//-------------plc清
|
|
|
|
|
//写入货道号
|
|
|
|
|
obj.plc.WriteInt16("DB200.0", "0");
|
|
|
|
|
// 写入应答字
|
|
|
|
|
obj.plc.WriteInt16("DB200.2", "0");
|
|
|
|
|
//写入货道物料类型
|
|
|
|
|
// obj.plc.WriteInt16(spaceAddress.materialType, taskInfo.MaterialType);
|
|
|
|
|
//----------------------
|
|
|
|
|
|
|
|
|
|
isFlag = false;
|
|
|
|
|
InStoreAnswer(taskInfo.TaskCode);
|
|
|
|
|
// TaskInfos.Add(taskInfo);
|
|
|
|
|
// ReadShellFinish_InStore(taskCode);
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(500);
|
|
|
|
|
} while (isFlag);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logHelper.Info("PLC未连接");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
@ -579,7 +864,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 泡前库执行反馈
|
|
|
|
|
/// </summary>
|
|
|
|
@ -785,7 +1070,8 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|