dengjunjie
2025-10-17 55142f3214485c7ec12c5e414a56519f66a1eb1d
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -176,11 +176,13 @@
                Dt_SupplyTask supplyTask = new Dt_SupplyTask()
                {
                    WarehouseCode = cabinOrderDetail.Reservoirarea,
                    BatchNo=inventoryInfo.BatchNo,
                    MaterielName= inventoryInfo.MaterielName,
                    MaterielCode= inventoryInfo.MaterielCode,
                    MaterielSpec= inventoryInfo.MaterielSpec,
                    TaskType=TaskTypeEnum.InPick.ObjToInt(),
                    TaskNum = cabinOrderDetail.Id,
                    TaskStatus = SupplyStatusEnum.InFinish.ObjToInt(),
                    BatchNo = inventoryInfo.BatchNo,
                    MaterielName = inventoryInfo.MaterielName,
                    MaterielCode = inventoryInfo.MaterielCode,
                    MaterielSpec = inventoryInfo.MaterielSpec,
                    TaskType = TaskTypeEnum.InPick.ObjToInt(),
                    CreateDate = DateTime.Now,
                    Creater = App.User.UserName,
                    LocationCode = location.LocationCode,
@@ -296,6 +298,7 @@
                    foreach (var order in newOrders)
                    {
                        bool skipOrder = false;//标记是否跳过该入库单
                        var entityOrder = new Dt_CabinOrder
                        {
                            Order_no = order.order_no,
@@ -324,8 +327,22 @@
                            // å°†ä¸Šæ¸¸å…¥åº“数量转为正数
                            item.order_qty = Math.Abs(item.order_qty);
                            #region æ ¹æ®ç‰©æ–™ç¼–码查询物料信息
                            //Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
                            Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
                            Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no);
                            //如果物料信息不存在,跳过整个入库单
                            if (materielInfo == null)
                            {
                                skipOrder = true;
                                Console.WriteLine($"跳过入库单 {order.order_no},原因:未找到商品 [{item.goods_no}] çš„物料信息。");
                                break;
                            }
                            //  è‹¥ç‰©æ–™ä¸å­˜åœ¨æˆ– MaterielSourceType ä¸ºç©ºï¼Œåˆ™è·³è¿‡æ•´ä¸ªå…¥åº“单
                            if (materielInfo == null || !Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
                            {
                                skipOrder = true;
                                break;
                            }
                            //Dt_MedicineGoods materielInfo = BaseDal.Db.Queryable<Dt_MedicineGoods>().Where(x => x.Goods_no == item.goods_no).First();
                            ///根据物料信息大小件属性区分是否入立库 //大件入平库
                            if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)
                            {
@@ -411,9 +428,15 @@
                                }
                                #endregion
                            }
                            //_basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
                            _medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
                            _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
                            //_medicineGoodsServices.Db.Updateable(materielInfo).ExecuteCommand();
                            #endregion
                        }
                        // â—如果跳过该单,则直接continue,不保存
                        if (skipOrder)
                        {
                            Console.WriteLine($"跳过入库单 {order.order_no},因为存在未定义物料属性的商品。");
                            continue;
                        }
                        _CabinOrders.Add(entityOrder);
                        orderNos.Add(order.order_no);
@@ -686,10 +709,10 @@
                    string materialCode = "YY";//默认值
                    //获取当前订单的第一个明细项
                    var firstDetail = order.Details.FirstOrDefault();
                    if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterialCode))
                    if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterielErpType))
                    {
                        //如果条件满足,将物料代码设置为第一个明细项对应的药品物料代码
                        materialCode = firstDetail.MedicineGoods.MaterialCode;
                        materialCode = firstDetail.MedicineGoods.MaterielErpType;
                    }
                    var ediDto = new ToediInInfo
@@ -714,9 +737,9 @@
                            //产品
                            productCode = d.Goods_no,
                            //sku名称
                            productName = d.MedicineGoods?.Goods_spm,
                            productName = d.MedicineGoods?.MaterielName,
                            //sku规格
                            productSpecifications = d.MedicineGoods?.Model,
                            productSpecifications = d.MedicineGoods?.MaterielSpec,
                            //数量
                            quantity = (int)d.Order_qty,
                            //效期