bklLiudl
2024-08-22 23721918cac512373cf7ef7954ceae387900af24
业务测试问题修改
8个文件已修改
140 ■■■■ 已修改文件
HTML/views/ASNSetting/BoxInfo.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/pingKuOut.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/ModelDto/PdaDto/PdaSoDto.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/Logic/AllotSku.cs 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaSoController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/WeatherForecastController.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/BoxInfo.html
@@ -754,8 +754,8 @@
                                    BoxNo2: data[0].Sheet1[i].BoxNo2,
                                    BoxNo3: data[0].Sheet1[i].BoxNo3,
                                    Qty: Qty,
                                    SkuNo: data[0].Sheet1[i].SkuNo,
                                    LotNo: data[0].Sheet1[i].LotNo,
                                    SkuNo: data[0].Sheet1[i].SkuNo.toString(),
                                    LotNo: data[0].Sheet1[i].LotNo.toString(),
                                    LotText: data[0].Sheet1[i].LotText,
                                    ProductionTime: data[0].Sheet1[i].ProductionTime,
                                    InspectMark: InspectMark,
@@ -772,6 +772,7 @@
                            console.log(param)
                            layer.load();//打开loading
                            sendData(IP + "/BllAsn/ImportBllBoxInfo", param, 'post', function (res) {
                                console.log(res);
                                layer.closeAll(); //关闭loading
                                if (res.code == 0) { //成功
                                    layer.msg(res.msg, {
Pda/View/SoSetting/pingKuOut.html
@@ -186,6 +186,8 @@
                    Type: "1",
                };
                synData(IP + "/PdaSo/GetRunSoNoticeList", param, 'post', function (res) {
                    console.log(res);
                    if (res.code == 0) { //成功
                        console.log(res.data);
                        for (var i = 0; i < res.data.length; i++) {
@@ -280,6 +282,8 @@
                    "PalletNo": $("#PalletNo").val()
                }
                synData(IP + "/PdaSo/IsEnableOkPalletNo", param, 'post', function (res) {
                    console.log("AAA");
                    console.log(res);
                    if (res.code == 0) { //成功 
                        updateBillList();
Wms/Model/ModelDto/PdaDto/PdaSoDto.cs
@@ -17,7 +17,7 @@
    public class BoxInfo
    {
        public string BoxNo { get; set; }                     // 箱码/支码
        public decimal Qty { get; set; }                       // 箱内数量
        public decimal? Qty { get; set; }                       // 箱内数量
        public string SkuNo { get; set; }                   // 物料编码 
        public string SkuName { get; set; }                 // 物料名称
        public string LotNo { get; set; }                   // 批次 
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1222,10 +1222,10 @@
                throw Oops.Bah("库存信息中不存在该托盘信息,请检查!");
            }
            if (result.WareHouseNo != "W02")//W02:零箱库
            {
                throw Oops.Bah("该托盘未在零箱库,请检查!");
            }
            //if (result.WareHouseNo != "W02")//W02:零箱库
            //{
            //    throw Oops.Bah("该托盘未在零箱库,请检查!");
            //}
            #endregion
@@ -1236,7 +1236,7 @@
            {
                throw Oops.Bah("未获取到对应储位信息,请检查!");
            }
            if (locat.Status != "1")
            if (locat.Status != "3")
            {
                throw Oops.Bah("当前储位不是有物品,请检查!");
            }
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -4319,8 +4319,10 @@
                foreach (var item in noticeDetail)
                {
                    //验证先进先出原则
                    var forData = data.Where(m => m.SkuNo == item.SkuNo && m.LotNo != item.LotNo && (m.Qty - m.FrozenQty - m.LockQty) > 0 && dataDetail.Contains(m.LotNo)).Select(m=>m.LotNo).ToList(); //获取当前物料的所有批次信息(排除单据的批次,防止单据所在批次锁定数量后验证小于等于0)
                    //获取当前物料的所有批次信息(排除单据的批次,防止单据所在批次锁定数量后验证小于等于0)
                    var forData = data.Where(m => m.SkuNo == item.SkuNo
                    && m.LotNo != item.LotNo && (m.Qty - m.FrozenQty - m.LockQty) > 0
                    && dataDetail.Contains(m.LotNo)).Select(m=>m.LotNo).ToList();
                    forData.Add(item.LotNo);  //集合添加单据的批次
                    //获取排序后的第一个批次
@@ -4333,15 +4335,37 @@
                    //验证效期优先原则
                    var forDataBox = dataBoxInfo.Where(m => m.SkuNo == item.SkuNo && m.LotNo != item.LotNo && m.Qty > 0).ToList();
                    var expirationTime = dataBoxInfo.Where(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.Qty > 0).OrderBy(m=>m.ExpirationTime).Select(m=>m.ExpirationTime).First();  //获取当前单据批次的最近效期
                    var num = forDataBox.Count(m => m.ExpirationTime > expirationTime); //获取库存中其它批次效期大于当前单据批次的效期数量
                    //获取当前单据批次的最近效期
                    var expirationTimedt = dataBoxInfo.Where(m => m.SkuNo == item.SkuNo
                    && m.LotNo == item.LotNo && m.Qty > 0).ToList();
                    if (expirationTimedt.Count > 0)
                    {
                        var expirationTime = expirationTimedt.OrderBy(m => m.ExpirationTime).Select(m => m.ExpirationTime).First();
                        //获取库存中其它批次效期大于当前单据批次的效期数量
                        var num = forDataBox.Count(m => m.ExpirationTime > expirationTime);
                    //判断是否大于0
                    if (num>0)
                    {
                        bl = false;
                        break;
                    }
                    }
                    else
                    {
                        var dataDetailtime = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.InspectStatus == "1").
                            Where(m => m.SkuNo == item.SkuNo
                            && m.LotNo == item.LotNo && m.Qty > 0)
                            .OrderBy(m => m.ExpirationTime)
                            .Select(m => m.ExpirationTime).First();
                        var num = forDataBox.Count(m => m.ExpirationTime > dataDetailtime);
                        //判断是否大于0
                        if (num > 0)
                        {
                            bl = false;
                            break;
                        }
                    }
                }
@@ -4380,7 +4404,6 @@
                var exAllotList = new List<BllExportAllot>();
                var assign = new AllotSku();
                var specialSku = new List<string>();//特殊物料集合, 无需托盘上全部分配的
                Db.BeginTran();
                try
                {
@@ -4428,12 +4451,6 @@
                        {
                            stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList();
                        }
                        if (notice.Type == "1" && !specialSku.Contains(detail.SkuNo))
                        {
                            //分配整个托盘上的物料 只查询未分配的托盘
                            stockDetail = stockDetail.Where(m => m.Status == "0").ToList();
                        }
                        if (stockDetail.Sum(m=>m.Qty-m.LockQty) < needQty)
                        {
                            throw new Exception("库存明细数量不足");
@@ -4451,16 +4468,7 @@
                        Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//托出库物品数
                        var qty = 0m;
                        //分配货物
                        if (notice.Type == "1" && !specialSku.Contains(detail.SkuNo))//判断是否未领料出库
                        {
                            //分配四楼备料投料的物料
                            qty += assign.LingLiaoAllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic);
                        }
                        else
                        {
                            qty += assign.AllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic, detail.LotNo, detail.IsMixBox);
                        }
                        foreach (var sc in stockQtyDic)
                        {
                            var s = stockDetail.FirstOrDefault(m => m.Id == sc.Key);
@@ -4518,7 +4526,9 @@
                        if (qty > detail.Qty)
                        {
                            //库存总表
                            var stock = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
                            var stock = Db.Queryable<DataStock>().First(d => d.IsDel == "0"
                            && d.SkuNo == detail.SkuNo
                            && d.LotNo == detail.LotNo);
                            stock.LockQty += qty-detail.Qty;
                            Db.Updateable(stock).ExecuteCommand();
@@ -4579,7 +4589,8 @@
                    var zd = Db.Updateable(notice).ExecuteCommand();
                    //添加操作日志记录
                    var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", notice.SONo, "分配", $"自动分配了单据号为{notice.SONo}的单据信息", userId);
                    var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据",
                        notice.SONo, "分配", $"自动分配了单据号为{notice.SONo}的单据信息", userId);
                    if (zd > 0 && mx > 0 && fp > 0 && k)
                    {
Wms/WMS.BLL/Logic/AllotSku.cs
@@ -922,12 +922,13 @@
                //立库内托盘
                var detail3 = list.Where(m => m.WareHouseNo == "W01").ToList();
                foreach (var item in detail2)
                {
                    var dept = item.LocatNo.Substring(5,2);
                // 平库储位编码规则确认后,根据实际规则取深度
                //foreach (var item in detail2)
                //{
                //    var dept = item.LocatNo.Substring(5,2);
                    item.Dept = int.Parse(dept);
                }
                //    item.Dept = int.Parse(dept);
                //}
                foreach (var item in detail3)
                {
                    var dept = item.LocatNo.Substring(6, 2);
@@ -935,27 +936,27 @@
                    item.Dept = int.Parse(dept);
                }
                //平库
                var locate1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W02");
                var data2 = new List<StockDetailDto>();
                foreach (var pingku in detail2.OrderByDescending(a => a.PalletTags).ThenBy(m => m.Dept).ToList())
                {
                    if (data2.Contains(pingku))
                    {
                        continue;
                    }
                //var locate1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W02");
                //var data2 = new List<StockDetailDto>();
                //foreach (var pingku in detail2.OrderByDescending(a => a.PalletTags).ThenBy(m => m.Dept).ToList())
                //{
                //    if (data2.Contains(pingku))
                //    {
                //        continue;
                //    }
                    
                    var currentLocate = locate1.First(m => m.LocatNo == pingku.LocatNo);
                    var locateAfter = locate1.Where(m => m.AreaNo == currentLocate.AreaNo && m.Layer == currentLocate.Layer && m.Row == currentLocate.Row && int.Parse(m.Depth) < int.Parse(currentLocate.Depth)).OrderBy(m => m.Depth).ToList();
                    foreach (var locat in locateAfter)
                    {
                        if (detail2.Any(m => m.LocatNo == locat.LocatNo) && !data2.Contains(detail2.First(m => m.LocatNo == locat.LocatNo)))
                        {
                            data2.Add(detail2.First(m => m.LocatNo == locat.LocatNo));
                        }
                //    var currentLocate = locate1.First(m => m.LocatNo == pingku.LocatNo);
                //    var locateAfter = locate1.Where(m => m.AreaNo == currentLocate.AreaNo && m.Layer == currentLocate.Layer && m.Row == currentLocate.Row && int.Parse(m.Depth) < int.Parse(currentLocate.Depth)).OrderBy(m => m.Depth).ToList();
                //    foreach (var locat in locateAfter)
                //    {
                //        if (detail2.Any(m => m.LocatNo == locat.LocatNo) && !data2.Contains(detail2.First(m => m.LocatNo == locat.LocatNo)))
                //        {
                //            data2.Add(detail2.First(m => m.LocatNo == locat.LocatNo));
                //        }
                    }
                    data2.Add(pingku);
                }
                //    }
                //    data2.Add(pingku);
                //}
                //立库
                var locate2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W01").ToList();
@@ -981,9 +982,9 @@
                }
                data.AddRange(detail1);
                data.AddRange(data2);
                data.AddRange(data3);
                data.AddRange(detail1);             // 库外
                data.AddRange(detail2);             // 平库
                data.AddRange(data3);               // 立库
                return data;
            }
Wms/Wms/Controllers/PdaSoController.cs
@@ -158,7 +158,7 @@
        /// <param name="palletNo">托盘号</param>
        /// <returns></returns>
        [HttpGet]
        public async Task<dynamic> GetPingKuInfoByPallet(string soNo, string palletNo)
        public async Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo)
        {
            return await _pdaSoSvc.GetPingKuInfoByPallet(soNo, palletNo);
        }
Wms/Wms/Controllers/WeatherForecastController.cs
@@ -1,19 +1,12 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Model.ModelVm;
using Newtonsoft.Json;
using Utility.Tools;
using WMS.Entity.Context;
using WMS.IBLL.ISysServer;
using Wms.Tools;
using Utility;
namespace Wms.Controllers
{