抛光记录自动生成版本

This commit is contained in:
赵正易 2025-03-24 14:27:35 +08:00
parent bb8afa8cc7
commit bcbe4d47db
5 changed files with 69 additions and 55 deletions

View File

@ -42,7 +42,7 @@ namespace ZR.Admin.WebApi.Controllers
// [ActionPermissionFilter(Permission = "business:wmpolishinventory:list")]
public IActionResult QueryWmPolishInventory([FromQuery] WmPolishInventoryQueryDto parm)
{
var response = _WmPolishInventoryService.GetList(parm);
var response = _WmPolishInventoryService.GetListNew(parm);
return SUCCESS(response);
}

View File

@ -68,6 +68,7 @@ namespace ZR.Model.MES.wms.Dto
public int StocktakingTotal { get; set; }
public int QuantitySum { get; set; }
public int RealQuantitySum { get; set; }
public DateTime? MinStocktakingTime { get; set; }
public List<WmPolishInventoryDto> Result { get; set; }
}

View File

@ -11,6 +11,7 @@ namespace ZR.Service.mes.wms.IService
public interface IWmPolishInventoryService : IBaseService<WmPolishInventory>
{
WmPolishInventoryTableDto GetList(WmPolishInventoryQueryDto parm);
WmPolishInventoryTableDto GetListNew(WmPolishInventoryQueryDto parm);
/// <summary>
/// 获取导出数据

View File

@ -297,29 +297,40 @@ namespace ZR.Service.mes.wms
)
.ToList();
//TODO 取出库存表 wm_polish_inventory 最小CreatedTime时间
var wmPolishInventory = Context.Queryable<WmPolishInventory>().ToList();
DateTime mindatetime = wmPolishInventory.Select(o => o.CreatedTime.Value).Min();
DateTime minDateTime =
Context
.Queryable<WmPolishInventory>()
.OrderBy(it => it.CreatedTime)
.Select(it => it.CreatedTime)
.First() ?? DateTime.Now;
//TODO 根据时间范围取出所有记录数据
List<WmPolishRecord> wmPolishRecords = Context
.Queryable<WmPolishRecord>()
//.Where(it => it.Code == "自动")
.Where(it => it.ActionTime >= minDateTime)
.ToList();
//TODO 根据时间范围取出所有记录数据
List<WmPolishRecord> wmPolishRecords = Context
.Queryable<WmPolishRecord>()
.Where(it => it.Code == "自动")
.Where(it => it.ActionTime >= mindatetime )
.ToList();
// TODO 匹配记录partnumber零件号时间范围
foreach (WmPolishInventoryDto item in list)
// TODO 匹配记录partnumber零件号时间范围
foreach (WmPolishInventoryDto item in list)
{
// TODO 获取实际库存 item.quantity(盘点开始数量) + recourd 记录的入库数量 - 出库数量(筛选条件是 时间区间【item.CreatedTime】 + partnumber[item.partnumber]
int? runum = wmPolishRecords.Where(o => o.ActionTime >= item.CreatedTime && o.Partnumber == item.Partnumber && o.ChangeType == 1).Select(o => o.ChangeQuantity).Sum();
int? chunum= wmPolishRecords.Where(o => o.ActionTime >= item.CreatedTime && o.Partnumber == item.Partnumber && o.ChangeType == 2).Select(o => o.ChangeQuantity).Sum();
item.RealQuantity = item.Quantity.Value+(runum.Value-chunum.Value);
/*List<string> partnumbers = new() { item.Partnumber };
Dictionary<string, int> dict = GetBatchPolishRealPartNum(partnumbers);*/
// item.RealQuantity = dict.TryGetValue(item.Partnumber, out int value) ? value : 0;
int? runum = wmPolishRecords
.Where(o =>
o.ActionTime >= item.CreatedTime
&& o.Partnumber == item.Partnumber
&& o.ChangeType == 1
)
.Select(o => o.ChangeQuantity)
.Sum();
int? chunum = wmPolishRecords
.Where(o =>
o.ActionTime >= item.CreatedTime
&& o.Partnumber == item.Partnumber
&& o.ChangeType == 2
)
.Select(o => o.ChangeQuantity)
.Sum();
item.RealQuantity = item.Quantity.Value + (runum.Value - chunum.Value);
}
list = list.Where(it => it.RealQuantity != 0 || it.Quantity != 0)
@ -342,6 +353,7 @@ namespace ZR.Service.mes.wms
StocktakingTotal = StocktakingTotal,
QuantitySum = QuantitySum,
RealQuantitySum = RealQuantitySum,
MinStocktakingTime = minDateTime,
Result = list.Skip((parm.PageNum - 1) * parm.PageSize)
.Take(parm.PageSize)
.ToList(),
@ -833,11 +845,14 @@ namespace ZR.Service.mes.wms
.Select(it => it.CreatedTime)
.First() ?? new DateTime(2024, 11, 16, 12, 0, 0);
CommonFQCService commonFQCService = new();
// 获取报表数据
// 抛光计算后库存 = 盘点库存 + 产线抛光 + 后道反抛 + GP12反抛 - 抛光投入
//return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime.Value);
return commonFQCService.GetBatchPolishPartRealStockNew(partnumbers, checkTime.Value);
}
// 获取报表数据
// 抛光计算后库存 = 盘点库存 + 产线抛光 + 后道反抛 + GP12反抛 - 抛光投入
//return commonFQCService.GetBatchPolishPartRealStock(partnumbers, checkTime.Value);
return commonFQCService.GetBatchPolishPartRealStockNew(
partnumbers,
checkTime.Value
);
}
catch (Exception e)
{
throw;

View File

@ -40,10 +40,10 @@ namespace ZR.Service.mes.wms
)
.AndIF(!string.IsNullOrEmpty(parm.Remark), it => it.Remark.Contains(parm.Remark))
.AndIF(!string.IsNullOrEmpty(parm.Code), it => it.Code.Contains(parm.Code))
.AndIF(
/*.AndIF(
!string.IsNullOrEmpty(parm.FkInventoryId),
it => it.FkInventoryId == parm.FkInventoryId
)
)*/
.AndIF(!string.IsNullOrEmpty(parm.Id), it => it.Id == parm.Id)
.AndIF(parm.ChangeType > -1, it => it.ChangeType == parm.ChangeType)
.AndIF(startTime > DateTime.MinValue, it => startTime <= it.ActionTime)
@ -112,13 +112,7 @@ namespace ZR.Service.mes.wms
/// <returns></returns>
public int GenerateWmPolishRecord(WmPolishRecordGenerateDto parm)
{
if (
parm == null
|| parm.StartTime == null
|| parm.EndTime == null
|| parm.StartTime.Value == DateTime.MinValue
|| parm.EndTime.Value == DateTime.MinValue
)
if (parm == null || parm.StartTime == null || parm.StartTime.Value == DateTime.MinValue)
{
return -1;
}
@ -133,7 +127,7 @@ namespace ZR.Service.mes.wms
!string.IsNullOrEmpty(parm.Partnumber),
it => it.FinishedPartNumber == parm.Partnumber
)
.Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime)
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.PaoguangTotal > 0)
.ToList();
@ -144,7 +138,7 @@ namespace ZR.Service.mes.wms
!string.IsNullOrEmpty(parm.Partnumber),
it => it.Partnumber == parm.Partnumber
)
.Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime)
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.PaoguangTotal > 0)
.ToList();
@ -155,7 +149,7 @@ namespace ZR.Service.mes.wms
!string.IsNullOrEmpty(parm.Partnumber),
it => it.PartNumber == parm.Partnumber
)
.Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime)
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.GroupSort == 1)
.Where(it => it.PolishNumber > 0)
.ToList();
@ -167,7 +161,7 @@ namespace ZR.Service.mes.wms
!string.IsNullOrEmpty(parm.Partnumber),
it => it.Partnumber == parm.Partnumber
)
.Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime)
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.PaoguangTotal > 0)
.ToList();
@ -178,16 +172,20 @@ namespace ZR.Service.mes.wms
!string.IsNullOrEmpty(parm.Partnumber),
it => it.Partnumber == parm.Partnumber
)
.Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime)
.Where(it => it.StartTime >= parm.StartTime)
.ToList();
#endregion
int totalcount = qcQualityStatisticsFirsts.Count + wmPolishQualityStatistics.Count + qcGp12ServiceStatistics.Count + wmGp12QualityStatistics.Count
int totalcount =
qcQualityStatisticsFirsts.Count
+ wmPolishQualityStatistics.Count
+ qcGp12ServiceStatistics.Count
+ wmGp12QualityStatistics.Count
+ wmPolishWorkQualityStatistics.Count;
#region WmPolishRecord
// 组装 WmPolishRecord 实体
List<WmPolishRecord> wmPolishRecords = new List<WmPolishRecord>();
#region WmPolishRecord
// 组装 WmPolishRecord 实体
List<WmPolishRecord> wmPolishRecords = new List<WmPolishRecord>();
foreach (var item in qcQualityStatisticsFirsts)
{
@ -202,7 +200,7 @@ namespace ZR.Service.mes.wms
ChangeQuantity = item.PaoguangTotal,
ActionTime = item.StartTime,
Status = 1,
Remark = "产线报表 根据日期范围 去取产线抛光的数据"
Remark = "产线触摸屏报表抛光件自动入库"
}
);
}
@ -220,7 +218,7 @@ namespace ZR.Service.mes.wms
ChangeQuantity = item.PaoguangTotal,
ActionTime = item.StartTime,
Status = 1,
Remark = "后道报表 根据日期范围 去取后道反抛光的数据"
Remark = "后道手填报表抛光件自动入库"
}
);
}
@ -231,14 +229,14 @@ namespace ZR.Service.mes.wms
new WmPolishRecord
{
Id = SnowFlakeSingle.Instance.NextId().ToString(),
FkInventoryId = item.Id,
Code = "自动",
FkInventoryId = item.Id,
Code = "自动",
Partnumber = item.PartNumber,
ChangeType = 1,
ChangeQuantity = item.PolishNumber,
ActionTime = item.StartTime,
Status = 1,
Remark = " GP12报表(new) 根据日期范围 去取gp12反抛光的数据"
Remark = " GP12触摸屏报表抛光件自动入库"
}
);
}
@ -249,14 +247,14 @@ namespace ZR.Service.mes.wms
new WmPolishRecord
{
Id = SnowFlakeSingle.Instance.NextId().ToString(),
FkInventoryId = item.Id,
Code = "自动",
FkInventoryId = item.Id,
Code = "自动",
Partnumber = item.Partnumber,
ChangeType = 1,
ChangeQuantity = item.PaoguangTotal,
ActionTime = item.StartTime,
Status = 1,
Remark = " GP12报表(old) 根据日期范围 去取gp12反抛光的数据"
Remark = " GP12手填报表抛光件自动入库"
}
);
}
@ -274,7 +272,7 @@ namespace ZR.Service.mes.wms
ChangeQuantity = item.RequireNumber,
ActionTime = item.StartTime,
Status = 1,
Remark = " 根据日期范围 去取抛光操作出库的数据"
Remark = "抛光手填报表自动出库"
}
);
}
@ -286,10 +284,9 @@ namespace ZR.Service.mes.wms
List<WmPolishRecord> delwmPolishRecords = Context
.Queryable<WmPolishRecord>()
.Where(it => it.Code == "自动")
.Where(it => it.ActionTime >= parm.StartTime && it.ActionTime <= parm.EndTime)
.Where(it => it.ActionTime >= parm.StartTime)
.ToList();
Context.Deleteable(delwmPolishRecords).ExecuteCommand();
if (wmPolishRecords.Any())
{
Context.Insertable(wmPolishRecords).ExecuteCommand();