dengjunjie
9 天以前 e579c8d3ab3accb26258f0c615101e3d86093730
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.StockEnum;
@@ -123,7 +124,8 @@
                            {
                                #region å¤„理入库订单
                                Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.orderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First();
                                Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First();
                                if (cabinOrder == null) throw new Exception($"未找到入库单号【{request.externalOrderNo}】的入库单信息");
                                #region åˆ¤æ–­æ˜¯å¦ä¸ºç›˜ç›ˆå…¥åº“单
                                if (cabinOrder.Order_type == "5")
                                {
@@ -258,7 +260,7 @@
                                            ERPStockQuantity = 0,
                                            Status = false,
                                            ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"),
                                            ValidityPeriod = inventoryInfo.ValidityPeriod,
                                            ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(),
                                            Remark = "自动创建"
                                        };
                                        BaseDal.Db.Insertable(inventory_Batch).ExecuteCommand();
@@ -293,7 +295,9 @@
                            break;
                        case "2":
                            {
                                Dt_DeliveryOrder cabinOrder = Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.orderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First();
                                Dt_DeliveryOrder cabinOrder = Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First();
                                if (cabinOrder == null) throw new Exception($"未找到出库单号【{request.externalOrderNo}】的入库单信息");
                                if (cabinOrder.Out_type == "6")
                                {
                                    foreach (var item in cabinOrder.Details)
@@ -345,22 +349,24 @@
                                else
                                {
                                    #region æ‰¾å‡ºåº“任务
                                    Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == reslut && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
                                    if (supplyTask == null) throw new Exception($"未找到订单号【{request.orderNo}】物料编号【{detail.productCode}】的出库任务");
                                    Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.externalOrderNo && x.WarehouseCode == reslut && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
                                    if (supplyTask == null) throw new Exception($"未找到订单号【{request.externalOrderNo}】物料编号【{detail.productCode}】的出库任务");
                                    if (supplyTask.StockQuantity != orderQty) throw new Exception($"订单号【{request.orderNo}】物料编号【{detail.productCode}】的出库数量与出库任务数量不相等");
                                    #endregion
                                    #region å¤„理出库单、库存信息、出库任务、调拨任务
                                    _deliveryOrderServices.OutTaskFinish(supplyTask);
                                    var content = _deliveryOrderServices.OutTaskFinish(supplyTask);
                                    if (!content.Status) throw new Exception(content.Message);
                                    #endregion
                                }
                            }
                            break;
                        case "3": // ç›˜ç‚¹
                            {
                                var WarehouseLK = WarehouseEnum.立库.ObjToInt().ToString("000");
                                #region æ‰¾ç›˜ç‚¹ä»»åŠ¡
                                Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.立库.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First();
                                if (supplyTask == null) throw new Exception($"未找到订单号【{request.orderNo}】物料编号【{detail.productCode}】的盘点任务");
                                Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.externalOrderNo && x.WarehouseCode == WarehouseLK && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First();
                                if (supplyTask == null) throw new Exception($"未找到订单号【{request.externalOrderNo}】物料编号【{detail.productCode}】的盘点任务");
                                #endregion
                                if (detail.isLossOrProfit == 1) // ç›˜äº
                                {
@@ -374,7 +380,8 @@
                                {
                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity;
                                }
                                _deliveryOrderServices.CheckTaskFinish(supplyTask);
                                var content = _deliveryOrderServices.CheckTaskFinish(supplyTask);
                                if (!content.Status) throw new Exception(content.Message);
                            }
                            break;
                    }