master
1 year ago
parent 77b62be697
commit b351d323da

@ -133,8 +133,8 @@ namespace Khd.Core.Domain.Models
/// </summary>
[Column("remark")]
public string remark { get; set; }
//[Column("is_out")]
//public int? IsOut { get; set; }
[Column("is_out")]
public int? IsOut { get; set; }
}
}

@ -22,7 +22,7 @@ namespace Khd.Core.Domain.Models
[Key]
[Column("raw_outstock_id")]
public long rawOutstockId { get; set; }
public long? rawOutstockId { get; set; }
/// <summary>
/// 任务编号

@ -20,7 +20,7 @@ namespace Khd.Core.Domain.Models
[Key]
[Column("raw_return_id")]
public long rawReturnId { get; set; }
public long? rawReturnId { get; set; }
/// <summary>
/// 任务编号

@ -672,31 +672,44 @@ namespace Khd.Core.Wcs.Wcs
try
{
dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
WcsTask? wcsTask = dbContext.WcsTask.Where(t => t.taskType == 28).FirstOrDefault();
if (wcsTask != null)
BaseEquip baseEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (baseEquip.IsOut == 2 && !string.IsNullOrEmpty(baseEquip.endStationCode))
{
WmsRawInstock? wmsRawInstock = dbContext.WmsRawInstock.Where(t => t.instockType == "2" && t.warehouseId == 511 && t.executeStatus == "0").FirstOrDefault();
if (wmsRawInstock != null)
bool hasTask = dbContext.WcsTask.Where(t => t.nextPointId == 10).Any();
if (!hasTask)
{
wcsTask.useFlag = 1;
wcsTask.createTime = DateTime.Now;
wmsRawInstock.executeStatus = "1";
wmsRawInstock.beginTime = DateTime.Now;
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail()
BaseEquip startEquip = StaticData.BaseEquip.First(t => t.endStationCode == baseEquip.endStationCode);
List<WmsRawReturn> wmsRawReturns = dbContext.WmsRawReturn.Where(t => t.endStationCode == baseEquip.endStationCode)
.Where(t => t.auditStatus == "1")
.Where(t => t.executeStatus == "0" || t.executeStatus == "1")
.ToList();
wmsRawReturns.ForEach(t => t.executeStatus = "1");
dbContext.UpdateRange(wmsRawReturns);
BaseEquip endEquip = StaticData.BaseEquip.First(t=>t.objid==21);
var wcsTask = new WcsTask()
{
rawInstockDetailId = StaticData.SnowId.NextId(),
rawInstockId = wmsRawInstock.rawInstockId,
instockWay = "2",
activeFlag = "1",
stackAmount = 1,
createBy = "WCS",
createDate = DateTime.Now,
materialId = wmsRawInstock.materialId,
instockAmount = 1,
executeStatus = "0",
objid=StaticData.SnowId.NextId(),
serialNo=SystemData.GetSerialNo(dbContext),
taskType=48,
nextPointId=baseEquip.objid,
nextPointNo=baseEquip.equipNo,
currPointId=startEquip.objid,
currPointNo=startEquip.equipNo,
endPointId=endEquip.objid,
endPointNo=endEquip.equipNo,
equipmentNo=baseEquip.equipNo,
useFlag=1,
qty=1,
taskStatus=0,
containerNo="",
IsDelete=0,
createTime=DateTime.Now,
};
dbContext.Update(wmsRawInstock);
dbContext.Update(wcsTask);
baseEquip.IsOut = 0;
dbContext.Update(baseEquip);
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.SaveChanges();
}
}
@ -1832,8 +1845,7 @@ namespace Khd.Core.Wcs.Wcs
if (endEquip.equipType == 10)//CTU出库到装配区
{
BaseEquip endStationCodeEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (!string.IsNullOrEmpty(endStationCodeEquip.endStationCode) && endStationCodeEquip.ud3 != "1")
//if (!string.IsNullOrEmpty(endStationCodeEquip.endStationCode) && endStationCodeEquip.IsOut == 1)
if (!string.IsNullOrEmpty(endStationCodeEquip.endStationCode) && endStationCodeEquip.IsOut == 1)
{
if (item.endStationCode != endStationCodeEquip.endStationCode)
{
@ -1993,7 +2005,7 @@ namespace Khd.Core.Wcs.Wcs
}
if (CreateSuccess)
{
//endStationCodeEquip.IsOut = 0;
endStationCodeEquip.IsOut = 0;
foreach (var orderItem in orderList)
{
if (orderItem.beginTime == null)

@ -476,45 +476,45 @@ namespace Khd.Core.Wcs.Wcs
}
}
}
//else if (item.taskType == 100)//盘库
//{
// BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
// WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
// var agvTask = new RequestAGVTaskDto
// {
// reqCode = StaticData.SnowId.NextId().ToString(),
// positionCodePath = new List<Position>
// {
// new()
// {
// positionCode =wmsBaseLocation.agvPositionCode,
// type = "05"
// },
// new()
// {
// positionCode =endEquip.agvPositionCode,
// type = "00"
// },
// },
// ctnrTyp = "1",
// taskTyp = "F504"
// };
// string message = JsonConvert.SerializeObject(agvTask);
// string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message);
// var reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(result);
// if (reponseMessage != null && reponseMessage.code == "0")
// {
// item.taskCode = reponseMessage.data;
// item.taskStatus = 1;
// dbContext.Update(item);
// dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
// dbContext.SaveChanges();
// }
// else
// {
// _logger.Info("CTU下发出库任务失败" + reponseMessage?.message);
// }
//}
else if (item.taskType == 100)//盘库
{
BaseEquip endEquip = StaticData.BaseEquip.First(t => t.objid == item.endPointId);
WmsBaseLocation wmsBaseLocation = dbContext.WmsBaseLocation.First(t => t.locationId == item.currPointId);
var agvTask = new RequestAGVTaskDto
{
reqCode = StaticData.SnowId.NextId().ToString(),
positionCodePath = new List<Position>
{
new()
{
positionCode =wmsBaseLocation.agvPositionCode,
type = "05"
},
new()
{
positionCode =endEquip.agvPositionCode,
type = "00"
},
},
ctnrTyp = "1",
taskTyp = "F504"
};
string message = JsonConvert.SerializeObject(agvTask);
string result = HttpHelper.SendPostMessage(baseEquip.serverIp, baseEquip.serverPort.Value, "rcms/services/rest/hikRpcService/genAgvSchedulingTask", message);
var reponseMessage = JsonConvert.DeserializeObject<ReponseMessage>(result);
if (reponseMessage != null && reponseMessage.code == "0")
{
item.taskCode = reponseMessage.data;
item.taskStatus = 1;
dbContext.Update(item);
dbContext.WcsTaskLog.Where(t => t.objid == item.objid).Update(t => new WcsTaskLog() { taskStatus = 1 });
dbContext.SaveChanges();
}
else
{
_logger.Info("CTU下发出库任务失败" + reponseMessage?.message);
}
}
}
else
{

@ -2254,7 +2254,7 @@
</Button>
</Grid>
<Button Content="选择出库" Background="#346DFF" Grid.ColumnSpan="6" Grid.Row="1" Foreground="White" FontSize="50" Margin="20,0,0,0" Height="100" Width="250" Click="SelectOutBtn_Click"/>
<Button Content="继续出库" Visibility="Collapsed" Background="#346DFF" Grid.ColumnSpan="6" Grid.Row="1" Foreground="White" FontSize="50" Margin="20,0,0,0" Height="100" Width="250" Click="ContineOutBtn_Click"/>
<Button Content="继续出库" Background="#346DFF" Grid.ColumnSpan="6" Grid.Row="1" Foreground="White" FontSize="50" Margin="20,0,0,0" Height="100" Width="250" Click="ContineOutBtn_Click"/>
</StackPanel>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.Row="3" Grid.ColumnSpan="6">
<TextBlock Text="扫描条码号:" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="75"/>

@ -305,14 +305,15 @@ namespace Khd.Core.Wpf.Form
.Where(t => t.returnAmount > t.planAmount)
.ToList();
List<string> list = wmsRawReturns.Select(t => t.endStationCode).ToList();
List<long?> orderIds = wmsRawReturns.Select(t => t.rawReturnId).ToList();
Dispatcher.Invoke(() =>
{
this.ReturnOrder.Text = "待退库单:\n" + list.Distinct().Join("\n");
});
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (!string.IsNullOrEmpty(baseEquip.endStationCode) && baseEquip.ud3 != "1")
if (!string.IsNullOrEmpty(baseEquip.endStationCode))
{
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).ToList();
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).Where(t => orderIds.Contains(t.orderId)).ToList();
List<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId })
@ -384,15 +385,16 @@ namespace Khd.Core.Wpf.Form
.Where(t => t.outstockAmount > t.realOutstockAmount)
.ToList();
List<string> list = wmsRawOutstocks.Select(t => t.endStationCode).ToList();
List<long?> orderIds = wmsRawOutstocks.Select(t => t.rawOutstockId).ToList();
Dispatcher.Invoke(() =>
{
this.OutOrder.Text = "待出库单:\n" + list.Distinct().Join("\n");
});
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10);
if (!string.IsNullOrEmpty(baseEquip.endStationCode) && baseEquip.ud3 != "1")
if (!string.IsNullOrEmpty(baseEquip.endStationCode))
{
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).ToList();
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).Where(t => orderIds.Contains(t.orderId)).ToList();
List<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId })
@ -1257,6 +1259,22 @@ namespace Khd.Core.Wpf.Form
{
if (wcsCmd.taskType == 32)//领料
{
MessageBoxResult messageBoxResult = HandyControl.Controls.MessageBox.Show("是否需要背负式小车返回?", "提示信息", MessageBoxButton.YesNoCancel, MessageBoxImage.Information);
if (messageBoxResult == MessageBoxResult.Yes)
{
WcsTask wcsTask = CoreMapper.Map<WcsTask>(wcsCmd);
wcsTask.taskStatus = 0;
wcsTask.createTime = DateTime.Now;
wcsTask.useFlag = 1;
wcsTask.objid=Global.SnowId.NextId();
WcsTaskLog wcsTaskLog = CoreMapper.Map<WcsTaskLog>(wcsTask);
dbContext.Add(wcsTaskLog);
dbContext.Update(wcsTask);
}
else if (messageBoxResult == MessageBoxResult.Cancel)
{
return;
}
if (wcsCmd.taskStatus == 3)
{
wcsCmd.taskStatus = 4;
@ -1773,6 +1791,7 @@ namespace Khd.Core.Wpf.Form
createDate = System.DateTime.Now,
safeFlag = material.safeFlag
};
dbContext.WmsRawStock.Add(newRawStock);
dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Success("入库成功!");
@ -2334,13 +2353,13 @@ namespace Khd.Core.Wpf.Form
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var InventoryCheck = dbContext.WmsInventoryCheck
.Where(t=>t.CheckStatus=="0"||t.CheckStatus=="1")
.Where(t => t.CheckStatus == "0" || t.CheckStatus == "1")
.Where(t => t.InventoryCheckId == inventoryCheckId).FirstOrDefault();
BaseEquip agvEquip = SystemData.BaseEquip.First(t => t.objid == 11);
BaseEquip lineEquip = SystemData.BaseEquip.First(t => t.objid == 20);
if (InventoryCheck != null)
{
if(InventoryCheck.InventoryingAmount != 0)
if (InventoryCheck.InventoryingAmount != 0)
{
bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 100).Any();
if (!hasTask)
@ -2348,7 +2367,7 @@ namespace Khd.Core.Wpf.Form
hasTask = dbContext.WcsTaskManual.Where(t => t.taskType == 100).Any();
if (!hasTask)
{
InventoryCheck.InventoriedAmount+= InventoryCheck.InventoryingAmount;
InventoryCheck.InventoriedAmount += InventoryCheck.InventoryingAmount;
InventoryCheck.InventoryingAmount = 0;
}
}
@ -3395,11 +3414,11 @@ namespace Khd.Core.Wpf.Form
{
CreateTime = DateTime.Now,
CheckStatus = "0",
LocationAmount= locationCount,
InventoriedAmount=0,
InventoryingAmount=0,
WarehouseId=512,
CreateBy="WCS"
LocationAmount = locationCount,
InventoriedAmount = 0,
InventoryingAmount = 0,
WarehouseId = 512,
CreateBy = "WCS"
});
dbContext.SaveChanges();
HandyControl.Controls.Growl.Info("创建盘库任务成功!");
@ -3486,26 +3505,33 @@ namespace Khd.Core.Wpf.Form
//选择出库
private void SelectOutBtn_Click(object sender, RoutedEventArgs e)
{
SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, "");
SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, "", 1);
selectOutRawForm.ShowDialog();
}
//选择退库
private void SelectReturnBtn_Click(object sender, RoutedEventArgs e)
{
SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, "1");
SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, "1", 2);
selectOutRawForm.ShowDialog();
}
private void ContineOutBtn_Click(object sender, RoutedEventArgs e)
{
try
{
//using var scope = _host.Services.CreateScope();
//using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
//BaseEquip baseEquip = dbContext.BaseEquip.Where(t => t.objid == 10).First();
//baseEquip.IsOut = 1;
//dbContext.Update(baseEquip);
//dbContext.SaveChanges();
//HandyControl.Controls.MessageBox.Show("继续出库成功!");
using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).ToList();
if (wcsTasks != null && wcsTasks.Count > 0)
{
HandyControl.Controls.MessageBox.Show("已经有出库任务请等待出库完成后,再进行继续出库!");
return;
}
BaseEquip baseEquip = dbContext.BaseEquip.Where(t => t.objid == 10).First();
baseEquip.IsOut = 1;
dbContext.Update(baseEquip);
dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Show("继续出库成功!");
}
catch
{

@ -14,11 +14,13 @@ namespace Khd.Core.Wpf.TaskForm
{
private readonly IHost _host;
private readonly string _ud3;
public SelectOutRawForm(IHost host,string ud3)
private readonly int _isOut;
public SelectOutRawForm(IHost host,string ud3,int isOut)
{
InitializeComponent();
_host = host;
_ud3 = ud3;
_isOut = isOut;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
@ -39,6 +41,7 @@ namespace Khd.Core.Wpf.TaskForm
var baseEquip = dbContext.BaseEquip.Where(t => t.objid == 10).First();
baseEquip.endStationCode = this.endStationCode.SelectedItem.ToString();
baseEquip.ud3 = _ud3;
baseEquip.IsOut = _isOut;
dbContext.BaseEquip.Update(baseEquip);
dbContext.SaveChanges();
MessageBox.Show("保存成功!");

Loading…
Cancel
Save