kazelee
2025-05-14 cd92df8b7b383a6a3218f50b3b62264db8332899
Services/AgvService.cs
@@ -14,6 +14,7 @@
using static HH.WCS.Mobox3.AnGang.Dtos.Response.AgvResponse;
using HH.WCS.Mobox3.AnGang.Consts;
using HH.WCS.Mobox3.AnGang.Dispatch;
using HH.WCS.Mobox3.AnGang.Devices;
namespace HH.WCS.Mobox3.AnGang.Services {
    public class AgvService {
@@ -22,8 +23,8 @@
            try {
                switch (model.state) {
                    case 1023:
                        break;
                    case 1025:
                        break;
                    case 1012:
                        break;
@@ -83,10 +84,17 @@
                case AgvStateCode.取货完成:
                    WCSHelper.UpdateStatus(TN_Task, "取货完成"); // 任务状态改成取货完成
                    // TODO 拍照
                    var captureTask = Task.Run(() => {
                        if (TN_Task.S_TYPE == TaskName.货品入库 || TN_Task.S_TYPE == TaskName.产品部分回库) {
                            CapturePic(TN_Task);
                        }
                    });
                    var setEndLocTask = Task.Run(() => {
                        // 只要任务为产品入库(PDA),就需要重新指定终点(默认endLoc为"")
                        if (TN_Task.S_TYPE == "产品入库(PDA)") {
                        SetEndLoc(TN_Task);
                        }
                    });
                    TaskHelper.OperateStatus(TN_Task, 4); // 起点容器货位解绑,解锁起点
@@ -113,10 +121,24 @@
            return true;
        }
        public static void SetEndLoc(TN_Task tn_task) {
            // 只要任务为产品入库(PDA),就需要重新指定终点(默认endLoc为"")
            if (tn_task.S_TYPE == "产品入库(PDA)") {
        public static void CapturePic(TN_Task model) {
            var db = DbHelper.GetDbClient();
            var filepath = SnapManager.GetCapturePicturePath();
            if (string.IsNullOrEmpty(filepath)) {
                return;
            }
            if (db.Updateable<TN_CG_Detail>()
                .SetColumns(d => d.S_IMG_URL == filepath)
                .Where(d => d.S_CNTR_CODE == model.S_CNTR_CODE).ExecuteCommand() <= 0) {
                LogHelper.Info($"图片URL '{filepath}' 写入数据库失败");
                return;
            }
        }
        public static void SetEndLoc(TN_Task tn_task) {
                var db = DbHelper.GetDbClient();
                var endLoc = new TN_Location();
@@ -186,7 +208,6 @@
                                trans.RollbackTran();
                                LogHelper.Info($"计算货位成功,任务 {tn_task.S_CODE} 修改失败,终点货架为 {endLoc.S_SHELF_CODE},修改终点位置为 {endLoc.S_CODE}");
                            }
                        }
                    }
                }