From cfb3f2c7e9cde8cc2eb2a19263d0802c0c5410a3 Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期一, 06 四月 2026 15:41:04 +0800
Subject: [PATCH] mes接口
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs | 149 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 143 insertions(+), 6 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs"
index 249694e..334d3b1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs"
@@ -3,8 +3,17 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using HslCommunication.WebSocket;
+using Newtonsoft.Json;
using Quartz;
+using WIDESEA_Common.FillingEnum;
+using WIDESEA_Model.Models.Basic;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models.TaskInfo;
using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_Tasks.Command;
using WIDESEAWCS_Tasks.DBName;
namespace WIDESEAWCS_Tasks
@@ -12,6 +21,16 @@
[DisallowConcurrentExecution]
public class FillingJob : JobBase, IJob
{
+
+ private readonly IRepository<Dt_FillingOrder> _FillingRepository;
+ private readonly IRepository<Dt_FillingOrder_Hty> _FillingHtyRepository;
+
+ public FillingJob(IRepository<Dt_FillingOrder> FillingRepository, IRepository<Dt_FillingOrder_Hty> fillingHtyRepository)
+ {
+ _FillingRepository = FillingRepository;
+ _FillingHtyRepository = fillingHtyRepository;
+ }
+
public Task Execute(IJobExecutionContext context)
{
//杩炴帴璁惧
@@ -22,15 +41,133 @@
//OtherDevice TCevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "澶╄溅");
if (device.Communicator.IsConnected)
{
- //璇�
- short a = device.GetValue<FillingDBName, short>(FillingDBName.R_ceshi);
- //鍐�
- device.SetValue(FillingDBName.W_ceshia, "zy");
- device.SetValue(FillingDBName.W_ceshib, "wq");
- device.SetValue(FillingDBName.W_ceshic, "df");
+ ////璇�
+ //short a = device.GetValue<FillingDBName, short>(FillingDBName.R_ceshi);
+ ////鍐�
+ //device.SetValue(FillingDBName.W_ceshia, "zy");
+ //device.SetValue(FillingDBName.W_ceshib, "wq");
+ //device.SetValue(FillingDBName.W_ceshic, "df");
+
+ try
+ {
+ //鏄惁鍠风爜瀹屾垚
+ short accomplish = device.GetValue<FillingDBName, short>(FillingDBName.R_Accomplish);
+
+ if (accomplish == 1)
+ {
+ //鑾峰彇浜岀淮鐮�
+ Dt_FillingOrder FillingOrder = GetFilling();
+ if (FillingOrder != null)
+ {
+
+ //浠诲姟瀹炰綋杞懡浠odel
+ FillingCommand? StackerCommand = FillingToCommand(FillingOrder);
+ if (StackerCommand != null)
+ {
+ //鍙戦�佸懡浠�
+ device.SetValue(FillingDBName.W_QRcode1, StackerCommand.W_QRcode1);
+ device.SetValue(FillingDBName.W_QRcode2, StackerCommand.W_QRcode2);
+ device.SetValue(FillingDBName.W_QRcode3, StackerCommand.W_QRcode3);
+ device.SetValue(FillingDBName.W_QRcode4, StackerCommand.W_QRcode4);
+ device.SetValue(FillingDBName.W_QRcode5, StackerCommand.W_QRcode5);
+ device.SetValue(FillingDBName.W_QRcode6, StackerCommand.W_QRcode6);
+ device.SetValue(FillingDBName.W_QRcode7, StackerCommand.W_QRcode7);
+ device.SetValue(FillingDBName.W_QRcode8, StackerCommand.W_QRcode8);
+ device.SetValue(FillingDBName.W_QRcode9, StackerCommand.W_QRcode9);
+ device.SetValue(FillingDBName.W_QRcode10, StackerCommand.W_QRcode10);
+ device.SetValue(FillingDBName.W_QRcode11, StackerCommand.W_QRcode11);
+ device.SetValue(FillingDBName.W_QRcode12, StackerCommand.W_QRcode12);
+ device.SetValue(FillingDBName.W_QRcode13, StackerCommand.W_QRcode13);
+ device.SetValue(FillingDBName.W_QRcode14, StackerCommand.W_QRcode14);
+ device.SetValue(FillingDBName.W_QRcode15, StackerCommand.W_QRcode15);
+ device.SetValue(FillingDBName.W_Refresh, StackerCommand.W_Refresh);
+
+ //鐢熸垚鍘嗗彶浜岀淮鐮佷俊鎭�
+ FillingOrder.BarStatus = (int)FillingStatusEnum.ExecuteCompleted;
+
+ Dt_FillingOrder_Hty FillingOrderHty = new Dt_FillingOrder_Hty();
+ FillingOrderHty.ArticleNum = FillingOrder.ArticleNum;
+ FillingOrderHty.ArticleName = FillingOrder.ArticleName;
+ FillingOrderHty.Specification = FillingOrder.Specification;
+ FillingOrderHty.batchNum = FillingOrder.batchNum;
+ FillingOrderHty.BarCode = FillingOrder.BarCode;
+ FillingOrderHty.WorkOrder = FillingOrder.WorkOrder;
+ FillingOrderHty.BarNum = FillingOrder.BarNum;
+ FillingOrderHty.CreationTime = FillingOrder.CreationTime;
+ FillingOrderHty.WorkID = FillingOrder.WorkID;
+ FillingOrderHty.ProductType = FillingOrder.ProductType;
+ FillingOrderHty.BarStatus = FillingOrder.BarStatus;
+ FillingOrderHty.BarCodeID = FillingOrder.BarCodeID;
+ FillingOrderHty.ArticleNumID = FillingOrder.ArticleNumID;
+ FillingOrderHty.MaterialName = FillingOrder.MaterialName;
+ FillingOrderHty.WarehouseType = FillingOrder.WarehouseType;
+ FillingOrderHty.MaterialCode = FillingOrder.MaterialCode;
+ FillingOrderHty.Standby1 = FillingOrder.Standby1;
+ FillingOrderHty.Standby2 = FillingOrder.Standby2;
+
+
+ _FillingHtyRepository.AddData(FillingOrderHty);
+ _FillingRepository.DeleteData(FillingOrder);
+ string address = AppSettings.Get("WMSApiAddress");
+ if (!string.IsNullOrEmpty(address))
+ {
+ HttpHelper.Post($"{address}/api/FillingOrder/UpdateFilling?FillingNumber={FillingOrder.BarCode}", "");
+ }
+ //寤惰繜2s璁╃綈瑁呮満鏇村彉淇″彿
+ Thread.Sleep(2000);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteError(nameof(StackerCraneJob), ex.Message);
+ }
}
}
return Task.CompletedTask;
}
+
+ //鑾峰彇浜岀淮鐮�
+ public Dt_FillingOrder GetFilling()
+ {
+ Dt_FillingOrder FillingOrder = new Dt_FillingOrder();
+
+ FillingOrder = _FillingRepository.QueryFirst(x => x.BarStatus == (int)FillingStatusEnum.Queue);
+
+ return FillingOrder;
+ }
+
+ //浠诲姟瀹炰綋杞懡浠odel
+ public FillingCommand FillingToCommand(Dt_FillingOrder FillingOrder)
+ {
+ FillingCommand fillingCommand = new FillingCommand();
+
+ //鎷嗗垎瀛楃涓�
+ int lengths = FillingOrder.BarCode.Length;
+ string BarCodes= FillingOrder.BarCode;
+ for (int i=0;i < 30 - lengths;i++)
+ {
+ BarCodes = BarCodes + "X";
+ }
+
+ fillingCommand.W_QRcode1 = BarCodes.Substring(0, 2);
+ fillingCommand.W_QRcode2 = BarCodes.Substring(2, 2);
+ fillingCommand.W_QRcode3 = BarCodes.Substring(4, 2);
+ fillingCommand.W_QRcode4 = BarCodes.Substring(6, 2);
+ fillingCommand.W_QRcode5 = BarCodes.Substring(8, 2);
+ fillingCommand.W_QRcode6 = BarCodes.Substring(10, 2);
+ fillingCommand.W_QRcode7 = BarCodes.Substring(12, 2);
+ fillingCommand.W_QRcode8 = BarCodes.Substring(14, 2);
+ fillingCommand.W_QRcode9 = BarCodes.Substring(16, 2);
+ fillingCommand.W_QRcode10 = BarCodes.Substring(18, 2);
+ fillingCommand.W_QRcode11 = BarCodes.Substring(20, 2);
+ fillingCommand.W_QRcode12 = BarCodes.Substring(22, 2);
+ fillingCommand.W_QRcode13 = BarCodes.Substring(24, 2);
+ fillingCommand.W_QRcode14 = BarCodes.Substring(26, 2);
+ fillingCommand.W_QRcode15 = BarCodes.Substring(28, 2);
+ fillingCommand.W_Refresh = "1";
+ return fillingCommand;
+ }
}
}
--
Gitblit v1.9.3