From beb0b5d9e1bab1ace04b5860b5ca308b6f913d4f Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期六, 21 三月 2026 13:46:04 +0800
Subject: [PATCH] 灌装机功能
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/FillingJob.cs | 124 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 118 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..f948da2 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,14 @@
[DisallowConcurrentExecution]
public class FillingJob : JobBase, IJob
{
+
+ private readonly IRepository<Dt_FillingOrder> _FillingRepository;
+
+ public FillingJob(IRepository<Dt_FillingOrder> FillingRepository)
+ {
+ _FillingRepository = FillingRepository;
+ }
+
public Task Execute(IJobExecutionContext context)
{
//杩炴帴璁惧
@@ -22,15 +39,110 @@
//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;
+ _FillingRepository.UpdateData(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