change-调度插入及更新数据对照文件检查更新

master
liuwf 1 year ago
parent 85fd93a667
commit 9e8547ba95

@ -0,0 +1,104 @@
//-----------------------------------------------------------------------
//<copyright>
// * Copyright (C) 2021 KEHAIDASOFT All Rights Reserved
// * version : 4.0.30319.42000
// * author : khd by t4-2
// </copyright>
//-----------------------------------------------------------------------
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; }
}
}

@ -19,6 +19,7 @@ namespace Khd.Core.EntityFramework
public DbSet<WmsInventoryCheckDetail> WmsInventoryCheckDetail { get; set; } public DbSet<WmsInventoryCheckDetail> WmsInventoryCheckDetail { get; set; }
public DbSet<MesBaseMaterialInfo> MesBaseMaterialInfo { get; set; } public DbSet<MesBaseMaterialInfo> MesBaseMaterialInfo { get; set; }
public DbSet<WmsRawReturn> WmsRawReturn { get; set; } public DbSet<WmsRawReturn> WmsRawReturn { get; set; }
public DbSet<WmsRawReturnDetail> WmsRawReturnDetail { get; set; }
public DbSet<WcsTaskManual> WcsTaskManual { get; set; } public DbSet<WcsTaskManual> WcsTaskManual { get; set; }
public DbSet<BaseDictionary> BaseDictionary { get; set; } public DbSet<BaseDictionary> BaseDictionary { get; set; }

