dengjunjie
6 天以前 528badf2f1efe5355975de7942fb7a26e71a8e18
优化盘点流程、出入库退货流程
已修改10个文件
109 ■■■■■ 文件已修改
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/InOrderJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/OutOrderJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MaterielInfoService.cs
@@ -26,7 +26,7 @@
        public IRepository<Dt_MaterielInfo> Repository => BaseDal;
        static string SearchDate = "2025-10-30 00:00:00";
        static string SearchDate = "2025-11-01 00:00:00";
        /// <summary>
        /// èŽ·å–è¯å“åŸºç¡€ä¿¡æ¯åŒæ­¥æŽ¥å£
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/MessageInfoService.cs
@@ -48,7 +48,10 @@
            {
                Dt_MessageInfo dt_MessageInfo = null;
                if (groupByEnum == MessageGroupByEnum.InventoryExceedAlarm)
                {
                    dt_MessageInfo = BaseDal.QueryFirst(x => x.MessageName == messageName && x.MessageRemark == messageRemark);
                    if (dt_MessageInfo != null && dt_MessageInfo.MessageInfo == messageInfo) return content;
                }
                else
                    dt_MessageInfo = BaseDal.QueryFirst(x => x.MessageName == messageName && x.MessageInfo == messageInfo);
                if (groupByEnum != MessageGroupByEnum.InventoryExceedAlarm && dt_MessageInfo != null) return content;
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/Business.cs
@@ -526,7 +526,7 @@
                        //物料类型
                        materialCode = materialCode,
                        externalOrderNo = order.Out_no,
                        outOrderType = order.Out_type == "6" ? "30" : "10",
                        outOrderType = order.Out_type,
                        priority = 1,
                        Is_cancel = 0,
                        details = order.Details.Select(d => new ToeOutdiInDetail
@@ -538,6 +538,16 @@
                            quantity = (int)d.Order_qty,
                        }).ToList()
                    };
                    switch (order.Out_type)
                    {
                        case "1"://正常出库
                        case "3"://入库退货
                            ediDto.outOrderType = "10";//一般交易出库单
                            break;
                        case "6"://盘亏出库
                            ediDto.outOrderType = "30";//盘亏出库单
                            break;
                    }
                    var result = HttpHelper.Post(url, ediDto.ToJsonString());
                    var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result);
                    if (resp != null && resp.code == "0")
@@ -722,6 +732,7 @@
                        }
                        else
                        {
                            if (item.First().Order_type == "2") url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";//出库退货
                            var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString());
                            var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
                            if (response != null && response.resultCode == "0")
