diff --git a/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs b/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs index 6dd6782..82ec9f2 100644 --- a/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs +++ b/DOAN.Model/MES/Material/Dto/MmRecordOutboundDto.cs @@ -117,6 +117,7 @@ namespace DOAN.Model.BZFM.Dto public string TransactionType { get; set; } public string BatchNo { get; set; } + public string StoveCode { get; set; } public string OrderNo { get; set; } @@ -171,6 +172,10 @@ namespace DOAN.Model.BZFM.Dto [SugarColumn(ColumnName = "batch_no")] public string BatchNo { get; set; } + [ExcelColumn(Name = "炉号")] + [SugarColumn(ColumnName = "stove_code")] + public string StoveCode { get; set; } + [ExcelColumn(Name = "出库数量")] [SugarColumn(ColumnName = "quantity")] public decimal Quantity { get; set; } diff --git a/DOAN.Model/MES/Material/MmRecordOutbound.cs b/DOAN.Model/MES/Material/MmRecordOutbound.cs index 7ad371c..701b6af 100644 --- a/DOAN.Model/MES/Material/MmRecordOutbound.cs +++ b/DOAN.Model/MES/Material/MmRecordOutbound.cs @@ -89,6 +89,12 @@ namespace DOAN.Model.BZFM [SugarColumn(ColumnName = "batch_no")] public string BatchNo { get; set; } + /// + /// 炉号 + /// + [SugarColumn(ColumnName = "stove_code")] + public string StoveCode { get; set; } + /// /// 关联订单号 /// diff --git a/DOAN.Model/MES/Product/Dto/WorkorderMaterialDto.cs b/DOAN.Model/MES/Product/Dto/WorkorderMaterialDto.cs index 2f63f38..3fb7589 100644 --- a/DOAN.Model/MES/Product/Dto/WorkorderMaterialDto.cs +++ b/DOAN.Model/MES/Product/Dto/WorkorderMaterialDto.cs @@ -36,6 +36,11 @@ namespace DOAN.Model.MES.product.Dto /// public string BatchNo { get; set; } + /// + /// 炉号 + /// + public string StoveCode { get; set; } + /// /// 数量 /// diff --git a/DOAN.Service/MES/Material/MmInventoryService.cs b/DOAN.Service/MES/Material/MmInventoryService.cs index 7107173..4cf1b70 100644 --- a/DOAN.Service/MES/Material/MmInventoryService.cs +++ b/DOAN.Service/MES/Material/MmInventoryService.cs @@ -377,6 +377,7 @@ namespace DOAN.Service.BZFM { OutboundNo = outboundNo, BatchNo = parm.BatchNo, + StoveCode = parm. Operator = parm.Operator, MaterialCode = mmMaterial.MaterialCode, MaterialName = mmMaterial.MaterialName, @@ -453,6 +454,7 @@ namespace DOAN.Service.BZFM { OutboundNo = outboundNo, BatchNo = parm.BatchNo, + StoveCode = parm.StoveCode, Operator = parm.Operator, MaterialCode = mmInventory.MaterialCode, MaterialName = mmInventory.MaterialName, diff --git a/DOAN.Service/MES/Product/ProWorkorderImportService.cs b/DOAN.Service/MES/Product/ProWorkorderImportService.cs index 0a02da1..383dd8d 100644 --- a/DOAN.Service/MES/Product/ProWorkorderImportService.cs +++ b/DOAN.Service/MES/Product/ProWorkorderImportService.cs @@ -88,7 +88,7 @@ namespace DOAN.Service.MES.product /// 最大编号索引 private int GetMaxWorkorderIndex(string productionCode, DateTime dateValue) { - var maxIndex = Context + var workorderNumbers = Context .Queryable() .Where(it => it.WorkorderDate == dateValue.Date) .Where(it => it.productionCode == productionCode) @@ -102,9 +102,10 @@ namespace DOAN.Service.MES.product return index; return 0; }) - .Max(); + .ToList(); - return maxIndex; + // 如果没有找到记录,返回0 + return workorderNumbers.Count > 0 ? workorderNumbers.Max() : 0; } /// @@ -425,11 +426,14 @@ namespace DOAN.Service.MES.product .ToList(); // 获取所有工单的最大sort值,用于后续排序 - var maxSort = Context + var maxSortNullable = Context .Queryable() .Where(it => it.WorkorderDate == dateValue.Date) //.Select(it => it.Sort) - .Max(it => it.Sort).Value; + .Max(it => it.Sort); + + // 如果没有找到记录,设置默认值0 + int maxSort = maxSortNullable.HasValue ? maxSortNullable.Value : 0; // 从maxSort + 10开始,确保sort值按10、20、30...递增 int currentSort = (maxSort / 10) * 10 + 10; @@ -511,11 +515,14 @@ namespace DOAN.Service.MES.product var productionCodeGroups = workorderList.GroupBy(w => w.productionCode).ToList(); // 获取所有工单的最大sort值,用于后续排序 - var maxSort = Context + var maxSortNullable = Context .Queryable() .Where(it => it.WorkorderDate == dateValue.Date) //.Select(it => it.Sort) - .Max(it => it.Sort).Value; + .Max(it => it.Sort); + + // 如果没有找到记录,设置默认值0 + int maxSort = maxSortNullable.HasValue ? maxSortNullable.Value : 0; // 从maxSort + 10开始,确保sort值按10、20、30...递增 int currentSort = (maxSort / 10) * 10 + 10; diff --git a/DOAN.Service/MES/Product/ProWorkorderMaterialService.cs b/DOAN.Service/MES/Product/ProWorkorderMaterialService.cs index e06c39d..f18fa8d 100644 --- a/DOAN.Service/MES/Product/ProWorkorderMaterialService.cs +++ b/DOAN.Service/MES/Product/ProWorkorderMaterialService.cs @@ -45,6 +45,7 @@ namespace DOAN.Service.MES.product SupplierCode = it.SupplierCode, SupplierName = it.SupplierName, BatchNo = it.BatchNo, + StoveCode = it.StoveCode, Quantity = it.Quantity, Unit = it.Unit, CreatedTime = it.CreatedTime.Value, diff --git a/DOAN.Service/Mobile/ReportFlowService.cs b/DOAN.Service/Mobile/ReportFlowService.cs index 66db150..61883d8 100644 --- a/DOAN.Service/Mobile/ReportFlowService.cs +++ b/DOAN.Service/Mobile/ReportFlowService.cs @@ -102,7 +102,7 @@ public class ReportFlowService : BaseService, IReportFlowServic .Queryable() .Where(it => it.BatchNo == feed_order) .Where(it => it.TransactionType == "采购入库") - .Where(it => it.Remarks != "已撤销") + .Where(it => it.Remarks == null || it.Remarks != "已撤销") .First(); if (purchaseInfo != null) { @@ -113,6 +113,12 @@ public class ReportFlowService : BaseService, IReportFlowServic throw new Exception($"未找到原材料采购批号:{feed_order}"); } Context.Ado.BeginTran(); + Context + .Updateable() + .Where(it => it.Workorder == workorder) + .SetColumns(it => it.StoveCode == stoveCode) + .SetColumns(it => it.FeedOrder == feed_order) + .ExecuteCommand(); if (Exist) { result = Context @@ -125,12 +131,6 @@ public class ReportFlowService : BaseService, IReportFlowServic .SetColumns(it => it.UpdatedBy == Worker) .SetColumns(it => it.UpdatedTime == DateTime.Now) .ExecuteCommand(); - Context - .Updateable() - .Where(it => it.Workorder == workorder) - .SetColumns(it => it.StoveCode == stove_code) - .SetColumns(it => it.FeedOrder == feed_order) - .ExecuteCommand(); } else { @@ -145,12 +145,6 @@ public class ReportFlowService : BaseService, IReportFlowServic proReportwork01.CreatedBy = Worker; proReportwork01.CreatedTime = DateTime.Now; result = Context.Insertable(proReportwork01).ExecuteCommand(); - Context - .Updateable() - .Where(it => it.Workorder == workorder) - .SetColumns(it => it.StoveCode == stove_code) - .SetColumns(it => it.FeedOrder == feed_order) - .ExecuteCommand(); } //XXX 领料出库操作(上边代码先不动) MmRecordOutbound outRecordbound = Context @@ -226,6 +220,7 @@ public class ReportFlowService : BaseService, IReportFlowServic MaterialCode = proWorkorder.MaterialCode, SupplierCode = supplierCode, BatchNo = feed_order, + StoveCode = stoveCode, LocationCode = "YCL001", WarehouseCode = "WH003", OrderNo = proWorkorder.CustomerOrder,