master
2 years ago
parent 464524d845
commit 00bfc12f17

@ -70,18 +70,6 @@ namespace Khd.Core.Api.Controllers
return _application.TaskContinue(taskContinue);
}
/// <summary>
/// 柜体拆分验收区通知返库接口
/// </summary>
/// <param name="taskReturn"></param>
/// <returns></returns>
[HttpPost("taskReturn")]
public AgvCompeletedResponse TaskReturn(TaskReturn taskReturn)
{
LogManager.Info($"TaskReturn 接口收到消息: {taskReturn}");
return _application.TaskReturn(taskReturn);
}
/// <summary>
/// 通知去翻转机的任务
/// </summary>
@ -90,13 +78,14 @@ namespace Khd.Core.Api.Controllers
[HttpPost("callMaterial")]
public ReponseMessage CallMaterial(CallMaterial callMaterial)
{
LogManager.Info($"CallMaterial 接口收到消息: {callMaterial}");
LogManager.Info($"CallMaterial 接口收到消息: {callMaterial.ToJsonString()}");
return _application.CallMaterial(callMaterial);
}
[HttpPost("AgvTaskComplete")]
public ReponseMessage AGVTaskComplete()
{
LogManager.Info($"AgvTaskComplete 接口收到消息");
return _application.AGVTaskComplete();
}
}

@ -1,4 +1,4 @@
{
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,

@ -84,10 +84,11 @@ namespace Khd.Core.Application
wcscmd.sendFlag = 1;
wcscmd.cmdStatus = 4;
wcsTask.taskStatus = 4;
_dbContext.WcsCmd.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmd { cmdStatus = 4 });
_dbContext.WcsCmd.Update(wcscmd);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 4 });
_dbContext.WcsTask.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTask { taskStatus = 4 });
_dbContext.WcsTask.Update(wcsTask);
_dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 4 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
@ -99,9 +100,10 @@ namespace Khd.Core.Application
wcscmd.cmdStatus = 3;
wcsTask.taskStatus = 3;
_dbContext.WcsCmd.Update(wcscmd);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
_dbContext.WcsTask.Update(wcsTask);
_dbContext.WcsCmdLog.Where(t => t.objid == wcscmd.objid).Update(a => new WcsCmdLog { cmdStatus = 3 });
_dbContext.WcsTaskLog.Where(t => t.objid == wcsTask.objid).Update(t => new WcsTaskLog { taskStatus = 3 });
_dbContext.SaveChanges();
reponseagvCallbackDto.code = "0";
reponseagvCallbackDto.message = "成功";
}
@ -485,7 +487,7 @@ namespace Khd.Core.Application
{
_dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
bool hasTask = _dbContext.WcsTask.Where(t => t.taskType == 41).Any();
if (hasTask)
if (!hasTask)
{
reponseMessage.code = "0";
reponseMessage.message = "成功";
@ -493,7 +495,7 @@ namespace Khd.Core.Application
else
{
reponseMessage.code = "1";
reponseMessage.message = "当前无任务";
reponseMessage.message = "当前不可翻转";
}
}
catch (Exception ex)

@ -17,6 +17,8 @@ namespace Khd.Core.Domain.Models
[Table("wcs_base_equip")]
public class BaseEquip
{
[Column("endStationCode")]
public string endStationCode { get; set; }
[Column("container_no")]
public string containerNo { get; set; }

@ -201,6 +201,9 @@ namespace Khd.Core.Domain.Models
/// </summary>
[Column("bind_barcode")]
public string bindBarcode { get; set; }
[Column("safe_flag")]
public string safeFlag { get; set; }
}
}

@ -17,6 +17,8 @@ namespace Khd.Core.Domain.Models
[Table("wms_raw_outstock")]
public class WmsRawOutstock
{
[Column("sale_order_id")]
public long? saleOrderId { get; set; }
[Key]
[Column("raw_outstock_id")]

@ -121,8 +121,6 @@ namespace Khd.Core.Wcs
}
}
/// <summary>
/// 发起GET同步请求
/// </summary>

