fature
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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>()
|
||||
|
@ -149,7 +149,7 @@ namespace WCS.BLL.Services.Service
|
||||
}
|
||||
|
||||
#region 获取物料数据 //调用接口或者直接查询数据库
|
||||
//TODO做成配置 调用接口
|
||||
// 调用接口
|
||||
if (LocalFile.Config.IsAccessWMS)
|
||||
{
|
||||
#region 调用WMS接口获取物料信息
|
||||
|
@ -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 });
|
||||
|
||||
|
@ -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}",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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>()
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user