大屏调整,一次合格计算调整

This commit is contained in:
2025-10-28 18:13:04 +08:00
parent 8737002eef
commit 3c7b2c3ec7
11 changed files with 1730 additions and 5 deletions

View File

@@ -1,8 +1,8 @@
using Infrastructure.Attribute;
using SqlSugar;
using System;
using System.Linq;
using System.Text.RegularExpressions;
using Infrastructure.Attribute;
using SqlSugar;
using ZR.Model;
using ZR.Model.Business;
using ZR.Model.MES.pro;
@@ -318,17 +318,34 @@ namespace ZR.Service.mes.wms
.Where(it => it.GroupSort == 1)
.ToList();
// 出库条件2 后道 wm_polish_quality_statistics 投入数
// 出库条件2 后道 wm_polish_quality_statistics 投入数 除W04直接出库
List<QcBackEndServiceStatistics> qcBackEndQualityStatistics = Context
.Queryable<QcBackEndServiceStatistics>()
.WhereIF(
!string.IsNullOrEmpty(parm.Partnumber),
it => it.PartNumber == parm.Partnumber
)
.Where(it => !it.Description.Contains("W04"))
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.GroupSort == 1)
// .Where(it => it.IsOut == 1) 待定 现在暂时都是直接出库
//待定 现在暂时都是直接出库
// TODO 1-为直接出库
// TODO W04 单独剔除
// .Where(it => it.IsOut == 1)
.ToList();
// 后道W04非直接出库损耗
List<QcBackEndServiceStatistics> qcBackEndQualityStatistics2 = Context
.Queryable<QcBackEndServiceStatistics>()
.WhereIF(
!string.IsNullOrEmpty(parm.Partnumber),
it => it.PartNumber == parm.Partnumber
)
.Where(it => it.Description.Contains("W04"))
.Where(it => it.StartTime >= parm.StartTime)
.Where(it => it.GroupSort == 1)
.ToList();
List<WmPolishQualityStatistics> wmPolishQualityStatistics = Context
.Queryable<WmPolishQualityStatistics>()
.WhereIF(
@@ -445,7 +462,33 @@ namespace ZR.Service.mes.wms
ChangeQuantity = item.RequireNumber,
ActionTime = item.StartTime,
Status = 1,
Remark = "后道触摸屏-报表自动出库"
Remark = "后道触摸屏-直接出库-报表自动出库"
}
);
}
foreach (var item in qcBackEndQualityStatistics2)
{
// TODO 零件号二次处理
string partNumber = item.PartNumber;
// 使用正则表达式匹配并移除特殊后缀
string processedPartnumber = Regex.Replace(
partNumber,
@"-(FL|FR|RR|RL)$",
"",
RegexOptions.IgnoreCase
);
wmOneTimeRecords.Add(
new WmOneTimeRecord
{
Id = SnowFlakeSingle.Instance.NextId().ToString(),
FkInventoryId = item.Id,
Code = "自动",
Partnumber = processedPartnumber,
ChangeType = 2,
ChangeQuantity = item.PolishNumber + item.DamoNumber + item.BaofeiNumber,
ActionTime = item.StartTime,
Status = 1,
Remark = "后道触摸屏-非直接出库-报表内损耗自动出库"
}
);
}