瀏覽代碼

成品校秤&盘条巷道接口剔除异常巷道

1693994901 1 月之前
父節點
當前提交
8a132f1b8f
共有 3 個文件被更改,包括 80 次插入5 次删除
  1. 5 1
      wms.dto/request/cp/dto/WebPdaRequest.cs
  2. 55 4
      wms.service/Service/CPService.cs
  3. 20 0
      wms.service/Service/PTService.cs

+ 5 - 1
wms.dto/request/cp/dto/WebPdaRequest.cs

@@ -22,7 +22,7 @@ namespace wms.dto.request.cp.dto
         public string ContGrpBarCode { get; set; }
 
         /// <summary>
-        ///  类型 1.间隔版  2.空铁托盘
+        ///  类型 1.间隔版  2.空铁托盘  4.砝码入库
         /// </summary>
         public string? Type { get; set; }
 
@@ -30,6 +30,10 @@ namespace wms.dto.request.cp.dto
         ///  是否强制入5号道
         /// </summary>
         public bool IsForcedIntoLane5 { get; set; } = false;
+        /// <summary>
+        /// 标准托盘重量
+        /// </summary>
+        public decimal Weight { get; set; }
     }
     public class TrayGroupOutRequest : BaseRequest
     {

+ 55 - 4
wms.service/Service/CPService.cs

@@ -872,7 +872,7 @@ namespace wms.service.Service
                             InvStateCode = InvState.InvEcecState_BuildUp.ToString(),
                             ExecStateCode = InvLockState.InvState_Normal.ToString(),
                             MatId = mater.Id,
-                            MatCode = mater.Code,
+                            MatCode = request.Type == "4" ? "FaMa" : mater.Code,
                             RFIDBarCode = request.ContGrpBarCode,
                             HWTypeCode = mater.SpoolType,
                             HWBarCode = request.ContGrpBarCode,
@@ -880,10 +880,10 @@ namespace wms.service.Service
                             MatName = mater.Name,
                             Size = 1,
                             ContGrpType = 2,
-                            TolWQty = 1    //存放托盘数量
+                            TolWQty = request.Type == "4" ? request.Weight : 1    //存放托盘数量
                         };
 
-                        if (request.IsForcedIntoLane5)
+                        if (request.IsForcedIntoLane5 || request.Type == "4")
                         {
                             nov.BatchNo = "10"; //空托盘组库尾入库库存中批号值等于十表示强制入五巷道
                         }
@@ -1315,7 +1315,7 @@ namespace wms.service.Service
                     }
                     else if (stock.ContGrpType == 2)
                     {
-                        BusType = CpTaskBusType.TaskBusType_CP_TrayStockIn.ToString();
+                        BusType = stock.MatCode == "FaMa" ? CpTaskBusType.TaskBusType_CP_WeightIn.ToString() : CpTaskBusType.TaskBusType_CP_TrayStockIn.ToString();
                     }
                     else if (stock.ContGrpType == 3)
                     {
@@ -1457,6 +1457,57 @@ namespace wms.service.Service
                     return result;
                 }
             }
+            else if (BusType == CpTaskBusType.TaskBusType_CP_WeightIn.ToString())
+            {
+                var task = new cpWCS_TaskInfo()
+                {
+                    Status = TaskStatus.NewBuild,
+                    Type = TaskType.EnterDepot,
+                    Priority = 0,
+                    Device = request.Equip,
+                    SrmStation = request.Equip,
+                    AddrFrom = request.Equip,
+                    BarCode = request.Code,
+                    AddWho = "wms",
+                    EditWho = "wms",
+                    WarehouseCode = ware.Code,
+                    AddrTo = "",
+                    Tunnel = "",
+                    MaterialCode = stock.MatCode,
+                    MatCode = stock.MatCode,
+                    BusType =  CpTaskBusType.TaskBusType_CP_WeightIn.GetDescription()
+                };
+
+                if (stock.BatchNo == "10") //空托盘组库尾入库库存中批号值等于十表示强制入五巷道
+                {
+                    task.Floor = 10; //空托盘组库尾入库任务中楼层值等于十表示强制入五巷道
+                }
+                try
+                {
+                    _db.BeginTran();
+                    var task1 = _wcstaskinfo.InsertReturnEntity(task);
+                    _wcstaskold.InsertableSplitTable(_mapper.Map<cpWCS_TaskOld>(task1));
+                    var wcsdetail = new cpWCS_TaskDtl()
+                    {
+                        ID = Guid.NewGuid(),
+                        CurPoint = request.Equip,
+                        AddTime = DateTime.Now,
+                        AddWho = "wms",
+                        Enabled = true,
+                        ParentTaskCode = task1.ID,
+                        Desc = task1.BusType
+                    };
+                    _wcstaskdtl.InsertableSplitTable(wcsdetail);
+                    _db.CommitTran();
+                }
+                catch (Exception ex)
+                {
+                    _db.RollbackTran();
+                    result.ResCode = ResponseStatusCodeEnum.DataSaveErr.GetHashCode();
+                    result.ResMsg = request.Code + ResponseStatusCodeEnum.DataSaveErr.GetDescription() + ex.Message;
+                    return result;
+                }
+            }
             return result;
         }
 

+ 20 - 0
wms.service/Service/PTService.cs

@@ -2512,6 +2512,26 @@ namespace wms.service.Service
 
             //考虑根据物料的分布情况
 
+
+            //获取不可用堆垛机所在巷道
+            var equlist = HttpUtil.GetRequest("http://10.30.35.1:8080/api/Wcs/GetAvaiableStations?name=Station");
+            var srmtunlist = JsonConvert.DeserializeObject<List<string>>(equlist);
+            var tunlist = srmtunlist.Select(p => p).ToList();
+            if (tunlist != null)
+            {
+                var resultTunenlsNew = new List<string>();
+                var resultTunenlsTemp = result.ResData.Split(',');
+                foreach (var tun in resultTunenlsTemp)
+                {
+                    if (!tunlist.Select(p => p).Contains(tun))
+                    {
+                        resultTunenlsNew.Add(tun);
+                    }
+                }
+                result.ResData = string.Join(",", resultTunenlsNew);
+            }
+
+
             //根据配置过滤禁用的巷道
             var disabletunnels = _sysconfigrepository.GetList(p => p.SType == "InStop" && !string.IsNullOrEmpty(p.SContent));
             if (disabletunnels != null && disabletunnels.Any())