PDA-出库,添加出库计划查看功能

This commit is contained in:
赵正易 2024-04-25 17:35:01 +08:00
parent f88c6826c1
commit cae2643a41
4 changed files with 172 additions and 11 deletions

View File

@ -219,6 +219,26 @@ namespace ZR.Admin.WebApi.Controllers
int result = _WmOutOrderService.PersistenceOutorderplan(shipment_num);
return SUCCESS(result);
}
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <param name="partnumber">物料号(零件号)</param>
/// <returns></returns>
[HttpGet("getOutOrderPlanAndOutProductionNum")]
public IActionResult GetOutOrderPlanAndOutProductionNum(string shipment_num,string partnumber)
{
if (shipment_num == null)
{
return ToResponse(new ApiResult(500, "传入工单号为空!", "传入工单号为空!"));
}
var result = _WmOutOrderService.GetOutOrderPlanAndOutProductionNum(shipment_num, partnumber);
if(result == null)
{
return ToResponse(new ApiResult(500, "获取计划异常!", "获取计划异常!"));
}
return SUCCESS(result);
}
/// <summary>
/// 5 成品出库

View File

@ -5,7 +5,7 @@ namespace ZR.Model.MES.wms.Dto
/// <summary>
/// 出货单(物料+客户)查询对象
/// </summary>
public class WmOutOrderQueryDto : PagerInfo
public class WmOutOrderQueryDto : PagerInfo
{
public string ShipmentNum { get; set; }
public int? Year { get; set; }
@ -22,7 +22,7 @@ namespace ZR.Model.MES.wms.Dto
/// </summary>
public class WmOutOrderDto
{
public string ShipmentNum { get; set; }
public string CustomId { get; set; }
@ -64,7 +64,7 @@ namespace ZR.Model.MES.wms.Dto
//带出货数量的物料表
public List<WmMaterialQuery_stockQuantityDto> MaterialList { get; set; }
}
/// <summary>
/// 出货单_物料——数量
@ -77,23 +77,84 @@ namespace ZR.Model.MES.wms.Dto
}
// 出货到出货记录表
public class WmDoMaterialOut_Dto
{
public class WmDoMaterialOut_Dto
{
/// <summary>
/// 出库单号
/// </summary>
public string ShipmentNum { get; set; }
public string ShipmentNum { get; set; }
/// <summary>
/// 批次号
/// </summary>
public string[] PatchCode { get; set; }
public string[] PatchCode { get; set; }
}
/// <summary>
/// 持久化出库计划与批次已出库数
/// </summary>
public class WmOutPlanAndGoodsOutProductionNumDto
{
/// <summary>
/// 出库顺序
/// </summary>
public int OutOrder { get; set; } = 1;
/// <summary>
/// 批次号
/// </summary>
public string PackageCode { get; set; } = string.Empty;
/// <summary>
/// 物料号(零件号)
/// </summary>
public string Partnumber { get; set; } = string.Empty;
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; } = "无描述";
/// <summary>
/// 所属仓库
/// </summary>
public string WarehouseCode { get; set; } = "无描述";
/// <summary>
/// 需求零件数
/// </summary>
public int RequireNum { get; set; } = 0;
/// <summary>
/// 库存现有箱数
/// </summary>
public int PackageNum { get; set; } = 0;
/// <summary>
/// 库存现有零件数
/// </summary>
public int PartnumberNum { get; set; } = 0;
/// <summary>
/// 计划出库箱数
/// </summary>
public int PackagePlanNum { get; set; } = 0;
/// <summary>
/// 计划出库零件数
/// </summary>
public int PartnumberPlanNum { get; set; } = 0;
/// <summary>
/// 该批次已出箱数
/// </summary>
public int OutPackageNum { get; set; } = 0;
/// <summary>
/// 该批次已出零件数
/// </summary>
public int OutPartnumberNum { get; set; } = 0;
/// <summary>
/// 是否出现异常(时效性,出库中是否出现实际箱比计划箱多)
/// </summary>
public bool IsError { get; set; } = false;
/// <summary>
/// 是否出完
/// </summary>
public bool IsOver { get; set; } = false;
}
}

