diff --git a/src/Khd.Core.Domain/Models/WmsRawReturnDetail.cs b/src/Khd.Core.Domain/Models/WmsRawReturnDetail.cs
new file mode 100644
index 0000000..ca0792a
--- /dev/null
+++ b/src/Khd.Core.Domain/Models/WmsRawReturnDetail.cs
@@ -0,0 +1,104 @@
+
+//-----------------------------------------------------------------------
+//
+// * Copyright (C) 2021 KEHAIDASOFT All Rights Reserved
+// * version : 4.0.30319.42000
+// * author : khd by t4-2
+//
+//-----------------------------------------------------------------------
+
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Khd.Core.Domain.Models
+{
+
+ [Table("wms_raw_return_detail")]
+ public class WmsRawReturnDetail
+ {
+ [Key]
+ [Column("raw_return_detail_id")]
+ public long RawReturnDetailId { get; set; }
+
+ [Column("raw_return_id")]
+ public long RawReturnId { get; set; }
+
+ [Column("location_code")]
+ [StringLength(64)]
+ public string LocationCode { get; set; }
+
+ [Column("material_barcode")]
+ [StringLength(64)]
+ public string MaterialBarcode { get; set; }
+
+ [Column("material_id")]
+ public long MaterialId { get; set; }
+
+ [Column("instock_batch")]
+ [StringLength(64)]
+ public string InstockBatch { get; set; }
+
+ [Column("material_production_date")]
+ public DateTime? MaterialProductionDate { get; set; }
+
+ [Column("plan_amount")]
+ [Precision(16, 2)]
+ public decimal PlanAmount { get; set; }
+
+ [Column("return_amount")]
+ [Precision(16, 2)]
+ public decimal? ReturnAmount { get; set; }
+
+ [Column("execute_status")]
+ [StringLength(1)]
+ public string ExecuteStatus { get; set; }
+
+ [Column("erp_status")]
+ [StringLength(1)]
+ public string ErpStatus { get; set; }
+
+ [Column("erp_amount")]
+ [Precision(16, 2)]
+ public decimal? ErpAmount { get; set; }
+
+ [Column("return_person")]
+ [StringLength(64)]
+ public string ReturnPerson { get; set; }
+
+ [Column("return_time")]
+ public DateTime? ReturnTime { get; set; }
+
+ [Column("return_way")]
+ [StringLength(1)]
+ public string ReturnWay { get; set; }
+
+ [Column("machine_name")]
+ [StringLength(64)]
+ public string MachineName { get; set; }
+
+ [Column("quality_status")]
+ [StringLength(1)]
+ public string QualityStatus { get; set; }
+
+ [Column("create_by")]
+ [StringLength(64)]
+ public string CreateBy { get; set; }
+
+ [Column("create_date")]
+ public DateTime? CreateDate { get; set; }
+
+ [Column("update_by")]
+ [StringLength(64)]
+ public string UpdateBy { get; set; }
+
+ [Column("update_date")]
+ public DateTime? UpdateDate { get; set; }
+
+ [Column("stack_amount")]
+ [Precision(16, 2)]
+ public decimal? StackAmount { get; set; }
+ }
+}
+
diff --git a/src/Khd.Core.EntityFramework/DefaultDbContext.cs b/src/Khd.Core.EntityFramework/DefaultDbContext.cs
index 512c5c0..2e72f73 100644
--- a/src/Khd.Core.EntityFramework/DefaultDbContext.cs
+++ b/src/Khd.Core.EntityFramework/DefaultDbContext.cs
@@ -19,6 +19,7 @@ namespace Khd.Core.EntityFramework
public DbSet WmsInventoryCheckDetail { get; set; }
public DbSet MesBaseMaterialInfo { get; set; }
public DbSet WmsRawReturn { get; set; }
+ public DbSet WmsRawReturnDetail { get; set; }
public DbSet WcsTaskManual { get; set; }
public DbSet BaseDictionary { get; set; }
diff --git a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
index 8b5c298..b8c88b5 100644
--- a/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/FiveFloorAGV.cs
@@ -483,27 +483,47 @@ namespace Khd.Core.Wcs.Wcs
{
Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
_logger.Info("五楼Agv完成任务成功:" + item.ToJsonString());
- var wmsProductOutstockDetail = dbContext.WmsProductOutstockDetail.FirstOrDefault(t => t.productOutstockId == item.orderId && t.executeStatus == "1" && t.locationCode == item.currPointNo);
+
var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId);
- if (wmsProductOutstockDetail != null && wmsProductOutstock != null)
+
+ if ( wmsProductOutstock != null)
{
- wmsProductOutstockDetail.executeStatus = "2";
- wmsProductOutstockDetail.endTime = DateTime.Now;
- dbContext.Update(wmsProductOutstockDetail);
+ var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First();
+ WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode);
+
+
wmsProductOutstock.outstockQty += 1;
if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
{
wmsProductOutstock.endTime = DateTime.Now;
wmsProductOutstock.executeStatus = "2";
}
- WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
- .First(t => t.locationId == item.currPointId && t.warehouseFloor == 5);
+
+
+ WmsProductOutstockDetail newWmsProductOutstockDetail = new WmsProductOutstockDetail();
+ newWmsProductOutstockDetail.productOutstockId = wmsProductOutstock.productOutstockId;
+ newWmsProductOutstockDetail.warehouseId = wmsProductOutstock.warehouseId;
+ newWmsProductOutstockDetail.locationCode = wmsBaseLocation.locationCode;
+ newWmsProductOutstockDetail.productBarcode = wmsProductStock.productBatch;
+ newWmsProductOutstockDetail.productId = wmsProductStock.productId;
+ newWmsProductOutstockDetail.planAmount = wmsProductOutstock.applyQty;
+ newWmsProductOutstockDetail.outstockAmount = wmsProductOutstock.outstockQty;
+ newWmsProductOutstockDetail.executeStatus = "2";
+ newWmsProductOutstockDetail.updateBy = "WCS";
+ newWmsProductOutstockDetail.updateDate = DateTime.Now;
+ newWmsProductOutstockDetail.beginTime = DateTime.Now;
+ newWmsProductOutstockDetail.endTime = DateTime.Now;
+
+
+
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsBaseLocation);
+
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
+
dbContext.WmsProductStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
BaseEquip floorLineEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == 5);
WcsTask newTask = CoreMapper.Map(item);
@@ -514,6 +534,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.floorNo = 1;
newTask.taskStatus = 6;
newTask.objid = StaticData.SnowId.NextId();
+ dbContext.Add(newWmsProductOutstockDetail);
dbContext.Remove(item);
dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map(newTask);
@@ -529,14 +550,11 @@ namespace Khd.Core.Wcs.Wcs
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault();
if (wmsRawOutstock != null)
{
- WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == wmsRawOutstock.rawOutstockId && t.executeStatus == "1").FirstOrDefault();
- if (wmsRawOutstockDetail != null)
- {
+
wmsRawOutstock.realOutstockAmount += 1;
- wmsRawOutstockDetail.executeStatus = "2";
wmsRawOutstock.executeStatus = "2";
wmsRawOutstock.endTime = DateTime.Now;
- wmsRawOutstockDetail.outstockTime = DateTime.Now;
+
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.returnFlag = "0";
@@ -545,13 +563,13 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsRawOutstock);
- dbContext.Update(wmsRawOutstockDetail);
+
dbContext.Update(wmsBaseLocation);
dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
dbContext.WcsTask.Remove(item);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- }
+
}
}
else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库
@@ -620,31 +638,58 @@ namespace Khd.Core.Wcs.Wcs
Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
_logger.Info("五楼Agv完成任务成功:" + item.ToJsonString());
var wmsRawOutStock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault();
- WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault();
- if (wmsRawOutStock != null && wmsRawOutstockDetail != null)
+
+ WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
+ WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault();
+
+ if (wmsRawOutStock != null && wmsRawStock != null)
{
+
+
wmsRawOutStock.realOutstockAmount += 1;
- wmsRawOutstockDetail.executeStatus = "2";
wmsRawOutStock.executeStatus = "2";
wmsRawOutStock.endTime = DateTime.Now;
- wmsRawOutstockDetail.outstockTime = DateTime.Now;
- dbContext.Update(wmsRawOutStock);
- dbContext.Update(wmsRawOutstockDetail);
- WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
+
+
+
+ WmsRawOutstockDetail newWmsRawOutstockDetail = new WmsRawOutstockDetail();
+ newWmsRawOutstockDetail.rawOutstockId = wmsRawOutStock.rawOutstockId;
+ newWmsRawOutstockDetail.taskCode = wmsRawOutStock.taskCode;
+ newWmsRawOutstockDetail.warehouseId = wmsRawOutStock.warehouseId;
+ newWmsRawOutstockDetail.locationCode = wmsRawStock.locationCode;
+ newWmsRawOutstockDetail.materialBarcode = wmsRawStock.instockBatch;
+ newWmsRawOutstockDetail.materialId = wmsRawStock.materialId;
+ MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == wmsRawStock.instockBatch).FirstOrDefault();
+ if (mesBaseBarcodeInfo != null)
+ {
+ newWmsRawOutstockDetail.instockBatch = mesBaseBarcodeInfo.batchCode;
+ newWmsRawOutstockDetail.materialProductionDate = mesBaseBarcodeInfo.productionDate;
+ }
+ newWmsRawOutstockDetail.planAmount = wmsRawOutStock.outstockAmount;
+ newWmsRawOutstockDetail.outstockAmount = wmsRawOutStock.realOutstockAmount;
+ newWmsRawOutstockDetail.executeStatus = "2";
+ newWmsRawOutstockDetail.outstockPerson = wmsRawOutStock.applyBy;
+ newWmsRawOutstockDetail.outstockTime = DateTime.Now;
+ newWmsRawOutstockDetail.outstockWay = "2";
+ newWmsRawOutstockDetail.createBy = "WCS";
+ newWmsRawOutstockDetail.createDate = DateTime.Now;
+ newWmsRawOutstockDetail.stackAmount = 1;
+
+
+
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
- WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault();
- if (wmsRawStock != null)
- {
- dbContext.Remove(wmsRawStock);
- dbContext.Update(wmsBaseLocation);
- dbContext.Remove(item);
- dbContext.SaveChanges();
- dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- }
+ dbContext.Update(wmsRawOutStock);
+ dbContext.Add(newWmsRawOutstockDetail);
+ dbContext.Remove(wmsRawStock);
+ dbContext.Update(wmsBaseLocation);
+ dbContext.Remove(item);
+ dbContext.SaveChanges();
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
+
}
}
else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料
@@ -688,32 +733,11 @@ namespace Khd.Core.Wcs.Wcs
updateDate = DateTime.Now,
warehouseId = 511,
};
- WmsRawInstock? WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && t.instockType =="2");
+ WmsRawInstock? WmsRawInstock = dbContext.WmsRawInstock.FirstOrDefault(t => t.materialBarCode == mesBasePalletInfo.materialBarcode && t.instockType == "2");
WmsRawInstock.returnFlag = null;
WmsRawInstock.executeStatus = "2";
WmsRawInstock.updateDate = DateTime.Now;
- //WmsRawInstock wmsRawInstock = new WmsRawInstock()
- //{
- // taskCode = item.taskCode,
- // materialBarCode = mesBaseBarcodeInfo.barcodeInfo,
- // materialBatchCode = mesBaseBarcodeInfo.batchCode,
- // applyBy = "wcs",
- // applyDate = System.DateTime.Now,
- // purchaseOrderId = mesBaseBarcodeInfo.PurchaseOrderId,
-
- // beginTime = System.DateTime.Now,
- // endTime = DateTime.Now,
- // locationCode = wmsBaseLocation.locationCode,
- // executeStatus = "2",
- // instockAmount = 1,
- // instockType = "2",
-
- // materialId = mesBaseBarcodeInfo.materialId,
- // operationType = "3",
- // palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
- // poNo = mesBaseBarcodeInfo.poNo,
- // warehouseId = 511
- //};
+
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Update(WmsRawInstock);
dbContext.Add(wmsRawStock);
@@ -782,7 +806,7 @@ namespace Khd.Core.Wcs.Wcs
executeStatus = "2",
instockAmount = 1,
instockType = "1",
-
+
materialId = mesBaseBarcodeInfo.materialId,
operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
index 95ba64c..3d6bda1 100644
--- a/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/SecondFloorAGV.cs
@@ -759,6 +759,14 @@ namespace Khd.Core.Wcs.Wcs
var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First();
WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode);
+ wmsProductOutstock.outstockQty++;
+ if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
+ {
+ wmsProductOutstock.endTime = DateTime.Now;
+ wmsProductOutstock.executeStatus = "2";
+ }
+
+
WmsProductOutstockDetail newWmsProductOutstockDetail = new WmsProductOutstockDetail();
newWmsProductOutstockDetail.productOutstockId = wmsProductOutstock.productOutstockId;
newWmsProductOutstockDetail.warehouseId = wmsProductOutstock.warehouseId;
@@ -773,13 +781,7 @@ namespace Khd.Core.Wcs.Wcs
newWmsProductOutstockDetail.beginTime = DateTime.Now;
newWmsProductOutstockDetail.endTime = DateTime.Now;
- wmsProductOutstock.outstockQty++;
- if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
- {
- wmsProductOutstock.endTime = DateTime.Now;
- wmsProductOutstock.executeStatus = "2";
- }
-
+
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null;
item.nextPointId = 2;
diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
index 73d8396..1fb1cc6 100644
--- a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
+++ b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs
@@ -229,9 +229,10 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
- //todo:没有空托盘
- Console.WriteLine(DateTime.Now + ":二楼码垛输送线没有空托盘");
- _logger.Info("二楼码垛输送线没有空托盘");
+ //todo:没有空托盘超过十次预警报警
+ Console.WriteLine(DateTime.Now + ":二楼码垛输送线没有空托盘,叫托盘失败!");
+ _logger.Info("二楼码垛输送线没有空托盘,叫托盘失败!");
+ Thread.Sleep(1000*60);
}
}
}
diff --git a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
index d636295..60b5b43 100644
--- a/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
+++ b/src/Khd.Core.Wcs/Wcs/ThirdFloorAGV.cs
@@ -667,7 +667,7 @@ namespace Khd.Core.Wcs.Wcs
executeStatus = "2",
instockAmount = 1,
instockType = item.fromFloorNo == 1 ? "1" : "3",
-
+
materialId = mesBaseBarcodeInfo.materialId,
operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
@@ -712,42 +712,63 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateBy = "WCS";
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == item.orderId);
- if (wmsRawOutstock != null)
+ WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault();
+
+ if (wmsRawOutstock != null && wmsRawStock != null)
{
- WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == wmsRawOutstock.rawOutstockId && t.executeStatus == "1");
- if (wmsRawOutstockDetail != null)
+
+ wmsRawOutstock.realOutstockAmount += 1;
+ if (wmsRawOutstock.realOutstockAmount >= wmsRawOutstock.outstockAmount)
{
- wmsRawOutstockDetail.executeStatus = "2";
- wmsRawOutstockDetail.outstockTime = DateTime.Now;
- WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == item.currPointNo).FirstOrDefault();
- if (wmsRawStock != null)
- {
- BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
- endEquip.emptyCount = 1;
- wmsRawOutstock.realOutstockAmount += 1;
- if (wmsRawOutstock.realOutstockAmount >= wmsRawOutstock.outstockAmount)
- {
- wmsRawOutstock.endTime = DateTime.Now;
- wmsRawOutstock.executeStatus = "2";
- }
- SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
- dbContext.Update(endEquip);
- dbContext.Update(wmsRawOutstock);
- dbContext.Remove(wmsRawStock);
- dbContext.Update(wmsBaseLocation);
- WcsTask wcsTask = CoreMapper.Map(item);
- wcsTask.objid = StaticData.SnowId.NextId();
- wcsTask.taskStatus = 0;
- wcsTask.useFlag = 0;
- wcsTask.taskType = StaticTaskType.ThirdFlipToBin;
- wcsTask.createBy = "WCS";
- wcsTask.createTime = DateTime.Now;
- dbContext.Remove(item);
- dbContext.Add(wcsTask);
- dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
- dbContext.SaveChanges();
- }
+ wmsRawOutstock.endTime = DateTime.Now;
+ wmsRawOutstock.executeStatus = "2";
}
+
+
+ WmsRawOutstockDetail newWmsRawOutstockDetail = new WmsRawOutstockDetail();
+ newWmsRawOutstockDetail.rawOutstockId = wmsRawOutstock.rawOutstockId;
+ newWmsRawOutstockDetail.taskCode = wmsRawOutstock.taskCode;
+ newWmsRawOutstockDetail.warehouseId = wmsRawOutstock.warehouseId;
+ newWmsRawOutstockDetail.locationCode = wmsRawStock.locationCode;
+ newWmsRawOutstockDetail.materialBarcode = wmsRawStock.instockBatch;
+ newWmsRawOutstockDetail.materialId = wmsRawStock.materialId;
+ MesBaseBarcodeInfo? mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.Where(t => t.barcodeInfo == wmsRawStock.instockBatch).FirstOrDefault();
+ if (mesBaseBarcodeInfo != null)
+ {
+ newWmsRawOutstockDetail.instockBatch = mesBaseBarcodeInfo.batchCode;
+ newWmsRawOutstockDetail.materialProductionDate = mesBaseBarcodeInfo.productionDate;
+ }
+ newWmsRawOutstockDetail.planAmount = wmsRawOutstock.outstockAmount;
+ newWmsRawOutstockDetail.outstockAmount = wmsRawOutstock.realOutstockAmount;
+ newWmsRawOutstockDetail.executeStatus = "2";
+ newWmsRawOutstockDetail.outstockPerson = wmsRawOutstock.applyBy;
+ newWmsRawOutstockDetail.outstockTime = DateTime.Now;
+ newWmsRawOutstockDetail.outstockWay = "2";
+ newWmsRawOutstockDetail.createBy = "WCS";
+ newWmsRawOutstockDetail.createDate = DateTime.Now;
+ newWmsRawOutstockDetail.stackAmount = 1;
+
+ BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
+ endEquip.emptyCount = 1;
+
+ SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
+ dbContext.Update(endEquip);
+ dbContext.Update(wmsRawOutstock);
+ dbContext.Remove(wmsRawStock);
+ dbContext.Add(newWmsRawOutstockDetail);
+ dbContext.Update(wmsBaseLocation);
+ WcsTask wcsTask = CoreMapper.Map(item);
+ wcsTask.objid = StaticData.SnowId.NextId();
+ wcsTask.taskStatus = 0;
+ wcsTask.useFlag = 0;
+ wcsTask.taskType = StaticTaskType.ThirdFlipToBin;
+ wcsTask.createBy = "WCS";
+ wcsTask.createTime = DateTime.Now;
+ dbContext.Remove(item);
+ dbContext.Add(wcsTask);
+ dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
+ dbContext.SaveChanges();
+
}
}
else if (item.taskType == StaticTaskType.ThirdFlipToBin)//翻转机就到收集架
diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
index f5a5041..3e847ba 100644
--- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
+++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs
@@ -2061,7 +2061,7 @@ namespace Khd.Core.Wpf.Form
List wmsRawStocks = dbContext.WmsRawStock
.Where(t => txtInBarCode.Text == t.instockBatch)
.Where(t => t.warehouseFloor == 5 && t.warehouseId == 512).ToList();
- if (wmsRawStocks.Count > 0)
+ if (wmsRawStocks.Count > 0 && material.batchFlag!="1")
{
HandyControl.Controls.MessageBox.Info($"该条码已入库!料箱号为{wmsRawStocks.First().palletInfoCode},库位号为{wmsRawStocks.First().locationCode}");
txtInBarCode.Text = string.Empty;
@@ -2081,30 +2081,67 @@ namespace Khd.Core.Wpf.Form
txtInScan.Text = string.Empty;
return;
}
- var newRawStock = new WmsRawStock()
- {
- materialId = material.materialId,
- supplierId = material.manufacturerId,
- instockBatch = txtInBarCode.Text,
- locationCode = container.locationCode,
- stockType = "1",
- palletInfoCode = container.containerCode,
- totalAmount = material.batchFlag == "1" ? material.amount : 1,
- activeFlag = "1",
- occupyAmount = 0,
- completeFlag = "1",
- frozenAmount = 0,
- instockDate = System.DateTime.Now,
- rawStockId = Global.SnowId.NextId(),
- saleOrderId = material.saleOrderId == null ? 0 : material.saleOrderId,
- warehouseFloor = 5,
- warehouseId = 512,
- createBy = "扫描退库",
- createDate = System.DateTime.Now,
- safeFlag = material.safeFlag
- };
- dbContext.WmsRawStock.Add(newRawStock);
+ decimal amount = decimal.Parse(txtInScan.Text);
+ wmsRawReturn.returnAmount += amount;
+ if(wmsRawReturn.returnAmount >= wmsRawReturn.planAmount)
+ {
+ wmsRawReturn.executeStatus = "2";
+ wmsRawReturn.endTime = DateTime.Now;
+ }
+
+ WmsRawReturnDetail ? wmsRawReturnDetail = new WmsRawReturnDetail();
+ wmsRawReturnDetail.RawReturnId = (long)wmsRawReturn.rawReturnId;
+ wmsRawReturnDetail.LocationCode = container.locationCode;
+ wmsRawReturnDetail.MaterialBarcode = txtInBarCode.Text;
+ wmsRawReturnDetail.MaterialId = (long)material.materialId;
+ wmsRawReturnDetail.InstockBatch = material.batchCode;
+ wmsRawReturnDetail.MaterialProductionDate = material.productionDate;
+ wmsRawReturnDetail.PlanAmount = wmsRawReturn.planAmount;
+ wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
+ wmsRawReturnDetail.ExecuteStatus = "2";
+ wmsRawReturnDetail.ReturnAmount = wmsRawReturn.returnAmount;
+ wmsRawReturnDetail.ReturnPerson = "WPF";
+ wmsRawReturnDetail.ReturnTime = DateTime.Now;
+ wmsRawReturnDetail.ReturnWay = "2";
+ wmsRawReturnDetail.CreateBy = "WPF";
+ wmsRawReturnDetail.CreateDate = DateTime.Now;
+
+
+ if (wmsRawStocks.Count > 0)
+ { // 批次条码并且有库存
+ var newRawStock = wmsRawStocks.First();
+ newRawStock.totalAmount += amount;
+ newRawStock.updateDate = DateTime.Now;
+ dbContext.WmsRawStock.Update(newRawStock);
+ }
+ else
+ { // 无库存
+ var newRawStock = new WmsRawStock()
+ {
+ materialId = material.materialId,
+ supplierId = material.manufacturerId,
+ instockBatch = txtInBarCode.Text,
+ locationCode = container.locationCode,
+ stockType = "1",
+ palletInfoCode = container.containerCode,
+ totalAmount = material.batchFlag == "1" ? amount : 1,
+ activeFlag = "1",
+ occupyAmount = 0,
+ completeFlag = "1",
+ frozenAmount = 0,
+ instockDate = System.DateTime.Now,
+ rawStockId = Global.SnowId.NextId(),
+ saleOrderId = material.saleOrderId == null ? 0 : material.saleOrderId,
+ warehouseFloor = 5,
+ warehouseId = 512,
+ createBy = "扫描退库",
+ createDate = System.DateTime.Now,
+ safeFlag = material.safeFlag
+ };
+ dbContext.WmsRawStock.Add(newRawStock);
+ }
+
dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Success("入库成功!");
txtInBarCode.Text = string.Empty;