yanjinhui
2 天以前 5d756f53f07880dc8b7ba0bc9f060b9e94d4b25e
修改人工入库完成和wcs小车问题
已修改7个文件
99 ■■■■ 文件已修改
新建文件夹/WIDESEA_WMSServer/ClassLibrary2/EquipmentAlarmInforService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/SquareCabin/DeliveryOrderController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
新建文件夹/WMS/src/extension/outbound/outboundOrder.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
н¨Îļþ¼Ð/WIDESEA_WMSServer/ClassLibrary2/EquipmentAlarmInforService.cs
@@ -97,14 +97,14 @@
                    }
                    else
                    {
                        equipmentAlarmInfor.RobotName = item.sorterCode;
                        equipmentAlarmInfor.RobotName = item.sorterName;
                        equipmentAlarmInfor.Status = item.status;
                        equipmentAlarmInfor.SyncTime = DateTime.Now;
                        equipmentAlarmInforsUp.Add(equipmentAlarmInfor);
                    }
                    if (string.Equals(item.status, nameof(DeviceStatus.Error), StringComparison.OrdinalIgnoreCase))
                    {
                        _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, "分拣台名字" + item.sorterCode, item.status);
                        _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, "分拣台b编码" + item.sorterCode, item.status);
                    }
                }
                if (equipmentAlarmInforsAdd.Count > 0) BaseDal.AddData(equipmentAlarmInforsAdd);
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_ISquareCabinServices/IDeliveryOrderServices.cs
@@ -14,11 +14,7 @@
    public interface IDeliveryOrderServices : IService<Dt_DeliveryOrder>
    {
        IRepository<Dt_DeliveryOrder> Repository { get; }
        /// <summary>
        /// ç›˜ç‚¹å‡ºåº“接口
        /// </summary>
        /// <returns></returns>
        public WebResponseContent InventoryGood(string batchNo, string goodsNo);
        WebResponseContent GetDeliveryOrders(SaveModel saveModel);
        WebResponseContent GetDeliveryOrderDetail(int pageNo, string orderNo, bool isPick);
        /// <summary>
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs
@@ -376,7 +376,7 @@
                    };
                    #endregion
                    List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => order.details.Select(x => x.goods_no).Contains(x.MaterielCode));
                    List<Dt_MaterielInfo> materielInfos = _materielInfoService.Repository.QueryData(x => order.details.Select(x => x.goods_no).Contains(x.MaterielCode)).ToList();
                    List<Dt_MaterielInfo> materielInfosUp = new List<Dt_MaterielInfo>();
                    foreach (var item in order.details)
                    {
@@ -607,8 +607,8 @@
                    List<Dt_CabinOrder> cabinOrdersAdd = new List<Dt_CabinOrder>();
                    string WareCodeLK = WarehouseEnum.立库.ObjToInt().ToString("000");
                    string WareCodeDJ = WarehouseEnum.大件库.ObjToInt().ToString("000");
                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
                    foreach (var item in order.details)
                    {
                        //找库存批次信息
@@ -834,7 +834,8 @@
                List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>();
                foreach (var item in cabinOrders)
                {
                    if (item.Details != null) cabinOrderDetails.AddRange(cabinOrderDetails);
                    if (item.Details != null) cabinOrderDetails.AddRange(item.Details);
                    item.Modifier = App.User.UserName;
                    item.ModifyDate = DateTime.Now;
                    item.Details = null;
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs
@@ -240,8 +240,8 @@
                    List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
                    List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>();
                    List<Dt_InventoryInfo> inventoryInfosUp = new List<Dt_InventoryInfo>();
                    var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => entityOrder.Details.Select(e => e.Goods_no).Contains(x.MaterielCode));
                    var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => entityOrder.Details.Select(e => e.Goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.入库完成.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == outorder.warehouse_no);
                    var inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => entityOrder.Details.Select(e => e.Goods_no).Contains(x.MaterielCode)).ToList();
                    var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => entityOrder.Details.Select(e => e.Goods_no).Contains(x.MaterielCode) && x.StockStatus == StockStatusEmun.入库完成.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == outorder.warehouse_no).ToList();
                    foreach (var item in entityOrder.Details)
                    {
                        Dt_Inventory_Batch? inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.Goods_no && x.BatchNo == item.Batch_num).FirstOrDefault();
