This commit is contained in:
qianhao.xu 2024-04-15 11:36:08 +08:00
parent de3001d933
commit 0f4ea6c5ba
6 changed files with 104 additions and 41 deletions

View File

@ -202,5 +202,8 @@ namespace ZR.Admin.WebApi.Controllers
return (sFileName, fullPath);
}
}
}

View File

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.MES.wms;
@ -116,6 +117,68 @@ namespace ZR.Admin.WebApi.Controllers
return SUCCESS(nowProduction);
}
[HttpGet("download_template")]
[Log(Title = "下载物料清单模版", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
[AllowAnonymous] //不需要授权 就可以访问
public IActionResult DownloadTemplate()
{
(string, string) result = DownloadImportTemplate("物料清单模版");//返回文件名和路径
return ExportExcel(result.Item2, result.Item1);
}
[HttpGet("importData")]
[Log(Title = "物料清单批量导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
[AllowAnonymous] //不需要授权 就可以访问
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile, bool updateSupport)
{
//1.0 读取excel 文件 保存在指定位置
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
string sFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + formFile.FileName;
string target = Path.Combine(webHostEnvironment.WebRootPath, "wmmaterial", sFileName);
if (!Directory.Exists(Path.Combine(webHostEnvironment.WebRootPath, "wmmaterial")))
{
// 如果目录不存在就创建
Directory.CreateDirectory(Path.Combine(webHostEnvironment.WebRootPath, "wmmaterial"));
}
//2.0 解析 excel
using (var stream = formFile.OpenReadStream())
{
FileStream targetFileStream = new FileStream(target, FileMode.Create, FileAccess.Write);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
targetFileStream.Write(buffer, 0, bytesRead);
}
//IWorkbook workbook = new XSSFWorkbook(stream);
//ISheet sheet = workbook.GetSheetAt(0); // 读取第一个工作表
//for (int i = 0; i <= sheet.LastRowNum; i++)
//{
// IRow row = sheet.GetRow(i);
// if (row != null)
// {
// for (int j = 0; j < row.LastCellNum; j++)
// {
// Console.Write(row.GetCell(j) + "\t");
// }
// Console.WriteLine();
// }
//}
}
return null;
}

View File

@ -203,7 +203,7 @@ namespace ZR.Admin.WebApi.Controllers
return SUCCESS(null);
}
(int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, HttpContext.GetName());
(int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, "HttpContext.GetName()");
return SUCCESS(data);
}
@ -233,13 +233,13 @@ namespace ZR.Admin.WebApi.Controllers
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
[HttpGet("checkProductionOut")]
public IActionResult CheckProductionOut( string parnumber,string production_packcode = "", string shipment_num = "")
public IActionResult CheckProductionOut( string partnumber,string production_packcode = "", string shipment_num = "")
{
if(string.IsNullOrEmpty(parnumber)) {
if(string.IsNullOrEmpty(partnumber)) {
return ToResponse(new ApiResult(200, "请选择物料号", false));
}
string msg = "";
msg = _WmOutOrderService.CheckProductionOut(parnumber,production_packcode, shipment_num);
msg = _WmOutOrderService.CheckProductionOut(partnumber, production_packcode, shipment_num);
if(msg !="ok")
{
return ToResponse(new ApiResult(200, msg, false));
@ -247,9 +247,7 @@ namespace ZR.Admin.WebApi.Controllers
else
{
return ToResponse(new ApiResult(200, msg, true));
}
}
}
}

View File

@ -448,40 +448,38 @@ namespace ZR.Service.mes.wms
{
//TODO 保证 同一出货单下 同一物料下最早批次
// 取出同一出货单下 同一物料下 未满箱的最早批次
WmOutOrderPlan plan_item =Context.Queryable<WmOutOrderPlan>()
string short_patch = item.Split("_")[0];
WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
.Where(it => it.FkOutOrderId == shipnumber)
.Where(it => it.Patchcode == item).First();
var plan_earliest = Context.Queryable<WmOutOrderPlan>()
.Where(it => it.Patchcode.Contains(short_patch)).First();
if (plan_item != null)
{
var plan_earliest = Context.Queryable<WmOutOrderPlan>()
.Where(it => it.FkOutOrderId == shipnumber)
.Where(it=>it.MaterialCode== plan_item.MaterialCode)
.Where(it=>it.PackageNum>it.ReceivedPackNum)
.OrderBy(it=>it.Outorder)
.Where(it => it.MaterialCode == plan_item.MaterialCode)
.Where(it => it.PackageNum > it.ReceivedPackNum)
.OrderBy(it => it.Outorder)
.First();
//已经出库完成,没有可以出库的了
if(plan_earliest != null)
{
return (100, 100);
}
if (plan_earliest.Id == plan_earliest.Id)
{
// TODO 每次出库要出库计划累加
Context.Updateable<WmOutOrderPlan>()
.SetColumns(it => it.ReceivedPackNum == it.ReceivedPackNum + 1)
.Where(it => it.FkOutOrderId == shipnumber)
.Where(it => it.Patchcode == item)
.ExecuteCommand();
UseTran2(() =>
//已经出库完成,没有可以出库的了
if (plan_earliest == null)
{
return (100, 100);
}
if (plan_earliest.Id == plan_earliest.Id)
{
// TODO 每次出库要出库计划累加
Context.Updateable<WmOutOrderPlan>()
.SetColumns(it => it.ReceivedPackNum == it.ReceivedPackNum + 1)
.Where(it => it.FkOutOrderId == shipnumber)
.Where(it => it.Patchcode == item)
.ExecuteCommand();
WmGoodsOutRecord record = new WmGoodsOutRecord();
record.Id = SnowFlakeSingle.Instance.NextId().ToString();
WmGoodsNowProduction nowProduction = Context.Queryable<WmGoodsNowProduction>()
.Where(it => it.PackageCodeClient == item).First();
@ -507,13 +505,14 @@ namespace ZR.Service.mes.wms
}
});
}
else
{
// 不在最早批次内
return (200, 200);
}
}
else
{
// 不在最早批次内
return (200, 200);
}