@ -483,27 +483,47 @@ namespace Khd.Core.Wcs.Wcs
{ {
Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
_logger.Info("五楼Agv完成任务成功" + item.ToJsonString()); _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); var wmsProductOutstock = dbContext.WmsProductOutstock.FirstOrDefault(t => t.productOutstockId == item.orderId);
if (wmsProductOutstockDetail != null && wmsProductOutstock != null)
if ( wmsProductOutstock != null)
{ {
wmsProductOutstockDetail.executeStatus = "2"; var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First();
wmsProductOutstockDetail.endTime = DateTime.Now; WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode);
dbContext.Update(wmsProductOutstockDetail);
wmsProductOutstock.outstockQty += 1; wmsProductOutstock.outstockQty += 1;
if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty) if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
{ {
wmsProductOutstock.endTime = DateTime.Now; wmsProductOutstock.endTime = DateTime.Now;
wmsProductOutstock.executeStatus = "2"; 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.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.WmsProductStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); dbContext.WmsProductStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
BaseEquip floorLineEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == 5); BaseEquip floorLineEquip = StaticData.BaseEquip.First(t => t.equipType == 1 && t.floorNo == 5);
WcsTask newTask = CoreMapper.Map<WcsTask>(item); WcsTask newTask = CoreMapper.Map<WcsTask>(item);
@ -514,6 +534,7 @@ namespace Khd.Core.Wcs.Wcs
newTask.floorNo = 1; newTask.floorNo = 1;
newTask.taskStatus = 6; newTask.taskStatus = 6;
newTask.objid = StaticData.SnowId.NextId(); newTask.objid = StaticData.SnowId.NextId();
dbContext.Add(newWmsProductOutstockDetail);
dbContext.Remove(item); dbContext.Remove(item);
dbContext.Add(newTask); dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask); WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
@ -529,14 +550,11 @@ namespace Khd.Core.Wcs.Wcs
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault();
if (wmsRawOutstock != null) if (wmsRawOutstock != null)
{ {
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.Where(t => t.rawOutstockId == wmsRawOutstock.rawOutstockId && t.executeStatus == "1").FirstOrDefault();
if (wmsRawOutstockDetail != null)
{
wmsRawOutstock.realOutstockAmount += 1; wmsRawOutstock.realOutstockAmount += 1;
wmsRawOutstockDetail.executeStatus = "2";
wmsRawOutstock.executeStatus = "2"; wmsRawOutstock.executeStatus = "2";
wmsRawOutstock.endTime = DateTime.Now; wmsRawOutstock.endTime = DateTime.Now;
wmsRawOutstockDetail.outstockTime = DateTime.Now;
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId); WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
wmsBaseLocation.returnFlag = "0"; wmsBaseLocation.returnFlag = "0";
@ -545,13 +563,13 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsRawOutstock); dbContext.Update(wmsRawOutstock);
dbContext.Update(wmsRawOutstockDetail);
dbContext.Update(wmsBaseLocation); dbContext.Update(wmsBaseLocation);
dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete(); dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).Delete();
dbContext.WcsTask.Remove(item); dbContext.WcsTask.Remove(item);
dbContext.SaveChanges(); dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 }); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
}
} }
} }
else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库 else if (item.taskType == StaticTaskType.FiveHalfIn)//半成品入库
@ -620,31 +638,58 @@ namespace Khd.Core.Wcs.Wcs
Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo); Console.WriteLine(DateTime.Now + ":五楼AGV线程完成任务" + item.currPointNo + "," + item.endPointNo);
_logger.Info("五楼Agv完成任务成功" + item.ToJsonString()); _logger.Info("五楼Agv完成任务成功" + item.ToJsonString());
var wmsRawOutStock = dbContext.WmsRawOutstock.Where(t => t.rawOutstockId == item.orderId).FirstOrDefault(); 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; wmsRawOutStock.realOutstockAmount += 1;
wmsRawOutstockDetail.executeStatus = "2";
wmsRawOutStock.executeStatus = "2"; wmsRawOutStock.executeStatus = "2";
wmsRawOutStock.endTime = DateTime.Now; 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.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now; wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
SystemData.UnLockOutLocation(wmsBaseLocation, dbContext); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.locationCode == wmsBaseLocation.locationCode).FirstOrDefault(); dbContext.Update(wmsRawOutStock);
if (wmsRawStock != null) dbContext.Add(newWmsRawOutstockDetail);
{ dbContext.Remove(wmsRawStock);
dbContext.Remove(wmsRawStock); dbContext.Update(wmsBaseLocation);
dbContext.Update(wmsBaseLocation); dbContext.Remove(item);
dbContext.Remove(item); dbContext.SaveChanges();
dbContext.SaveChanges(); dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
}
} }
} }
else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料 else if (item.taskType == StaticTaskType.FiveRawSplitReturn)//柜体拆分到原材料
@ -688,32 +733,11 @@ namespace Khd.Core.Wcs.Wcs
updateDate = DateTime.Now, updateDate = DateTime.Now,
warehouseId = 511, 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.returnFlag = null;
WmsRawInstock.executeStatus = "2"; WmsRawInstock.executeStatus = "2";
WmsRawInstock.updateDate = DateTime.Now; 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); SystemData.UnLockOutLocation(wmsBaseLocation, dbContext);
dbContext.Update(WmsRawInstock); dbContext.Update(WmsRawInstock);
dbContext.Add(wmsRawStock); dbContext.Add(wmsRawStock);
@ -782,7 +806,7 @@ namespace Khd.Core.Wcs.Wcs
executeStatus = "2", executeStatus = "2",
instockAmount = 1, instockAmount = 1,
instockType = "1", instockType = "1",
materialId = mesBaseBarcodeInfo.materialId, materialId = mesBaseBarcodeInfo.materialId,
operationType = "3", operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,

