|
|
@ -111,11 +111,11 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
spaceAddresses.Add(spaceConfig.GetSpaceAddress(storeCode, space.SpaceCode));
|
|
|
|
spaceAddresses.Add(spaceConfig.GetSpaceAddress(storeCode, space.SpaceCode));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 模拟入库
|
|
|
|
// 模拟入库
|
|
|
|
//Task.Run(() =>
|
|
|
|
Task.Run(() =>
|
|
|
|
//{
|
|
|
|
{
|
|
|
|
// Thread.Sleep(2000);
|
|
|
|
Thread.Sleep(5000);
|
|
|
|
// InStore("B24010181060282920011");
|
|
|
|
InStore("B24010183025024860011");
|
|
|
|
//});
|
|
|
|
});
|
|
|
|
//实时监测入库任务下发和入库任务完成
|
|
|
|
//实时监测入库任务下发和入库任务完成
|
|
|
|
StartPassDownAndRealInstoreFinish();
|
|
|
|
StartPassDownAndRealInstoreFinish();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -272,6 +272,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
BaseSpaceInfo spaceInfo = await GetSpaceInfoByMaterialType(storeCode, materialType);
|
|
|
|
BaseSpaceInfo spaceInfo = await GetSpaceInfoByMaterialType(storeCode, materialType);
|
|
|
|
if (spaceInfo != null)
|
|
|
|
if (spaceInfo != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
logHelper.Info($"匹配货道:{spaceInfo.ToJson()}");
|
|
|
|
logHelper.Info($"匹配货道:{spaceInfo.ToJson()}");
|
|
|
|
LogDelegateEvent?.Invoke($"匹配货道:{spaceInfo.ToJson()}");
|
|
|
|
LogDelegateEvent?.Invoke($"匹配货道:{spaceInfo.ToJson()}");
|
|
|
|
|
|
|
|
|
|
|
@ -298,6 +299,8 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//报警停线
|
|
|
|
//报警停线
|
|
|
|
|
|
|
|
LogDelegateEvent?.Invoke($"未匹配到货道,请设置货道型号!");
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
|
|
catch (Exception ex)
|
|
|
@ -364,18 +367,37 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
BaseSpaceInfo result = null;
|
|
|
|
BaseSpaceInfo result = null;
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// List<BaseSpaceInfo> info = _spaceInfoService.GetBaseSpaceInfosByMaterialType(storeCode, materialType);
|
|
|
|
|
|
|
|
List<BaseSpaceInfo> info = await _baseSpaceInfoServices.InStoreGetSpaceInfoByMaterialType(storeCode, materialType);
|
|
|
|
List<BaseSpaceInfo> info = await _baseSpaceInfoServices.InStoreGetSpaceInfoByMaterialType(storeCode, materialType);
|
|
|
|
if (info != null)
|
|
|
|
if (info != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (info.Count > 0)
|
|
|
|
if (info.Count > 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
// 更新货道库存
|
|
|
|
foreach (BaseSpaceInfo item in info)
|
|
|
|
foreach (BaseSpaceInfo item in info)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var spaceInfo = ReadSpaceInfoByPlc(item);
|
|
|
|
var spaceInfo = ReadSpaceInfoByPlc(item);
|
|
|
|
item.SpaceStock = spaceInfo.SpaceStock;
|
|
|
|
item.SpaceStock = spaceInfo.SpaceStock;
|
|
|
|
// item.OnRouteAmount = spaceInfo.OnRouteAmount;
|
|
|
|
|
|
|
|
// item.SpaceStatus = spaceInfo.SpaceStatus;
|
|
|
|
if(item.typeCodeB.Equals(materialType) && (item.SpaceStock+item.OnRouteAmount)==0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
string str1 = item.typeCodeB;
|
|
|
|
|
|
|
|
string str2 = item.typeNameB;
|
|
|
|
|
|
|
|
item.typeCodeB = item.MaterialType;
|
|
|
|
|
|
|
|
item.typeNameB = item.typeNameA;
|
|
|
|
|
|
|
|
item.MaterialType = str1;
|
|
|
|
|
|
|
|
item.typeNameA = str2;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 对调C型号和主型号
|
|
|
|
|
|
|
|
else if(spaceInfo.typeCodeC.Equals(materialType) && (item.SpaceStock + item.OnRouteAmount) == 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
string str1 = item.typeCodeC;
|
|
|
|
|
|
|
|
string str2 = item.typeNameC;
|
|
|
|
|
|
|
|
item.typeCodeC = item.MaterialType;
|
|
|
|
|
|
|
|
item.typeNameC = item.typeNameA;
|
|
|
|
|
|
|
|
item.MaterialType = str1;
|
|
|
|
|
|
|
|
item.typeNameA = str2;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
info = info.Where(x => x.SpaceStatus == 1 && x.SpaceCapacity > (x.SpaceStock + x.OnRouteAmount)).ToList();
|
|
|
|
info = info.Where(x => x.SpaceStatus == 1 && x.SpaceCapacity > (x.SpaceStock + x.OnRouteAmount)).ToList();
|
|
|
@ -407,8 +429,7 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
SpaceAddress spaceAddress = spaceConfig.GetSpaceAddress(spaceInfo.StoreCode, spaceInfo.SpaceCode);
|
|
|
|
SpaceAddress spaceAddress = spaceConfig.GetSpaceAddress(spaceInfo.StoreCode, spaceInfo.SpaceCode);
|
|
|
|
spaceInfo.SpaceStock = obj.plc.ReadInt16(spaceAddress.onStore);
|
|
|
|
spaceInfo.SpaceStock = obj.plc.ReadInt16(spaceAddress.onStore);
|
|
|
|
// spaceInfo.OnRouteAmount = obj.plc.ReadInt32(spaceAddress.onRoute);
|
|
|
|
|
|
|
|
// spaceInfo.SpaceStatus = obj.plc.ReadInt32(spaceAddress.spaceStatus);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return spaceInfo;
|
|
|
|
return spaceInfo;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -551,12 +572,15 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
#region Add By wenjy 2023-10-30 13:44:00 通过PLC获取货道信息
|
|
|
|
#region Add By wenjy 2023-10-30 13:44:00 通过PLC获取货道信息
|
|
|
|
var item = ReadSpaceInfoByPlc(spaceInfo);
|
|
|
|
var item = ReadSpaceInfoByPlc(spaceInfo);
|
|
|
|
spaceInfo.SpaceStock = item.SpaceStock;
|
|
|
|
spaceInfo.SpaceStock = item.SpaceStock;
|
|
|
|
|
|
|
|
if (spaceInfo.OnRouteAmount>0)
|
|
|
|
|
|
|
|
{
|
|
|
|
// 入库完成,在途减1
|
|
|
|
// 入库完成,在途减1
|
|
|
|
spaceInfo.OnRouteAmount -= 1;
|
|
|
|
spaceInfo.OnRouteAmount -= 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
await _baseSpaceInfoServices.UpdateSpaceInfo(spaceInfo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 添加货道明细 不控制出库,暂时未添加明细
|
|
|
|
#region 添加货道明细 不控制出库,暂时未添加明细
|
|
|
|
BaseSpaceDetail spaceDetail = new BaseSpaceDetail();
|
|
|
|
BaseSpaceDetail spaceDetail = new BaseSpaceDetail();
|
|
|
@ -580,10 +604,15 @@ namespace Aucma.Core.BoxFoam.Business
|
|
|
|
recordInstore.InStoreTime = DateTime.Now;
|
|
|
|
recordInstore.InStoreTime = DateTime.Now;
|
|
|
|
recordInstore.BarCodeCode = taskInfo.MaterialCode;
|
|
|
|
recordInstore.BarCodeCode = taskInfo.MaterialCode;
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
bool result = await _recordInstoreServices.SaveRecordToDb(recordInstore, taskInfo, spaceInfo, spaceDetail);
|
|
|
|
|
|
|
|
|
|
|
|
await _baseSpaceInfoServices.UpdateSpaceInfo(spaceInfo);
|
|
|
|
|
|
|
|
_ = _recordInstoreServices.AddAsync(recordInstore).Result;
|
|
|
|
|
|
|
|
bool result = _realTaskInfoService.DeleteAsync(taskInfo).Result;
|
|
|
|
|
|
|
|
// bool result = await _recordInstoreServices.SaveRecordToDb(recordInstore, taskInfo, spaceInfo, spaceDetail);
|
|
|
|
if (result)
|
|
|
|
if (result)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
LogDelegateEvent?.Invoke($"入库完成,更新数据库成功");
|
|
|
|
LogDelegateEvent?.Invoke($"入库完成,更新数据库成功");
|
|
|
|
|
|
|
|
RefreshDataGridDelegateEvent?.Invoke();//刷新datagrid 列表
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|