仓库记录改为后道触摸屏记录
This commit is contained in:
@@ -112,7 +112,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
public IActionResult GenerateWmOneTimeRecord([FromBody] WmOneTimeRecordGenerateDto parm)
|
||||
{
|
||||
|
||||
var response = _WmOneTimeRecordService.GenerateWmOneTimeRecord(parm);
|
||||
var response = _WmOneTimeRecordService.GenerateWmOneTimeRecord02(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
public IActionResult GetWmPolishRecordByDate([FromBody] WmPolishRecordGenerateDto parm)
|
||||
{
|
||||
|
||||
var response = _WmPolishRecordService.GenerateWmPolishRecord(parm);
|
||||
var response = _WmPolishRecordService.GenerateWmPolishRecord02(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,5 +18,8 @@ namespace ZR.Service.mes.wms.IService
|
||||
int UpdateWmOneTimeRecord(WmOneTimeRecord parm);
|
||||
|
||||
int GenerateWmOneTimeRecord(WmOneTimeRecordGenerateDto parm);
|
||||
|
||||
// 切换后道自动化
|
||||
int GenerateWmOneTimeRecord02(WmOneTimeRecordGenerateDto parm);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace ZR.Service.mes.wms.IService
|
||||
int UpdateWmPolishRecord(WmPolishRecord parm);
|
||||
|
||||
int GenerateWmPolishRecord(WmPolishRecordGenerateDto parm);
|
||||
|
||||
|
||||
}
|
||||
int GenerateWmPolishRecord02(WmPolishRecordGenerateDto parm);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,5 +263,176 @@ namespace ZR.Service.mes.wms
|
||||
return wmOneTimeRecords.Count; // 返回插入的记录数
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 自动生成一次合格仓库记录日志 (后道自动化版本)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public int GenerateWmOneTimeRecord02(WmOneTimeRecordGenerateDto parm)
|
||||
{
|
||||
if (parm == null || parm.StartTime == null || parm.StartTime.Value == DateTime.MinValue)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
int result = 0;
|
||||
try
|
||||
{
|
||||
// 开始事务
|
||||
Context.Ado.BeginTran();
|
||||
|
||||
#region 查询需要的数据
|
||||
// 入库条件1 产线合格品qc_quality_statistics_first,合格数,其中去除(倒车雷达)
|
||||
List<QcQualityStatisticsFirst> qcQualityStatisticsFirsts = Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.FinishedPartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => !it.ProductDescription.Contains("倒车雷达"))
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.QualifiedNumber > 0)
|
||||
.Where(it => it.Remark == "抛光")
|
||||
.ToList();
|
||||
|
||||
// 入库条件2 抛光合格品 wm_polish_work_quality_statistics 合格数
|
||||
List<WmPolishWorkQualityStatistics> wmPolishWorkQualityStatistics = Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.Partnumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.ToList();
|
||||
|
||||
// 出库条件1 GP12 (新) 触摸屏 qc_gp12_service_statistics 投入数
|
||||
List<QcGp12ServiceStatistics> qcGp12ServiceStatistics = Context
|
||||
.Queryable<QcGp12ServiceStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.PartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.GroupSort == 1)
|
||||
.ToList();
|
||||
|
||||
// 出库条件2 后道 wm_polish_quality_statistics 投入数
|
||||
List<QcBackEndServiceStatistics> qcBackEndQualityStatistics = Context
|
||||
.Queryable<QcBackEndServiceStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.PartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.GroupSort == 1)
|
||||
// .Where(it => it.IsOut == 1) 待定 现在暂时都是直接出库
|
||||
.ToList();
|
||||
#endregion
|
||||
|
||||
#region 组装 WmOneTimeRecord 实体
|
||||
List<WmOneTimeRecord> wmOneTimeRecords = new List<WmOneTimeRecord>();
|
||||
|
||||
foreach (var item in qcQualityStatisticsFirsts)
|
||||
{
|
||||
wmOneTimeRecords.Add(
|
||||
new WmOneTimeRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.FinishedPartNumber,
|
||||
ChangeType = 1,
|
||||
ChangeQuantity = item.QualifiedNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "产线-报表合格品自动入库,来源工单号:" + item.WorkorderId
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in wmPolishWorkQualityStatistics)
|
||||
{
|
||||
wmOneTimeRecords.Add(
|
||||
new WmOneTimeRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.Partnumber,
|
||||
ChangeType = 1,
|
||||
ChangeQuantity = item.QualifiedNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "抛光-报表合格品自动入库"
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in qcGp12ServiceStatistics)
|
||||
{
|
||||
wmOneTimeRecords.Add(
|
||||
new WmOneTimeRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.PartNumber,
|
||||
ChangeType = 2,
|
||||
ChangeQuantity = item.RequireNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "GP12触摸屏-报表投入自动出库"
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in qcBackEndQualityStatistics)
|
||||
{
|
||||
wmOneTimeRecords.Add(
|
||||
new WmOneTimeRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.PartNumber,
|
||||
ChangeType = 2,
|
||||
ChangeQuantity = item.RequireNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "后道触摸屏-报表自动出库"
|
||||
}
|
||||
);
|
||||
}
|
||||
#endregion
|
||||
|
||||
// 直接删除旧数据,避免先查询再删除的并发问题
|
||||
Context.Deleteable<WmOneTimeRecord>()
|
||||
.Where(it => it.Code == "自动")
|
||||
.Where(it => it.ActionTime >= parm.StartTime)
|
||||
.ExecuteCommand();
|
||||
|
||||
if (wmOneTimeRecords.Any())
|
||||
{
|
||||
// 分批插入数据,避免一次插入过多数据
|
||||
const int batchSize = 1000;
|
||||
var batches = wmOneTimeRecords.Chunk(batchSize);
|
||||
|
||||
foreach (var batch in batches)
|
||||
{
|
||||
Context.Insertable(batch.ToList()).ExecuteCommand();
|
||||
}
|
||||
}
|
||||
|
||||
result = wmOneTimeRecords.Count;
|
||||
Context.Ado.CommitTran();
|
||||
return result; // 返回插入的记录数
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,6 +282,171 @@ namespace ZR.Service.mes.wms
|
||||
#endregion
|
||||
|
||||
|
||||
// 批量插入到 wm_polish_record 表
|
||||
//如果有这个时间段的数据,要删除
|
||||
List<WmPolishRecord> delwmPolishRecords = Context
|
||||
.Queryable<WmPolishRecord>()
|
||||
.Where(it => it.Code == "自动")
|
||||
.Where(it => it.ActionTime >= parm.StartTime)
|
||||
.ToList();
|
||||
Context.Deleteable(delwmPolishRecords).ExecuteCommand();
|
||||
if (wmPolishRecords.Any())
|
||||
{
|
||||
Context.Insertable(wmPolishRecords).ExecuteCommand();
|
||||
}
|
||||
|
||||
return wmPolishRecords.Count; // 返回插入的记录数
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据日期获取抛光记录表数据 (后道触摸屏自动出库版本)
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public int GenerateWmPolishRecord02(WmPolishRecordGenerateDto parm)
|
||||
{
|
||||
if (parm == null || parm.StartTime == null || parm.StartTime.Value == DateTime.MinValue)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
#region 查询需要的数据
|
||||
//三入
|
||||
// 产线报表 根据日期范围 去取产线抛光的数据 qc_quality_statistics_first
|
||||
// 去除倒车雷达
|
||||
List<QcQualityStatisticsFirst> qcQualityStatisticsFirsts = Context
|
||||
.Queryable<QcQualityStatisticsFirst>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.FinishedPartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => !it.ProductDescription.Contains("倒车雷达"))
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.PaoguangTotal > 0)
|
||||
.Where(it => it.Remark == "抛光")
|
||||
.ToList();
|
||||
|
||||
// 后道报表 根据日期范围 去取后道反抛光的数据 wm_polish_quality_statistics
|
||||
List<QcBackEndServiceStatistics> qcBackEndQualityStatistics = Context
|
||||
.Queryable<QcBackEndServiceStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.PartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.PolishNumber > 0)
|
||||
.Where(it => it.GroupSort == 1)
|
||||
.ToList();
|
||||
|
||||
// GP12报表 根据日期范围 去取gp12反抛光的数据 qc_gp12_service_statistics GP12(new) wm_gp12_quality_statistics(old)
|
||||
List<QcGp12ServiceStatistics> qcGp12ServiceStatistics = Context
|
||||
.Queryable<QcGp12ServiceStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.PartNumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.Where(it => it.GroupSort == 1)
|
||||
.Where(it => it.PolishNumber > 0)
|
||||
.ToList();
|
||||
//二出(同一张表)wm_polish_work_quality_statistics 根据日期范围 去取抛光操作出库的数据
|
||||
List<WmPolishWorkQualityStatistics> wmPolishWorkQualityStatistics = Context
|
||||
.Queryable<WmPolishWorkQualityStatistics>()
|
||||
.WhereIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.Partnumber == parm.Partnumber
|
||||
)
|
||||
.Where(it => it.StartTime >= parm.StartTime)
|
||||
.ToList();
|
||||
#endregion
|
||||
|
||||
int totalcount =
|
||||
qcQualityStatisticsFirsts.Count
|
||||
+ qcBackEndQualityStatistics.Count
|
||||
+ qcGp12ServiceStatistics.Count
|
||||
//+ wmGp12QualityStatistics.Count
|
||||
+ wmPolishWorkQualityStatistics.Count;
|
||||
|
||||
#region 组装 WmPolishRecord 实体
|
||||
// 组装 WmPolishRecord 实体
|
||||
List<WmPolishRecord> wmPolishRecords = new List<WmPolishRecord>();
|
||||
|
||||
foreach (var item in qcQualityStatisticsFirsts)
|
||||
{
|
||||
wmPolishRecords.Add(
|
||||
new WmPolishRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.FinishedPartNumber,
|
||||
ChangeType = 1,
|
||||
ChangeQuantity = item.PaoguangTotal,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "产线报表抛光件自动入库,来源工单:" + item.WorkorderId
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in qcBackEndQualityStatistics)
|
||||
{
|
||||
wmPolishRecords.Add(
|
||||
new WmPolishRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.PartNumber,
|
||||
ChangeType = 1,
|
||||
ChangeQuantity = item.PolishNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "后道触摸屏-报表抛光件自动入库"
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in qcGp12ServiceStatistics)
|
||||
{
|
||||
wmPolishRecords.Add(
|
||||
new WmPolishRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.PartNumber,
|
||||
ChangeType = 1,
|
||||
ChangeQuantity = item.PolishNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = " GP12触摸屏-报表抛光件自动入库"
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
foreach (var item in wmPolishWorkQualityStatistics)
|
||||
{
|
||||
wmPolishRecords.Add(
|
||||
new WmPolishRecord
|
||||
{
|
||||
Id = SnowFlakeSingle.Instance.NextId().ToString(),
|
||||
FkInventoryId = item.Id,
|
||||
Code = "自动",
|
||||
Partnumber = item.Partnumber,
|
||||
ChangeType = 2,
|
||||
ChangeQuantity = item.RequireNumber,
|
||||
ActionTime = item.StartTime,
|
||||
Status = 1,
|
||||
Remark = "抛光手填报表出库"
|
||||
}
|
||||
);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
// 批量插入到 wm_polish_record 表
|
||||
//如果有这个时间段的数据,要删除
|
||||
List<WmPolishRecord> delwmPolishRecords = Context
|
||||
|
||||
Reference in New Issue
Block a user