feat(材料管理): 添加炉号字段并优化工单排序逻辑
在材料相关的DTO和服务中添加StoveCode字段以支持炉号记录 优化工单导入服务中的排序逻辑,处理空值情况 调整报表流程服务中的材料查询和更新逻辑
This commit is contained in:
@@ -117,6 +117,7 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
public string TransactionType { get; set; }
|
public string TransactionType { get; set; }
|
||||||
|
|
||||||
public string BatchNo { get; set; }
|
public string BatchNo { get; set; }
|
||||||
|
public string StoveCode { get; set; }
|
||||||
|
|
||||||
public string OrderNo { get; set; }
|
public string OrderNo { get; set; }
|
||||||
|
|
||||||
@@ -171,6 +172,10 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
[SugarColumn(ColumnName = "batch_no")]
|
[SugarColumn(ColumnName = "batch_no")]
|
||||||
public string BatchNo { get; set; }
|
public string BatchNo { get; set; }
|
||||||
|
|
||||||
|
[ExcelColumn(Name = "炉号")]
|
||||||
|
[SugarColumn(ColumnName = "stove_code")]
|
||||||
|
public string StoveCode { get; set; }
|
||||||
|
|
||||||
[ExcelColumn(Name = "出库数量")]
|
[ExcelColumn(Name = "出库数量")]
|
||||||
[SugarColumn(ColumnName = "quantity")]
|
[SugarColumn(ColumnName = "quantity")]
|
||||||
public decimal Quantity { get; set; }
|
public decimal Quantity { get; set; }
|
||||||
|
|||||||
@@ -89,6 +89,12 @@ namespace DOAN.Model.BZFM
|
|||||||
[SugarColumn(ColumnName = "batch_no")]
|
[SugarColumn(ColumnName = "batch_no")]
|
||||||
public string BatchNo { get; set; }
|
public string BatchNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 炉号
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "stove_code")]
|
||||||
|
public string StoveCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 关联订单号
|
/// 关联订单号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -36,6 +36,11 @@ namespace DOAN.Model.MES.product.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string BatchNo { get; set; }
|
public string BatchNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 炉号
|
||||||
|
/// </summary>
|
||||||
|
public string StoveCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数量
|
/// 数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -377,6 +377,7 @@ namespace DOAN.Service.BZFM
|
|||||||
{
|
{
|
||||||
OutboundNo = outboundNo,
|
OutboundNo = outboundNo,
|
||||||
BatchNo = parm.BatchNo,
|
BatchNo = parm.BatchNo,
|
||||||
|
StoveCode = parm.
|
||||||
Operator = parm.Operator,
|
Operator = parm.Operator,
|
||||||
MaterialCode = mmMaterial.MaterialCode,
|
MaterialCode = mmMaterial.MaterialCode,
|
||||||
MaterialName = mmMaterial.MaterialName,
|
MaterialName = mmMaterial.MaterialName,
|
||||||
@@ -453,6 +454,7 @@ namespace DOAN.Service.BZFM
|
|||||||
{
|
{
|
||||||
OutboundNo = outboundNo,
|
OutboundNo = outboundNo,
|
||||||
BatchNo = parm.BatchNo,
|
BatchNo = parm.BatchNo,
|
||||||
|
StoveCode = parm.StoveCode,
|
||||||
Operator = parm.Operator,
|
Operator = parm.Operator,
|
||||||
MaterialCode = mmInventory.MaterialCode,
|
MaterialCode = mmInventory.MaterialCode,
|
||||||
MaterialName = mmInventory.MaterialName,
|
MaterialName = mmInventory.MaterialName,
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ namespace DOAN.Service.MES.product
|
|||||||
/// <returns>最大编号索引</returns>
|
/// <returns>最大编号索引</returns>
|
||||||
private int GetMaxWorkorderIndex(string productionCode, DateTime dateValue)
|
private int GetMaxWorkorderIndex(string productionCode, DateTime dateValue)
|
||||||
{
|
{
|
||||||
var maxIndex = Context
|
var workorderNumbers = Context
|
||||||
.Queryable<ProWorkorder>()
|
.Queryable<ProWorkorder>()
|
||||||
.Where(it => it.WorkorderDate == dateValue.Date)
|
.Where(it => it.WorkorderDate == dateValue.Date)
|
||||||
.Where(it => it.productionCode == productionCode)
|
.Where(it => it.productionCode == productionCode)
|
||||||
@@ -102,9 +102,10 @@ namespace DOAN.Service.MES.product
|
|||||||
return index;
|
return index;
|
||||||
return 0;
|
return 0;
|
||||||
})
|
})
|
||||||
.Max();
|
.ToList();
|
||||||
|
|
||||||
return maxIndex;
|
// 如果没有找到记录,返回0
|
||||||
|
return workorderNumbers.Count > 0 ? workorderNumbers.Max() : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -425,11 +426,14 @@ namespace DOAN.Service.MES.product
|
|||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
// 获取所有工单的最大sort值,用于后续排序
|
// 获取所有工单的最大sort值,用于后续排序
|
||||||
var maxSort = Context
|
var maxSortNullable = Context
|
||||||
.Queryable<ProWorkorder>()
|
.Queryable<ProWorkorder>()
|
||||||
.Where(it => it.WorkorderDate == dateValue.Date)
|
.Where(it => it.WorkorderDate == dateValue.Date)
|
||||||
//.Select(it => it.Sort)
|
//.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...递增
|
// 从maxSort + 10开始,确保sort值按10、20、30...递增
|
||||||
int currentSort = (maxSort / 10) * 10 + 10;
|
int currentSort = (maxSort / 10) * 10 + 10;
|
||||||
@@ -511,11 +515,14 @@ namespace DOAN.Service.MES.product
|
|||||||
var productionCodeGroups = workorderList.GroupBy(w => w.productionCode).ToList();
|
var productionCodeGroups = workorderList.GroupBy(w => w.productionCode).ToList();
|
||||||
|
|
||||||
// 获取所有工单的最大sort值,用于后续排序
|
// 获取所有工单的最大sort值,用于后续排序
|
||||||
var maxSort = Context
|
var maxSortNullable = Context
|
||||||
.Queryable<ProWorkorder>()
|
.Queryable<ProWorkorder>()
|
||||||
.Where(it => it.WorkorderDate == dateValue.Date)
|
.Where(it => it.WorkorderDate == dateValue.Date)
|
||||||
//.Select(it => it.Sort)
|
//.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...递增
|
// 从maxSort + 10开始,确保sort值按10、20、30...递增
|
||||||
int currentSort = (maxSort / 10) * 10 + 10;
|
int currentSort = (maxSort / 10) * 10 + 10;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ namespace DOAN.Service.MES.product
|
|||||||
SupplierCode = it.SupplierCode,
|
SupplierCode = it.SupplierCode,
|
||||||
SupplierName = it.SupplierName,
|
SupplierName = it.SupplierName,
|
||||||
BatchNo = it.BatchNo,
|
BatchNo = it.BatchNo,
|
||||||
|
StoveCode = it.StoveCode,
|
||||||
Quantity = it.Quantity,
|
Quantity = it.Quantity,
|
||||||
Unit = it.Unit,
|
Unit = it.Unit,
|
||||||
CreatedTime = it.CreatedTime.Value,
|
CreatedTime = it.CreatedTime.Value,
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class ReportFlowService : BaseService<ProReportwork01>, IReportFlowServic
|
|||||||
.Queryable<MmRecordInbound>()
|
.Queryable<MmRecordInbound>()
|
||||||
.Where(it => it.BatchNo == feed_order)
|
.Where(it => it.BatchNo == feed_order)
|
||||||
.Where(it => it.TransactionType == "采购入库")
|
.Where(it => it.TransactionType == "采购入库")
|
||||||
.Where(it => it.Remarks != "已撤销")
|
.Where(it => it.Remarks == null || it.Remarks != "已撤销")
|
||||||
.First();
|
.First();
|
||||||
if (purchaseInfo != null)
|
if (purchaseInfo != null)
|
||||||
{
|
{
|
||||||
@@ -113,6 +113,12 @@ public class ReportFlowService : BaseService<ProReportwork01>, IReportFlowServic
|
|||||||
throw new Exception($"未找到原材料采购批号:{feed_order}");
|
throw new Exception($"未找到原材料采购批号:{feed_order}");
|
||||||
}
|
}
|
||||||
Context.Ado.BeginTran();
|
Context.Ado.BeginTran();
|
||||||
|
Context
|
||||||
|
.Updateable<ProWorkorder>()
|
||||||
|
.Where(it => it.Workorder == workorder)
|
||||||
|
.SetColumns(it => it.StoveCode == stoveCode)
|
||||||
|
.SetColumns(it => it.FeedOrder == feed_order)
|
||||||
|
.ExecuteCommand();
|
||||||
if (Exist)
|
if (Exist)
|
||||||
{
|
{
|
||||||
result = Context
|
result = Context
|
||||||
@@ -125,12 +131,6 @@ public class ReportFlowService : BaseService<ProReportwork01>, IReportFlowServic
|
|||||||
.SetColumns(it => it.UpdatedBy == Worker)
|
.SetColumns(it => it.UpdatedBy == Worker)
|
||||||
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
||||||
.ExecuteCommand();
|
.ExecuteCommand();
|
||||||
Context
|
|
||||||
.Updateable<ProWorkorder>()
|
|
||||||
.Where(it => it.Workorder == workorder)
|
|
||||||
.SetColumns(it => it.StoveCode == stove_code)
|
|
||||||
.SetColumns(it => it.FeedOrder == feed_order)
|
|
||||||
.ExecuteCommand();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -145,12 +145,6 @@ public class ReportFlowService : BaseService<ProReportwork01>, IReportFlowServic
|
|||||||
proReportwork01.CreatedBy = Worker;
|
proReportwork01.CreatedBy = Worker;
|
||||||
proReportwork01.CreatedTime = DateTime.Now;
|
proReportwork01.CreatedTime = DateTime.Now;
|
||||||
result = Context.Insertable(proReportwork01).ExecuteCommand();
|
result = Context.Insertable(proReportwork01).ExecuteCommand();
|
||||||
Context
|
|
||||||
.Updateable<ProWorkorder>()
|
|
||||||
.Where(it => it.Workorder == workorder)
|
|
||||||
.SetColumns(it => it.StoveCode == stove_code)
|
|
||||||
.SetColumns(it => it.FeedOrder == feed_order)
|
|
||||||
.ExecuteCommand();
|
|
||||||
}
|
}
|
||||||
//XXX 领料出库操作(上边代码先不动)
|
//XXX 领料出库操作(上边代码先不动)
|
||||||
MmRecordOutbound outRecordbound = Context
|
MmRecordOutbound outRecordbound = Context
|
||||||
@@ -226,6 +220,7 @@ public class ReportFlowService : BaseService<ProReportwork01>, IReportFlowServic
|
|||||||
MaterialCode = proWorkorder.MaterialCode,
|
MaterialCode = proWorkorder.MaterialCode,
|
||||||
SupplierCode = supplierCode,
|
SupplierCode = supplierCode,
|
||||||
BatchNo = feed_order,
|
BatchNo = feed_order,
|
||||||
|
StoveCode = stoveCode,
|
||||||
LocationCode = "YCL001",
|
LocationCode = "YCL001",
|
||||||
WarehouseCode = "WH003",
|
WarehouseCode = "WH003",
|
||||||
OrderNo = proWorkorder.CustomerOrder,
|
OrderNo = proWorkorder.CustomerOrder,
|
||||||
|
|||||||
Reference in New Issue
Block a user