Parcourir la source

Merge branch 'master' of http://120.77.11.229:3000/zuolinhao/ZT-FJ-WMS

林豪 左 il y a 8 mois
Parent
commit
eb826d83bc
1 fichiers modifiés avec 161 ajouts et 62 suppressions
  1. 161 62
      wms.service/Service/FJService.cs

+ 161 - 62
wms.service/Service/FJService.cs

@@ -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)
                     {