This commit is contained in:
hehaibing-1996
2024-05-15 18:59:24 +08:00
parent cc65e985aa
commit 432a96198f
75 changed files with 2174 additions and 272 deletions

View File

@ -14,7 +14,7 @@ namespace WCS.BLL.Services.IService
public Task<PageQueryResponse<MatBaseInfo>> exportMatBaseInfo(GetMatBaseInfoRequest request);
public Task<ResponseCommon<List<string>>> importMatBaseInfo(List<MatBaseInfoImportModel> lists,string userName,string deviceType);
public Task<ResponseCommon<List<string>>> importMatBaseInfo(List<MatBaseInfoImportModel> lists, string userName, string deviceType);
public Task<ResponseCommon<object>> addOrUpdateMatBaseInfo(AddMatBaseInfoRequest<MatBaseInfo> request);
@ -24,5 +24,7 @@ namespace WCS.BLL.Services.IService
public Task<PageQueryResponse<MatInfo>> getMatInfo(GetMatInfoRequest request);
public Task<ResponseCommon> printedMatInfo(PrintedMatInfoRequest request);
}
}

View File

@ -29,5 +29,22 @@ namespace WCS.BLL.Services.IService
public Task<ResponseCommon<object>> GenerateStoreInfo();
/// <summary>
/// 查询货架列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<PageQueryResponse<ModuleInfo>> GetModules(GetModulesRequest request);
/// <summary>
/// 查询货架列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public Task<PageQueryResponse<StoreInfo>> GetStores(GetStoresRequest request);
}
}

View File

@ -78,9 +78,10 @@ namespace WCS.BLL.Services.Service
MatQty = request.MatQty,
ModifyUser = request.UserName
};
matInfo.Id = DbHelp.db.Insertable(matInfo).ExecuteReturnIdentity();
matInfoList.Add(matInfo);
}
DbHelp.db.Insertable(matInfoList).ExecuteCommand();
matBaseInfo.SerialNumber = startNumber + request.TotalCount;
DbHelp.db.Updateable(matBaseInfo).ExecuteCommand();
DbHelp.db.CommitTran();

View File

@ -49,7 +49,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<InOutRecord>()

View File

@ -149,7 +149,7 @@ namespace WCS.BLL.Services.Service
}
#region //调用接口或者直接查询数据库
//TODO做成配置 调用接口
// 调用接口
if (LocalFile.Config.IsAccessWMS)
{
#region WMS接口获取物料信息

View File

@ -45,7 +45,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
//Task.WaitAll(new Task[] { recordsTask, totalCountTask });

View File

@ -23,7 +23,10 @@ namespace WCS.BLL.Services.Service
/// </summary>
public class MatBaseInfoService : IMatBaseInfoService
{
public MatBaseInfoService() { }
public MatBaseInfoService()
{
}
public async Task<PageQueryResponse<MatBaseInfo>> getMatBaseInfo(GetMatBaseInfoRequest request)
{
@ -42,7 +45,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<MatBaseInfo>()
@ -410,8 +413,6 @@ namespace WCS.BLL.Services.Service
}
}
public async Task<PageQueryResponse<MatInfo>> getMatInfo(GetMatInfoRequest request)
{
try
@ -420,6 +421,8 @@ namespace WCS.BLL.Services.Service
.WhereIF(!string.IsNullOrEmpty(request.MatCode), t => t.MatCode.Contains(request.MatCode))
.WhereIF(!string.IsNullOrEmpty(request.MatName), t => t.MatName.Contains(request.MatName))
.WhereIF(!string.IsNullOrEmpty(request.MatSpec), t => t.MatSpec.Contains(request.MatSpec))
.WhereIF(!string.IsNullOrEmpty(request.MatBatch), t => t.MatBatch.Contains(request.MatBatch))
.WhereIF(request.IsPrinted != null, t => t.IsPrinted == request.IsPrinted)
.WhereIF(!string.IsNullOrEmpty(request.MatSN), t => t.MatSn.Contains(request.MatSN));
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
@ -428,7 +431,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<MatInfo>()
@ -454,5 +457,51 @@ namespace WCS.BLL.Services.Service
}
}
public async Task<ResponseCommon> printedMatInfo(PrintedMatInfoRequest request)
{
try
{
if (request == null || request.PrintedMatInfoIds == null || request.PrintedMatInfoIds.Count == 0)
{
return new ResponseCommon()
{
Code = 300,
Message = $"操作失败:参数为null",
};
}
DbHelp.db.BeginTran();
//获取打印的具体数据
var matInfos = await DbHelp.db.Queryable<MatInfo>()
.Where(t => request.PrintedMatInfoIds.Contains(t.Id))
.ToListAsync();
//打印次数加一
matInfos.ForEach(matInfo =>
{
matInfo.IsPrinted = true;
matInfo.PrintedTimes = matInfo.PrintedTimes + 1;
});
await DbHelp.db.Updateable(matInfos).ExecuteCommandAsync();
DbHelp.db.CommitTran();
return new ResponseCommon()
{
Code = 200,
Message = $"Success",
};
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseCommon()
{
Code = 300,
Message = $"操作失败:{ex.Message}",
};
}
}
}
}

