This commit is contained in:
tongfei
2023-11-30 14:05:20 +08:00
2 changed files with 17 additions and 7 deletions

View File

@@ -173,24 +173,33 @@ namespace WMS.Web.Api.Controllers
/// </summary>
/// <param name="str"></param>
/// <param name="number"></param>
/// <param name="materialNumbers"></param>
/// <returns></returns>
[HttpGet]
[Route("SCBox/{str}/{number}")]
public async Task<Result> SCBox([FromRoute] string str, [FromRoute] int number)
public async Task<Result> SCBox([FromRoute] string str, [FromRoute] int number, [FromQuery] List<string> materialNumbers)
{
var list = await GetList(str, number);
if (materialNumbers == null)
materialNumbers = new List<string>();
var list = await GetList(str, number, materialNumbers);
await _boxService.Sync(list);
return Result.ReSuccess();
}
private async Task<List<OpsBoxResponse>> GetList(string str, int number)
private async Task<List<OpsBoxResponse>> GetList(string str, int number, List<string> materialNumbers)
{
var materials_result = await _erpService.BillQueryForMaterial();
var materials = materials_result.Data.ToList();
List<int> mIds = materials.Where(w => materialNumbers.Equals(w.MaterialNumber)).Select(s => s.MaterialId).ToList();
int jn = 3;
if (mIds.Count() <= 0)
mIds= materials.Skip((new Random()).Next(1000, 10000)).Take(4).Select(s => s.MaterialId).ToList();
jn = mIds.Count() - 1;
List<OpsBoxResponse> list = new List<OpsBoxResponse>();
for (int i = 0; i < number; i++)
{
List<OpsBoxDetailsResponse> Details = new List<OpsBoxDetailsResponse>();
for (int j = 0; j <= 3; j++)
for (int j = 0; j <= jn; j++)
{
var ran = (new Random()).Next(5, 10);
List<OpsSerialNumbersResponse> SerialNumbers = new List<OpsSerialNumbersResponse>();
@@ -207,7 +216,7 @@ namespace WMS.Web.Api.Controllers
var mi = (new Random()).Next(1000, 20000);
OpsBoxDetailsResponse d = new OpsBoxDetailsResponse()
{
MaterialId = materials[mi].MaterialId,
MaterialId = mIds[j],
Qty = ran,
SerialNumbers = SerialNumbers
};
@@ -216,7 +225,7 @@ namespace WMS.Web.Api.Controllers
OpsBoxResponse response = new OpsBoxResponse()
{
BoxBillNo = str + (500 + i).ToString(),
BoxBillNo = str + ((new Random()).Next(500, 2000) + i).ToString(),
OpsBoxId = 100 + i,
CompleteCartonTime = DateTime.Now,
CompleteCartonUser = "02",