Administrator
2024-03-04 9e30be167f6003eb5ea75264a2e0999017425805
出库流程开发
4个文件已修改
77 ■■■■■ 已修改文件
HTML/views/SOSetting/ExportAllot.html 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/SOSetting/ExportAllot.html
@@ -217,6 +217,22 @@
                                        }}
                                        {{ GetBtn7(d) }}
                                    </script>
                                    <script type="text/html" id="templetUnstackingMode">
                                        {{# function GetBtn8(d){
                                                switch (d.UnstackingMode) {
                                                    case "0":
                                                        return "机器人拆垛";
                                                    case "1":
                                                        return "人工拆垛";
                                                    default:
                                                        return "";
                                                }
                                            }
                                        }}
                                        {{ GetBtn8(d) }}
                                    </script>
                                    <!-- #endregion -->
                                </div>                                
                            </div>
@@ -320,7 +336,9 @@
                        {field: 'Status',align: 'center',title: '状态',width: 90,templet: '#templetStatus'},
                        {field: 'Qty',title: '出库数量',align: 'center',width: 90,}, 
                        {field: 'CompleteQty',title: '拣货数量',align: 'center',width: 90}, 
                        {field: 'UnstackingMode',title: '拆垛方式',align: 'center',width: 90,templet: '#templetUnstackingMode'},
                        {field: 'OutMode',title: '出库口',align: 'center',width: 90,templet: '#outType',}, 
                        {field: 'LoadingAddre',title: '装车口',align: 'center',width: 90,templet: '#outType',},
                        {field: 'IsAdvance',title: '拣货类型',align: 'center',width: 90,templet: '#templetIsAdvance'}, 
                        {field: 'SupplierLot',title: '供货批次',align: 'center',width: 110}, 
                        {field: 'LotText',title: '批次描述',align: 'center',width: 150}, 
Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
@@ -257,6 +257,16 @@
        public string OutMode { get; set; }
        /// <summary>
        /// Desc:装车口
        /// </summary>
        public string LoadingAddre { get; set; }
        /// <summary>
        /// Desc:拆垛模式
        /// </summary>
        public string UnstackingMode { get; set; }
        /// <summary>
        /// 创建日期
        /// </summary>
        public DateTime CreateTime { get; set; }
Wms/WMS.BLL/BllSoServer/ExportAllotServer.cs
@@ -75,6 +75,8 @@
                        LogisticsName = b.CarrierName,
                        IsAdvance = a.IsAdvance,
                        OutMode = a.OutMode,
                        LoadingAddre=a.LoadingAddre,
                        UnstackingMode=a.UnstackingMode,
                        CreateUserName = c.RealName,
                        UpdateUserName = d.RealName,
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -1406,6 +1406,10 @@
                var outLpnList = list.Select(m => m.PalletNo).ToList();
                //要出库的明细集合
                var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList();
                //物料编码表
                var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
                //包装表
                var packagList = Db.Queryable<SysPackag>().Where(w => w.IsDel == "0");
                Db.BeginTran();
                try
                {
@@ -1413,6 +1417,37 @@
                    //循环分配的信息生成出库任务
                    foreach (var item in list)
                    {
                        string toLocation = string.Empty;//目标位置
                        #region 判断是否需要拆箱
                        string isChai = "0";//是否需要拆箱,0:不需要  1:需要
                        var skuInfo = skuList.First(w => w.SkuNo == item.SkuNo);
                        if (skuInfo == null)
                        {
                            throw new Exception("物料信息不存在!");
                        }
                        var packagInfo = packagList.First(w => w.PackagNo == skuInfo.PackagNo);
                        if (packagInfo == null)
                        {
                            throw new Exception("包装信息不存在!");
                        }
                        if (packagInfo.L2Name == "箱")
                        {
                            if (item.Qty % (decimal)packagInfo.L2Num != 0)//能整除说明不用拆箱,不能整除说明需要拆箱
                            {
                                isChai = "1";//需要拆箱
                                unstackingMode = "1";//需要拆箱需走PDA拆垛
                            }
                        }
                        #endregion
                        if (unstackingMode == "0")//机器人拆垛
                        {
                            toLocation = loadingAddre;//装车口
                        }
                        else //PDA拆垛
                        {
                            toLocation = outMode;//出库口
                        }
                        // 储位号
                        var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
@@ -1512,7 +1547,7 @@
                                IsSuccess = 0, //是否下发成功 0失败 1成功
                                StartLocat = locate.LocatNo,//起始位置
                                EndLocat = outMode,//目标位置
                                EndLocat = toLocation,//outMode,//目标位置
                                PalletNo = item.PalletNo,//托盘码
                                IsSend = 1,//是否可再次下发
                                IsCancel = 1,//是否可取消
@@ -1530,7 +1565,7 @@
                                PalletNo = item.PalletNo,//托盘号
                                StartLocate = locate.LocatNo, // 起始位置
                                StartRoadway = locate.RoadwayNo,//其实巷道
                                EndLocate = outMode, // 目标位置
                                EndLocate = toLocation,//outMode, // 目标位置
                                TaskNo = exTask.TaskNo, // 任务号
                                TaskType = "1",// 任务类型 (出库)
                                OutMode = "",  //目标地址
@@ -1564,9 +1599,10 @@
                            item.TaskNo = exTask.TaskNo; // 出库分配信息中更新任务号
                            item.Status = "1"; // 出库分配信息状态改为正在执行 
                            item.OutMode = outMode;//出库口
                            item.UnstackingMode = unstackingMode;//拆垛方式
                            item.OutMode = unstackingMode == "1" ? outMode : "";//出库口
                            item.LoadingAddre = unstackingMode == "0" ? loadingAddre : "";//装车口
                            Db.Updateable(item).ExecuteCommand();
                            #endregion
@@ -1607,7 +1643,8 @@
                            }
                            item.TaskNo = taskNo.TaskNo;
                            item.Status = "1"; // 出库分配信息状态改为正在执行 
                            item.OutMode = taskNo.EndLocat;
                            item.OutMode = unstackingMode == "1" ? taskNo.EndLocat : "";//出库口
                            item.LoadingAddre = unstackingMode == "0" ? taskNo.EndLocat : "";//装车口
                            Db.Updateable(item).ExecuteCommand();
                            flagList.Add(0);
                            #endregion