Administrator
2024-03-07 c32b4de8d50baf1a9aab7138fb9846b3cf99795d
PDA标签拣货出库修改
5个文件已修改
83 ■■■■ 已修改文件
Pda/View/SoSetting/productOut.html 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaSoController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/productOut.html
@@ -295,6 +295,17 @@
                                            </div>
                                        </div>
                                    </td>
                                </tr>
                                <tr class="divPickQty1">
                                    <td>
                                        <div class="layui-form-item layout-input" style="margin-top: 6px;">
                                            <label class="layui-form-label lableWidth">拣货数量:</label>
                                            <div class="layui-input-block">
                                                <input id="pickQty1" type="number" placeholder="请输入拣货数量"autocomplete="off"
                                                    class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
                                            </div>
                                        </div>
                                    </td>
                                </tr>                        
                            </table>                        
                        </div>
@@ -943,6 +954,20 @@
                        });
                        return;
                    }
                    if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){
                        layer.msg("追溯条码和拣货数量不能同时输入!", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                    if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){
                        layer.msg("拣货数量不能大于待拣数量!", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                }                
                // let boxQty = parseInt($('#boxQty').val())
                // let qty = parseInt($('#qty').val()) 
@@ -976,6 +1001,7 @@
                    "PalletNo": $('#palletNo').val(),
                    "BoxNo": $('#boxNo').val(),
                    "BoxNo3": $('#boxNo3').val(),
                    "PickQty":$('#pickQty1').val()
                }
                sendData(IP + "/PdaSo/SoSetPick", param, 'post', function (res) {
                    //console.log(res);
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -1894,7 +1894,7 @@
                    throw new Exception("该托盘未在库外,请核实!");
                }
                // 验证入库单明细是否存在
                var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && model.LotNo.Contains(m.LotNo));
                var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
                if (detail == null)
                {
                    throw new Exception("-1:当前物料及批次与单据无关联,请核实!");
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -345,7 +345,7 @@
        }
        //出库pda拣货
        public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, int userId)
        public void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, int userId)
        {
            Db.BeginTran();
            try
@@ -363,6 +363,10 @@
                if (string.IsNullOrWhiteSpace(palletNo))
                {
                    throw new Exception("托盘码不能为空");
                }
                if (!string.IsNullOrEmpty(boxNo3) && (!string.IsNullOrEmpty(pickQty1) || int.Parse(pickQty1) > 0))
                {
                    throw new Exception("追溯条码和拣货数量不能同时输入");
                }
                //出库单
@@ -503,7 +507,7 @@
                }
                else
                {
                    var biaoShi = "0";//0:整箱拣货、1:散支拣货
                    var biaoShi = "0";//0:整箱拣货、1:散支拣货、2:数量拣货
                    List<DataBoxInfo> boxInfos;
                    var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
                    if (boxInfo.Count() == 0)
@@ -536,6 +540,24 @@
                        biaoShi = "1";
                    }
                    else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//数量拣货
                    {
                        if (boxInfo.Count() > 1)
                        {
                            throw new Exception("该箱码内存在支码不能进行数量拣货");
                        }
                        int boxQty = boxInfo.First().Qty;
                        if (Convert.ToInt32(pickQty1) > boxQty)
                        {
                            throw new Exception("拣货数量不能大于箱内数量");
                        }
                        if (Convert.ToInt32(pickQty1) > needQty)
                        {
                            throw new Exception("拣货数量不能大于剩余待拣数量");
                        }
                        biaoShi = "2";
                    }
                    else //整箱拣货
                    {
                        if (boxInfo.Count() == 0)
@@ -557,7 +579,7 @@
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
                        if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        {
                            throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        }
@@ -579,14 +601,31 @@
                            SkuName = allot.SkuName,
                            Standard = allot.Standard,
                            PalletNo = palletNo,
                            CompleteQty = item.Qty,
                            CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty,
                            CreateUser = userId
                        };
                        comList.Add(completeDetail);
                        //删除库存箱码明细
                        Db.Deleteable(item).ExecuteCommand();
                        if (biaoShi != "2")
                        {
                            //删除库存箱码明细
                            Db.Deleteable(item).ExecuteCommand();
                        }
                        else//数量拣货
                        {
                            if (int.Parse(pickQty1) == item.Qty)
                            {
                                //删除库存箱码明细
                                Db.Deleteable(item).ExecuteCommand();
                            }
                            else
                            {
                                item.Qty -= int.Parse(pickQty1);
                                item.BitBoxMark = "1";//零箱标识
                                Db.Updateable(item).ExecuteCommand();
                            }
                        }
                        pickQty += item.Qty;
                    }
                    //改变库内箱码是否零箱信息
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -75,7 +75,7 @@
        /// <param name="boxNo2">盒码</param>
        /// <param name="boxNo3">支/袋码</param>
        /// <param name="userId">操作人</param>
        void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, int userId);
        void SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string PickQty, int userId);
        /// <summary>
        /// 出库pda拣货
Wms/Wms/Controllers/PdaSoController.cs
@@ -203,7 +203,7 @@
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, int.Parse(userId));
                _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3,model.PickQty ,int.Parse(userId));
                return Ok(new { code = 0, msg = "拣货完成", data = "" });
            }