From dd40ad9d66b3cf3430e94f39bf610888775f8e26 Mon Sep 17 00:00:00 2001
From: liudl <673013083@qq.com>
Date: 星期五, 17 一月 2025 08:49:35 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/WCSNet6

---
 Admin.NET/WCS.Application/PLC/PLCService.cs                       |  229 +++++++++++++++++++++++++++++++++++++
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs                  |    3 
 Web/src/views/device/deviceInfo/index.vue                         |   14 ++
 Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs   |    5 
 Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs |   10 +
 Admin.NET/WCS.Application/Job/LogClearJob.cs                      |   37 ++++++
 Admin.NET/WCS.Application/Model/TaskRequest.cs                    |    5 
 7 files changed, 297 insertions(+), 6 deletions(-)

diff --git a/Admin.NET/WCS.Application/Job/LogClearJob.cs b/Admin.NET/WCS.Application/Job/LogClearJob.cs
new file mode 100644
index 0000000..0c0f058
--- /dev/null
+++ b/Admin.NET/WCS.Application/Job/LogClearJob.cs
@@ -0,0 +1,37 @@
+锘縰sing Furion.Schedule;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WCS.Application;
+/// <summary>
+/// 鏃ュ織娓呯悊浠诲姟
+/// </summary>
+[JobDetail("job_logClear", Description = "浠诲姟鏃ュ織娓呯悊浠诲姟", GroupName = "default", Concurrent = false)]
+[Daily(TriggerId = "trigger_logClear", Description = "浠诲姟鏃ュ織娓呯悊浠诲姟")]
+public class LogClearJob : IJob
+{
+    private readonly IServiceScopeFactory _scopeFactory;
+    private readonly ILogger _logger;
+
+    public LogClearJob(IServiceScopeFactory scopeFactory, ILoggerFactory loggerFactory)
+    {
+        _scopeFactory = scopeFactory;
+        _logger = loggerFactory.CreateLogger(CommonConst.SysLogCategoryName);
+    }
+
+    public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
+    {
+        using var serviceScope = _scopeFactory.CreateScope();
+        
+        var rep = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<WcsTask>>();
+        DateTime threeMonthsAgo = DateTime.Now.AddMonths(-3);
+        await rep.CopyNew().Context.Deleteable<WcsTask>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken);
+        await rep.CopyNew().Context.Deleteable<WcsTaskMonitor>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken);
+        threeMonthsAgo = DateTime.Now.AddMonths(-6);
+        await rep.CopyNew().Context.Deleteable<WcsAlarmLog>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken);
+    }
+}
diff --git a/Admin.NET/WCS.Application/Model/TaskRequest.cs b/Admin.NET/WCS.Application/Model/TaskRequest.cs
index 7c5a21d..9a7a77e 100644
--- a/Admin.NET/WCS.Application/Model/TaskRequest.cs
+++ b/Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -407,6 +407,11 @@
     /// 鍌ㄥ瓨鏈熻嚦
     /// </summary>
     public string StoreTime { get; set; }
+
+    /// <summary>
+    /// 浜х嚎缂栧彿鎴栧悕绉�
+    /// </summary>
+    public string LineNo { get; set; }
     /// <summary>
     /// 鏉ユ簮 鍥哄畾鍊糩璧嬬爜]
     /// </summary>
diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index 936a6af..e3d0acf 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -268,6 +268,7 @@
                         SkuName = models.SkuName,
                         Standard = models.Standard,
                         LotNo = models.LotNo,
+                        LineNo = models.LineNo,                 // 浜х嚎鍙锋垨浜х嚎鍚嶇О
                         Qty = item2.Qty,
                         FullQty = models.FullQty,
                         //SupplierLot = models.SupplierLot,
@@ -283,7 +284,7 @@
                         BoxNo3 = item2.BoxNo3,
                         QtyCount = item2.QtyCount,
                         QtyOrd = item2.QtyOrd,
-
+                        
                         Status = "0",
                         Level = level,
 
diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index c0953f1..f364545 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -16,6 +16,7 @@
 using System.Data;
 using System.Reflection.Emit;
 using WCS.Application.Entity;
+using WCS.Application.Service.WcsDevice.Dto;
 using WCS.Application.Util;
 using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityUpdateStoreRequest.Types;
 using static SKIT.FlurlHttpClient.Wechat.Api.Models.NontaxInsertBillRequest.Types.CardExtra.Types.BillCard.Types;
@@ -1871,11 +1872,12 @@
                                         }
                                     }
                                 }
