wangxinhui
2025-10-14 0705cb6170a9ba77ba48bbb6dcebb9cf3d73cbea
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -360,7 +360,7 @@
                });
                //更新任务状态
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                FeedBackWCSTaskCompleted(taskNum);
                _unitOfWorkManage.BeginTran();
                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.人工完成 : OperateTypeEnum.自动完成);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
@@ -391,7 +391,7 @@
                        _inboundOrderService.FeedbackInboundOrder(inboundOrder.Id);
                    }
                }
                FeedBackWCSTaskCompleted(taskNum);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -496,8 +496,8 @@
                    x.ProOutDetailStatus = StockStatusEmun.入库完成.ObjToInt();
                });
                #region todo:临时更新所有研发转成品
                if (proStockInfo.ProStockAttribute == ProStockAttributeEnum.研发.ObjToInt())
                #region todo:临时更新所有研发或尾数转成品
                if (proStockInfo.ProStockAttribute == ProStockAttributeEnum.研发.ObjToInt() || proStockInfo.ProStockAttribute == ProStockAttributeEnum.尾数.ObjToInt())
                {
                    proStockInfo.ProStockAttribute = ProStockAttributeEnum.成品.ObjToInt();
                    proStockInfo.WarehouseId = locationInfo.WarehouseId;
@@ -702,7 +702,7 @@
                }
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                FeedBackWCSTaskCompleted(taskNum);
                _unitOfWorkManage.BeginTran();
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt())
@@ -771,14 +771,14 @@
                _unitOfWorkManage.CommitTran();
                //PP出库任务完成判断。。。。。。。。。。。。。。。。。
                if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                {
                    _outboundService.MesPPOutboundOrderService.Repository.UpdateData(mesPPOutboundOrders);
                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesPPOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesPPOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                    UploadMesMaterialLotaAcept(model);
                    _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                    _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                }
                //if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                //{
                //    _outboundService.MesPPOutboundOrderService.Repository.UpdateData(mesPPOutboundOrders);
                //    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesPPOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesPPOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                //    UploadMesMaterialLotaAcept(model);
                //    _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                //    _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                //}
                if (warehouse.WarehouseCode != WarehouseEnum.HA64.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                {
                    _outboundService.OutboundOrderService.TestOutUpload(outboundOrderDetails.FirstOrDefault().OrderId, outStockLockInfos);
@@ -788,7 +788,7 @@
                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                    UploadMesMaterialLotaAcept(model);
                }
                FeedBackWCSTaskCompleted(taskNum);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
@@ -1012,6 +1012,7 @@
            }
            return content;
        }
        //报废出库完成
        public WebResponseContent OutProScrapCompleted(Dt_Task task)
        {
            WebResponseContent content = new WebResponseContent();
@@ -1030,7 +1031,6 @@
                    return content.Error("未找到成品出库详情");
                }
                //获取成品报废单
                Dt_ErpProScrapSheet erpProScrapSheet = _outboundRepository.ErpProScrapSheetRepository.Db.Queryable<Dt_ErpProScrapSheet>().Where(x => x.ProScrapSheetOrderNo == outProStockInfo.OrderNo).Includes(x=>x.Details).First();
                if (erpProScrapSheet == null)
                {
@@ -1045,13 +1045,22 @@
                {
                    return content.Error($"成品报废单明细行{erpProScrapSheetDetail.Id}已完成");
                }
                erpProScrapSheetDetail.ScrapProDetailStatus = OutOrderStatusEnum.出库完成.ObjToInt();
                //获取当前库存
                Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x => x.proStockInfoDetails).First();
                if (proStockInfo == null)
                {
                    return content.Error($"未找到{task.PalletCode}库存信息");
                }
                if (((int)outProStockInfo.AssignQuantity+erpProScrapSheetDetail.OverScrapPcsQty) == erpProScrapSheetDetail.ScrapPcsQty)
                {
                    erpProScrapSheetDetail.OverScrapPcsQty += (int)outProStockInfo.AssignQuantity;
                    erpProScrapSheetDetail.ScrapProDetailStatus = OutOrderStatusEnum.出库完成.ObjToInt();
                }
                else
                {
                    erpProScrapSheetDetail.OverScrapPcsQty += (int)outProStockInfo.AssignQuantity;
                }
                List<Dt_ProStockInfoDetail> proStockInfoDetails = proStockInfo.proStockInfoDetails;
                if (proStockInfoDetails.Count <= 0)
                {