@@ -787,6 +798,7 @@
                        }
                        else
                        {
                            if (item.First().Out_type == "3") url = "http://121.37.118.63:80/GYZ2/95fck/inOrderOk";//入库退货
                            var result = HttpHelper.Post(url, new { order_no = item.Key }.ToJsonString());
                            var response = JsonConvert.DeserializeObject<UpstreamOrderResponse>(result);
                            if (response != null && response.resultCode == "0")
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -133,7 +133,7 @@
                if (cabinOrder == null || cabinOrder.OdrderStatus == "已完成")
                    return WebResponseContent.Instance.Error($"入库单已完成");
                //Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Goods_no == materielCode && x.Batch_num == batchNo && x.Status == 2).FirstOrDefault();
                Dt_CabinOrderDetail cabinOrderDetail = cabinOrder.Details.Where(x => x.Id == id).FirstOrDefault();
                Dt_CabinOrderDetail? cabinOrderDetail = cabinOrder.Details.Where(x => x.Id == id).FirstOrDefault();
                if (cabinOrderDetail == null || cabinOrderDetail.OrderDetailStatus == "已完成")
                    return WebResponseContent.Instance.Error($"入库单明细已完成");
                Dt_MaterielInfo materielInfo = _materielInfoService.Repository.QueryFirst(x => x.MaterielCode == cabinOrderDetail.Goods_no);
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/NewBusiness.cs
@@ -16,7 +16,7 @@
    public partial class Business
    {
        #region èŽ·å–ERP入库单
        static string SearchInOrderDate = "2025-10-30 00:00:00";
        static string SearchInOrderDate = "2025-11-01 00:00:00";
        public WebResponseContent GetInOrder()
        {
            WebResponseContent content = new WebResponseContent();
@@ -87,7 +87,7 @@
        #endregion
        #region èŽ·å–ERP出库单
        static string SearchOutOrderDate = "2025-10-30 00:00:00";
        static string SearchOutOrderDate = "2025-11-01 00:00:00";
        public WebResponseContent GetOutOrder()
        {
            WebResponseContent content = new WebResponseContent();
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/extend/Check.cs
@@ -233,17 +233,10 @@
                    if (Qty != 0) return WebResponseContent.Instance.Error($"大件库库存为整箱!盘点数量不能存在散件");
                }
                #endregion
                //if (cabinOrderDetail.Order_Outqty > cabinOrderDetail.Order_qty)
                //    return WebResponseContent.Instance.Error($"实盘数量不可超出账面数量");
                #region å¤„理出库单,货位,库存,库存批次信息
                _unitOfWorkManage.BeginTran();
                #region ä¿®æ”¹ç›˜ç‚¹å•
                cabinOrder.OutStatus = "开始";
                cabinOrderDetail.OotDetailStatus = "开始";
                Repository.UpdateData(cabinOrder);
                _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
                #endregion
                #region åº“å­˜
@@ -258,16 +251,40 @@
                    inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.WarehouseCode == supplyTask.WarehouseCode);
                }
                inventoryInfo.SupplyQuantity = supplyTask.SupplyQuantity;
                _inventoryInfoService.UpdateData(inventoryInfo);
                #endregion
                #region ä»»åŠ¡è®°å½•
                //_supplyTaskService.UpdateData(supplyTask);
                _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.自动完成);
                #endregion
                #region åˆ¤æ–­å½“前物料批次的盘点任务是否全部完成
                List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.WarehouseCode == supplyTask.WarehouseCode).ToList();
                List<Dt_SupplyTask> supplyTasks1 = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList();
                Dt_Inventory_Batch inventory_Batch = new Dt_Inventory_Batch();
                List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>();
                if (supplyTasks1.Count < 1)
                {
                    #region æŸ¥æ‰¾åº“å­˜
                    inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
                    var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity);
                    #endregion
                    #region åº“存批次
                    inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
                    //如果盘点数和批次总数对上了,盘点数赋值为0,赋值就添加盘点数
                    if (SupplyQuantitys == inventory_Batch.StockQuantity)
                    {
                        foreach (var item in inventoryInfos)
                        {
                            item.StockQuantity = item.SupplyQuantity;
                            item.SupplyQuantity = 0;
                            item.StockStatus = StockStatusEmun.入库完成.ObjToInt();
                        }
                    }
                    else
                    {
                        inventory_Batch.SupplyQuantity = SupplyQuantitys;
                    }
                    #endregion
                }
                _unitOfWorkManage.BeginTran();
                #region å¤„理盘点单
                if (supplyTasks.Count < 1)
                {
                    #region å®Œæˆç›˜ç‚¹å•
@@ -282,39 +299,22 @@
                    #endregion
                }
                supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList();
                if (supplyTasks.Count < 1)
                {
                    #region æŸ¥æ‰¾åº“å­˜
                    var inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
                    var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity);
                    #endregion
                    #region åº“存批次
                    Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no);
                    //如果盘点数和批次总数对上了,盘点数赋值为0,赋值就添加盘点数
                    if (SupplyQuantitys == inventory_Batch.StockQuantity)
                    {
                        foreach (var item in inventoryInfos)
                        {
                            item.StockQuantity = item.SupplyQuantity;
                            item.SupplyQuantity = 0;
                            item.StockStatus = StockStatusEmun.入库完成.ObjToInt();
                        }
                        _inventoryInfoService.UpdateData(inventoryInfos);
                    }
                    else
                    {
                        inventory_Batch.SupplyQuantity = SupplyQuantitys;
                        _inventory_BatchServices.UpdateData(inventory_Batch);
                    Repository.UpdateData(cabinOrder);
                    _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail);
                    }
                    #endregion
                _inventoryInfoService.UpdateData(inventoryInfo);
                _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.自动完成);
                if (inventoryInfos.Count > 1)
                {
                    _inventoryInfoService.UpdateData(inventoryInfos);
                    _inventory_BatchServices.UpdateData(inventory_Batch);
                }
                _unitOfWorkManage.CommitTran();
                #endregion
                content.OK();
                #endregion
            }
            catch (Exception ex)
            {
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/AlarmJob.cs
@@ -19,7 +19,7 @@
            _inventoryInfoService = inventoryInfoService;
        }
        //每隔1秒执行一次
        [Invoke(Begin = "2025-09-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        public void Run()
        {
            //冷库
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/InOrderJob.cs
@@ -14,7 +14,7 @@
            _materielInfoService = materielInfoService;
        }
        //每隔1秒执行一次
        [Invoke(Begin = "2025-09-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        public void Run()
        {
            _materielInfoService.GetMedicineGoodsInfom();
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/OutOrderJob.cs
@@ -14,7 +14,7 @@
            _materielInfoService = materielInfoService;
        }
        //每隔1秒执行一次
        [Invoke(Begin = "2025-09-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)]
        public void Run()
        {
            //获取上游出库单数据
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -31,6 +31,6 @@
  "ApiName": "WIDESEA",
  "ExpMinutes": 120,
  "DBSeedEnable": false, //是否启用数据库种子数据,创建表
  "PDAVersion": "10",
  "PDAVersion": "11",
  "WebSocketPort": 9296
}