-                                // 鏍规嵁绠卞唴鍝佺鍙疯幏鍙栫爜韬茬粦瀹氬伐浣嶅強瀵瑰簲鐨勫垎閬撳彿
-                                var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo && w.Status == "1");
-                                if (checkTaskInfo == null)
+
+
+                                // 楠岃瘉鏄惁闆剁
+                                if (boxInfo.BitBoxMark == "1")
                                 {
-                                    // 缁戝畾淇℃伅涓簄ull鍐欏叆鍓旈櫎閫氶亾鍙�
+                                    // 鏄浂绠辩洿鎺ュ墧闄わ紝杩涜浜哄伐缁勬墭
                                     var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
                                     if (ret.IsSucceed)
                                     {
@@ -1883,10 +1885,227 @@
                                         var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
                                         if (retVal.IsSucceed)
                                         {
-                                            Log.Error("绠辩爜鏈粦瀹氬垎鎷d换鍔★紝杩涜鍓旈櫎銆�");
+                                            Log.Error("闆剁锛岃繘琛屽墧闄ゃ��");
                                             break;
                                         }
                                     }
+                                    break;
+                                }
+
+
+                                // 鏍规嵁绠卞唴鍝佺鍙疯幏鍙栫爜韬茬粦瀹氬伐浣嶅強瀵瑰簲鐨勫垎閬撳彿
+                                var checkTaskInfo = _db.Queryable<WcsCheckTask>().First(w => w.SkuNo == boxInfo.SkuNo && w.SkuName == boxInfo.SkuName && w.LotNo == boxInfo.LotNo && w.Status == "1");
+                                if (checkTaskInfo == null)
+                                {
+                                    // 鍒ゆ柇鏄惁鍏宠仈鍗曟嵁 wcsordertask
+                                    var orderModel = _db.Queryable<WcsOderTask>()
+                                        .First(m => m.SkuNo == boxInfo.SkuNo && m.Status== TaskStatusEnum.Wait && m.LotNo == boxInfo.LotNo && m.IsDelete == false);
+                                    if (orderModel != null)
+                                    {
+                                        // 鏍规嵁boxinfo琛ㄤ骇绾垮瓧娈佃嚜鍔ㄧ粦瀹氬垎閬�(1绾夸骇鍝佸彧鑳界粦瀹氬埌8閬�)
+                                        if (boxInfo.LineNo != "1")
+                                        {// 缁戝畾鍒伴櫎8閬撳鍏朵粬閬�
+
+                                            // 鑾峰彇鏈粦瀹氶亾
+                                            var lineNoModels = _db.Queryable<WcsCheckTask>()
+                                                .Where(m => m.Status == "0" && m.LineNo != "8" && m.RoboatType == PLCTypeEnum.RobotPalletizer).ToList();
+                                            if (lineNoModels.Count > 0)
+                                            {
+                                                // 鑾峰彇褰撳墠鐗╂枡鍝佺鍙�
+                                                var skuInfo = await _db.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == boxInfo.SkuNo).FirstAsync();
+                                                if (skuInfo == null)
+                                                {
+                                                    // 姝や骇鍝佽嫢娌¤瀹氬搧瑙勶紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+                                                    var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+                                                    if (ret.IsSucceed)
+                                                    {
+                                                        // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                                        var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                                        if (retVal.IsSucceed)
+                                                        {
+                                                            Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+                                                            break;
+                                                        }
+                                                    }
+                                                    break;
+                                                }
+
+                                                foreach (var lineNoModel in lineNoModels) 
+                                                {
+                                                    // 璇诲彇璁惧楠岃瘉鏄惁缁戝畾鍒嗛亾
+                                                    var (respg, pzNo) = plcConn.GetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos);
+                                                    if (respg.IsSucceed)
+                                                    {
+                                                        if (pzNo != 0)
+                                                        {
+                                                            // plc姝ゅ垎閬撴湭瑙g粦
+                                                            break;
+                                                        }
+                                                        else 
+                                                        {
+                                                            // 鑷姩缁戝畾鍒嗛亾
+                                                            lineNoModel.OrderNo = orderModel.OrderNo;
+                                                            lineNoModel.LotNo = boxInfo.LotNo;
+                                                            lineNoModel.SkuNo = boxInfo.SkuNo;
+                                                            lineNoModel.SkuName = boxInfo.SkuName;
+                                                            lineNoModel.Qty = orderModel.Qty;
+                                                            lineNoModel.Status = "1";//宸茬粦瀹�
+                                                            lineNoModel.PZNo = skuInfo.PZNo;
+
+                                                            // 缁橮LC鍐欏叆鍝佽
+                                                            var ret = plcConn.SetPlcDBValue(lineNoModel.PosType, lineNoModel.DbNumber, lineNoModel.PlcPos, skuInfo.PZNo);
+                                                            if (ret.IsSucceed)
+                                                            {
+                                                                //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+                                                                _db.Updateable(lineNoModel).ExecuteCommand();
+                                                                //鏇存柊WcsOderTask琛�
+                                                                orderModel.Status = TaskStatusEnum.Doing;
+                                                                _db.Updateable(orderModel).ExecuteCommand();
+                                                                // Liudl 閫氱煡鍓嶇鏇存柊鍒嗘嫞浠诲姟
+                                                                //涓嬪彂鍒嗘嫞浠诲姟
+                                                                HubUtil.PublicCheckTask(lineNoModel.Adapt<WcsDeviceTaskOrderDto>());
+                                                                break;
+                                                            }
+                                                            else
+                                                            {
+                                                                throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粦瀹氬け璐ワ紒");
+                                                            }
+                                                        }
+                                                    }
+                                                    else 
+                                                    {
+                                                        // 璇诲彇plc澶辫触
+                                                        break;
+                                                    }
+                                                }
+
+                                            }
+                                            else 
+                                            {
+                                                // 鑻ユ病鏈夌┖闂查亾锛岃繘琛屽墧闄ゅ鐞嗐�傞槻姝㈠牭濉炰欢绠辩嚎
+                                                var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+                                                if (ret.IsSucceed)
+                                                {
+                                                    // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                                    var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                                    if (retVal.IsSucceed)
+                                                    {
+                                                        Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+                                                        break;
+                                                    }
+                                                }
+                                                break;
+                                            }
+                                        }
+                                        else 
+                                        {// 缁戝畾鍒�8閬�
+                                         // 鑾峰彇鏈粦瀹氶亾
+                                            var lineNo8Model = _db.Queryable<WcsCheckTask>()
+                                                .First(m => m.Status == "0" && m.LineNo == "8" && m.RoboatType == PLCTypeEnum.RobotPalletizer);
+                                            if (lineNo8Model != null)
+                                            {
+                                                // 鑾峰彇褰撳墠鐗╂枡鍝佺鍙�
+                                                var skuInfo = await _db.Queryable<WcsMateialPzInfo>().Where(w => w.SkuNo == boxInfo.SkuNo).FirstAsync();
+                                                if (skuInfo == null)
+                                                {
+                                                    // 姝や骇鍝佽嫢娌¤瀹氬搧瑙勶紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+                                                    var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+                                                    if (ret.IsSucceed)
+                                                    {
+                                                        // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                                        var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                                        if (retVal.IsSucceed)
+                                                        {
+                                                            Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+                                                            break;
+                                                        }
+                                                    }
+                                                    break;
+                                                }
+
+
+                                                // 璇诲彇璁惧楠岃瘉鏄惁缁戝畾鍒嗛亾
+                                                var (respg, pzNo) = plcConn.GetPlcDBValue(lineNo8Model.PosType, lineNo8Model.DbNumber, lineNo8Model.PlcPos);
+                                                if (respg.IsSucceed)
+                                                {
+                                                    if (pzNo != 0)
+                                                    {
+                                                        // plc姝ゅ垎閬撴湭瑙g粦
+                                                        break;
+                                                    }
+                                                    else
+                                                    {
+                                                        // 鑷姩缁戝畾鍒嗛亾
+                                                        lineNo8Model.OrderNo = orderModel.OrderNo;
+                                                        lineNo8Model.LotNo = boxInfo.LotNo;
+                                                        lineNo8Model.SkuNo = boxInfo.SkuNo;
+                                                        lineNo8Model.SkuName = boxInfo.SkuName;
+                                                        lineNo8Model.Qty = orderModel.Qty;
+                                                        lineNo8Model.Status = "1";//宸茬粦瀹�
+                                                        lineNo8Model.PZNo = skuInfo.PZNo;
+
+                                                        // 缁橮LC鍐欏叆鍝佽
+                                                        var ret = plcConn.SetPlcDBValue(lineNo8Model.PosType, lineNo8Model.DbNumber, lineNo8Model.PlcPos, skuInfo.PZNo);
+                                                        if (ret.IsSucceed)
+                                                        {
+                                                            //鍐欏叆娴佺▼瀛楁垚鍔熷悗鏇存柊鍒嗘嫞浠诲姟
+                                                            _db.Updateable(lineNo8Model).ExecuteCommand();
+                                                            //鏇存柊WcsOderTask琛�
+                                                            orderModel.Status = TaskStatusEnum.Doing;
+                                                            _db.Updateable(orderModel).ExecuteCommand();
+
+                                                            // Liudl 閫氱煡鍓嶇鏇存柊鍒嗘嫞浠诲姟
+                                                            //涓嬪彂鍒嗘嫞浠诲姟
+                                                            HubUtil.PublicCheckTask(lineNo8Model.Adapt<WcsDeviceTaskOrderDto>());
+                                                            break;
+                                                        }
+                                                        else
+                                                        {
+                                                            throw Oops.Bah("涓嶱CL浜や簰澶辫触锛岀粦瀹氬け璐ワ紒");
+                                                        }
+                                                    }
+                                                }
+                                                else
+                                                {
+                                                    // 璇诲彇plc澶辫触
+                                                    break;
+                                                }
+                                                
+
+                                            }
+                                            else
+                                            {
+                                                // 娌℃湁绌洪棽閬擄紝杩涜鍓旈櫎澶勭悊銆傞槻姝㈠牭濉炰欢绠辩嚎
+                                                var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+                                                if (ret.IsSucceed)
+                                                {
+                                                    // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                                    var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                                    if (retVal.IsSucceed)
+                                                    {
+                                                        Log.Error("娌℃湁绌洪棽鍒嗛亾锛岃繘琛屽墧闄ゃ��");
+                                                        break;
+                                                    }
+                                                }
+                                                break;
+                                            }
+                                        }
+                                    }
+                                    else 
+                                    {
+                                        // 涓嶅叧鑱斿崟鎹洿鎺ヨ繘琛屽墧闄ゅ鐞�
+                                        var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "0");
+                                        if (ret.IsSucceed)
+                                        {
+                                            // 鍐欏叆娴佺▼鎺у埗瀛� 2
+                                            var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2");
+                                            if (retVal.IsSucceed)
+                                            {
+                                                Log.Error("绠辩爜鏈粦瀹氬垎鎷d换鍔★紝杩涜鍓旈櫎銆�");
+                                                break;
+                                            }
+                                        }
+                                    }
                                 }
                                 else
                                 {
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs b/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs
index 8bcd3a2..9414df3 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs
@@ -361,6 +361,16 @@
     /// </summary>
     public string EndCeng { get; set; }
 
+
+    /// <summary>
+    /// 缂犺啘浜や簰
+    /// </summary>
+    public string ChanMo { get; set; }
+    /// <summary>
+    /// 鎷嗘ā浜や簰
+    /// </summary>
+    public string ChaiMo { get; set; }
+
 }
 
 public class WcsDeviceStartStop
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index c0c19d2..aef96fc 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -168,6 +168,11 @@
         var (result11, value11) = modUtil.GetPlcDBValue(PLCDataTypeEnum.Short, DbNum, "48");
         data.EndCeng = value11.ToString();
 