@@ -946,68 +946,6 @@
        }
        #endregion
        //盘点 æ‹¿æ•´ä¸ªæ‰¹æ¬¡ä¿¡æ¯è¡¨çš„商品批号和商品编号来进行盘点
        public WebResponseContent InventoryGood(string batchNo, string goodsNo)
        {
            var response = new WebResponseContent();
            try
            {
                // 1️⃣ æŸ¥æ‰¾æŒ‡å®šæ‰¹æ¬¡ä¸Žç‰©æ–™çš„库存信息
                var batchInfo = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == batchNo && x.MaterielCode == goodsNo);
                if (batchInfo == null)
                    return response.Error($"未找到该物料 [{goodsNo}] æ‰¹æ¬¡ [{batchNo}] çš„库存信息");
                // 2️⃣ ç»„装请求 DTO(完全符合接口文档结构)
                var ediDto = new TowcsDto.ToediOutInfo
                {
                    customerCode = "905",
                    materialCode = "YY",                              // ç‰©æ–™ç±»åž‹CODE
                    externalOrderNo = $"PDCK-{batchInfo.Id}",          // å¤–部出库单号
                    outOrderType = "20",                               // ç›˜ç‚¹å‡ºåº“单
                    priority = 1,
                    Is_cancel = 0,
                    details = new List<TowcsDto.ToeOutdiInDetail>
            {
                new TowcsDto.ToeOutdiInDetail
                {
                    batchNo = batchInfo.BatchNo,
                    productCode = batchInfo.MaterielCode,
                    productName = batchInfo.MaterielName,
                    productSpecifications = batchInfo.MaterielSpec,
                    quantity = (int)batchInfo.SupplyQuantity,
                    //stocktakingDetails = new List<TowcsDto.ToOutediInStock>
                    //{
                    //    // ç›˜ç‚¹æ˜Žç»†å¯æ ¹æ®å®žé™…托盘拆分;此处示例仅1条
                    //    new TowcsDto.ToOutediInStock
                    //    {
                    //        palletCode = "FC00001",
                    //        quantity = batchInfo.SupplyQuantity.ToString()
                    //    }
                    //}
                }
            }
                };
                // 3️⃣ è°ƒç”¨æŽ¥å£
                string url = "http://172.16.1.2:9357/file-admin/api/out/ediOut";
                var result = HttpHelper.Post(url, ediDto.ToJsonString());
                var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result);
                // 4️⃣ å“åº”处理
                if (resp == null)
                    return response.Error("WCS æ— å“åº”");
                if (resp.code != "0")
                    return response.Error($"WCS返回失败: {resp.msg}");
                return response.OK("盘点出库下发成功");
            }
            catch (Exception ex)
            {
                return response.Error("盘点失败:" + ex.Message);
            }
        }
        /// <summary>
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs
@@ -75,7 +75,7 @@
        /// <summary>
        /// ä¸è®ºæ˜¯å‡ºåº“入库盘点,wcs都会调用我这个方法
        /// wcs回传给我调用我的方法 ä¸ç®¡æ˜¯å…¥åº“ å‡ºåº“ ç›˜ç‚¹éƒ½ä¼šè°ƒç”¨è¿™ä¸ªæŽ¥å£(现在用这个)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
н¨Îļþ¼Ð/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/SquareCabin/DeliveryOrderController.cs
@@ -98,16 +98,7 @@
            return Service.GetCheckOutTasks(saveModel);
        }
        /// <summary>
        /// ç›˜ç‚¹å‡ºåº“接口
        /// </summary>
        /// <param name="externalOrderNo"></param>
        /// <returns></returns>
        [HttpPost, Route("InventoryGood"), AllowAnonymous]
        public WebResponseContent InventoryGood(string batchNo, string goodsNo)
        {
            return Service.InventoryGood(batchNo, goodsNo);
        }
        /// <summary>
        /// å‡ºåº“测试
н¨Îļþ¼Ð/WMS/src/extension/outbound/outboundOrder.js
@@ -92,6 +92,7 @@
          x.readonly = true
        })
      })
      //当出库类型(out_type)为"20"且仓库编号(warehouse_no)不为"001"时:只显示"添加行"和"自定义按钮"这两个按钮,其他时候就隐藏
      this.detailOptions.buttons.forEach((btn) => {
        if (row.out_type == "20" && row.warehouse_no != "001") {
          btn.hidden = btn.name != '添加行' && btn.name != '自定义按钮'