@ -98,27 +98,27 @@ namespace Khd.Core.Wcs
//ThirdFloorPoint thirdFloorPoint = new(_host, StaticData.PlcDic[0], ThirdBaseFloorEquip.floorNo.Value);
//thirdFloorPoint.StartPoint();
////三层AGV
//var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First();
//ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value);
//thirdFloorAGV.StartPoint();
//三层AGV
var ThirdFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 3 && t.equipType == 4).First();
ThirdFloorAGV thirdFloorAGV = new(_host, StaticData.PlcDic[2], ThirdFloorAgvEquip.floorNo.Value);
thirdFloorAGV.StartPoint();
////五层接驳位
//var FifthBaseFloorEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 1).First();
//FiveFloorPoint fifthFloorPoint = new(_host, StaticData.PlcDic[0], FifthBaseFloorEquip.floorNo.Value);
//fifthFloorPoint.StartPoint();
////五层CTU
//五层CTU
//var FiveFloorCTUEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 6).First();
//FiveFloorCTU fiveFloorCTU = new(_host, StaticData.PlcDic[1], FiveFloorCTUEquip.floorNo.Value);
//fiveFloorCTU.StartPoint();
////五层AGV
//五层AGV
//var FifthFloorAgvEquip = StaticData.BaseEquip.Where(t => t.floorNo == 5 && t.equipType == 5).First();
//FiveFloorAGV fifthFloorAGV = new(_host, StaticData.PlcDic[0], FifthFloorAgvEquip.floorNo.Value);
//fifthFloorAGV.StartPoint();
////背负式Agv
//背负式Agv
//var FifthFloorBearAgvEquip = StaticData.BaseEquip.Where(t => t.objid == 28).First();
//FiveFloorBearAgv fiveFloorBearAgv = new(_host, StaticData.PlcDic[1], FifthFloorBearAgvEquip.floorNo.Value);
//fiveFloorBearAgv.StartPoint();

File diff suppressed because it is too large Load Diff

@ -596,10 +596,10 @@ namespace Khd.Core.Wcs.Wcs
}
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 5);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation
.First(t => t.locationId == item.endPointId && t.warehouseFloor == 5);
.First(t => t.locationId == item.currPointId && t.warehouseFloor == 5);
wmsBaseLocation.outstockFlag = "0";
wmsBaseLocation.locationStatus = "1";
wmsBaseLocation.containerCode = "";
wmsBaseLocation.containerCode = null;
wmsBaseLocation.updateTime = DateTime.Now;
wmsBaseLocation.updateBy = "WCS";
dbContext.Update(wmsBaseLocation);
@ -614,14 +614,14 @@ namespace Khd.Core.Wcs.Wcs
newTask.taskStatus = 6;
newTask.objid = StaticData.SnowId.NextId();
lineEquip.equipStatus = 0;
dbContext.Remove(item);
dbContext.Update(lineEquip);
dbContext.Add(newTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(newTask);
dbContext.Add(wcsTaskLog);
dbContext.Remove(item);
dbContext.WcsCmd.Remove(wcsCmd);
dbContext.SaveChanges();
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6, nextPointId = floorLineEquip.objid, nextPointNo = floorLineEquip.equipNo, fromFloorNo = 5, floorNo = 1 });
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog { taskStatus = 6 });
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
@ -663,7 +663,6 @@ namespace Khd.Core.Wcs.Wcs
wmsBaseLocation.updateBy = "WCS";
var mesBasePalletInfo = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault();
var wmsProductInstock = dbContext.WmsProductInstock
.Where(t => t.palletInfoCode == item.containerNo)
.Where(t => t.executeStatus == "1" && t.productType == "2" && t.warehouseFloor == 5)
.FirstOrDefault();
if (mesBasePalletInfo != null && wmsProductInstock != null)
@ -680,7 +679,7 @@ namespace Khd.Core.Wcs.Wcs
updateBy = "WCS",
updateDate = DateTime.Now,
saleorderCode = wmsProductInstock.saleorderCode,
saleOrderId = wmsProductInstock.SaleOrderId,
saleOrderId = wmsProductInstock.SaleOrderId == null ? 0 : wmsProductInstock.SaleOrderId,
stockType = "2",
productStockId = wmsProductInstock.productInstockId,
qualityStatus = "0",
@ -783,7 +782,7 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 6 });
}
}
}
else if (item.taskType == 28)//柜体拆分到原材料
@ -860,7 +859,8 @@ namespace Khd.Core.Wcs.Wcs
warehouseFloor = 5,
stockType = "1",
totalAmount = 1,
saleOrderId = 0,
saleOrderId = mesBaseBarcodeInfo.saleOrderId,
safeFlag=mesBaseBarcodeInfo.safeFlag,
supplierId = mesBaseBarcodeInfo.manufacturerId,
materialId = mesBasePalletInfo.materialId,
qualityStatus = "0",