+        var (result12, value12) = modUtil.GetPlcDBValue(PLCDataTypeEnum.Byte, DbNum, "50");
+        data.ChanMo = value12.ToString();
+        var (result13, value13) = modUtil.GetPlcDBValue(PLCDataTypeEnum.Byte, DbNum, "51");
+        data.ChaiMo = value13.ToString();
+
         modUtil.Close();
         return data;
     }
diff --git a/Web/src/views/device/deviceInfo/index.vue b/Web/src/views/device/deviceInfo/index.vue
index 4965b80..3dd560a 100644
--- a/Web/src/views/device/deviceInfo/index.vue
+++ b/Web/src/views/device/deviceInfo/index.vue
@@ -185,6 +185,16 @@
 											</el-form-item>
 										</el-col>
 										
+										<el-col :span="6">
+											<el-form-item label="缂犺啘淇″彿">
+												<el-input v-model="stationValue.chanMo" disabled style="width: 200px; margin-right: 10px;"></el-input>
+											</el-form-item>
+										</el-col>
+										<el-col :span="6">
+											<el-form-item label="鎷嗚啘淇″彿">
+												<el-input v-model="stationValue.chaiMo" disabled style="width: 200px; margin-right: 10px;"></el-input>
+											</el-form-item>
+										</el-col>
 									</el-row>	
 								</el-form>
 							</div>
@@ -232,6 +242,10 @@
 	endPai:'',
 	endLie:'',
 	endCeng:'',
+
+	chanMo:'',
+	chaiMo:'',
+
 });
  
 

--
Gitblit v1.8.0