1
z8018
2025-06-10 e46aa927d231af83724683c7286d9db503e24cf7
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IContainerService.cs
@@ -14,12 +14,95 @@
{
    public interface IContainerService : IService<Dt_Container>
    {
        SuctionInfo GetPlacementResult(Block block, List<Block> blocks);
        /// <summary>
        /// èŽ·å–ä»»åŠ¡ä½ç½®ä¿¡æ¯
        /// </summary>
        /// <param name="length">物品长度</param>
        /// <param name="width">物品宽度</param>
        /// <param name="height">物品高度</param>
        /// <param name="containerSize">容器尺寸</param>
        /// <param name="placedBlocks">已放置块列表</param>
        /// <param name="edge">边缘参数</param>
        /// <returns>返回任务位置信息,若放置失败则返回null</returns>
        /// <exception cref="Exception">当放置过程中发生错误时抛出异常</exception>
        TaskPosition? GetTaskPosition(int length, int width, int height, ContainerSize containerSize, List<PlacedBlock> placedBlocks, int edge);
        /// <summary>
        /// æ ¹æ®è®¢å•信息或尺寸获取任务位置
        /// </summary>
        /// <param name="orderId">订单ID</param>
        /// <param name="orderNo">订单编号</param>
        /// <param name="length">长度</param>
        /// <param name="width">宽度</param>
        /// <param name="height">高度</param>
        /// <returns>
        /// è¿”回元组包含三个值: <br/>
        /// Item1 - æ˜¯å¦æˆåŠŸèŽ·å–ä½ç½® <br/>
        /// Item2 - èŽ·å–åˆ°çš„ä»»åŠ¡ä½ç½®å¯¹è±¡ï¼Œå¯èƒ½ä¸ºnull <br/>
        /// Item3 - é”™è¯¯ä»£ç ï¼ŒæˆåŠŸæ—¶è¿”å›žç©ºå­—ç¬¦ä¸²
        /// </returns>
        (bool, TaskPosition?, string) GetPosition(int orderId, string orderNo, int length, int width, int height);
        /// <summary>
        /// èŽ·å–æŒ‡å®šå®¹å™¨ä¸­çš„å¯ç”¨ä½ç½®
        /// </summary>
        /// <param name="container">目标容器对象</param>
        /// <param name="length">待放置物品长度</param>
        /// <param name="width">待放置物品宽度</param>
        /// <param name="height">待放置物品高度</param>
        /// <returns>元组包含: <br/>
        ///   - bool: æ˜¯å¦æ‰¾åˆ°åˆé€‚位置 <br/>
        ///   - TaskPosition?: æ‰¾åˆ°çš„任务位置信息(可为null) <br/>
        ///   - string: é”™è¯¯ä»£ç (成功时返回空字符串)
        /// </returns>
        /// <remarks>
        /// æ–¹æ³•会检查容器尺寸是否满足物品放置要求, <br/>
        /// å¹¶è€ƒè™‘容器边缘情况计算最佳放置位置
        /// </remarks>
        (bool, TaskPosition?, string) GetPosition(Dt_Container container, int length, int width, int height);
        /// <summary>
        /// é‡Šæ”¾æŒ‡å®šå®¹å™¨åŠå…¶å…³è”项
        /// </summary>
        /// <param name="keys">容器ID数组</param>
        /// <returns>操作结果响应</returns>
        /// <remarks>
        /// 1. æŸ¥è¯¢å¹¶èŽ·å–æŒ‡å®šå®¹å™¨åŠå…¶å…³è”é¡¹ <br/>
        /// 2. æ›´æ–°å®¹å™¨çŠ¶æ€ä¸ºç©ºé—² <br/>
        /// 3. åœ¨äº‹åŠ¡ä¸­æ‰§è¡Œä»¥ä¸‹æ“ä½œï¼š <br/>
        ///    - åˆ é™¤å®¹å™¨é¡¹å¹¶ç§»å…¥åŽ†å²è¡¨ <br/>
        ///    - åˆ é™¤è®¢å•容器关联并移入历史表 <br/>
        ///    - æ›´æ–°å®¹å™¨çŠ¶æ€ <br/>
        /// 4. æ“ä½œæˆåŠŸè¿”å›žOK,失败回滚事务并返回错误信息
        /// </remarks>
        WebResponseContent ReleaseContainer(int[] keys);
        WebResponseContent AutoReleaseContainer(int[] keys);
        /// <summary>
        /// è‡ªåŠ¨é‡Šæ”¾å®¹å™¨
        /// </summary>
        /// <param name="containerCode">容器编号</param>
        /// <returns>Web响应结果</returns>
        /// <remarks>
        /// 1. æ ¹æ®å®¹å™¨ç¼–号查询容器信息 <br/>
        /// 2. æ£€æŸ¥å®¹å™¨æ˜¯å¦å­˜åœ¨å…³è”任务 <br/>
        /// 3. è‹¥æ— ä»»åŠ¡åˆ™æ¸…ç©ºå®¹å™¨çŠ¶æ€å¹¶åˆ é™¤è®¢å•å®¹å™¨è®°å½• <br/>
        /// 4. è‹¥æœ‰ä»»åŠ¡åˆ™æ›´æ–°ä»»åŠ¡çŠ¶æ€ä¸º"龙门架重新分配" <br/>
        /// 5. äº‹åŠ¡å¤„ç†æ‰€æœ‰æ•°æ®åº“æ“ä½œ
        /// </remarks>
        WebResponseContent AutoReleaseContainer(string containerCode);
        /// <summary>
        /// èŽ·å–å¼‚å¸¸å·¥ä½ä½ç½®
        /// </summary>
        /// <param name="length">物品长度</param>
        /// <param name="width">物品宽度</param>
        /// <param name="height">物品高度</param>
        /// <returns>元组包含三个值:是否成功获取、任务位置对象(失败时为null)、错误信息(成功时为空)</returns>
        /// <remarks>
        /// å½“异常容器中物品数量≥5时,使用固定Z轴位置99;否则根据当前物品数量计算位置
        /// </remarks>
        (bool, TaskPosition?, string) GetExceptionPosition(int length, int width, int height);
    }
}