View File

@ -39,6 +39,13 @@ namespace ZR.Service.mes.wms.IService
bool OverOutorderplan(string shipment_num);
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
List<WmOutPlanAndGoodsOutProductionNumDto> GetOutOrderPlanAndOutProductionNum(string shipment_num, string partnumber);
// 检查是否可出库
string CheckProductionOut(string parnumber,string production_packcode, string shipment_num);

View File

@ -17,6 +17,7 @@ using Infrastructure.Model;
using ZR.Service;
using ZR.Service.Utils;
using Aliyun.OSS;
using Microsoft.AspNetCore.Hosting.Server;
namespace ZR.Service.mes.wms
{
@ -553,6 +554,79 @@ namespace ZR.Service.mes.wms
}
return resultionPackage.ProductionTime;
}
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
public List<WmOutPlanAndGoodsOutProductionNumDto> GetOutOrderPlanAndOutProductionNum(string shipment_num, string partnumber)
{
try
{
List<WmOutPlanAndGoodsOutProductionNumDto> result = new();
// 当前工单出库计划
var exp = Expressionable.Create<WmOutOrderPlan>()
.And(it => it.FkOutOrderId == shipment_num)
.AndIF(!string.IsNullOrEmpty(partnumber),it => it.MaterialCode == partnumber)
.ToExpression();
List<WmOutOrderPlan> wmOutOrderPlan = Context.Queryable<WmOutOrderPlan>()
.Where(exp)
.OrderBy(it => it.Outorder)
.ToList();
// 查询每个计划具体出库数据
foreach (WmOutOrderPlan item in wmOutOrderPlan)
{
// 库存记录
List<WmGoodsNowProduction> nowProductionList = Context.Queryable<WmGoodsNowProduction>()
.Where(it => it.PackageCodeClient.Contains(item.Patchcode))
.ToList();
int nowPackageNum = 0;
int nowPartnumberNum = 0;
foreach (WmGoodsNowProduction outItem in nowProductionList)
{
nowPackageNum += 1;
nowPartnumberNum += (int)outItem.GoodsNumAction;
}
// 出库记录
List<WmGoodsOutRecord> outPackageList = Context.Queryable<WmGoodsOutRecord>()
.Where(it => it.PackageCodeClient.Contains(item.Patchcode))
.ToList();
int outPackageNum = 0;
int outPartnumberNum = 0;
foreach (WmGoodsOutRecord outItem in outPackageList)
{
outPackageNum += 1;
outPartnumberNum += (int)outItem.GoodsNumAction;
}
WmMaterial material = Context.Queryable<WmMaterial>()
.Where(it => it.Partnumber.Contains(item.MaterialCode))
.First();
WmOutPlanAndGoodsOutProductionNumDto newItem = new()
{
OutOrder = (int)item.Outorder,
PackageCode = item.Patchcode,
Partnumber = item.MaterialCode,
Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName,
WarehouseCode = item.WarehouseCode,
RequireNum = (int)item.RequireNum,
PackageNum = (int)nowPackageNum,
PartnumberNum = (int)nowPartnumberNum,
PackagePlanNum = (int)item.PackageNum,
PartnumberPlanNum = (int)item.PartnumberNum,
OutPackageNum = outPackageNum,
OutPartnumberNum = outPartnumberNum,
IsError = (nowPartnumberNum + outPartnumberNum) != item.PartnumberNum,
IsOver = outPartnumberNum == item.PartnumberNum
};
result.Add(newItem);
}
return result;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 检查是否可出库
@ -669,7 +743,6 @@ namespace ZR.Service.mes.wms
return result;
}
}
}