|
@@ -5189,6 +5189,7 @@ namespace wms.service.Service
|
|
!x.Out).OrderBy(x => x.AddTime);
|
|
!x.Out).OrderBy(x => x.AddTime);
|
|
BillRingPalletizingInfo ringPalletizingInfo = null;
|
|
BillRingPalletizingInfo ringPalletizingInfo = null;
|
|
if (ringPalletizingInfoList.Any())
|
|
if (ringPalletizingInfoList.Any())
|
|
|
|
+ {
|
|
foreach (var ringPalletizing in ringPalletizingInfoList)
|
|
foreach (var ringPalletizing in ringPalletizingInfoList)
|
|
{
|
|
{
|
|
if (ringPalletizingInfo != null) continue;
|
|
if (ringPalletizingInfo != null) continue;
|
|
@@ -5219,6 +5220,7 @@ namespace wms.service.Service
|
|
ringPalletizingInfo = ringPalletizing;
|
|
ringPalletizingInfo = ringPalletizing;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
if (ringPalletizingInfo != null)
|
|
if (ringPalletizingInfo != null)
|
|
{
|
|
{
|
|
@@ -5245,9 +5247,8 @@ namespace wms.service.Service
|
|
ringPalletizingInfo = null;
|
|
ringPalletizingInfo = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (ringPalletizingInfo == null) //如果没有码垛信息
|
|
|
|
- {
|
|
|
|
|
|
+ else
|
|
|
|
+ { //如果没有码垛信息
|
|
var bomsetGrp =
|
|
var bomsetGrp =
|
|
_billBomsetgrpRepository.GetFirst(x => x.IsStop == 0 && x.BomCode.Contains(wcsTask.MatCode));
|
|
_billBomsetgrpRepository.GetFirst(x => x.IsStop == 0 && x.BomCode.Contains(wcsTask.MatCode));
|
|
if (bomsetGrp == null)
|
|
if (bomsetGrp == null)
|
|
@@ -6619,7 +6620,10 @@ namespace wms.service.Service
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
- if (wareHosue.TypeNum == FjLocationType.RingLibrary) //环形库需要验证一下库存信息
|
|
|
|
|
|
+ var isDP = GetIsDirectPalletizing(reqDto.RobotCode);
|
|
|
|
+
|
|
|
|
+ if (wareHosue.TypeNum == FjLocationType.RingLibrary && !isDP) //环形库需要验证一下库存信息
|
|
|
|
+ {
|
|
foreach (var code in reqDto.TaskCode)
|
|
foreach (var code in reqDto.TaskCode)
|
|
{
|
|
{
|
|
var billInvnow = _billInvnowrepository.GetSingle(x => x.HWBarCode == code);
|
|
var billInvnow = _billInvnowrepository.GetSingle(x => x.HWBarCode == code);
|
|
@@ -6637,6 +6641,7 @@ namespace wms.service.Service
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
#endregion 检查工字轮任务是否有效
|
|
#endregion 检查工字轮任务是否有效
|
|
|
|
|
|
@@ -6663,26 +6668,59 @@ namespace wms.service.Service
|
|
switch (wareHosue.TypeNum)
|
|
switch (wareHosue.TypeNum)
|
|
{
|
|
{
|
|
case FjLocationType.RingLibrary:
|
|
case FjLocationType.RingLibrary:
|
|
- if (stock == null)
|
|
|
|
|
|
+ if (isDP)
|
|
{
|
|
{
|
|
- _db.RollbackTran();
|
|
|
|
- res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
|
|
|
|
- res.ResMsg = $"{code}未找到库存信息";
|
|
|
|
- return res;
|
|
|
|
- }
|
|
|
|
|
|
+ if (stock != null)
|
|
|
|
+ {
|
|
|
|
+ _db.RollbackTran();
|
|
|
|
+ res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
|
|
|
|
+ res.ResMsg = $"{code}已有库存信息";
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
|
|
- //更新库存信息
|
|
|
|
- _billInvnowrepository.UpdateModelColumns(
|
|
|
|
- x => new BillInvnow
|
|
|
|
|
|
+ //将条码表映射到库存表
|
|
|
|
+ stock = _mapper.Map<BillInvnow>(billInv);
|
|
|
|
+ stock.AddTime = DateTime.Now;
|
|
|
|
+ stock.Id = IdFactory.NewId();
|
|
|
|
+ stock.ContGrpId = contGrpId;
|
|
|
|
+ stock.ContGrpType = FJContGrpType.Material;
|
|
|
|
+ stock.ContGrpBarCode = reqDto.PalletCode;
|
|
|
|
+ stock.WarehouseId = wareHosue.Id;
|
|
|
|
+ stock.IsFail = reqDto.IsFail;
|
|
|
|
+ stock.FailReason = reqDto.FailReason;
|
|
|
|
+ stock.InvStateCode = InvState.InvEcecState_BuildUp.ToString();
|
|
|
|
+
|
|
|
|
+ if (!_billInvnowrepository.Insert(stock))
|
|
{
|
|
{
|
|
- WarehouseId = wareHosue.Id,
|
|
|
|
- ContGrpId = contGrpId,
|
|
|
|
- ContGrpType = FJContGrpType.Material,
|
|
|
|
- ContGrpBarCode = reqDto.PalletCode,
|
|
|
|
- IsFail = reqDto.IsFail,
|
|
|
|
- FailReason = reqDto.FailReason
|
|
|
|
- },
|
|
|
|
- x => x.Id == stock.Id && x.InvStateCode == FJInvState.InvEcecState_BuildUp.ToString());
|
|
|
|
|
|
+ _db.RollbackTran();
|
|
|
|
+ res.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
|
|
|
|
+ res.ResMsg = "库存信息存储失败";
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if (stock == null)
|
|
|
|
+ {
|
|
|
|
+ _db.RollbackTran();
|
|
|
|
+ res.ResCode = ResponseStatusCodeEnum.Fail.GetHashCode();
|
|
|
|
+ res.ResMsg = $"{code}未找到库存信息";
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //更新库存信息
|
|
|
|
+ _billInvnowrepository.UpdateModelColumns(
|
|
|
|
+ x => new BillInvnow
|
|
|
|
+ {
|
|
|
|
+ WarehouseId = wareHosue.Id,
|
|
|
|
+ ContGrpId = contGrpId,
|
|
|
|
+ ContGrpType = FJContGrpType.Material,
|
|
|
|
+ ContGrpBarCode = reqDto.PalletCode,
|
|
|
|
+ IsFail = reqDto.IsFail,
|
|
|
|
+ FailReason = reqDto.FailReason
|
|
|
|
+ },
|
|
|
|
+ x => x.Id == stock.Id && x.InvStateCode == FJInvState.InvEcecState_BuildUp.ToString());
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
|
|
|
|
case FjLocationType.Storage:
|
|
case FjLocationType.Storage:
|
|
@@ -9035,6 +9073,28 @@ namespace wms.service.Service
|
|
|
|
|
|
//return res;
|
|
//return res;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取当前设备是否直接码垛
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="devCode"></param>
|
|
|
|
+ /// <param name="db"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public bool GetIsDirectPalletizing(string devCode)
|
|
|
|
+ {
|
|
|
|
+ var code = $"{devCode}DirectPalletizing";
|
|
|
|
+ var isDP = _sysconfigrepository.AsQueryable().With(SqlWith.NoLock).Single(x => x.Code == code);
|
|
|
|
+ if (isDP == null)
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ var isDirectPalletizing = Convert.ToInt32(isDP.SContent);
|
|
|
|
+ if (isDirectPalletizing == 0 || isDirectPalletizing != 1)
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public static class TaslEx
|
|
public static class TaslEx
|
|
@@ -9213,6 +9273,11 @@ namespace wms.service.Service
|
|
/// 是否为半跺入库
|
|
/// 是否为半跺入库
|
|
/// </summary>
|
|
/// </summary>
|
|
public bool IsItHalf { get; set; }
|
|
public bool IsItHalf { get; set; }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 机械臂设备号,用于判断是否启用直接入库
|
|
|
|
+ /// </summary>
|
|
|
|
+ public string? RobotCode { get; set; }
|
|
}
|
|
}
|
|
|
|
|
|
public class FJGetTwoPalletDto : BaseRequest
|
|
public class FJGetTwoPalletDto : BaseRequest
|