diff --git a/ZR.Admin.WebApi/Controllers/BaseController.cs b/ZR.Admin.WebApi/Controllers/BaseController.cs
index e202e809..5aa0e5f6 100644
--- a/ZR.Admin.WebApi/Controllers/BaseController.cs
+++ b/ZR.Admin.WebApi/Controllers/BaseController.cs
@@ -202,5 +202,8 @@ namespace ZR.Admin.WebApi.Controllers
return (sFileName, fullPath);
}
+
+
+
}
}
diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs
index 5f9e3545..6cab4e03 100644
--- a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs
@@ -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;
+ }
diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
index a2fd9413..d6e8284e 100644
--- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
@@ -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
/// 出库单号
///
[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));
- }
-
-
+ }
}
}
diff --git a/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xls b/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xls
new file mode 100644
index 00000000..8fa7b1c3
Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xls differ
diff --git a/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xlsx b/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xlsx
new file mode 100644
index 00000000..a5e75782
Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/ImportTemplate/物料清单模版.xlsx differ
diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs
index 9608d4f6..3f7df174 100644
--- a/ZR.Service/mes/wms/WmOutOrderService.cs
+++ b/ZR.Service/mes/wms/WmOutOrderService.cs
@@ -448,40 +448,38 @@ namespace ZR.Service.mes.wms
{
//TODO 保证 同一出货单下 同一物料下最早批次
// 取出同一出货单下 同一物料下 未满箱的最早批次
- WmOutOrderPlan plan_item =Context.Queryable()
+ string short_patch = item.Split("_")[0];
+ WmOutOrderPlan plan_item = Context.Queryable()
.Where(it => it.FkOutOrderId == shipnumber)
- .Where(it => it.Patchcode == item).First();
- var plan_earliest = Context.Queryable()
+ .Where(it => it.Patchcode.Contains(short_patch)).First();
+ if (plan_item != null)
+ {
+ var plan_earliest = Context.Queryable()
.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()
- .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()
+ .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()
.Where(it => it.PackageCodeClient == item).First();
@@ -507,13 +505,14 @@ namespace ZR.Service.mes.wms
}
- });
+ }
+ else
+ {
+ // 不在最早批次内
+ return (200, 200);
+
+ }
- }
- else
- {
- // 不在最早批次内
- return (200, 200);
}