diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
index 4384957d..999df646 100644
--- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs
@@ -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);
}
diff --git a/ZR.Model/MES/wms/Dto/WmFgentryInspectDto.cs b/ZR.Model/MES/wms/Dto/WmFgentryInspectDto.cs
index 5cba4887..a3432479 100644
--- a/ZR.Model/MES/wms/Dto/WmFgentryInspectDto.cs
+++ b/ZR.Model/MES/wms/Dto/WmFgentryInspectDto.cs
@@ -90,7 +90,10 @@ namespace ZR.Model.MES.wms.Dto
/// 上件数
///
public int PreviousNumber { get; set; }
-
+ ///
+ /// 工单状态 0-初态 1-上线 2-已完成
+ ///
+ public int Status { get; set; }
}
diff --git a/ZR.Service/Utils/MaterialUtils.cs b/ZR.Service/Utils/MaterialUtils.cs
index effcf5ef..51b182e9 100644
--- a/ZR.Service/Utils/MaterialUtils.cs
+++ b/ZR.Service/Utils/MaterialUtils.cs
@@ -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;
}
diff --git a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs
index b313960b..88bac97d 100644
--- a/ZR.Service/mes/wms/WMentryWarehousing_productService.cs
+++ b/ZR.Service/mes/wms/WMentryWarehousing_productService.cs
@@ -26,6 +26,12 @@ namespace ZR.Service.mes.wms
{
ResultionPackageCodeDto resultionPackage = ResolutionPackage(wmgoods.packagelist[i]);
+ // XXX 入库时查出此批次号箱已入库,则跳过
+ bool hasWarehouse = Context.Queryable().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,20 +285,26 @@ namespace ZR.Service.mes.wms
string package_no = resultionPackage.PatchCode.Split("_")[1];
var inspect= Context.Queryable()
.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")
{
- return "GP12 异常错误 GP12无此箱记录 ";
+ // 其余不变
+ if (inspect == null)
+ {
+ return "GP12 异常错误 GP12无此箱记录 ";
+ }
+ if (inspect.Result == 2)
+ {
+ return "该箱号GP12 检验不合格,不得入库";
+ }
+ if (inspect.Result == 0 || inspect.Result == null)
+ {
+ return "该箱号GP12 未检验,不得入库";
+ }
}
- if (inspect.Result == 2)
- {
- return "该箱号GP12 检验不合格,不得入库";
- }
- if (inspect.Result == 0|| inspect.Result==null)
- {
- return "该箱号GP12 未检验,不得入库";
- }
-
// 3.isStrict = TRUE时判断是否是满箱标签
string packingCode = resultionPackage.PatchCode.Split('_')[1];
bool isExist = Context.Queryable()
@@ -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";
diff --git a/ZR.Service/mes/wms/WmFgentryInspectService.cs b/ZR.Service/mes/wms/WmFgentryInspectService.cs
index 70dec7ee..7a8afb06 100644
--- a/ZR.Service/mes/wms/WmFgentryInspectService.cs
+++ b/ZR.Service/mes/wms/WmFgentryInspectService.cs
@@ -84,12 +84,18 @@ namespace ZR.Service.mes.wms
///
public PagedInfo 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()
.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()
+ .Where(it => it.Partnumber == inspect.Partnumber)
+ .First();
+ if (material == null)
+ {
+ inspect.ProductDescription = "此零件号不在物料清单内!";
+ }
+ else
+ {
+ inspect.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName;
+ }
}
diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs
index 7d8fb379..5d291105 100644
--- a/ZR.Service/mes/wms/WmOutOrderService.cs
+++ b/ZR.Service/mes/wms/WmOutOrderService.cs
@@ -678,21 +678,36 @@ namespace ZR.Service.mes.wms
{
return "该箱号未入库!请先入库";
}
-
- // 4.获取出库单号对应的出库计划
- // List 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 materialOutorders = Context.Queryable()
+ .LeftJoin((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().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()
.Where(it => it.FkOutOrderId == shipment_num)