From dff3b009e58b2452b1aa7ddd19b8aec35aff5ff8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=A2=E6=B1=9F=E6=B5=B7?= <18360817963@163.com>
Date: Mon, 24 Mar 2025 15:14:38 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=90=88=E6=A0=BC=E5=93=81?=
=?UTF-8?q?=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ZR.Service/mes/wms/WmOneTimeRecordService.cs | 152 ++++++++++++++++++-
1 file changed, 145 insertions(+), 7 deletions(-)
diff --git a/ZR.Service/mes/wms/WmOneTimeRecordService.cs b/ZR.Service/mes/wms/WmOneTimeRecordService.cs
index ef2e9282..c7960678 100644
--- a/ZR.Service/mes/wms/WmOneTimeRecordService.cs
+++ b/ZR.Service/mes/wms/WmOneTimeRecordService.cs
@@ -1,6 +1,10 @@
using Infrastructure.Attribute;
using SqlSugar;
+using System.Linq;
+using System;
using ZR.Model;
+using ZR.Model.Business;
+using ZR.Model.MES.qc;
using ZR.Model.MES.wms;
using ZR.Model.MES.wms.Dto;
using ZR.Repository;
@@ -115,18 +119,152 @@ namespace ZR.Service.mes.wms
///
public int GenerateWmOneTimeRecord(WmOneTimeRecordGenerateDto parm)
{
- //TODO 入库条件1 产线合格品qc_quality_statistics_first,合格数,其中去除(倒车雷达)
+
+ if (parm == null || parm.StartTime == null || parm.StartTime.Value == DateTime.MinValue)
+ {
+ return -1;
+ }
+ else
+ {
+ #region 查询需要的数据
+ //TODO 入库条件1 产线合格品qc_quality_statistics_first,合格数,其中去除(倒车雷达)
+ List qcQualityStatisticsFirsts = Context
+ .Queryable()
+ .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)
+ .ToList();
- //TODO 入库条件2 抛光合格品 wm_polish_work_quality_statistics 合格数
+ //TODO 入库条件2 抛光合格品 wm_polish_work_quality_statistics 合格数
+ List wmPolishWorkQualityStatistics = Context
+ .Queryable()
+ .WhereIF(
+ !string.IsNullOrEmpty(parm.Partnumber),
+ it => it.Partnumber == parm.Partnumber
+ )
+ .Where(it => it.StartTime >= parm.StartTime)
+ .ToList();
- //TODO 出库条件1 GP12 (新) 触摸屏 qc_gp12_service_statistics 投入数
+ //TODO 出库条件1 GP12 (新) 触摸屏 qc_gp12_service_statistics 投入数
+ List qcGp12ServiceStatistics = Context
+ .Queryable()
+ .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();
- //TODO 出库条件2 后道 wm_polish_quality_statistics 投入数
+ //TODO 出库条件2 后道 wm_polish_quality_statistics 投入数
+ List wmPolishQualityStatistics = Context
+ .Queryable()
+ .WhereIF(
+ !string.IsNullOrEmpty(parm.Partnumber),
+ it => it.Partnumber == parm.Partnumber
+ )
+ .Where(it => it.StartTime >= parm.StartTime)
+ .ToList();
- // wm_one_time_record
+ #endregion
+ #region 组装 WmOneTimeRecord 实体
+
+ List wmOneTimeRecords = new List();
- throw new global::System.NotImplementedException();
- }
+ 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.PaoguangTotal,
+ ActionTime = item.StartTime,
+ Status = 1,
+ Remark = "产线合格品 合格数"
+ }
+ );
+ }
+
+ 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.,
+ 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.PolishNumber,
+ ActionTime = item.StartTime,
+ Status = 1,
+ Remark = "触摸屏投入数"
+ }
+ );
+ }
+
+ foreach (var item in wmPolishQualityStatistics)
+ {
+ wmOneTimeRecords.Add(
+ new WmOneTimeRecord
+ {
+ Id = SnowFlakeSingle.Instance.NextId().ToString(),
+ FkInventoryId = item.Id,
+ Code = "自动",
+ Partnumber = item.Partnumber,
+ ChangeType = 2,
+ ChangeQuantity = item.PaoguangTotal,
+ ActionTime = item.StartTime,
+ Status = 1,
+ Remark = "后道投入数"
+ }
+ );
+ }
+
+
+ #endregion
+
+ //如果有这个时间段的数据,要删除
+ List delwmOneTimeRecords = Context
+ .Queryable()
+ .Where(it => it.Code == "自动")
+ .Where(it => it.ActionTime >= parm.StartTime)
+ .ToList();
+ Context.Deleteable(delwmOneTimeRecords).ExecuteCommand();
+ if (delwmOneTimeRecords.Any())
+ {
+ Context.Insertable(wmOneTimeRecords).ExecuteCommand();
+ }
+
+ return wmOneTimeRecords.Count; // 返回插入的记录数
+ }
}
}