@ -191,7 +191,8 @@ namespace Khd.Core.Wcs.Wcs
dbContext.SaveChanges();
}
}
}else if (task.taskType == 100)
}
else if (task.taskType == 100)
{
dbContext.WcsTask.Where(t => t.objid == task.objid).Delete();
//根据rfid找到库位
@ -690,15 +691,11 @@ namespace Khd.Core.Wcs.Wcs
dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
lock (SystemData.outStockLock)
{
int wcsTaskCount = dbContext.WcsTask.Where(t => t.taskType == 29).Count();
if (wcsTaskCount == 0)
{
WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
wcsOutstockLock.qty = 0;
wcsOutstockLock.boxStatus = 0;
dbContext.Update(wcsOutstockLock);
dbContext.SaveChanges();
}
WcsOutstockLock wcsOutstockLock = dbContext.WcsOutstockLock.Where(t => t.warehouseId == 512).First();
wcsOutstockLock.qty = 0;
wcsOutstockLock.boxStatus = 0;
dbContext.Update(wcsOutstockLock);
dbContext.SaveChanges();
}
}
else if (item.taskType == 100)//出库任务

@ -67,7 +67,7 @@ namespace Khd.Core.Wcs.Wcs
}
else
{
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.orderId == wcsTask.orderId);
var wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.rawOutstockId == wcsTask.orderId);
if (wmsRawOutstock != null)
{
var endEquip = StaticData.BaseEquip.FirstOrDefault(t => t.equipNo == wmsRawOutstock.endStationCode);

@ -61,32 +61,35 @@ namespace Khd.Core.Wcs.Wcs
bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 41 || t.taskType == 42).Any();
if (!hasTask)
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == 35);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == 31);
BaseEquip agvEquip = StaticData.BaseEquip.First(t => t.objid == 9);
WcsTask wcsTask = new()
if (endEquip.emptyCount != (SystemData.maxTray / 2) && endEquip.emptyCount != SystemData.maxTray)
{
objid = StaticData.SnowId.NextId(),
taskType = 42,
taskStatus = 0,
useFlag = 1,
createBy = FloorNo + "楼AGV",
nextPointId=agvEquip.objid,
nextPointNo=agvEquip.agvPositionCode,
currPointId = startEquip.objid,
currPointNo = startEquip.agvPositionCode,
endPointId = endEquip.objid,
endPointNo = endEquip.agvPositionCode,
containerNo="",
createTime = DateTime.Now,
isEmpty="1",
qty=1,
};
dbContext.Add(wcsTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
LogManager.Info("三楼AGV 生成空托盘入收集架任务:" + wcsTask.objid);
WcsTask wcsTask = new()
{
objid = StaticData.SnowId.NextId(),
taskType = 42,
taskStatus = 0,
useFlag = 1,
createBy = FloorNo + "楼AGV",
nextPointId = agvEquip.objid,
nextPointNo = agvEquip.agvPositionCode,
currPointId = startEquip.objid,
currPointNo = startEquip.agvPositionCode,
endPointId = endEquip.objid,
endPointNo = endEquip.agvPositionCode,
containerNo = null,
createTime = DateTime.Now,
isEmpty = "1",
qty = 1,
};
dbContext.Add(wcsTask);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
LogManager.Info("三楼AGV 生成空托盘入收集架任务:" + wcsTask.objid);
}
}
}
}
@ -234,7 +237,7 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 41)//库位-翻转机
{
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "1");
WmsRawOutstockDetail? wmsRawOutstockDetail = dbContext.WmsRawOutstockDetail.FirstOrDefault(t => t.rawOutstockId == item.orderId && t.executeStatus == "0");
if (wmsRawOutstockDetail != null)
{
wmsRawOutstockDetail.executeStatus = "1";
@ -299,8 +302,8 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 40)//周转位-收集架
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd()
{
objid = StaticData.SnowId.NextId(),
@ -359,8 +362,8 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 42)//翻转机-收集架
{
//var startEquip = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd()
{
objid = StaticData.SnowId.NextId(),
@ -418,8 +421,8 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 43)//收集架-周转区
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == item.endPointId);
WcsCmd wcsCmd = new WcsCmd()
{
objid = StaticData.SnowId.NextId(),
@ -477,8 +480,8 @@ namespace Khd.Core.Wcs.Wcs
}
else if (item.taskType == 44)//周转区-提升机
{
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip lineEquip = StaticData.BaseEquip.First(t => t.objid == 3);
BaseEquip startEquip = dbContext.BaseEquip.First(t => t.objid == item.currPointId);
BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 3);
WcsCmd wcsCmd = new WcsCmd()
{
objid = StaticData.SnowId.NextId(),
@ -595,8 +598,6 @@ namespace Khd.Core.Wcs.Wcs
dbContext.Remove(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 6 });
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog() { cmdStatus = 6 });
dbContext.Update(fromBaseLocation);
dbContext.Update(toBaseLocation);
dbContext.SaveChanges();
}
if (item.taskType == 39)
@ -632,6 +633,7 @@ namespace Khd.Core.Wcs.Wcs
materialId = mesBaseBarcodeInfo.materialId,
occupyAmount = 0,
palletInfoCode = item.containerNo,
safeFlag = mesBaseBarcodeInfo.safeFlag,
totalAmount = 1,
warehouseFloor = 3,
warehouseId = 311
@ -684,9 +686,12 @@ namespace Khd.Core.Wcs.Wcs
if (wmsRawOutstockDetail != null)
{
wmsRawOutstockDetail.executeStatus = "2";
WmsRawStock? wmsRawStock = dbContext.WmsRawStock.Where(t => t.palletInfoCode == item.containerNo).FirstOrDefault();
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;
dbContext.Update(endEquip);
dbContext.Update(wmsRawOutstock);
dbContext.Remove(wmsRawStock);
dbContext.Update(wmsBaseLocation);
@ -702,6 +707,9 @@ namespace Khd.Core.Wcs.Wcs
else if (item.taskType == 42)
{
BaseEquip emptyEquip = dbContext.BaseEquip.First(t => t.objid == 35);
BaseEquip endEquip = dbContext.BaseEquip.First(t => t.objid == 31);
endEquip.emptyCount = 0;
dbContext.Update(endEquip);
emptyEquip.emptyCount += 1;
emptyEquip.equipStatus = 1;
emptyEquip.updateTime = DateTime.Now;

@ -14,14 +14,14 @@
"Slot": 1,
"Code": 0
},
{
"IP": "192.168.2.31",
"Port": 102, //102
"CpuType": 40,
"Rack": 0,
"Slot": 1,
"Code": 1
},
//{
// "IP": "192.168.2.31",
// "Port": 102, //102
// "CpuType": 40,
// "Rack": 0,
// "Slot": 1,
// "Code": 1
//},
{
"IP": "192.168.2.220",
"Port": 102, //102

@ -1802,7 +1802,7 @@
ElementStyle="{StaticResource dgCell}"
FontSize="20"
Header="库位数"
IsReadOnly="True" />
IsReadOnly="True" />
<DataGridTextColumn
Width="180*"
Binding="{Binding InventoryingAmount}"
@ -2052,32 +2052,33 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="167*"/>
<RowDefinition Height="167*"/>
<RowDefinition Height="167*"/>
<RowDefinition Height="166.667"/>
<RowDefinition Height="167*"/>
<RowDefinition Height="167*"/>
<RowDefinition Height="83*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="扫描出库" Foreground="White" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.ColumnSpan="6"/>
<TextBlock Text="待执行CTU任务数:" Visibility="Hidden" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="50"/>
<TextBlock x:Name="outTaskCount" Visibility="Hidden" Grid.Row="0" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Content="执行CTU出库任务" Visibility="Hidden" Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="ExecuteCtuTask_Click"/>
<TextBlock Text="扫描料箱号:" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<TextBlock Text="扫描条码号:" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Click="boxOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="1">
<Button Content="选择出库" Background="#346DFF" Grid.ColumnSpan="6" Grid.Row="1" Foreground="White" FontSize="50" Height="100" Width="300" Click="SelectOutBtn_Click"/>
<TextBlock Text="待执行CTU任务数:" Visibility="Hidden" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Right" VerticalAlignment="Center" FontSize="50"/>
<TextBlock x:Name="outTaskCount" Visibility="Hidden" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Content="执行CTU出库任务" Visibility="Hidden" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="2" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="ExecuteCtuTask_Click"/>
<TextBlock Text="扫描料箱号:" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<TextBlock Text="扫描条码号:" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<Button Click="boxOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="2">
<Image Source="..\Resources\cancel.png"/>
</Button>
<Button Click="barOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="2">
<Button Click="barOutClear_Click" HorizontalAlignment="Right" Height="100" Panel.ZIndex="1" Width="100" Margin="0,0,130,0" Grid.Column="5" Grid.Row="3">
<Image Source="..\Resources\cancel.png"/>
</Button>
<TextBlock Text="出库数量:" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBox" FontSize="50" LostFocus="txtOutBox_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBarCode" FontSize="50" LostFocus="txtOutBarCode_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox x:Name="txtOutScan" IsReadOnly="True" FontSize="50" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="3" />
<Button Content="确认出库" Grid.Row="4" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="OutRawBaseLocaltion_Click"/>
<Button Content="背负式小车捡料完成" Grid.Row="5" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="btnBearConfirmBox_Click"/>
<TextBlock Text="出库数量:" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBox" FontSize="50" LostFocus="txtOutBox_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox hc:InfoElement.ShowClearButton="True" x:Name="txtOutBarCode" FontSize="50" LostFocus="txtOutBarCode_TextChanged" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="3"/>
<hc:TextBox x:Name="txtOutScan" IsReadOnly="True" FontSize="50" Width="700" HorizontalAlignment="Left" VerticalAlignment="Center" Height="130" Grid.Row="4" Grid.Column="3" Grid.ColumnSpan="3" />
<Button Content="确认出库" Grid.Row="5" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="OutRawBaseLocaltion_Click"/>
<Button Content="背负式小车捡料完成" Grid.Row="6" Grid.ColumnSpan="6" Width="500" Height="100" FontSize="50" Background="#346DFF" Foreground="White" Click="btnBearConfirmBox_Click"/>
</Grid>
<!--<Border Background="#213269" BorderBrush="Silver" BorderThickness="2" CornerRadius="10" Width="900" Height="500" Margin="0,5,0,0">
<StackPanel Margin="0,10,10,10">

@ -1079,8 +1079,7 @@ namespace Khd.Core.Wpf.Form
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var wcsCmd = dbContext.WcsCmd
.Where(t => t.cmdStatus == 6)
.Where(t => t.nextPointId == 21)
.Where(t => t.cmdStatus == 6||t.cmdStatus==3)
.FirstOrDefault();
if (wcsCmd == null)
{
@ -1088,9 +1087,27 @@ namespace Khd.Core.Wpf.Form
}
else
{
dbContext.WcsCmd.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmd { cmdStatus = 7 });
WcsTask? wcsTask = dbContext.WcsTask.FirstOrDefault(t => t.objid == wcsCmd.taskId&&t.nextPointId==10);
if(wcsTask == null)
{
MessageBox.Show("未查询到当前有背负式Agv由装配区到捡料区任务");
return;
}
if (wcsCmd.cmdStatus == 3)
{
wcsCmd.cmdStatus = 4;
wcsTask.taskStatus = 4;
}
else if(wcsCmd.cmdStatus == 6)
{
wcsCmd.cmdStatus = 7;
wcsTask.taskStatus = 7;
}
dbContext.Update(wcsCmd);
dbContext.Update(wcsTask);
dbContext.SaveChanges();
dbContext.WcsCmdLog.Where(t => t.objid == wcsCmd.objid).Update(t => new WcsCmdLog { cmdStatus = 7 });
dbContext.WcsTask.Where(t => t.objid == wcsCmd.taskId).Update(t => new WcsTask { taskStatus = 7 });
dbContext.WcsTaskLog.Where(t => t.objid == wcsCmd.taskId).Update(t => new WcsTaskLog { taskStatus = 7 });
MessageBox.Show("背负式Agv任务确认完成成功");
}
@ -1399,7 +1416,19 @@ namespace Khd.Core.Wpf.Form
txtInScan.Text = string.Empty;
return;
}
//20240708142603RB014
if(container == null)
{
MessageBox.Show("未查询到该容器!");
txtInBox.Text = string.Empty;
return;
}
if(material == null)
{
MessageBox.Show("未查询到该条码内容!");
txtInBarCode.Text = string.Empty;
txtInScan.Text = string.Empty;
return;
}
var newRawStock = new WmsRawStock()
{
materialId = material.materialId,
@ -1420,7 +1449,7 @@ namespace Khd.Core.Wpf.Form
warehouseId = 512,
createBy = "扫描入库",
createDate = System.DateTime.Now,
safeFlag = "1",
safeFlag = material.safeFlag
};
dbContext.WmsRawStock.Add(newRawStock);
dbContext.SaveChanges();
@ -1640,7 +1669,7 @@ namespace Khd.Core.Wpf.Form
MessageBox.Show("库存已经被清空!");
return;
}
int outScan = Convert.ToInt32(this.txtOutScan.Text);
decimal outScan = Convert.ToDecimal(this.txtOutScan.Text);
if (outScan != 1 && outScan > wmsRawStock.totalAmount - wmsRawStock.frozenAmount)
{
MessageBox.Show("出库数量不能大于库存数量!");
@ -1654,77 +1683,89 @@ namespace Khd.Core.Wpf.Form
}
else
{
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock.FirstOrDefault(t => t.materialId == wcsTask.materialId && t.realOutstockAmount < t.outstockAmount);
if (wmsRawOutstock != null)
var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
if (mesBaseBarcodeInfo != null)
{
wmsRawOutstock.realOutstockAmount += outScan;
if (wmsRawOutstock.outstockAmount == wmsRawOutstock.realOutstockAmount)
WmsRawOutstock? wmsRawOutstock = dbContext.WmsRawOutstock
.Where(t => t.materialId == mesBaseBarcodeInfo.materialId && t.realOutstockAmount < t.outstockAmount&&t.saleOrderId == (mesBaseBarcodeInfo.saleOrderId==null?0:mesBaseBarcodeInfo.saleOrderId)).FirstOrDefault();
if (wmsRawOutstock != null)
{
wmsRawOutstock.executeStatus = "2";
}
else if (wmsRawOutstock.realOutstockAmount > wmsRawOutstock.outstockAmount)
{
MessageBox.Show("出库数量不能大于申请单数量,当前出库数量为:" + (wmsRawOutstock.realOutstockAmount - outScan) + ",申请单数量为:" + wmsRawOutstock.outstockAmount + "!");
return;
}
wmsRawStock.totalAmount -= outScan;
if (wmsRawStock.totalAmount <= 0)
{
dbContext.Remove(wmsRawStock);
dbContext.Update(wmsRawOutstock);
wmsRawOutstock.realOutstockAmount += outScan;
if (wmsRawOutstock.outstockAmount == wmsRawOutstock.realOutstockAmount)
{
wmsRawOutstock.executeStatus = "2";
}
else if (wmsRawOutstock.realOutstockAmount > wmsRawOutstock.outstockAmount)
{
MessageBox.Show("出库数量不能大于申请单数量,当前出库数量为:" + (wmsRawOutstock.realOutstockAmount - outScan) + ",申请单数量为:" + wmsRawOutstock.outstockAmount + "!");
return;
}
wmsRawStock.totalAmount -= outScan;
if (wmsRawStock.totalAmount <= 0)
{
dbContext.Remove(wmsRawStock);
dbContext.Update(wmsRawOutstock);
}
else
{
dbContext.Update(wmsRawStock);
dbContext.Update(wmsRawOutstock);
}
if (mesBaseBarcodeInfo != null)
{
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
{
rawOutstockDetailId = Global.SnowId.NextId(),
rawOutstockId = wmsRawOutstock.rawOutstockId,
materialId = mesBaseBarcodeInfo.materialId,
createDate = DateTime.Now,
createBy = "WCS",
taskCode = wcsTask.objid.ToString(),
executeStatus = "2",
locationCode = wcsTask.currPointNo,
outstockAmount = outScan,
planAmount = outScan,
warehouseId = 512,
materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
instockBatch = mesBaseBarcodeInfo.batchCode,
stackAmount = outScan,
outstockPerson = "WCS",
outstockTime = DateTime.Now,
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
};
dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail);
}
dbContext.SaveChanges();
}
else
{
dbContext.Update(wmsRawStock);
dbContext.Update(wmsRawOutstock);
MessageBox.Show("该条码的销售订单不正确");
txtOutScan.Text = string.Empty;
txtOutBarCode.Text = string.Empty;
return;
//wmsRawStock.totalAmount -= outScan;
//if (wmsRawStock.totalAmount == 0)
//{
// dbContext.WmsRawStock.Remove(wmsRawStock);
// dbContext.SaveChanges();
//}
//else
//{
// dbContext.WmsRawStock.Update(wmsRawStock);
// dbContext.SaveChanges();
//}
}
var mesBaseBarcodeInfo = dbContext.MesBaseBarcodeInfo.FirstOrDefault(t => t.barcodeInfo == txtOutBarCode.Text);
if (mesBaseBarcodeInfo != null)
{
WmsRawOutstockDetail wmsProductOutstockDetail = new WmsRawOutstockDetail()
{
rawOutstockDetailId = Global.SnowId.NextId(),
rawOutstockId = wmsRawOutstock.rawOutstockId,
materialId = mesBaseBarcodeInfo.materialId,
createDate = DateTime.Now,
createBy = "WCS",
taskCode = wcsTask.objid.ToString(),
executeStatus = "2",
locationCode = wcsTask.currPointNo,
outstockAmount = outScan,
planAmount = outScan,
warehouseId = 512,
materialBarcode = mesBaseBarcodeInfo.barcodeInfo,
instockBatch = mesBaseBarcodeInfo.batchCode,
stackAmount = outScan,
outstockPerson = "WCS",
outstockTime = DateTime.Now,
outstockWay = "2",
materialProductionDate = mesBaseBarcodeInfo.productionDate
};
dbContext.WmsRawOutstockDetail.Add(wmsProductOutstockDetail);
}
dbContext.SaveChanges();
MessageBox.Show("出库成功!");
txtOutScan.Text = string.Empty;
txtOutBarCode.Text = string.Empty;
txtOutBarCode.Focus();
}
else
{
wmsRawStock.totalAmount -= outScan;
if (wmsRawStock.totalAmount == 0)
{
dbContext.WmsRawStock.Remove(wmsRawStock);
dbContext.SaveChanges();
}
else
{
dbContext.WmsRawStock.Update(wmsRawStock);
dbContext.SaveChanges();
}
MessageBox.Show("未查询到该条码信息!");
}
MessageBox.Show("出库成功!");
txtOutScan.Text = string.Empty;
txtOutBarCode.Text = string.Empty;
txtOutBarCode.Focus();
}
}
else
@ -2500,7 +2541,7 @@ namespace Khd.Core.Wpf.Form
{
objid = Global.SnowId.NextId(),
taskType = 56,
containerNo = "00000000",
containerNo = null,
currPointId = baseEquip.objid,
currPointNo = baseEquip.equipNo,
nextPointId = agvEquip.objid,
@ -2578,7 +2619,7 @@ namespace Khd.Core.Wpf.Form
{
objid = Global.SnowId.NextId(),
taskType = 56,
containerNo = "0",
containerNo = null,
currPointId = startEquip.objid,
currPointNo = startEquip.equipNo,
nextPointId = agvEquip.objid,
@ -2691,7 +2732,7 @@ namespace Khd.Core.Wpf.Form
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 1);
baseEquip.containerNo = "0";
baseEquip.containerNo = null;
dbContext.Update(baseEquip);
dbContext.SaveChanges();
MessageBox.Show("确认入库成功!");
@ -2858,5 +2899,11 @@ namespace Khd.Core.Wpf.Form
InventoryTaskForm inventoryTaskForm = new InventoryTaskForm(this._host);
inventoryTaskForm.ShowDialog();
}
private void SelectOutBtn_Click(object sender, RoutedEventArgs e)
{
}
}
}

