仓库-GP12查询条件,描述,PDA入库出库功能调整
This commit is contained in:
@@ -255,7 +255,7 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
return SUCCESS(null);
|
||||
}
|
||||
|
||||
(int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, "HttpContext.GetName()");
|
||||
(int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, "PDA出库");
|
||||
|
||||
return SUCCESS(data);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,10 @@ namespace ZR.Model.MES.wms.Dto
|
||||
/// 上件数
|
||||
/// </summary>
|
||||
public int PreviousNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单状态 0-初态 1-上线 2-已完成
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -75,11 +75,11 @@ namespace ZR.Service.Utils
|
||||
}
|
||||
string des1 = material.Description;
|
||||
string des2 = material.ProductName;
|
||||
if (string.IsNullOrEmpty(des1))
|
||||
if (!string.IsNullOrEmpty(des1))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des1;
|
||||
}
|
||||
if (string.IsNullOrEmpty(des2))
|
||||
else if (!string.IsNullOrEmpty(des2))
|
||||
{
|
||||
resultionPackageCode.ProductionDescribe = des2;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,12 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
|
||||
ResultionPackageCodeDto resultionPackage = ResolutionPackage(wmgoods.packagelist[i]);
|
||||
// XXX 入库时查出此批次号箱已入库,则跳过
|
||||
bool hasWarehouse = Context.Queryable<WmGoodsNowProduction>().Where(it => it.PackageCodeClient == resultionPackage.PatchCode).Any();
|
||||
if (hasWarehouse)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
WmGoodsNowProduction wmGood = new WmGoodsNowProduction();
|
||||
wmGood.Id = SnowFlakeSingle.Instance.NextId().ToString();
|
||||
|
||||
@@ -244,7 +250,7 @@ namespace ZR.Service.mes.wms
|
||||
}
|
||||
|
||||
|
||||
// 检查是否可入库(ok 可入库,其余返回情况)
|
||||
// 检查是否可入库(返回ok 可入库,其余返回情况)【使用中接口】
|
||||
public string checkWarehousing(string production_packcode, string location, bool isStrict)
|
||||
{
|
||||
try
|
||||
@@ -279,8 +285,14 @@ namespace ZR.Service.mes.wms
|
||||
string package_no = resultionPackage.PatchCode.Split("_")[1];
|
||||
var inspect= Context.Queryable<WmFgentryInspect>()
|
||||
.Where(it => it.Workorder == resultionPackage.WorkoderID)
|
||||
.Where(it => it.Packcode.EndsWith(package_no)).First();
|
||||
if(inspect == null)
|
||||
.Where(it => it.Packcode.EndsWith(package_no))
|
||||
.OrderByDescending(it=>it.CreatedTime)
|
||||
.First();
|
||||
// XXX 添加校验,如果是编号为4号的打印机打出来的就跳过GP12,满箱与测试标签校验
|
||||
if (inspect.Machine != "4")
|
||||
{
|
||||
// 其余不变
|
||||
if (inspect == null)
|
||||
{
|
||||
return "GP12 异常错误 GP12无此箱记录 ";
|
||||
}
|
||||
@@ -288,11 +300,11 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
return "该箱号GP12 检验不合格,不得入库";
|
||||
}
|
||||
if (inspect.Result == 0|| inspect.Result==null)
|
||||
if (inspect.Result == 0 || inspect.Result == null)
|
||||
{
|
||||
return "该箱号GP12 未检验,不得入库";
|
||||
}
|
||||
|
||||
}
|
||||
// 3.isStrict = TRUE时判断是否是满箱标签
|
||||
string packingCode = resultionPackage.PatchCode.Split('_')[1];
|
||||
bool isExist = Context.Queryable<WmPackingrecord>()
|
||||
@@ -321,7 +333,7 @@ namespace ZR.Service.mes.wms
|
||||
string PackageCode = Getpack_no(resultionPackage.WorkoderID, flow_num.ToString("000"));
|
||||
if (PackageCode == null)
|
||||
{
|
||||
return "该标签不可追溯!请入临时仓库!";
|
||||
return "该标签可能为测试标签,不可追溯!请入临时仓库!";
|
||||
}
|
||||
}
|
||||
return "ok";
|
||||
|
||||
@@ -84,12 +84,18 @@ namespace ZR.Service.mes.wms
|
||||
/// <returns></returns>
|
||||
public PagedInfo<WmFgentryInspect_parentDto> GetList_first(WmFgentryInspectQueryDto parm)
|
||||
{
|
||||
bool useTime = false;
|
||||
if (string.IsNullOrEmpty(parm.Workorder) && string.IsNullOrEmpty(parm.Packcode) && string.IsNullOrEmpty(parm.Partnumber))
|
||||
{
|
||||
useTime = true;
|
||||
}
|
||||
var predicate = Expressionable.Create<WmFgentryInspect>()
|
||||
.AndIF(!string.IsNullOrEmpty(parm.Workorder), it => it.Workorder.Contains(parm.Workorder))
|
||||
.AndIF(!string.IsNullOrEmpty(parm.Packcode), it => it.Packcode.Contains(parm.Packcode))
|
||||
.AndIF(!string.IsNullOrEmpty(parm.Partnumber), it => it.Partnumber.Contains(parm.Partnumber))
|
||||
.AndIF(parm.starttime != null && parm.starttime > new DateTime(1999, 1, 1), it => it.CreatedTime > parm.starttime)
|
||||
.AndIF(parm.endtime != null && parm.endtime > new DateTime(1999, 1, 1), it => it.CreatedTime < parm.endtime)
|
||||
// XXX 调整搜索逻辑,当搜索工单号零件号或标签时,屏蔽时间的判定
|
||||
.AndIF(useTime && parm.starttime > new DateTime(1999, 1, 1), it => it.CreatedTime > parm.starttime)
|
||||
.AndIF(useTime && parm.endtime > new DateTime(1999, 1, 1), it => it.CreatedTime < parm.endtime)
|
||||
;
|
||||
|
||||
|
||||
@@ -117,18 +123,28 @@ namespace ZR.Service.mes.wms
|
||||
ProductDescription =w.ProductDescription,
|
||||
Specifications=w.Specifications,
|
||||
PreviousNumber = w.PreviousNumber,
|
||||
Colour = w.Colour
|
||||
|
||||
Colour = w.Colour,
|
||||
Status = w.Status
|
||||
})
|
||||
.ToList();
|
||||
|
||||
foreach (var inspect in inspects)
|
||||
{
|
||||
|
||||
inspect.Result_good = Queryable().Where(it => it.Workorder == inspect.Workorder).Where(it => it.Result == 1).Count();
|
||||
inspect.Result_bad = Queryable().Where(it => it.Workorder == inspect.Workorder).Where(it => it.Result == 2).Count();
|
||||
inspect.Result_null = Queryable().Where(it => it.Workorder == inspect.Workorder).Where(it => it.Result == 0 || it.Result == null).Count();
|
||||
|
||||
|
||||
// 描述来源调整为物料清单
|
||||
WmMaterial material = Context.Queryable<WmMaterial>()
|
||||
.Where(it => it.Partnumber == inspect.Partnumber)
|
||||
.First();
|
||||
if (material == null)
|
||||
{
|
||||
inspect.ProductDescription = "此零件号不在物料清单内!";
|
||||
}
|
||||
else
|
||||
{
|
||||
inspect.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -678,21 +678,36 @@ namespace ZR.Service.mes.wms
|
||||
{
|
||||
return "该箱号未入库!请先入库";
|
||||
}
|
||||
|
||||
// 4.获取出库单号对应的出库计划
|
||||
// List<WmOutOrderPlan> orderPlans = Generate_outorderplan(shipment_num);
|
||||
// 5.配对是否符合出库条件
|
||||
//foreach (var orderPlan in orderPlans)
|
||||
//{
|
||||
// // 存在匹配条件: 箱标签批次号包含计划短批次号
|
||||
// if (orderPlan != null && resultionPackage.PatchCode.Contains(orderPlan.Patchcode_short))
|
||||
// {
|
||||
// return "ok";
|
||||
// }
|
||||
//}
|
||||
// 3.2 判断是否是计划中的物料(大概率不执行)
|
||||
bool flag1 = false;
|
||||
List<WmMaterial> materialOutorders = Context.Queryable<WmMaterialOutorder>()
|
||||
.LeftJoin<WmMaterial>((wmo,wm)=>wmo.FkMaterialId == wm.Id)
|
||||
.Where(wmo => wmo.FkOutorderId == shipment_num)
|
||||
.Select((wmo, wm) => new WmMaterial
|
||||
{
|
||||
Partnumber = wm.Partnumber
|
||||
})
|
||||
.ToList();
|
||||
foreach(WmMaterial materialOption in materialOutorders)
|
||||
{
|
||||
if (materialOption.Partnumber == resultionPackage.PartNumner)
|
||||
{
|
||||
flag1 = true;
|
||||
}
|
||||
}
|
||||
if (!flag1)
|
||||
{
|
||||
return "该箱标签物料号不在出库单物料清单内!";
|
||||
}
|
||||
// 4. 判断出库单是否启用出库规则
|
||||
var shipment = Context.Queryable<WmOutOrder>().Where(it => it.ShipmentNum == shipment_num).First();
|
||||
if (shipment.Status == 0)
|
||||
{
|
||||
return "ok";
|
||||
}
|
||||
// 5. 确保出最早批次
|
||||
string short_path = resultionPackage.PatchCode.Split('_')[0];
|
||||
// 严格规则
|
||||
// 严格规则(出库规则判断)
|
||||
return CheckRuleJudgmentFirstInFirstOut(shipment_num, short_path, parnumber);
|
||||
/*WmOutOrderPlan plan_item = Context.Queryable<WmOutOrderPlan>()
|
||||
.Where(it => it.FkOutOrderId == shipment_num)
|
||||
|
||||
Reference in New Issue
Block a user