1
liulijun
2026-02-03 69f2d2a5b14ee9edc242c3fc9c69dd8180941823
´úÂë¹ÜÀí/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs
@@ -1,4 +1,4 @@
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -274,5 +274,105 @@
            }
            return content;
        }
        /// <summary>
        /// æ–™æ¡†è¯·æ±‚入库
        /// </summary>
        /// <param name="contaionerNo">料框编号</param>
        /// <param name="originalArea">当前扫码所在区域</param>
        /// <param name="originalLocation">当前扫描所在点位</param>
        /// <returns></returns>
        public WebResponseContent qwe(string contaionerNo, string originalArea, string originalLocation)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                if (string.IsNullOrEmpty(contaionerNo) || string.IsNullOrEmpty(originalArea) || string.IsNullOrEmpty(originalLocation))
                {
                    content.Error("参数不能为空");
                    return content;
                }
                // 1. æ ¹æ®å®¹å™¨ç¼–号查询库存信息
                Dt_BlankStockInfo balnkstockInfo = BaseDal.Db.Queryable<Dt_BlankStockInfo>().Where(x => x.ContainerCode == contaionerNo).FirstOrDefault();
                if (balnkstockInfo != null)
                {
                    content.Error($"{contaionerNo}库存已存在");
                    return content;
                }
                // 2. æ ¹æ®æ–™æ¡†ç¼–号查询任务信息
                Dt_Task task = BaseDal.QueryFirst(x => x.ContainerNo == contaionerNo);
                if (task != null)
                {
                    content.Error($"{contaionerNo}任务已存在");
                    return content;
                }
                // 3. æ ¹æ®å½“前扫码所在区域和点位查询位置信息
                Dt_LocationInfo originalLocationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.AreaCode == originalArea && x.LocationCode == originalLocation);
                if (originalLocationInfo == null)
                {
                    content.Error("未找到当前扫码所在位置信息");
                    return content;
                }
                // 4. åˆ›å»ºç»„盘信息
                Dt_BlankStockInfo info = new Dt_BlankStockInfo()
                {
                    ContainerCode = contaionerNo,
                    LocationCode = "",
                    StockStatus = StockStatusEmun.入库确认.ObjToInt(),
                    ContainerType = 1,
                    WarehouseId = WarehouseEnum.FLPL.ObjToInt(),
                    OrderNo = ""
                };
                BaseDal.Db.Insertable(info).ExecuteReturnIdentity();
                // 5. åˆ›å»ºå…¥åº“任务
                Dt_Task newTask = new Dt_Task()
                {
                    Roadway = originalLocationInfo.RoadwayNo,
                    WarehouseId = WarehouseEnum.FLPL.ObjToInt(),
                    CurrentAddress = originalLocationInfo.LocationCode,
                    Grade = 99,
                    NextAddress = originalLocationInfo.LocationCode,
                    OrderNo = "",
                    ContainerNo = contaionerNo,
                    SourceAddress = originalLocationInfo.LocationCode,
                    TargetAddress = originalLocationInfo.LocationCode,
                    TaskNum = Repository.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                    TaskStatus = TaskStatusEnum.TaskCreated.ObjToInt(),
                    TaskType = (int)TaskTypeEnum.Inbound
                };
                Repository.AddData(newTask);
                // 6. æäº¤äº‹åŠ¡
                _unitOfWorkManage.CommitTran();
                // 7. è¿”回成功响应
                content.OK("入库请求成功", new
                {
                    warehouseId = WarehouseEnum.FLPL.ObjToInt().ToString(),
                    roadway = originalLocationInfo.RoadwayNo,
                    orderNo = "",
                    containerNo = contaionerNo,
                    containerType = "1",
                    taskNo = newTask.TaskNum.ToString(),
                    station = originalLocation,
                    locationCode = "",
                    stockStatus = StockStatusEmun.入库确认.ObjToInt().ToString(),
                    orderCode = ""
                });
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content.Error(ex.Message);
            }
            return content;
        }
    }
}