diff --git a/DOAN.Model/MES/ERP/CustDevMesCurrentStock.cs b/DOAN.Model/MES/ERP/CustDevMesCurrentStock.cs
new file mode 100644
index 0000000..99253bb
--- /dev/null
+++ b/DOAN.Model/MES/ERP/CustDevMesCurrentStock.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DOAN.Model.MES.ERP
+{
+ ///
+ /// 仓库库存详情
+ ///
+ [Tenant("1")]
+ [SugarTable("custDev_mes_CurrentStock")]
+ public class CustDevMesCurrentStock
+ {
+ ///
+ /// 仓库编码
+ ///
+ [SugarColumn(ColumnName = "cWhCode")]
+ public string WhCode { get; set; }
+
+ ///
+ /// 仓库名称
+ ///
+ [SugarColumn(ColumnName = "cWhName")]
+ public string WhName { get; set; }
+
+
+ ///
+ /// 存货编码
+ ///
+ [SugarColumn(ColumnName = "cInvCode")]
+ public string InvCode { get; set; }
+
+
+
+ ///
+ /// 存货名称
+ ///
+ [SugarColumn(ColumnName = "cInvName")]
+ public string InvName { get; set; }
+
+ ///
+ /// 库存数量
+ ///
+ [SugarColumn(ColumnName = "iQuantity")]
+ public decimal IQuantity { get; set; }
+ }
+}
diff --git a/DOAN.Model/MES/mm/Dto/MmRequirePlanDto.cs b/DOAN.Model/MES/mm/Dto/MmRequirePlanDto.cs
index 8e1d58c..c06acb2 100644
--- a/DOAN.Model/MES/mm/Dto/MmRequirePlanDto.cs
+++ b/DOAN.Model/MES/mm/Dto/MmRequirePlanDto.cs
@@ -5,7 +5,7 @@ namespace DOAN.Model.MES.mm.Dto
///
/// 物料需求计划查询对象
///
- public class MmRequirePlanQueryDto : PagerInfo
+ public class MmRequirePlanQueryDto : PagerInfo
{
public string MaterialCode { get; set; }
@@ -28,6 +28,16 @@ namespace DOAN.Model.MES.mm.Dto
public decimal RequireNum { get; set; }
+ ///
+ /// 库存数量
+ ///
+ public decimal WhQuantity { get; set; }
+
+ ///
+ /// 缺料数量
+ ///
+ public decimal LackQuantity { get; set; }
+
public DateTime? RequireDate { get; set; }
@@ -53,7 +63,7 @@ namespace DOAN.Model.MES.mm.Dto
-
+
diff --git a/DOAN.Model/MES/mm/MmRequirePlan.cs b/DOAN.Model/MES/mm/MmRequirePlan.cs
index 1767f99..4e8533e 100644
--- a/DOAN.Model/MES/mm/MmRequirePlan.cs
+++ b/DOAN.Model/MES/mm/MmRequirePlan.cs
@@ -31,16 +31,22 @@ namespace DOAN.Model.MES.mm
[SugarColumn(ColumnName = "require_num")]
public decimal RequireNum { get; set; }
+ ///
+ /// 库存数量
+ ///
+ [SugarColumn(ColumnName = "wh_quantity")]
+ public decimal WhQuantity { get; set; }
+
///
/// 需求日期
///
[SugarColumn(ColumnName = "require_date")]
public DateTime? RequireDate { get; set; }
-
+
///
- /// 所属数组
+ /// 所属工单
///
[SugarColumn(ColumnName = "workorder_array")]
public string WorkorderArray { get; set; }
diff --git a/DOAN.Service/MES/mm/MmRequirePlanService.cs b/DOAN.Service/MES/mm/MmRequirePlanService.cs
index f811d9e..a3fc4b3 100644
--- a/DOAN.Service/MES/mm/MmRequirePlanService.cs
+++ b/DOAN.Service/MES/mm/MmRequirePlanService.cs
@@ -14,6 +14,7 @@ using DOAN.Model.MES.product;
using DOAN.Model.MES.base_;
using Microsoft.Extensions.Logging;
using NPOI;
+using DOAN.Model.MES.ERP;
namespace DOAN.Service.group
{
@@ -34,7 +35,7 @@ namespace DOAN.Service.group
int result = 0;
plan_date = plan_date.Date;
Dictionary need_Materials = new Dictionary();
- Dictionary> need_Materials_workOrder=new Dictionary>();
+ Dictionary> need_Materials_workOrder = new Dictionary>();
List mmRequirePlans = new List();
//获取当天所有工单
List ProWorkorderList = Context.Queryable().Where(it => it.WorkorderDate == plan_date).ToList();
@@ -68,7 +69,7 @@ namespace DOAN.Service.group
}
if (need_Materials_workOrder.ContainsKey(item.SubInvCode))
{
-
+
need_Materials_workOrder[item.SubInvCode].Add(workorder_item.Workorder);
}
else
@@ -86,19 +87,33 @@ namespace DOAN.Service.group
{
string[] SubInvCode = need_Materials.Keys.ToArray();
List baseMaterialList = Context.Queryable().Where(it => SubInvCode.Contains(it.Code)).ToList();
+
if (baseMaterialList != null && baseMaterialList.Count() > 0)
{
+ string[] search_codes = baseMaterialList.Select(it => it.Code).ToArray();
+ var childDb = Context.AsTenant().GetConnectionWithAttr();
+ var search_code_List = childDb.Queryable().Where(it => search_codes.Contains(it.InvCode)).ToList();
foreach (var item in baseMaterialList)
{
+ decimal IQuantity = search_code_List.Where(it => it.InvCode == item.Code).Select(it => it.IQuantity).FirstOrDefault();
+
MmRequirePlan mmRequirePlan = new MmRequirePlan();
mmRequirePlan.Id = XueHua;
mmRequirePlan.MaterialCode = item.Code;
mmRequirePlan.MaterialName = item.Name;
mmRequirePlan.RequireNum = (decimal)(need_Materials.TryGetValue(item.Code, out float value) ? value : default(float));
-
+ mmRequirePlan.WhQuantity = IQuantity;
mmRequirePlan.RequireDate = plan_date;
- mmRequirePlan.IsSufficient = 0;
+ if (mmRequirePlan.RequireNum > mmRequirePlan.WhQuantity)
+ {
+ mmRequirePlan.IsSufficient = 1;
+ }
+ else
+ {
+ mmRequirePlan.IsSufficient = 2;
+ }
+
mmRequirePlan.CreatedBy = name;
mmRequirePlan.CreatedTime = DateTime.Now;
@@ -106,9 +121,9 @@ namespace DOAN.Service.group
if (need_Materials_workOrder.ContainsKey(item.Code))
{
- mmRequirePlan.WorkorderArray= String.Join(", ", need_Materials_workOrder[item.Code].ToArray());
+ mmRequirePlan.WorkorderArray = String.Join(", ", need_Materials_workOrder[item.Code].ToArray());
}
-
+
mmRequirePlans.Add(mmRequirePlan);
@@ -158,18 +173,17 @@ namespace DOAN.Service.group
.Where(predicate.ToExpression())
.ToPage(parm);
- //TODO 增加所属工单
- //if (response != null && response.Result != null && response.Result.Count() > 0)
- //{
- // foreach (var item in response.Result) {
- // //子件抓母件 母件抓工单
-
-
-
- // }
+ if (response != null && response.Result != null && response.Result.Count > 0)
+ {
- //}
+ foreach (var item in response.Result)
+ {
+ item.LackQuantity = (item.RequireNum - item.WhQuantity) > 0 ? (item.RequireNum - item.WhQuantity) : 0;
+
+ }
+
+ }
return response;