|
@@ -1459,7 +1459,7 @@ namespace wms.service.Service
|
|
|
_billInvinitrepository.Delete(x => SpoolNoGroup.Contains(x.ContGrpBarCode));
|
|
|
_billSpoolTransrepository.Delete(x => SpoolNoGroup.Contains(x.ConBarCode));
|
|
|
var materiel = _basematerrepository.GetSingle(p => p.Code == stackHeader.ProMaterCode);
|
|
|
- var wareHouse = _basewarehouserepository.GetFirst(x => x.Code == "1"); //TODO:1换成满托平库满盘Code
|
|
|
+ var wareHouse = _basewarehouserepository.GetFirst(x => x.Code == "CRZP"); //TODO:1换成满托平库满盘Code
|
|
|
var barInfoList = new List<BillInvinit>();
|
|
|
var invNowList = new List<BillInvnow>();
|
|
|
var invFlowList = new List<BillInvflow>();
|
|
@@ -1618,7 +1618,7 @@ namespace wms.service.Service
|
|
|
{
|
|
|
_db.BeginTran();
|
|
|
|
|
|
- var wareHouse = _basewarehouserepository.GetFirst(x => x.Code == "1"); //TODO:1换成退料平库满盘Code
|
|
|
+ var wareHouse = _basewarehouserepository.GetFirst(x => x.Code == "CRTL"); //TODO:1换成退料平库满盘Code
|
|
|
|
|
|
//创建入库记录
|
|
|
var createStockInWcsTaskReqest = new FJCreateStockInWcsTaskRequest
|
|
@@ -1628,7 +1628,7 @@ namespace wms.service.Service
|
|
|
Qty = 1,
|
|
|
Floor = 1,
|
|
|
MatCode = "",
|
|
|
- EquCode = "",
|
|
|
+ EquCode = mac.Station,
|
|
|
Type = TaskType.EnterDepot,
|
|
|
DocCode = "",
|
|
|
WorkBench = mac.Station, //TODO:是否是AGV站台
|
|
@@ -2317,12 +2317,13 @@ namespace wms.service.Service
|
|
|
"2S" => "SRM4",
|
|
|
"3N" => "SRM5",
|
|
|
"3S" => "SRM6",
|
|
|
+ "CRZP" => "CR",
|
|
|
_ => wareCell.WarehouseCode
|
|
|
},
|
|
|
WorkBench = mach.Station,
|
|
|
WarehouseCode = wareCell.TypeNum == FjLocationType.Storage
|
|
|
? wareCell.WarehouseCode
|
|
|
- : mach.WarehouseCode, //如果是芯股的话就使用叫料机台对应的仓库
|
|
|
+ : mach.WarehouseCode, //如果是芯股的话就使用叫料机台对应的仓库
|
|
|
BusType = FJTaskBusType.车间叫料,
|
|
|
LastInteractionPoint = reqDto.Type,
|
|
|
MesNo = reqDto.ReqId,
|
|
@@ -7234,6 +7235,10 @@ namespace wms.service.Service
|
|
|
//检查历史任务表是否有任务
|
|
|
var task = _wcstaskoldrepository.AsQueryable().With(SqlWith.NoLock)
|
|
|
.Where(p => p.Id == reqDto.TaskNum).SplitTable(tabs => tabs.Take(2)).First();
|
|
|
+ var isBackRewind = _wcstaskoldrepository.AsQueryable().With("WITH(READPAST,ROWLOCK)")
|
|
|
+ .Where(p => p.Id == reqDto.TaskNum && p.BusType == FJTaskBusType.帘线退料重绕.GetDescription()).SplitTable(tabs => tabs.Take(2)).Any();
|
|
|
+ var isRewindIn = _wcstaskoldrepository.AsQueryable().With("WITH(READPAST,ROWLOCK)")
|
|
|
+ .Where(p => p.Id == reqDto.TaskNum && p.BusType == FJTaskBusType.重绕满托入库.GetDescription()).SplitTable(tabs => tabs.Take(2)).Any();
|
|
|
if (task == null)
|
|
|
{
|
|
|
result.ResMsg = reqDto.TaskNum + ResponseStatusCodeEnum.WcsTaskNotExist.GetDescription();
|
|
@@ -7320,24 +7325,116 @@ namespace wms.service.Service
|
|
|
|
|
|
try
|
|
|
{
|
|
|
- //检擦库存信息是否正确
|
|
|
- var stock = _billInvnowrepository.GetFirst(p =>
|
|
|
- (p.ContGrpBarCode == task.BarCode || p.HWBarCode == task.BarCode)
|
|
|
- && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
- if (stock == null)
|
|
|
+ if (isBackRewind)
|
|
|
{
|
|
|
- result.ResMsg = task.BarCode + "没有已组盘的信息";
|
|
|
- return result;
|
|
|
+ var warehouse = _basewarehouserepository.GetSingle(p => p.Code == task.WarehouseCode);
|
|
|
+ _db.BeginTran();
|
|
|
+ if (task.AddrTo == "9001" || task.AddrTo == "9101")
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ _db.CommitTran();
|
|
|
}
|
|
|
+ else if (isRewindIn)
|
|
|
+ {
|
|
|
+ //检查库存信息是否正确
|
|
|
+ var stock = _billInvnowrepository.GetFirst(p =>
|
|
|
+ (p.ContGrpBarCode == task.BarCode || p.HWBarCode == task.BarCode)
|
|
|
+ && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
+ if (stock == null)
|
|
|
+ {
|
|
|
+ result.ResMsg = task.BarCode + "没有已组盘的信息";
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- var warehouse = _basewarehouserepository.GetSingle(p => p.Code == task.WarehouseCode);
|
|
|
- _db.BeginTran();
|
|
|
- var row = int.Parse(task.AddrTo.Split('-')[0]);
|
|
|
- var col = int.Parse(task.AddrTo.Split('-')[1]);
|
|
|
- var layer = int.Parse(task.AddrTo.Split('-')[2]);
|
|
|
+ var warehouse = _basewarehouserepository.GetSingle(p => p.Code == task.WarehouseCode);
|
|
|
+ _db.BeginTran();
|
|
|
|
|
|
- //更新库存
|
|
|
- _billInvnowrepository.UpdateModelColumns(p => new BillInvnow
|
|
|
+ //更新库存
|
|
|
+ _billInvnowrepository.UpdateModelColumns(p => new BillInvnow
|
|
|
+ {
|
|
|
+ InvStateCode = InvState.InvEcecState_In.ToString(),
|
|
|
+ WarehouseId = warehouse.Id,
|
|
|
+ OneInTime = DateTime.Now,
|
|
|
+ EditTime = DateTime.Now
|
|
|
+ },
|
|
|
+ p => p.ContGrpBarCode == task.BarCode &&
|
|
|
+ p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
+
|
|
|
+
|
|
|
+ //更新货位
|
|
|
+ _basewarecellrepository.UpdateModelColumns(p => new BaseWarecell
|
|
|
+ {
|
|
|
+ StateNum = FjLocationState.Full,
|
|
|
+ ContGrpBarCode = stock.ContGrpBarCode,
|
|
|
+ ContGrpId = stock.ContGrpId,
|
|
|
+ EditTime = DateTime.Now
|
|
|
+ }, p => p.Code.Contains(task.AddrTo) && p.WarehouseId == warehouse.Id);
|
|
|
+
|
|
|
+ //增加流水信息
|
|
|
+ var enterDepotstocklist = _billInvnowrepository.GetList(p =>
|
|
|
+ p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_In.ToString());
|
|
|
+ foreach (var item in enterDepotstocklist)
|
|
|
+ {
|
|
|
+ item.Id = IdFactory.NewId();
|
|
|
+ item.AddTime = DateTime.Now;
|
|
|
+ }
|
|
|
+
|
|
|
+ _billInvflow.InsertRange(_mapper.Map<List<BillInvflow>>(enterDepotstocklist));
|
|
|
+
|
|
|
+ //添加反馈信息
|
|
|
+
|
|
|
+ var pushtype = fjFackbeekType.InterfaceType_FJ_StockIn.ToString();
|
|
|
+ var list = new List<BillPushinfo>();
|
|
|
+ foreach (var item in enterDepotstocklist)
|
|
|
+ list.Add(new BillPushinfo
|
|
|
+ {
|
|
|
+ DocsNo = stock.ExecDocsNo,
|
|
|
+ TypeCode = pushtype,
|
|
|
+ RFIDBarCode = stock.ContGrpBarCode,
|
|
|
+ HWBarCode = item.HWBarCode,
|
|
|
+ CLBarCode = item.CLBarCode,
|
|
|
+ WarehouseId = warehouse.Id,
|
|
|
+ WarehouseCode = warehouse.Code,
|
|
|
+ WareCellId = 0,
|
|
|
+ WareCellCode = task.AddrTo,
|
|
|
+ MatId = item.MatId,
|
|
|
+ MatCode = item.MatCode,
|
|
|
+ MatName = item.MatName,
|
|
|
+ TolWQty = item.TolWQty,
|
|
|
+ NetWQty = item.NetWQty,
|
|
|
+ TareWQty = item.TareWQty,
|
|
|
+ ReqNo = Guid.NewGuid().ToString()
|
|
|
+ });
|
|
|
+ if (stock.ContGrpType == FJContGrpType.Material) _billPushinforepository.InsertRange(list);
|
|
|
+ _db.CommitTran();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //检查库存信息是否正确
|
|
|
+ var stock = _billInvnowrepository.GetFirst(p =>
|
|
|
+ (p.ContGrpBarCode == task.BarCode || p.HWBarCode == task.BarCode)
|
|
|
+ && p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
+ if (stock == null)
|
|
|
+ {
|
|
|
+ result.ResMsg = task.BarCode + "没有已组盘的信息";
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ var warehouse = _basewarehouserepository.GetSingle(p => p.Code == task.WarehouseCode);
|
|
|
+ _db.BeginTran();
|
|
|
+
|
|
|
+ var row = int.Parse(task.AddrTo.Split('-')[0]);
|
|
|
+ var col = int.Parse(task.AddrTo.Split('-')[1]);
|
|
|
+ var layer = int.Parse(task.AddrTo.Split('-')[2]);
|
|
|
+
|
|
|
+ //更新库存
|
|
|
+ _billInvnowrepository.UpdateModelColumns(p => new BillInvnow
|
|
|
{
|
|
|
InvStateCode = InvState.InvEcecState_In.ToString(),
|
|
|
WarehouseId = warehouse.Id,
|
|
@@ -7347,55 +7444,57 @@ namespace wms.service.Service
|
|
|
OneInTime = DateTime.Now,
|
|
|
EditTime = DateTime.Now
|
|
|
},
|
|
|
- p => p.ContGrpBarCode == task.BarCode &&
|
|
|
- p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
+ p => p.ContGrpBarCode == task.BarCode &&
|
|
|
+ p.InvStateCode == InvState.InvEcecState_BuildUp.ToString());
|
|
|
|
|
|
- //更新货位
|
|
|
- _basewarecellrepository.UpdateModelColumns(p => new BaseWarecell
|
|
|
- {
|
|
|
- StateNum = FjLocationState.Full,
|
|
|
- ContGrpBarCode = stock.ContGrpBarCode,
|
|
|
- ContGrpId = stock.ContGrpId,
|
|
|
- EditTime = DateTime.Now
|
|
|
- }, p => p.Code.Contains(task.AddrTo) && p.WarehouseId == warehouse.Id);
|
|
|
|
|
|
- //增加流水信息
|
|
|
- var enterDepotstocklist = _billInvnowrepository.GetList(p =>
|
|
|
- p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_In.ToString());
|
|
|
- foreach (var item in enterDepotstocklist)
|
|
|
- {
|
|
|
- item.Id = IdFactory.NewId();
|
|
|
- item.AddTime = DateTime.Now;
|
|
|
- }
|
|
|
+ //更新货位
|
|
|
+ _basewarecellrepository.UpdateModelColumns(p => new BaseWarecell
|
|
|
+ {
|
|
|
+ StateNum = FjLocationState.Full,
|
|
|
+ ContGrpBarCode = stock.ContGrpBarCode,
|
|
|
+ ContGrpId = stock.ContGrpId,
|
|
|
+ EditTime = DateTime.Now
|
|
|
+ }, p => p.Code.Contains(task.AddrTo) && p.WarehouseId == warehouse.Id);
|
|
|
|
|
|
- _billInvflow.InsertRange(_mapper.Map<List<BillInvflow>>(enterDepotstocklist));
|
|
|
+ //增加流水信息
|
|
|
+ var enterDepotstocklist = _billInvnowrepository.GetList(p =>
|
|
|
+ p.ContGrpBarCode == task.BarCode && p.InvStateCode == InvState.InvEcecState_In.ToString());
|
|
|
+ foreach (var item in enterDepotstocklist)
|
|
|
+ {
|
|
|
+ item.Id = IdFactory.NewId();
|
|
|
+ item.AddTime = DateTime.Now;
|
|
|
+ }
|
|
|
|
|
|
- //添加反馈信息
|
|
|
+ _billInvflow.InsertRange(_mapper.Map<List<BillInvflow>>(enterDepotstocklist));
|
|
|
|
|
|
- var pushtype = fjFackbeekType.InterfaceType_FJ_StockIn.ToString();
|
|
|
- var list = new List<BillPushinfo>();
|
|
|
- foreach (var item in enterDepotstocklist)
|
|
|
- list.Add(new BillPushinfo
|
|
|
- {
|
|
|
- DocsNo = stock.ExecDocsNo,
|
|
|
- TypeCode = pushtype,
|
|
|
- RFIDBarCode = stock.ContGrpBarCode,
|
|
|
- HWBarCode = item.HWBarCode,
|
|
|
- CLBarCode = item.CLBarCode,
|
|
|
- WarehouseId = warehouse.Id,
|
|
|
- WarehouseCode = warehouse.Code,
|
|
|
- WareCellId = 0,
|
|
|
- WareCellCode = task.AddrTo,
|
|
|
- MatId = item.MatId,
|
|
|
- MatCode = item.MatCode,
|
|
|
- MatName = item.MatName,
|
|
|
- TolWQty = item.TolWQty,
|
|
|
- NetWQty = item.NetWQty,
|
|
|
- TareWQty = item.TareWQty,
|
|
|
- ReqNo = Guid.NewGuid().ToString()
|
|
|
- });
|
|
|
- if (stock.ContGrpType == FJContGrpType.Material) _billPushinforepository.InsertRange(list);
|
|
|
- _db.CommitTran();
|
|
|
+ //添加反馈信息
|
|
|
+
|
|
|
+ var pushtype = fjFackbeekType.InterfaceType_FJ_StockIn.ToString();
|
|
|
+ var list = new List<BillPushinfo>();
|
|
|
+ foreach (var item in enterDepotstocklist)
|
|
|
+ list.Add(new BillPushinfo
|
|
|
+ {
|
|
|
+ DocsNo = stock.ExecDocsNo,
|
|
|
+ TypeCode = pushtype,
|
|
|
+ RFIDBarCode = stock.ContGrpBarCode,
|
|
|
+ HWBarCode = item.HWBarCode,
|
|
|
+ CLBarCode = item.CLBarCode,
|
|
|
+ WarehouseId = warehouse.Id,
|
|
|
+ WarehouseCode = warehouse.Code,
|
|
|
+ WareCellId = 0,
|
|
|
+ WareCellCode = task.AddrTo,
|
|
|
+ MatId = item.MatId,
|
|
|
+ MatCode = item.MatCode,
|
|
|
+ MatName = item.MatName,
|
|
|
+ TolWQty = item.TolWQty,
|
|
|
+ NetWQty = item.NetWQty,
|
|
|
+ TareWQty = item.TareWQty,
|
|
|
+ ReqNo = Guid.NewGuid().ToString()
|
|
|
+ });
|
|
|
+ if (stock.ContGrpType == FJContGrpType.Material) _billPushinforepository.InsertRange(list);
|
|
|
+ _db.CommitTran();
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|