缺料判定
This commit is contained in:
parent
bedfcc7b9d
commit
58f2df2f57
49
DOAN.Model/MES/ERP/CustDevMesCurrentStock.cs
Normal file
49
DOAN.Model/MES/ERP/CustDevMesCurrentStock.cs
Normal file
@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// 仓库库存详情
|
||||
/// </summary>
|
||||
[Tenant("1")]
|
||||
[SugarTable("custDev_mes_CurrentStock")]
|
||||
public class CustDevMesCurrentStock
|
||||
{
|
||||
/// <summary>
|
||||
/// 仓库编码
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "cWhCode")]
|
||||
public string WhCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 仓库名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "cWhName")]
|
||||
public string WhName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 存货编码
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "cInvCode")]
|
||||
public string InvCode { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 存货名称
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "cInvName")]
|
||||
public string InvName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "iQuantity")]
|
||||
public decimal IQuantity { get; set; }
|
||||
}
|
||||
}
|
||||
@ -5,7 +5,7 @@ namespace DOAN.Model.MES.mm.Dto
|
||||
/// <summary>
|
||||
/// 物料需求计划查询对象
|
||||
/// </summary>
|
||||
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; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
public decimal WhQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 缺料数量
|
||||
/// </summary>
|
||||
public decimal LackQuantity { get; set; }
|
||||
|
||||
public DateTime? RequireDate { get; set; }
|
||||
|
||||
|
||||
@ -53,7 +63,7 @@ namespace DOAN.Model.MES.mm.Dto
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -31,16 +31,22 @@ namespace DOAN.Model.MES.mm
|
||||
[SugarColumn(ColumnName = "require_num")]
|
||||
public decimal RequireNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 库存数量
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "wh_quantity")]
|
||||
public decimal WhQuantity { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 需求日期
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "require_date")]
|
||||
public DateTime? RequireDate { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 所属数组
|
||||
/// 所属工单
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "workorder_array")]
|
||||
public string WorkorderArray { get; set; }
|
||||
|
||||
@ -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<string, float> need_Materials = new Dictionary<string, float>();
|
||||
Dictionary<string,HashSet<string>> need_Materials_workOrder=new Dictionary<string, HashSet<string>>();
|
||||
Dictionary<string, HashSet<string>> need_Materials_workOrder = new Dictionary<string, HashSet<string>>();
|
||||
List<MmRequirePlan> mmRequirePlans = new List<MmRequirePlan>();
|
||||
//获取当天所有工单
|
||||
List<ProWorkorder> ProWorkorderList = Context.Queryable<ProWorkorder>().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> baseMaterialList = Context.Queryable<BaseMaterialList>().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<CustDevMesCurrentStock>();
|
||||
var search_code_List = childDb.Queryable<CustDevMesCurrentStock>().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<MmRequirePlan, MmRequirePlanDto>(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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user