diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs index 36b66fe6..27cc64cc 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMentryWarehousing_productController.cs @@ -127,6 +127,8 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms } return ToResponse(new ApiResult(200, msg, num)); } + + /// /// 获取库位已经存在箱子 /// @@ -146,6 +148,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms return ToResponse(new ApiResult(200, msg, productionList)); } + + + /// /// 解析外标签码 /// diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs index 9368c784..ac4e68f0 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs @@ -102,7 +102,8 @@ namespace ZR.Admin.WebApi.Controllers var response = _WmOutOrderService.Delete(ids.Split(",")); - + // 删除外键 物料清单 + _WmOutOrderService.Delete_fk_matrial(ids.Split(",")); return ToResponse(response); } @@ -195,14 +196,14 @@ namespace ZR.Admin.WebApi.Controllers /// /// [HttpGet("over_outorderplan")] - public IActionResult OverOutorderplan(string shipment_num) + public IActionResult OverOutorderplan(string shipmentNum) { - if (shipment_num == null) + if (shipmentNum == null) { return SUCCESS(null); } - bool status = _WmOutOrderService.OverOutorderplan(shipment_num); + bool status = _WmOutOrderService.OverOutorderplan(shipmentNum); return SUCCESS(status); } diff --git a/ZR.Service/Utils/MaterialUtils.cs b/ZR.Service/Utils/MaterialUtils.cs index b7f9cf5a..e06ad114 100644 --- a/ZR.Service/Utils/MaterialUtils.cs +++ b/ZR.Service/Utils/MaterialUtils.cs @@ -15,22 +15,26 @@ namespace ZR.Service.Utils //解析外箱标签码 public ResultionPackageCodeDto ResolutionPackage(string code) { - // 初步进行解析检测,增加解析成功率 - string[] splitstr = code.Split('^'); - if (splitstr.Length < 1) + if(code.Contains("^")) { - return null; - } - // 第一类 - if (splitstr[0].Contains("Code=")) - { - return ResolutionPackagecode1(code); - } - // 第二类 - if (splitstr[3].Contains("Cd=")) - { - return ResolutionPackagecode2(code); + // 初步进行解析检测,增加解析成功率 + string[] splitstr = code.Split('^'); + if (splitstr.Length < 1) + { + return null; + } + // 第一类 + if (splitstr[0].Contains("Code=")) + { + return ResolutionPackagecode1(code); + } + // 第二类 + if (splitstr[3].Contains("Cd=")) + { + return ResolutionPackagecode2(code); + } } + // 解析失败 return null; } diff --git a/ZR.Service/mes/wms/IService/IWmOutOrderService.cs b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs index 84488375..a1dd5e81 100644 --- a/ZR.Service/mes/wms/IService/IWmOutOrderService.cs +++ b/ZR.Service/mes/wms/IService/IWmOutOrderService.cs @@ -20,6 +20,7 @@ namespace ZR.Service.mes.wms.IService WmOutOrder AddWmOutOrder(WmOutOrder_materialDto parm); int UpdateWmOutOrder(WmOutOrder parm); + int Delete_fk_matrial(string[] primarys); List GetCustominfo(); diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs index 7c2ddb2e..d00ac87f 100644 --- a/ZR.Service/mes/wms/WmOutOrderService.cs +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -142,6 +142,24 @@ namespace ZR.Service.mes.wms return Context.Insertable(wmOutOrder).ExecuteReturnEntity(); } + /// + /// 删除出货单关联的物料出货单 + /// + /// + /// + public int Delete_fk_matrial(string[] primarys) + { + if(primarys.Count()>0) + { + for(int i = 0; i < primarys.Length; i++) + { + Context.Deleteable().Where(it => it.FkOutorderId == primarys[i]).ExecuteCommand(); + } + + } + return 1; + + } /// /// 修改出货单(物料+客户) @@ -204,7 +222,9 @@ namespace ZR.Service.mes.wms List materialList = Context.Queryable() - .Where(predicate.ToExpression()).OrderByDescending(it => it.CreatedTime) + .Where(predicate.ToExpression()) + + .OrderByDescending(it => it.CreatedTime) .ToPageList(parm.PageNum, parm.PageSize, ref total); @@ -231,8 +251,13 @@ namespace ZR.Service.mes.wms material_num = material_num + (int)product.GoodsNumLogic; } } - wmMaterialQuery_Stock_item.stockQuantity = material_num; - material_stockQuantity_list.Add(wmMaterialQuery_Stock_item); + if(material_num>0) + { + wmMaterialQuery_Stock_item.stockQuantity = material_num; + material_stockQuantity_list.Add(wmMaterialQuery_Stock_item); + } + + } @@ -333,10 +358,7 @@ namespace ZR.Service.mes.wms .Where(it => it.Partnumber == partnumber) .OrderBy(it => it.PackageCodeClient) .ToList(); - // 计算批次零件总数 - //int totalPartnumberNum = Context.Queryable() - //.Where(it => it.Partnumber == partnumber) - //.Sum(it => it.GoodsNumAction) ?? 0; + // 判断要出多少批次的货 List wmOutOrderPlans = new List(); // 当前累计批次货物总数 @@ -353,19 +375,19 @@ namespace ZR.Service.mes.wms orderPlan.WarehouseCode = witem.LocationCode; orderPlan.PackageNum = material.PackageNum; // 获得批次的总零件数 - orderPlan.PartnumberNum = witem.GoodsNumAction; + orderPlan.PartnumberNum = witem.GoodsNumLogic; orderPlan.RequireNum = require_num; orderPlan.Patchtime = Resolution_bath(witem.PackageCodeOriginal); wmOutOrderPlans.Add(orderPlan); // 实际值计算 - accumulation_num = accumulation_num + witem.GoodsNumAction ?? 0; + accumulation_num = accumulation_num + witem.GoodsNumLogic ?? 0; } } // 进行聚合 if (wmOutOrderPlans.Count > 0) { // 根据批次号下划线前进行聚合 - planList = wmOutOrderPlans.GroupBy(it => it.Patchcode_short).Select(g => new + List < WmOutOrderPlan > material_plan_item = wmOutOrderPlans.GroupBy(it => it.Patchcode_short).Select(g => new WmOutOrderPlan { FkOutOrderId = g.Max(p => p.FkOutOrderId), @@ -378,6 +400,8 @@ namespace ZR.Service.mes.wms RequireNum = g.Max(p => p.RequireNum), Patchtime = g.Max(p => p.Patchtime), }).ToList(); + + planList=planList.Concat(material_plan_item).ToList(); } @@ -392,10 +416,10 @@ namespace ZR.Service.mes.wms count++; witem.Inventory_pack_num = Context.Queryable() - .Where(it=>it.PackageCodeClient== witem.Patchcode) + .Where(it=>it.PackageCodeClient.Contains(witem.Patchcode)) .Count(); witem.Inventory_num = Context.Queryable() - .Where(it => it.PackageCodeClient == witem.Patchcode) + .Where(it => it.PackageCodeClient.Contains( witem.Patchcode)) .Sum(it=>it.GoodsNumLogic)??0; @@ -522,7 +546,7 @@ namespace ZR.Service.mes.wms { return "该箱号未入库!请先入库"; } - + // 4.获取出库单号对应的出库计划 List orderPlans = Generate_outorderplan(shipment_num); // 5.配对是否符合出库条件 @@ -534,6 +558,7 @@ namespace ZR.Service.mes.wms return "ok"; } } + // 6 .还差一个 数量超过要出库的箱子 return "此箱标签不可出库,批次号不在出库单计划内!请检查出库单计划!"; } catch (Exception ex)