duyongjia
2024-12-29 9a0acba23c5b5095be2a89b8ca190fe5202c2ea6
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -42,6 +42,7 @@
using WIDESEA_DTO.Stock;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
using WIDESEA_IInboundRepository;
using WIDESEA_IInboundService;
using WIDESEA_IOutboundRepository;
using WIDESEA_IOutboundService;
@@ -53,6 +54,7 @@
using WIDESEA_ITaskInfoService;
using WIDESEA_Model;
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.Inbound;
using WIDESEA_TaskInfoRepository;
using OrderByType = SqlSugar.OrderByType;
@@ -79,6 +81,8 @@
        private readonly IOutboundOrderDetail_HtyRepository _outboundOrderDetail_HtyRepository;
        private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository;
        private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository;
        private readonly IMainReturnInventoryRepository _mainReturnInventoryRepository;
        private readonly IReturnInventoryDetailRepository _returnInventoryDetailRepository;
        public ITaskRepository Repository => BaseDal;
        private Dictionary<string, OrderByType> _OutLockOrderBy = new Dictionary<string, OrderByType>()
@@ -88,7 +92,7 @@
        };
        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository, IReturnInventoryDetailRepository returnInventoryDetailRepository,IMainReturnInventoryRepository mainReturnInventoryRepository) : base(BaseDal)
        {
            _mapper = mapper;
            _unitOfWorkManage = unitOfWorkManage;
@@ -108,6 +112,9 @@
            _outboundOrderRepository = outboundOrderRepository;
            _outboundOrder_HtyRepository = outboundOrder_HtyRepository;
            _outboundOrderDetail_HtyRepository = outboundOrderDetail_HtyRepository;
            _returnInventoryDetailRepository = returnInventoryDetailRepository;
            _mainReturnInventoryRepository = mainReturnInventoryRepository;
        }