@ -167,7 +167,7 @@ namespace Khd.Core.Wpf.TaskForm.Inventory
palletInfoCode = _containerNo,
materialId = _materialId,
instockBatch = barcode,
safeFlag = "0",
safeFlag = mesBaseBarcodeInfo.safeFlag,
stockType="1",
activeFlag="1",
supplierId=mesBaseBarcodeInfo.manufacturerId,
@ -180,12 +180,12 @@ namespace Khd.Core.Wpf.TaskForm.Inventory
totalAmount=mesBaseBarcodeInfo.batchFlag=="1"?mesBaseBarcodeInfo.amount:1,
warehouseFloor=5,
warehouseId=512,
saleOrderId=mesBaseBarcodeInfo.saleOrderId,
saleOrderId=mesBaseBarcodeInfo.saleOrderId==null?0:mesBaseBarcodeInfo.saleOrderId,
locationCode = _locationCode,
createBy = "WCS",
createDate = DateTime.Now,
updateBy = "WCS",
updateDate = DateTime.Now
updateDate = DateTime.Now,
});
}
else

@ -0,0 +1,32 @@
<Window x:Class="Khd.Core.Wpf.TaskForm.SelectOutRawForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Khd.Core.Wpf.TaskForm"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen"
Background="#333333"
Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="出库终点" Foreground="White" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="30"/>
<ComboBox x:Name="EmptyCount" FontSize="30" Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center" Width="300" Height="75"/>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="5">
<Button Content="保存" Width="150" Height="75" FontSize="50" Background="#2196F3" Foreground="White" Click="Button_Click"/>
<Button Content="取消" Margin="200,0,0,0" Width="150" Height="75" FontSize="50" Background="#F44336" Foreground="White" Click="Button_Click_1"/>
</StackPanel>
</Grid>
</Window>

@ -0,0 +1,40 @@
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Khd.Core.Wpf.TaskForm
{
/// <summary>
/// SelectOutRawForm.xaml 的交互逻辑
/// </summary>
public partial class SelectOutRawForm : Window
{
private readonly IHost _host;
public SelectOutRawForm(IHost host)
{
InitializeComponent();
_host = host;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
this.Close();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
}
}
}
Loading…
Cancel
Save