schangxiang@126.com
2025-09-01 b08bfd050511ed27e0bde0bd4095eed1fdb5ddeb
wcs/yunneiWCS/yunneiWCS/ExtendFunction/MyExtend.cs
@@ -19,6 +19,26 @@
    /// </summary>
    public class MyExtend
    {
        /// <summary>
        /// 是否是 物料库存的转移
        /// </summary>
        /// <param name="taskType"></param>
        /// <returns></returns>
        public static bool IsMaterilStockMove(taskType currentTaskType)
        {
            if (currentTaskType == taskType.空库位
                || currentTaskType == taskType.呼叫空托
                 || currentTaskType == taskType.空托回库
                  || currentTaskType == taskType.空托下线入库
                   || currentTaskType == taskType.空托手动入库
                    || currentTaskType == taskType.空托人工出库
                     || currentTaskType == taskType.旁路工位缸体空托回库
                  )
            {
                return false;
            }
            return true;
        }
        public static string HandlerNoIssuedTaskFor旁路工位缸体空托或余料回库(dbmodel mod, string convPlace, task item, string[] agvSendStatus)
        {
@@ -476,6 +496,7 @@
                                throw new Exception("入库任务,目标站点找不到,toPlace:" + finishTask.toPlace);
                            }
                            OutInStockRecordHandler.AddOutInStockRecord(mod, OutInFlag.入库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "入库类型的任务");
                            OutInStockRecord_V2_MesHandler.AddRecord(mod, OutInFlag.入库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "入库类型的任务", currentTaskType);//堆垛机任务完成后的入库
                            #endregion
                            break;
                        case taskType.缸体下线:
@@ -566,6 +587,7 @@
                                #endregion
                                OutInStockRecordHandler.AddOutInStockRecord(mod, OutInFlag.入库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "入库类型的任务");
                                OutInStockRecord_V2_MesHandler.AddRecord(mod, OutInFlag.入库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "入库类型的任务", currentTaskType);//堆垛机任务完成后的入库
                            }
                            else
                            {
@@ -592,7 +614,9 @@
                            finishTask.remark = "完成";
                            finishTask.finishTime = DateTime.Now;
                            var result = deleteProduct(false, "sys", mod, finishTask.sourcePlace, finishTask, ref errMsg);//删除库存
                            var result = deleteProduct(false, "sys", mod, finishTask.sourcePlace, finishTask, ref errMsg, "堆垛机任务完成-手动出库");//删除库存
                            if (result == false) throw new Exception(errMsg);
                            OutInStockRecordHandler.AddOutInStockRecord(mod, OutInFlag.出库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "出库类型的任务");
@@ -647,6 +671,7 @@
                                errMsg = "缸盖上线/缸体上线任务,中转位为空,暂不处理";
                                return false;
                            }
                            OutInStockRecord_V2_MesHandler.AddRecord(mod, OutInFlag.出库, finishTask.sourcePlace, finishTask.toPlace, finishTask, "出库类型的任务", currentTaskType);//堆垛机任务完成后的出库
                            break;
                        default://其他,出库确认
                            //finishTask.taskStatus = 3;
@@ -769,6 +794,7 @@
            //设置目标位有货
            PositionHandler.Free(true, to_positionStation, "处理 缸体上线到旁路工位的处理 的任务", SysGloble.WCSNAME, item);
            OutInStockRecord_V2_MesHandler.AddRecord(mod, OutInFlag.出库, item.sourcePlace, item.toPlace, item, "出库类型的任务", _taskType);//堆垛机任务完成后的出库
            OutInStockRecordHandler.AddOutInStockRecord(mod, OutInFlag.出库, item.sourcePlace, item.toPlace, item, "出库类型的任务");
            //通知天永,给天永发信号
@@ -948,7 +974,7 @@
        /// <param name="positionName"></param>
        /// <param name="res"></param>
        /// <returns></returns>
        public static bool deleteProduct(bool isPerson, string user, dbmodel mod, string positionName, task _task, ref string res)
        public static bool deleteProduct(bool isPerson, string user, dbmodel mod, string positionName, task _task, ref string res, string preLog)
        {
            res = "";
            string[] stations = { "GTU1", "GTU2", "GTU3", "GGU1", "GGU2", "GGU3" };
@@ -979,6 +1005,7 @@
                        List<productStockList> delteStockDatalist = mod.productStockList.Where(x => x.stockId == delteData.positionId).ToList();
                        if (delteStockDatalist.Count > 0)
                        {
                            OutInStockRecord_V2_MesHandler.AddRecordForPersonDelete(mod, OutInFlag.出库, "删除库存:" + preLog, delteStockDatalist, delteStockData.First());//堆垛机任务完成后的出库
                            foreach (var itemList in delteStockDatalist)
                            {
                                mod.productStockList.Remove(itemList);