@@ -470,69 +477,57 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
            //余料入库完成后,需要将组盘信息调用上游WMS原料上架结果接口
            //余料入库完成后,需要将组盘信息调用上游WMS余料退回结果接口
            #region å›žä¼ é€»è¾‘处理
            //try
            //{
            //    PutAwayRequest request = new PutAwayRequest();
            //    List<PutAway> itemData = new List<PutAway>();
            //    request.ITEMDATA = itemData;
            //    request.WERKS = AppSettings.Configuration["WERKS"];
            //    request.WH_NUMBER = AppSettings.Configuration["WERKS"];
            //    request.IZLID = request.WERKS + request.WH_NUMBER + DateTime.Now.ToString("yyyyMMdd") + task.TaskNum.ToString();
            //    request.CREATE_DATE = task.CreateDate.ToString("yyyy-MM-dd HH:mm:ss");
            //    request.PSTNG_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            //    request.INBOUND_NO = "";//todo:单号要从条码主数据中获取,不然回传会提示:该条码无进仓单数据!
            //    request.RECEIPT_NO = "";//todo:单号要从条码主数据中,不然回传会提示:该条码无进仓单数据!
            //    Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
            //    foreach (Dt_StockInfoDetail detail in stockInfo.Details)
            //    {
            //        Dt_LabelMaster labMaster = _labelMasterRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
            //        if (labMaster != null)
            //        {
            //            if (request.INBOUND_NO == "")
            //            {
            //                request.INBOUND_NO = labMaster.INBOUND_NO;
            //            }
            //            if (request.RECEIPT_NO == "")
            //            {
            //                request.RECEIPT_NO = labMaster.RECEIPT_NO;
            //            }
            //            PutAway putAway = new PutAway();
            //            putAway.MATNR = labMaster.MATNR;
            //            putAway.BATCH = labMaster.BATCH;
            //            putAway.LIFNR = labMaster.LIFNR;
            //            putAway.LIKTX = labMaster.LIKTX;
            //            putAway.RECEIPT_QTY = labMaster.BOX_QTY;
            //            putAway.UNIT = labMaster.UNIT;
            //            putAway.LABEL_NO = labMaster.LABEL_NO;
            //            putAway.PACK_LABEL_NO = labMaster.Pack_LABEL_No;
            //            putAway.PALLET_LABEL_NO = labMaster.Pallet_label_no;
            //            putAway.TPNUM = task.PalletCode;
            //            putAway.FLAG = "0";
            //            putAway.TKTXT = "";
            //            putAway.PO_NO = labMaster.PO_NO;
            //            putAway.PO_ITEM_NO = labMaster.PO_ITEM_NO;
            //            putAway.SOBKZ = labMaster.SOBKZ;
            //            putAway.RECEIPT_ITEM_NO = labMaster.RECEIPT_ITEM_NO;
            //            putAway.INBOUND_NO = task.TaskNum.ToString();
            //            //LABEL _STATUS æ¡ç çŠ¶æ€  02已收料(无需质检)03 å¾…进仓(已质检),并且,QC RESULT CODE质检状态为“02” æ‰å…è®¡ä¸Šæž¶
            //            if (labMaster.QC_RESULT_CODE == "02" && (labMaster.LABEL_STATUS == "02" || labMaster.LABEL_STATUS == "03"))
            //            {
            //                itemData.Add(putAway);
            //            }
            try
            {
                PutAwayReturnRequest request = new PutAwayReturnRequest();
                List<PutAwayReturn> DATA = new List<PutAwayReturn>();
                request.DATA = DATA;
                request.WERKS = AppSettings.Configuration["WERKS"];
                request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
                request.IZLID = task.OrderNo;//这个值会在接收上游回库组盘信息时,存在库存表中,再存到任务表中
                Dt_MainReturnInventory mainReturnInventory = _mainReturnInventoryRepository.QueryFirst(x => x.IZLID == task.OrderNo);
                if (mainReturnInventory != null)
                {
                    request.RETURN_NO = mainReturnInventory.RETURN_NO;
                    request.RETURN_ITEM_NO = mainReturnInventory.RETURN_ITEM_NO;
                    request.BUSINESS_NAME = mainReturnInventory.BUSINESS_NAME;
                    request.BUSINESS_CODE = mainReturnInventory.BUSINESS_CODE;
                    request.TPNUM = mainReturnInventory.TPNUM;
                    request.LGORT = mainReturnInventory.LGORT;
                    request.MO_NO = mainReturnInventory.MO_NO;
            //        }
            //    }
            //    if (itemData.Count > 0)
            //    {
            //        _sys_JobService.CallPutAway(request);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    return WebResponseContent.Instance.Error(ex.Message);
            //}
                    Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
                    foreach (Dt_StockInfoDetail detail in stockInfo.Details)
                    {
                        Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = _returnInventoryDetailRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber);
                        if (dt_ReturnInventoryDetail != null)
                        {
                            PutAwayReturn putAwayReturn = new PutAwayReturn();
                            putAwayReturn.LABEL_NO = dt_ReturnInventoryDetail.LABEL_NO;
                            putAwayReturn.SOBKZ = dt_ReturnInventoryDetail.SOBKZ;
                            putAwayReturn.UNIT = dt_ReturnInventoryDetail.UNIT;
                            putAwayReturn.LGORT = dt_ReturnInventoryDetail.LGORT;
                            putAwayReturn.TOTAL_RETURN_QTY = dt_ReturnInventoryDetail.QTY;
                            putAwayReturn.F_LGORT = dt_ReturnInventoryDetail.F_LGORT;
                            putAwayReturn.MO_NO = mainReturnInventory.MO_NO;
                            putAwayReturn.LIFNR = dt_ReturnInventoryDetail.LIFNR;
                            putAwayReturn.MATNR = dt_ReturnInventoryDetail.MATNR;
                            putAwayReturn.BATCH = "";
                            DATA.Add(putAwayReturn);
                        }
                    }
                    if(DATA.Count>0)
                    {
                        _sys_JobService.CallPutAwayReturn(request);//余料退库回传
                    }
                }
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
            #endregion
            return WebResponseContent.Instance.OK();
        }
@@ -621,13 +616,10 @@
                PickAndPostRequest request = new PickAndPostRequest();
                List<PickAndPost> itemData = new List<PickAndPost>();
                request.ITEMDATA = itemData;
                request.WH_NUMBER = AppSettings.Configuration["WERKS"];
                request.WH_NUMBER = AppSettings.Configuration["SYSNO"];
                request.SYSNOD = AppSettings.Configuration["SYSNO"];
                request.WERKS = AppSettings.Configuration["WERKS"];
                //暂时根据托盘号查出库锁定表中Dt_OutStockLockInfo中的状态为1的最新一条,因为先锁定,才有任务,所以没有关联任务号
                //Dt_OutStockLockInfo outStockLockInfo= _outStockLockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode && x.Status == 1, _OutLockOrderBy);
                request.WERKS = AppSettings.Configuration["CallMaterialID"];
                Dt_OutboundOrderDetail_Hty detail = _outboundOrderDetail_HtyRepository.QueryFirst(x => x.SourceId.ToString() == task.Remark);// task.Remark存需求明细ID
                if (detail != null)
                {