master
1 year ago
parent 77b62be697
commit b351d323da

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

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

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

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

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

@ -2254,7 +2254,7 @@
</Button> </Button>
</Grid> </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="选择出库" 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>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.Row="3" Grid.ColumnSpan="6"> <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"/> <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) .Where(t => t.returnAmount > t.planAmount)
.ToList(); .ToList();
List<string> list = wmsRawReturns.Select(t => t.endStationCode).ToList(); List<string> list = wmsRawReturns.Select(t => t.endStationCode).ToList();
List<long?> orderIds = wmsRawReturns.Select(t => t.rawReturnId).ToList();
Dispatcher.Invoke(() => Dispatcher.Invoke(() =>
{ {
this.ReturnOrder.Text = "待退库单:\n" + list.Distinct().Join("\n"); this.ReturnOrder.Text = "待退库单:\n" + list.Distinct().Join("\n");
}); });
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); 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<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList(); List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId }) 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) .Where(t => t.outstockAmount > t.realOutstockAmount)
.ToList(); .ToList();
List<string> list = wmsRawOutstocks.Select(t => t.endStationCode).ToList(); List<string> list = wmsRawOutstocks.Select(t => t.endStationCode).ToList();
List<long?> orderIds = wmsRawOutstocks.Select(t => t.rawOutstockId).ToList();
Dispatcher.Invoke(() => Dispatcher.Invoke(() =>
{ {
this.OutOrder.Text = "待出库单:\n" + list.Distinct().Join("\n"); this.OutOrder.Text = "待出库单:\n" + list.Distinct().Join("\n");
}); });
var baseEquip = dbContext.BaseEquip.First(t => t.objid == 10); 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<string> containerNos = wcsTasks.Select(t => t.containerNo).ToList();
List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList(); List<WmsRawStock> wmsRawStocks = dbContext.WmsRawStock.Where(t => containerNos.Contains(t.palletInfoCode)).ToList();
var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId }) var thisOutList = wmsRawStocks.GroupBy(t => new { t.materialId, t.saleOrderId })
@ -1257,6 +1259,22 @@ namespace Khd.Core.Wpf.Form
{ {
if (wcsCmd.taskType == 32)//领料 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) if (wcsCmd.taskStatus == 3)
{ {
wcsCmd.taskStatus = 4; wcsCmd.taskStatus = 4;
@ -1773,6 +1791,7 @@ namespace Khd.Core.Wpf.Form
createDate = System.DateTime.Now, createDate = System.DateTime.Now,
safeFlag = material.safeFlag safeFlag = material.safeFlag
}; };
dbContext.WmsRawStock.Add(newRawStock); dbContext.WmsRawStock.Add(newRawStock);
dbContext.SaveChanges(); dbContext.SaveChanges();
HandyControl.Controls.MessageBox.Success("入库成功!"); HandyControl.Controls.MessageBox.Success("入库成功!");
@ -2334,13 +2353,13 @@ namespace Khd.Core.Wpf.Form
using var scope = _host.Services.CreateScope(); using var scope = _host.Services.CreateScope();
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
var InventoryCheck = dbContext.WmsInventoryCheck 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(); .Where(t => t.InventoryCheckId == inventoryCheckId).FirstOrDefault();
BaseEquip agvEquip = SystemData.BaseEquip.First(t => t.objid == 11); BaseEquip agvEquip = SystemData.BaseEquip.First(t => t.objid == 11);
BaseEquip lineEquip = SystemData.BaseEquip.First(t => t.objid == 20); BaseEquip lineEquip = SystemData.BaseEquip.First(t => t.objid == 20);
if (InventoryCheck != null) if (InventoryCheck != null)
{ {
if(InventoryCheck.InventoryingAmount != 0) if (InventoryCheck.InventoryingAmount != 0)
{ {
bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 100).Any(); bool hasTask = dbContext.WcsTask.Where(t => t.taskType == 100).Any();
if (!hasTask) if (!hasTask)
@ -2348,7 +2367,7 @@ namespace Khd.Core.Wpf.Form
hasTask = dbContext.WcsTaskManual.Where(t => t.taskType == 100).Any(); hasTask = dbContext.WcsTaskManual.Where(t => t.taskType == 100).Any();
if (!hasTask) if (!hasTask)
{ {
InventoryCheck.InventoriedAmount+= InventoryCheck.InventoryingAmount; InventoryCheck.InventoriedAmount += InventoryCheck.InventoryingAmount;
InventoryCheck.InventoryingAmount = 0; InventoryCheck.InventoryingAmount = 0;
} }
} }
@ -3395,11 +3414,11 @@ namespace Khd.Core.Wpf.Form
{ {
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
CheckStatus = "0", CheckStatus = "0",
LocationAmount= locationCount, LocationAmount = locationCount,
InventoriedAmount=0, InventoriedAmount = 0,
InventoryingAmount=0, InventoryingAmount = 0,
WarehouseId=512, WarehouseId = 512,
CreateBy="WCS" CreateBy = "WCS"
}); });
dbContext.SaveChanges(); dbContext.SaveChanges();
HandyControl.Controls.Growl.Info("创建盘库任务成功!"); HandyControl.Controls.Growl.Info("创建盘库任务成功!");
@ -3486,26 +3505,33 @@ namespace Khd.Core.Wpf.Form
//选择出库 //选择出库
private void SelectOutBtn_Click(object sender, RoutedEventArgs e) private void SelectOutBtn_Click(object sender, RoutedEventArgs e)
{ {
SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, ""); SelectOutRawForm selectOutRawForm = new SelectOutRawForm(this._host, "", 1);
selectOutRawForm.ShowDialog(); selectOutRawForm.ShowDialog();
} }
//选择退库 //选择退库
private void SelectReturnBtn_Click(object sender, RoutedEventArgs e) 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(); selectOutRawForm.ShowDialog();
} }
private void ContineOutBtn_Click(object sender, RoutedEventArgs e) private void ContineOutBtn_Click(object sender, RoutedEventArgs e)
{ {
try try
{ {
//using var scope = _host.Services.CreateScope(); using var scope = _host.Services.CreateScope();
//using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
//BaseEquip baseEquip = dbContext.BaseEquip.Where(t => t.objid == 10).First(); List<WcsTask> wcsTasks = dbContext.WcsTask.Where(t => t.taskType == 30).ToList();
//baseEquip.IsOut = 1; if (wcsTasks != null && wcsTasks.Count > 0)
//dbContext.Update(baseEquip); {
//dbContext.SaveChanges(); HandyControl.Controls.MessageBox.Show("已经有出库任务请等待出库完成后,再进行继续出库!");
//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 catch
{ {

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

Loading…
Cancel
Save