View File

@ -47,7 +47,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<InventoryDetail>()

View File

@ -208,7 +208,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<OutOrder>()
@ -378,7 +378,7 @@ namespace WCS.BLL.Services.Service
return new ResponseCommon<List<OutOrderMatDetail>>
{
Code = 200,
Message = "Success",
Message = outOrder.OrderStatus.ToString(),
Data = orderMatDetail
};
}
@ -527,7 +527,7 @@ namespace WCS.BLL.Services.Service
.WhereIF(!string.IsNullOrEmpty(outOrderDetail.MatBatch), t => t.MatBatch == outOrderDetail.MatBatch)
.Where(t => t.IsLocked == false)//未锁定的物料
.OrderBy(t => t.MatBatch)//先进先出
//(t => t.MatQty)//零散料先出
//(t => t.MatQty)//零散料先出
.ToList();
//2.2按照搜索出来的库存和当前未出的数量 计算需要出的SN

View File

@ -345,7 +345,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<StockTakingOrder>()
@ -386,9 +386,6 @@ namespace WCS.BLL.Services.Service
case Model.ApiModel.Stocktaking.StocktakingOrderStatus.:
recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.);
break;
case Model.ApiModel.Stocktaking.StocktakingOrderStatus.:
recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.);
break;
case Model.ApiModel.Stocktaking.StocktakingOrderStatus.:
recordsQueryable = recordsQueryable.Where(t => t.StocktakingOrderStatus == StocktakingOrderStatus.);
break;
@ -397,7 +394,8 @@ namespace WCS.BLL.Services.Service
}
var records = await recordsQueryable
.OrderByDescending(t => t.CreateTime)
.Where(t => t.StocktakingOrderStatus != StocktakingOrderStatus.)
.OrderByDescending(t => t.UpdateTime)
.Take(40)
.ToListAsync();
@ -507,6 +505,14 @@ namespace WCS.BLL.Services.Service
Message = $"操作失败:不存在单据号为{request.StockTakingOrderNumber}的盘点单!",
};
}
if (order.StocktakingOrderStatus == StocktakingOrderStatus.)
{
return new ResponseCommon()
{
Code = 201,
Message = $"操作失败:盘点单据:{request.StockTakingOrderNumber}已提交!",
};
}
}
else
{
@ -562,6 +568,10 @@ namespace WCS.BLL.Services.Service
shelf.GoInStocktaking(matDetails, order);
shelf.OrderNumber = order.StocktakingOrderNumber;
});
//更新Order
order.UpdateTime = DateTime.Now;
DbHelp.db.Updateable(order).ExecuteCommand();
//返回
return new ResponseCommon()
{
@ -698,16 +708,24 @@ namespace WCS.BLL.Services.Service
};
}
//返回具体的单据信息
var stockTakinbgOrder = await DbHelp.db.Queryable<StockTakingOrderMatDetail>()
var stockTakinOrderMatDetail = await DbHelp.db.Queryable<StockTakingOrderMatDetail>()
.Where(t => t.StocktakingOrderId == stockTakingOrder.Id)
.Where(t => t.MatSN == request.MatSN)
.FirstAsync();
return new ResponseCommon<StockTakingOrderMatDetail>()
{
Code = 200,
Message = "success",
Data = stockTakinbgOrder
};
if (stockTakinOrderMatDetail != null)
return new ResponseCommon<StockTakingOrderMatDetail>()
{
Code = 200,
Message = "success",
Data = stockTakinOrderMatDetail
};
else
return new ResponseCommon<StockTakingOrderMatDetail>()
{
Code = 201,
Message = "不是本次盘点的物料!",
Data = null
};
}
public async Task<ResponseBase> confirmStocktakingOrder(ConfirmStocktakingOrderRequest request)
@ -736,6 +754,8 @@ namespace WCS.BLL.Services.Service
DbHelp.db.Updateable(stockTakingMatDetail)
.ExecuteCommand();
#region
//判断货架是否已进入盘点模式
var shelf = ShelfManager.Shelves
@ -771,6 +791,32 @@ namespace WCS.BLL.Services.Service
#endregion
DbHelp.db.CommitTran();
#region Order状态
Task.Run(() =>
{
//获取Order
var order = DbHelp.db.Queryable<StockTakingOrder>().Where(t => t.Id == stockTakingMatDetail.StocktakingOrderId).First();
if (order != null)
{
var orderDetails = DbHelp.db.Queryable<StockTakingOrderMatDetail>()
.Where(t => t.StocktakingOrderId == stockTakingMatDetail.StocktakingOrderId)
.ToList();
var stocktakedDetailCount = orderDetails.Where(t => t.IsStocktaking).Count();
if (stocktakedDetailCount < orderDetails.Count && order.StocktakingOrderStatus == StocktakingOrderStatus.)
{
order.StocktakingOrderStatus = StocktakingOrderStatus.;
DbHelp.db.Updateable(order).ExecuteCommand();
}
else if (stocktakedDetailCount == orderDetails.Count)
{
order.StocktakingOrderStatus = StocktakingOrderStatus.;
DbHelp.db.Updateable(order).ExecuteCommand();
}
}
});
#endregion
return new ResponseCommon()
{
Code = 200,

View File

@ -36,7 +36,7 @@ namespace WCS.BLL.Services.Service
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * 10 + i + 1;
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<ShelfInfo>()
{
@ -236,8 +236,11 @@ namespace WCS.BLL.Services.Service
}
}
async Task<ResponseCommon<object>> IStoreInfoService.GenerateStoreInfo()
/// <summary>
/// TODO HardCode 根据模组信息生成库位
/// </summary>
/// <returns></returns>
public async Task<ResponseCommon<object>> GenerateStoreInfo()
{
var shelfInfo = await DbHelp.db.Queryable<ShelfInfo>().Where(t => t.ShelfCode == "C04-1").FirstAsync();
var ModuleInfos = await DbHelp.db.Queryable<ModuleInfo>().Where(t => t.ShelfId == shelfInfo.Id).ToListAsync();
@ -262,7 +265,93 @@ namespace WCS.BLL.Services.Service
}
});
return new ResponseCommon<object>() { Message = "111"};
return new ResponseCommon<object>() { Message = "111" };
}
#region
public async Task<PageQueryResponse<ModuleInfo>> GetModules(GetModulesRequest request)
{
try
{
var recordsQueryable = DbHelp.db.Queryable<ModuleInfo>()
.WhereIF(!string.IsNullOrEmpty(request.ModuleCode), t => t.ModuleCode.Contains(request.ModuleCode))
.WhereIF(!string.IsNullOrEmpty(request.ShelfCode), t => t.ShelfCode.Contains(request.ShelfCode));
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
.ToListAsync();
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<ModuleInfo>()
{
Code = 200,
Message = $"success",
Data = new PageQueryResponseData<ModuleInfo>()
{
TotalCount = totalCount,
MaxPage = request.PageSize == 0 ? 0 : (int)Math.Ceiling((decimal)totalCount / request.PageSize),
Count = records.Count,
Lists = records.ToList()
}
};
}
catch (Exception ex)
{
return new PageQueryResponse<ModuleInfo>()
{
Code = 300,
Message = $"操作失败:{ex.Message}",
};
}
}
#endregion
#region
public async Task<PageQueryResponse<StoreInfo>> GetStores(GetStoresRequest request)
{
try
{
var recordsQueryable = DbHelp.db.Queryable<StoreInfo>()
.WhereIF(!string.IsNullOrEmpty(request.ShelfCode), t => t.ShelfCode.Contains(request.ShelfCode))
.WhereIF(!string.IsNullOrEmpty(request.ModuleCode), t => t.ModuleCode.Contains(request.ModuleCode))
.WhereIF(!string.IsNullOrEmpty(request.StoreCode), t => t.StoreCode.Contains(request.StoreCode))
.WhereIF(!string.IsNullOrEmpty(request.CurrentMatSN), t => t.CurrentMatSn.Contains(request.CurrentMatSN))
;
var totalCount = await recordsQueryable.CountAsync();
var records = await recordsQueryable
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
.ToListAsync();
//生成序号
for (int i = 0; i < records.Count; i++)
{
records[i].RowNumber = (request.PageNumber - 1) * request.PageSize + i + 1;
}
return new PageQueryResponse<StoreInfo>()
{
Code = 200,
Message = $"success",
Data = new PageQueryResponseData<StoreInfo>()
{
TotalCount = totalCount,
MaxPage = request.PageSize == 0 ? 0 : (int)Math.Ceiling((decimal)totalCount / request.PageSize),
Count = records.Count,
Lists = records.ToList()
}
};
}
catch (Exception ex)
{
return new PageQueryResponse<StoreInfo>()
{
Code = 300,
Message = $"操作失败:{ex.Message}",
};
}
}
#endregion
}
}