1
This commit is contained in:
@@ -11,7 +11,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
/// <summary>
|
||||
/// 毛坯库存库存变动记录表
|
||||
/// </summary>
|
||||
[Verify]
|
||||
// [Verify]
|
||||
[Route("/mes/wm/WmBlankRecord")]
|
||||
public class WmBlankRecordController : BaseController
|
||||
{
|
||||
|
||||
@@ -115,8 +115,8 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
parm.PageNum = 1;
|
||||
parm.PageSize = 10000;
|
||||
var list = _WmOneTimeInventoryService.GetList(parm);
|
||||
var result = ExportExcelMini(list.Result, "onetime", "一次合格品仓库数据");
|
||||
var list = _WmOneTimeInventoryService.GetExportList(parm);
|
||||
var result = ExportExcelMini(list, "wm_one_time_inventory", "一次合格品仓库数据");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
|
||||
@@ -118,9 +118,9 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
{
|
||||
parm.PageNum = 1;
|
||||
parm.PageSize = 10000;
|
||||
var list = _WmPolishInventoryService.GetList(parm);
|
||||
var list = _WmPolishInventoryService.GetExportList(parm);
|
||||
|
||||
var result = ExportExcelMini(list.Result, "polish", "抛光仓库数据");
|
||||
var result = ExportExcelMini(list, "wm_polish_inventory", "抛光仓库数据");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,4 +56,19 @@ namespace ZR.Model.MES.wms.Dto
|
||||
|
||||
public DateTime? UpdatedTime { get; set; }
|
||||
}
|
||||
// 一次合格导出
|
||||
public class WmOneTimeInventoryExportDto
|
||||
{
|
||||
public string 零件号 { get; set; }
|
||||
|
||||
public string 颜色 { get; set; }
|
||||
|
||||
public string 规格 { get; set; }
|
||||
|
||||
public string 描述 { get; set; }
|
||||
|
||||
public int 盘点数 { get; set; } = 0;
|
||||
|
||||
public int 现有库存 { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ namespace ZR.Model.MES.wms.Dto
|
||||
|
||||
public int? Quantity { get; set; }
|
||||
|
||||
public int RealQuantity { get; set; } = 0;
|
||||
|
||||
public int? MaxNum { get; set; }
|
||||
|
||||
public int? MinNum { get; set; }
|
||||
@@ -57,4 +59,20 @@ namespace ZR.Model.MES.wms.Dto
|
||||
|
||||
public DateTime? UpdatedTime { get; set; }
|
||||
}
|
||||
|
||||
public class WmPolishInventoryExportDto
|
||||
{
|
||||
public string 零件号 { get; set; }
|
||||
|
||||
public string 颜色 { get; set; }
|
||||
|
||||
public string 规格 { get; set; }
|
||||
|
||||
public string 描述 { get; set; }
|
||||
|
||||
public int 盘点数 { get; set; } = 0;
|
||||
|
||||
public int 现有库存 { get; set; } = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace ZR.Model.MES.wms
|
||||
public DateTime? EndTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 类别(0-默认 1-直接出库)
|
||||
/// 类别(0-默认 1-跳过后道)
|
||||
/// </summary>
|
||||
public int? Type { get; set; }
|
||||
|
||||
|
||||
@@ -1229,6 +1229,166 @@ namespace ZR.Service.mes.qc
|
||||
return result;
|
||||
}
|
||||
|
||||
// 获取抛光报表变动后 每个零件 的实际库存 startTime 必填
|
||||
public Dictionary<string, int> GetBatchPolishPartRealStock(
|
||||
List<string> partNumbers,
|
||||
DateTime startTime
|
||||
)
|
||||
{
|
||||
var result = new Dictionary<string, int>();
|
||||
try
|
||||
{
|
||||
foreach (var partNumber in partNumbers)
|
||||
{
|
||||
int polishWarehouseTotal =
|
||||
Context
|
||||
.Queryable<WmPolishInventory>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Sum(it => it.Quantity) ?? 0;
|
||||
|
||||
int productPolishTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(it => it.FinishedPartNumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
|
||||
int afterPolishPolishTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
|
||||
int gP12PolishTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.PaoguangTotal) ?? 0;
|
||||
|
||||
int polishRequireTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
|
||||
int realStock =
|
||||
polishWarehouseTotal
|
||||
+ productPolishTotal
|
||||
+ afterPolishPolishTotal
|
||||
+ gP12PolishTotal
|
||||
- polishRequireTotal;
|
||||
|
||||
result.Add(partNumber, realStock);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 此处应记录日志而不是直接抛出异常或返回0,否则调用者无法区别正常0库存与错误
|
||||
Console.WriteLine($"An error occurred: {ex.Message}");
|
||||
throw; // 重新抛出异常以告知调用者
|
||||
}
|
||||
}
|
||||
|
||||
// 获取GP12报表变动后 一次合格品 每个零件 的实际库存 startTime 必填
|
||||
public Dictionary<string, int> GetBatchOneTimePartRealStock(
|
||||
List<string> partNumbers,
|
||||
DateTime startTime
|
||||
)
|
||||
{
|
||||
var result = new Dictionary<string, int>();
|
||||
try
|
||||
{
|
||||
foreach (var partNumber in partNumbers)
|
||||
{
|
||||
// 基本值
|
||||
int oneTimeWarehouseTotal =
|
||||
Context
|
||||
.Queryable<WmOneTimeInventory>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Sum(it => it.Quantity) ?? 0;
|
||||
|
||||
// 产线倒车雷达
|
||||
// 倒车雷达提取
|
||||
string[] checkStrArray2 = { "倒车雷达" };
|
||||
var ParkingSensorPartNumberCheck = Expressionable.Create<WmMaterial>();
|
||||
foreach (string checkStr in checkStrArray2)
|
||||
{
|
||||
ParkingSensorPartNumberCheck.Or(it => it.Description.Contains(checkStr));
|
||||
}
|
||||
;
|
||||
ParkingSensorPartNumberCheck.And(it => it.Type == 1).And(it => it.Status == 1);
|
||||
List<string> ParkingSensorPartNumberList = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(ParkingSensorPartNumberCheck.ToExpression())
|
||||
.Select(it => it.Partnumber)
|
||||
.ToList();
|
||||
var predicateParkingSensor = Expressionable
|
||||
.Create<QcQualityStatisticsFirst>()
|
||||
.And(it => ParkingSensorPartNumberList.Contains(it.FinishedPartNumber))
|
||||
.And(it => it.FinishedPartNumber == partNumber)
|
||||
.And(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.ToExpression();
|
||||
// 倒车雷达
|
||||
int productParkingSensorbQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(predicateParkingSensor)
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// 产线合格 - 倒车雷达
|
||||
int productQualifiedTotal =
|
||||
Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.Where(it => it.FinishedPartNumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.QualifiedNumber) ?? 0 - productParkingSensorbQualifiedTotal;
|
||||
// 抛光合格
|
||||
int polishQualifiedTotal =
|
||||
Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.QualifiedNumber) ?? 0;
|
||||
// gp12投入
|
||||
int gP12RequireTotal =
|
||||
Context
|
||||
.Queryable<WmGp12QualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
// 后道直接出库
|
||||
int afterPolishOutTotal =
|
||||
Context
|
||||
.Queryable<WmPolishQualityStatistics>()
|
||||
.Where(it => it.Partnumber == partNumber)
|
||||
.Where(it => it.StartTime >= startTime.ToLocalTime())
|
||||
.Where(it => it.Type == 1)
|
||||
.Sum(it => it.RequireNumber) ?? 0;
|
||||
|
||||
int realStock =
|
||||
oneTimeWarehouseTotal
|
||||
+ productQualifiedTotal
|
||||
+ polishQualifiedTotal
|
||||
- gP12RequireTotal
|
||||
- afterPolishOutTotal;
|
||||
|
||||
result.Add(partNumber, realStock);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 此处应记录日志而不是直接抛出异常或返回0,否则调用者无法区别正常0库存与错误
|
||||
Console.WriteLine($"An error occurred: {ex.Message}");
|
||||
throw; // 重新抛出异常以告知调用者
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查零件号是否是门把手
|
||||
/// </summary>
|
||||
|
||||
@@ -11,6 +11,13 @@ namespace ZR.Service.mes.wms.IService
|
||||
{
|
||||
PagedInfo<WmOneTimeInventoryDto> GetList(WmOneTimeInventoryQueryDto parm);
|
||||
|
||||
/// <summary>
|
||||
/// 一次合格导出
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
List<WmOneTimeInventoryExportDto> GetExportList(WmOneTimeInventoryQueryDto parm);
|
||||
|
||||
WmOneTimeInventory GetInfo(string Id);
|
||||
|
||||
WmOneTimeInventory AddWmOneTimeInventory(WmOneTimeInventory parm);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
@@ -11,6 +12,13 @@ namespace ZR.Service.mes.wms.IService
|
||||
{
|
||||
PagedInfo<WmPolishInventoryDto> GetList(WmPolishInventoryQueryDto parm);
|
||||
|
||||
/// <summary>
|
||||
/// 获取导出数据
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
List<WmPolishInventoryExportDto> GetExportList(WmPolishInventoryQueryDto parm);
|
||||
|
||||
WmPolishInventory GetInfo(string Id);
|
||||
|
||||
WmPolishInventory AddWmPolishInventory(WmPolishInventory parm);
|
||||
|
||||
@@ -328,6 +328,7 @@ namespace ZR.Service.mes.wms
|
||||
.First();
|
||||
if (workOrderInfo == null)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception("工单记录不存在!" + workOrderId);
|
||||
}
|
||||
if (workOrderInfo.Remark1.Contains("返工"))
|
||||
@@ -343,6 +344,7 @@ namespace ZR.Service.mes.wms
|
||||
.First();
|
||||
if (blankInventory == null)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception("毛坯记录不存在!请检查毛坯仓库,毛坯号:" + workOrderInfo.BlankNumber);
|
||||
}
|
||||
WmBlankInventory updateInfo =
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Infrastructure.Attribute;
|
||||
using SqlSugar;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Repository;
|
||||
using ZR.Service.mes.qc;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
|
||||
namespace ZR.Service.mes.wms
|
||||
@@ -51,7 +53,7 @@ namespace ZR.Service.mes.wms
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.OrderByDescending(it => it.UpdatedTime)
|
||||
.OrderBy(it => it.Partnumber)
|
||||
.ToPage<WmOneTimeInventory, WmOneTimeInventoryDto>(parm);
|
||||
if (response.Result.Count > 0)
|
||||
{
|
||||
@@ -406,5 +408,95 @@ namespace ZR.Service.mes.wms
|
||||
.Where(it => it.Status == 1)
|
||||
.Sum(it => it.Quantity) ?? 0;
|
||||
}
|
||||
|
||||
// Util 获取物料清单,不包含毛坯
|
||||
public List<WmMaterial> GetWmMaterialList(string partnumber)
|
||||
{
|
||||
// 获取物料信息
|
||||
return Context
|
||||
.Queryable<WmMaterial>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(partnumber),
|
||||
it => it.Partnumber.Contains(partnumber)
|
||||
)
|
||||
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
||||
.Where(it => it.Type == 1)
|
||||
.Where(it => it.Status == 1)
|
||||
.Distinct()
|
||||
.OrderBy(it => it.Description)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<WmOneTimeInventoryExportDto> GetExportList(WmOneTimeInventoryQueryDto parm)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmMaterial> materials = GetWmMaterialList(parm.Partnumber);
|
||||
|
||||
// 获取所有partnumber列表
|
||||
List<string> partnumbers = materials
|
||||
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
||||
.Select(it => it.Partnumber)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
// 批量获取盘点数和现有库存
|
||||
Dictionary<string, object> stockNumbers = GetBatchOneTimeStockPartNum(partnumbers);
|
||||
Dictionary<string, int> realNumbers = GetBatchOneTimeRealPartNum(partnumbers);
|
||||
|
||||
// 构建导出数据
|
||||
List<WmOneTimeInventoryExportDto> exportDto = materials
|
||||
.Select(it =>
|
||||
{
|
||||
bool found1 = stockNumbers.TryGetValue(it.Partnumber, out object value1);
|
||||
int stockNumber = found1 && value1 != null ? Convert.ToInt32(value1) : 0;
|
||||
bool found2 = realNumbers.TryGetValue(it.Partnumber, out int realNumber);
|
||||
|
||||
return new WmOneTimeInventoryExportDto
|
||||
{
|
||||
零件号 = it.Partnumber,
|
||||
颜色 = it.Color,
|
||||
规格 = it.Specification,
|
||||
描述 = it.Description,
|
||||
盘点数 = stockNumber,
|
||||
现有库存 = found2 ? realNumber : 0,
|
||||
};
|
||||
})
|
||||
.ToList();
|
||||
return exportDto;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
// Util 获取指定抛光库零件盘点库存
|
||||
public Dictionary<string, object> GetBatchOneTimeStockPartNum(List<string> partnumbers)
|
||||
{
|
||||
return Context
|
||||
.Queryable<WmOneTimeInventory>()
|
||||
.Where(it => partnumbers.Contains(it.Partnumber))
|
||||
.GroupBy(it => it.Partnumber)
|
||||
.ToDictionary(g => g.Partnumber, g => SqlFunc.AggregateSum(g.Quantity) ?? 0);
|
||||
}
|
||||
|
||||
// Util 获取指定抛光库零件加报表后库存
|
||||
public Dictionary<string, int> GetBatchOneTimeRealPartNum(List<string> partnumbers)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 盘点时间
|
||||
DateTime checkTime = new(2024, 10, 20, 0, 0, 0);
|
||||
CommonFQCService commonFQCService = new();
|
||||
// 获取报表数据
|
||||
// 一次合格计算后库存 = 盘点库存 + 产线合格 + 抛光合格 - gp12投入 - 后道直接出库
|
||||
return commonFQCService.GetBatchOneTimePartRealStock(partnumbers, checkTime);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,7 +392,8 @@ namespace ZR.Service.mes.wms
|
||||
int accumulation_num = 0;
|
||||
foreach (var witem in wmGoodsNowsList)
|
||||
{
|
||||
if (require_num >= accumulation_num)
|
||||
//TODO 修改>= 为 > 查看情况
|
||||
if (require_num > accumulation_num)
|
||||
{
|
||||
WmOutOrderPlan orderPlan = new WmOutOrderPlan();
|
||||
orderPlan.FkOutOrderId = shipment_num;
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Aliyun.OSS;
|
||||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Extensions;
|
||||
using Microsoft.AspNetCore.DataProtection.KeyManagement;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using SqlSugar;
|
||||
using ZR.Model;
|
||||
using ZR.Model.MES.qc.DTO;
|
||||
using ZR.Model.MES.wms;
|
||||
using ZR.Model.MES.wms.Dto;
|
||||
using ZR.Repository;
|
||||
using ZR.Service.mes.qc;
|
||||
using ZR.Service.mes.wms.IService;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace ZR.Service.mes.wms
|
||||
{
|
||||
@@ -52,12 +60,13 @@ namespace ZR.Service.mes.wms
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.OrderByDescending(it => it.UpdatedTime)
|
||||
.OrderBy(it => it.Partnumber)
|
||||
.ToPage<WmPolishInventory, WmPolishInventoryDto>(parm);
|
||||
if (response.Result.Count > 0)
|
||||
{
|
||||
foreach (WmPolishInventoryDto item in response.Result)
|
||||
{
|
||||
// 获取物料信息
|
||||
WmMaterial material = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(it => it.Partnumber == item.Partnumber)
|
||||
@@ -472,5 +481,96 @@ namespace ZR.Service.mes.wms
|
||||
.Where(it => it.Status == 1)
|
||||
.Sum(it => it.Quantity) ?? 0;
|
||||
}
|
||||
|
||||
// Util 获取物料清单,不包含毛坯
|
||||
public List<WmMaterial> GetWmMaterialList(string partnumber)
|
||||
{
|
||||
// 获取物料信息
|
||||
return Context
|
||||
.Queryable<WmMaterial>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(partnumber),
|
||||
it => it.Partnumber.Contains(partnumber)
|
||||
)
|
||||
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
||||
.Where(it => it.Type == 1)
|
||||
.Where(it => it.Status == 1)
|
||||
.Distinct()
|
||||
.OrderBy(it => it.Description)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// 获取Excel导出数据
|
||||
public List<WmPolishInventoryExportDto> GetExportList(WmPolishInventoryQueryDto parm)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmMaterial> materials = GetWmMaterialList(parm.Partnumber);
|
||||
|
||||
// 获取所有partnumber列表
|
||||
List<string> partnumbers = materials
|
||||
.Where(it => !string.IsNullOrEmpty(it.Partnumber))
|
||||
.Select(it => it.Partnumber)
|
||||
.Distinct()
|
||||
.ToList();
|
||||
|
||||
// 批量获取盘点数和现有库存
|
||||
Dictionary<string, object> stockNumbers = GetBatchPolishStockPartNum(partnumbers);
|
||||
Dictionary<string, int> realNumbers = GetBatchPolishRealPartNum(partnumbers);
|
||||
|
||||
// 构建导出数据
|
||||
List<WmPolishInventoryExportDto> exportDto = materials
|
||||
.Select(it =>
|
||||
{
|
||||
bool found1 = stockNumbers.TryGetValue(it.Partnumber, out object value1);
|
||||
int stockNumber = found1 && value1 != null ? Convert.ToInt32(value1) : 0;
|
||||
bool found2 = realNumbers.TryGetValue(it.Partnumber, out int realNumber);
|
||||
|
||||
return new WmPolishInventoryExportDto
|
||||
{
|
||||
零件号 = it.Partnumber,
|
||||
颜色 = it.Color,
|
||||
规格 = it.Specification,
|
||||
描述 = it.Description,
|
||||
盘点数 = stockNumber,
|
||||
现有库存 = found2 ? realNumber : 0,
|
||||
};
|
||||
})
|
||||
.ToList();
|
||||
return exportDto;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
// Util 获取指定抛光库零件盘点库存
|
||||
public Dictionary<string, object> GetBatchPolishStockPartNum(List<string> partnumbers)
|
||||
{
|
||||
return Context
|
||||
.Queryable<WmPolishInventory>()
|
||||
.Where(it => partnumbers.Contains(it.Partnumber))
|
||||
.GroupBy(it => it.Partnumber)
|
||||
.ToDictionary(g => g.Partnumber, g => SqlFunc.AggregateSum(g.Quantity) ?? 0);
|
||||
}
|
||||
|
||||
// Util 获取指定抛光库零件加报表后库存
|
||||
public Dictionary<string, int> GetBatchPolishRealPartNum(List<string> partnumbers)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 盘点时间
|
||||
DateTime checkTime = new(2024, 10, 20, 0, 0, 0);
|
||||
CommonFQCService commonFQCService = new();
|
||||
// 获取报表数据
|
||||
// 抛光计算后库存 = 盘点库存 + 产线抛光 + 后道反抛 + GP12反抛 - 抛光投入
|
||||
return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace ZR.Service.mes.wms
|
||||
if(model.IsOutbound)
|
||||
{
|
||||
model.Type = 1;
|
||||
model.Remark += "[直接出库]";
|
||||
model.Remark += "[跳过后道]";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -263,6 +263,7 @@ namespace ZR.Service.mes.wms
|
||||
if (model.IsOutbound)
|
||||
{
|
||||
model.Type = 1;
|
||||
model.Remark = "[跳过后道]";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user