@ -759,6 +759,14 @@ namespace Khd.Core.Wcs.Wcs
var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First(); var wmsBaseLocation = dbContext.WmsBaseLocation.Where(t => t.locationId == item.currPointId).First();
WmsProductStock wmsProductStock = dbContext.WmsProductStock.First(t => t.locationCode == wmsBaseLocation.locationCode); 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(); WmsProductOutstockDetail newWmsProductOutstockDetail = new WmsProductOutstockDetail();
newWmsProductOutstockDetail.productOutstockId = wmsProductOutstock.productOutstockId; newWmsProductOutstockDetail.productOutstockId = wmsProductOutstock.productOutstockId;
newWmsProductOutstockDetail.warehouseId = wmsProductOutstock.warehouseId; newWmsProductOutstockDetail.warehouseId = wmsProductOutstock.warehouseId;
@ -773,13 +781,7 @@ namespace Khd.Core.Wcs.Wcs
newWmsProductOutstockDetail.beginTime = DateTime.Now; newWmsProductOutstockDetail.beginTime = DateTime.Now;
newWmsProductOutstockDetail.endTime = DateTime.Now; newWmsProductOutstockDetail.endTime = DateTime.Now;
wmsProductOutstock.outstockQty++;
if (wmsProductOutstock.applyQty <= wmsProductOutstock.outstockQty)
{
wmsProductOutstock.endTime = DateTime.Now;
wmsProductOutstock.executeStatus = "2";
}
wmsBaseLocation.locationStatus = "1"; wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = null; wmsBaseLocation.containerCode = null;
item.nextPointId = 2; item.nextPointId = 2;

@ -229,9 +229,10 @@ namespace Khd.Core.Wcs.Wcs
} }
else else
{ {
//todo:没有空托盘 //todo:没有空托盘超过十次预警报警
Console.WriteLine(DateTime.Now + ":二楼码垛输送线没有空托盘"); Console.WriteLine(DateTime.Now + ":二楼码垛输送线没有空托盘,叫托盘失败!");
_logger.Info("二楼码垛输送线没有空托盘"); _logger.Info("二楼码垛输送线没有空托盘,叫托盘失败!");
Thread.Sleep(1000*60);
} }
} }
} }

@ -667,7 +667,7 @@ namespace Khd.Core.Wcs.Wcs
executeStatus = "2", executeStatus = "2",
instockAmount = 1, instockAmount = 1,
instockType = item.fromFloorNo == 1 ? "1" : "3", instockType = item.fromFloorNo == 1 ? "1" : "3",
materialId = mesBaseBarcodeInfo.materialId, materialId = mesBaseBarcodeInfo.materialId,
operationType = "3", operationType = "3",
palletInfoCode = mesBaseBarcodeInfo.palletInfoCode, palletInfoCode = mesBaseBarcodeInfo.palletInfoCode,
@ -712,42 +712,63 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateBy = "WCS"; wmsBaseLocation.updateBy = "WCS";
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == item.orderId); 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"; wmsRawOutstock.endTime = DateTime.Now;
wmsRawOutstockDetail.outstockTime = DateTime.Now; wmsRawOutstock.executeStatus = "2";
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<WcsTask>(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();
}
} }
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<WcsTask>(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)//翻转机就到收集架 else if (item.taskType == StaticTaskType.ThirdFlipToBin)//翻转机就到收集架

@ -2061,7 +2061,7 @@ namespace Khd.Core.Wpf.Form
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock
.Where(t => txtInBarCode.Text == t.instockBatch) .Where(t => txtInBarCode.Text == t.instockBatch)
.Where(t => t.warehouseFloor == 5 && t.warehouseId == 512).ToList(); .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}"); HandyControl.Controls.MessageBox.Info($"该条码已入库!料箱号为{wmsRawStocks.First().palletInfoCode},库位号为{wmsRawStocks.First().locationCode}");
txtInBarCode.Text = string.Empty; txtInBarCode.Text = string.Empty;
@ -2081,30 +2081,67 @@ namespace Khd.Core.Wpf.Form
txtInScan.Text = string.Empty; txtInScan.Text = string.Empty;
return; 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(); dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Success("入库成功!"); HandyControl.Controls.MessageBox.Success("入库成功!");
txtInBarCode.Text = string.Empty; txtInBarCode.Text = string.Empty;

Loading…
Cancel
Save