wms调整

This commit is contained in:
qianhao.xu
2024-04-09 14:03:10 +08:00
parent fca042d60c
commit 93de58af8e
5 changed files with 67 additions and 31 deletions

View File

@@ -127,6 +127,8 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
}
return ToResponse(new ApiResult(200, msg, num));
}
/// <summary>
/// 获取库位已经存在箱子
/// </summary>
@@ -146,6 +148,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms
return ToResponse(new ApiResult(200, msg, productionList));
}
/// <summary>
/// 解析外标签码
/// </summary>

View File

@@ -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
/// <param name="shipment_num"></param>
/// <returns></returns>
[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);
}

View File

@@ -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;
}

View File

@@ -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<WmCustom> GetCustominfo();

View File

@@ -142,6 +142,24 @@ namespace ZR.Service.mes.wms
return Context.Insertable(wmOutOrder).ExecuteReturnEntity();
}
/// <summary>
/// 删除出货单关联的物料出货单
/// </summary>
/// <param name="primarys"></param>
/// <returns></returns>
public int Delete_fk_matrial(string[] primarys)
{
if(primarys.Count()>0)
{
for(int i = 0; i < primarys.Length; i++)
{
Context.Deleteable<WmMaterialOutorder>().Where(it => it.FkOutorderId == primarys[i]).ExecuteCommand();
}
}
return 1;
}
/// <summary>
/// 修改出货单(物料+客户)
@@ -204,7 +222,9 @@ namespace ZR.Service.mes.wms
List<WmMaterial> materialList = Context.Queryable<WmMaterial>()
.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<WmGoodsNowProduction>()
//.Where(it => it.Partnumber == partnumber)
//.Sum(it => it.GoodsNumAction) ?? 0;
// 判断要出多少批次的货
List<WmOutOrderPlan> wmOutOrderPlans = new List<WmOutOrderPlan>();
// 当前累计批次货物总数
@@ -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<WmGoodsNowProduction>()
.Where(it=>it.PackageCodeClient== witem.Patchcode)
.Where(it=>it.PackageCodeClient.Contains(witem.Patchcode))
.Count();
witem.Inventory_num = Context.Queryable<WmGoodsNowProduction>()
.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<WmOutOrderPlan> orderPlans = Generate_outorderplan(shipment_num);
// 5.配对是否符合出库条件
@@ -534,6 +558,7 @@ namespace ZR.Service.mes.wms
return "ok";
}
}
// 6 .还差一个 数量超过要出库的箱子
return "此箱标签不可出库,批次号不在出库单计划内!请检查出库单计划!";
}
catch (Exception ex)