一次合格品仓库,抛光仓库,GP12质检报告,抛光操作,后道检验相关功能完善
This commit is contained in:
@@ -27,12 +27,56 @@ namespace ZR.Service.mes.wms
|
||||
/// <returns></returns>
|
||||
public PagedInfo<WmGp12QualityStatisticsDto> GetList(WmGp12QualityStatisticsQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<WmGp12QualityStatistics>();
|
||||
var predicate = Expressionable
|
||||
.Create<WmGp12QualityStatistics>()
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.WorkorderId),
|
||||
it => it.WorkorderId.Contains(parm.WorkorderId)
|
||||
)
|
||||
.AndIF(!string.IsNullOrEmpty(parm.Team), it => it.Team.Contains(parm.Team))
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.Partnumber),
|
||||
it => it.Partnumber.Contains(parm.Partnumber)
|
||||
)
|
||||
.AndIF(
|
||||
!string.IsNullOrEmpty(parm.CreatedBy),
|
||||
it => it.CreatedBy.Contains(parm.CreatedBy)
|
||||
)
|
||||
.AndIF(
|
||||
parm.StartTime != null,
|
||||
it => it.StartTime >= parm.StartTime.Value.ToLocalTime()
|
||||
)
|
||||
.AndIF(
|
||||
parm.EndTime != null,
|
||||
it => it.StartTime <= parm.EndTime.Value.ToLocalTime()
|
||||
);
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<WmGp12QualityStatistics, WmGp12QualityStatisticsDto>(parm);
|
||||
|
||||
if (response.Result.Count > 0)
|
||||
{
|
||||
foreach (WmGp12QualityStatisticsDto item in response.Result)
|
||||
{
|
||||
WmMaterial material = Context
|
||||
.Queryable<WmMaterial>()
|
||||
.Where(it => it.Partnumber == item.Partnumber)
|
||||
.Where(it => it.Type == 1)
|
||||
.Where(it => it.Status == 1)
|
||||
.First();
|
||||
if (material == null)
|
||||
{
|
||||
item.Description = "此零件号不在物料清单内!";
|
||||
continue;
|
||||
}
|
||||
item.QualifiedRateStr = Math.Ceiling(item.QualifiedRate).ToString() + "%";
|
||||
item.Color = material.Color;
|
||||
item.Specification = material.Specification;
|
||||
item.Description = !string.IsNullOrEmpty(material.Description)
|
||||
? material.Description
|
||||
: material.ProductName;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -55,7 +99,114 @@ namespace ZR.Service.mes.wms
|
||||
/// <returns></returns>
|
||||
public WmGp12QualityStatistics AddWmGp12QualityStatistics(WmGp12QualityStatistics model)
|
||||
{
|
||||
return Context.Insertable(model).ExecuteReturnEntity();
|
||||
try
|
||||
{
|
||||
Context.Ado.BeginTran();
|
||||
if (
|
||||
model.RequireNumber
|
||||
!= (
|
||||
model.QualifiedNumber
|
||||
+ model.PaoguangTotal
|
||||
+ model.DamoTotal
|
||||
+ model.BaofeiTotal
|
||||
)
|
||||
)
|
||||
{
|
||||
throw new Exception("投入数与合格数,抛光总数,打磨数,报废数不符合,请检查");
|
||||
}
|
||||
model.Id = SnowFlakeSingle.instance.NextId().ToString();
|
||||
model.Type = 0;
|
||||
decimal qualifiedRate = 0.0m;
|
||||
if (model.QualifiedNumber != 0)
|
||||
{
|
||||
qualifiedRate =
|
||||
(decimal)model.QualifiedNumber / model.RequireNumber * 100 ?? 0.0m;
|
||||
}
|
||||
model.QualifiedRate = qualifiedRate;
|
||||
WmGp12QualityStatistics res0 = Context.Insertable(model).ExecuteReturnEntity();
|
||||
if (res0 == null)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception("插入GP12检测结果记录失败");
|
||||
}
|
||||
WmOneTimeInventoryService oneTimeService = new();
|
||||
WmPolishInventoryService inventoryService = new();
|
||||
//抛光品重新进入抛光仓库
|
||||
if (model.PaoguangTotal > 0)
|
||||
{
|
||||
WmPolishInventory wmPolishInventoryWarehousing =
|
||||
new()
|
||||
{
|
||||
Partnumber = model.Partnumber,
|
||||
WorkOrder = model.WorkorderId,
|
||||
Type = model.IsReturnWorkpiece ? 2 : 1,
|
||||
Quantity = model.PaoguangTotal,
|
||||
CreatedBy = model.CreatedBy,
|
||||
ActionTime = DateTime.Now.ToLocalTime(),
|
||||
Remark =
|
||||
"GP12检测抛光入库,抛光数:"
|
||||
+ model.PaoguangTotal
|
||||
+ "、工单号:"
|
||||
+ model.WorkorderId ?? "未填写工单号"
|
||||
+ "。记录时间:"
|
||||
+ model.CreatedTime.Value.ToLocalTime().ToString()
|
||||
+ "[来源记录识别编号:"
|
||||
+ res0.Id
|
||||
+ "]"
|
||||
};
|
||||
int res1 = inventoryService.DoWmPolishWarehousing(wmPolishInventoryWarehousing);
|
||||
if (res1 == 0)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception("GP12检测结果抛光入库失败");
|
||||
}
|
||||
}
|
||||
//合格品,报废,打磨品,抛光品 扣除一次合格品仓库库存
|
||||
if ((model.BaofeiTotal + model.DamoTotal + model.QualifiedNumber + model.PaoguangTotal) > 0)
|
||||
{
|
||||
WmOneTimeInventory wmOneTimeInventoryRetrieval =
|
||||
new()
|
||||
{
|
||||
Partnumber = model.Partnumber,
|
||||
WorkOrder = model.WorkorderId,
|
||||
Type = model.IsReturnWorkpiece ? 2 : 1,
|
||||
Quantity = (
|
||||
model.BaofeiTotal + model.DamoTotal + model.QualifiedNumber + model.PaoguangTotal
|
||||
),
|
||||
CreatedBy = model.CreatedBy,
|
||||
ActionTime = DateTime.Now.ToLocalTime(),
|
||||
Remark =
|
||||
"GP12检测记录出库,合格数:"
|
||||
+ model.QualifiedNumber
|
||||
+ "、抛光数:"
|
||||
+ model.PaoguangTotal
|
||||
+ "、打磨数:"
|
||||
+ model.DamoTotal
|
||||
+ "、报废数:"
|
||||
+ model.BaofeiTotal
|
||||
+ "、工单号:"
|
||||
+ model.WorkorderId ?? "未填写工单号"
|
||||
+ "。记录时间:"
|
||||
+ model.CreatedTime.Value.ToLocalTime().ToString()
|
||||
+ "[来源记录识别编号:"
|
||||
+ res0.Id
|
||||
+ "]"
|
||||
};
|
||||
int res2 = oneTimeService.DoWmOneTimeRetrieval(wmOneTimeInventoryRetrieval);
|
||||
if (res2 == 0)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception("GP12检测结果出库失败");
|
||||
}
|
||||
}
|
||||
Context.Ado.CommitTran();
|
||||
return res0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Context.Ado.RollbackTran();
|
||||
throw new Exception(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -65,7 +216,33 @@ namespace ZR.Service.mes.wms
|
||||
/// <returns></returns>
|
||||
public int UpdateWmGp12QualityStatistics(WmGp12QualityStatistics model)
|
||||
{
|
||||
return Update(model, true);
|
||||
try
|
||||
{
|
||||
if (
|
||||
model.RequireNumber
|
||||
!= (
|
||||
model.QualifiedNumber
|
||||
+ model.PaoguangTotal
|
||||
+ model.DamoTotal
|
||||
+ model.BaofeiTotal
|
||||
)
|
||||
)
|
||||
{
|
||||
throw new Exception("投入数与合格数,抛光数,打磨数,报废数不符合,请检查");
|
||||
}
|
||||
decimal qualifiedRate = 0.0m;
|
||||
if (model.QualifiedNumber != 0)
|
||||
{
|
||||
qualifiedRate =
|
||||
(decimal)model.QualifiedNumber / model.RequireNumber * 100 ?? 0.0m;
|
||||
}
|
||||
model.QualifiedRate = qualifiedRate;
|
||||
return Update(model, true);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new Exception(e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user