duyongjia
2025-02-26 bc7bd9be4efa79645cb8f5c959b5e398fae9986f
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Service/InboundOrderService.cs
@@ -200,59 +200,71 @@
        /// </summary>
        /// <param name="inventoryRequest"></param>
        /// <returns></returns>
        public ReturnInventoryResponse returnInventory(ReturnInventoryRequest inventoryRequest)
        public ReturnInventoryResponse returnInventory(string inventoryRequeststr)
        {
            string inparam = JsonConvert.SerializeObject(inventoryRequest);
            new LogFactory().GetLog("WMS接口").InfoFormat(true, "returnInventory", "余料退回信息", $"{inparam}");
            new LogFactory().GetLog("WMS接口").InfoFormat(true, "returnInventory", "余料退回信息", $"{inventoryRequeststr}");
            ReturnInventoryRequest inventoryRequest = JsonConvert.DeserializeObject<ReturnInventoryRequest>(inventoryRequeststr);
            ReturnInventoryResponse response= new ReturnInventoryResponse();
            MaterielGroupDTO materielGroupDTO = new MaterielGroupDTO();
            materielGroupDTO.PalletCode = inventoryRequest.TPNUM;
            materielGroupDTO.OrderNo = inventoryRequest.IZLID; //退货入库指令
            List<string> SerialNumbers = new List<string>();
            //保存回退数据到本地
            Dt_MainReturnInventory dt_MainReturnInventory = new Dt_MainReturnInventory();
            dt_MainReturnInventory.WH_NUMBER= inventoryRequest.WH_NUMBER;
            dt_MainReturnInventory.BUSINESS_CODE = inventoryRequest.BUSINESS_CODE;
            dt_MainReturnInventory.BUSINESS_NAME = inventoryRequest.BUSINESS_NAME;
            dt_MainReturnInventory.WERKS = inventoryRequest.WERKS;
            dt_MainReturnInventory.LGORT = inventoryRequest.LGORT;
            dt_MainReturnInventory.TOTAL_RETURN_QTY=inventoryRequest.TOTAL_RETURN_QTY;
            dt_MainReturnInventory.RETURN_NO = inventoryRequest.RETURN_NO;
            dt_MainReturnInventory.RETURN_ITEM_NO = inventoryRequest.RETURN_ITEM_NO;
            dt_MainReturnInventory.TPNUM = inventoryRequest.TPNUM;
            dt_MainReturnInventory.YLZD1 = inventoryRequest.YLZD1;
            dt_MainReturnInventory.YLZD2 = inventoryRequest.YLZD2;
            dt_MainReturnInventory.YLZD3 = inventoryRequest.YLZD3;
            dt_MainReturnInventory.YLZD4 = inventoryRequest.YLZD4;
            dt_MainReturnInventory.YLZD5 = inventoryRequest.YLZD5;
            dt_MainReturnInventory.IZLID = inventoryRequest.IZLID;
            dt_MainReturnInventory.SYSNOD = inventoryRequest.SYSNOD;
            dt_MainReturnInventory.MO_NO = inventoryRequest.MO_NO;
            foreach (ReturnInventory item in inventoryRequest.DATA)
            Dt_MainReturnInventory dt_MainReturnInventoryOld =  _mainReturnInventoryRepository.QueryFirst(x => x.RETURN_NO == inventoryRequest.RETURN_NO && x.RETURN_ITEM_NO == inventoryRequest.RETURN_ITEM_NO);
            if (dt_MainReturnInventoryOld == null)
            {
                Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = new Dt_ReturnInventoryDetail();
                dt_ReturnInventoryDetail.LABEL_NO = item.LABEL_NO;
                dt_ReturnInventoryDetail.SOBKZ = item.SOBKZ;
                dt_ReturnInventoryDetail.UNIT = item.UNIT;
                dt_ReturnInventoryDetail.LGORT = item.LGORT;
                dt_ReturnInventoryDetail.QTY = item.QTY;
                dt_ReturnInventoryDetail.LIFNR = item.LIFNR;
                dt_ReturnInventoryDetail.F_LGORT = item.F_LGORT;
                dt_ReturnInventoryDetail.MATNR  = item.MATNR;
                _ReturnInventoryDetailRepository.AddData(dt_ReturnInventoryDetail);
                SerialNumbers.Add(item.LABEL_NO);
            }
            materielGroupDTO.SerialNumbers = SerialNumbers;
            _mainReturnInventoryRepository.AddData(dt_MainReturnInventory);
            WebResponseContent content =  ReturnMaterielGroup(materielGroupDTO, inventoryRequest);
            if(content.Status)
            {
                response.MSGTY = "S";
                //保存回退数据到本地
                Dt_MainReturnInventory dt_MainReturnInventory = new Dt_MainReturnInventory();
                dt_MainReturnInventory.WH_NUMBER = inventoryRequest.WH_NUMBER;
                dt_MainReturnInventory.BUSINESS_CODE = inventoryRequest.BUSINESS_CODE;
                dt_MainReturnInventory.BUSINESS_NAME = inventoryRequest.BUSINESS_NAME;
                dt_MainReturnInventory.WERKS = inventoryRequest.WERKS;
                dt_MainReturnInventory.LGORT = inventoryRequest.LGORT;
                dt_MainReturnInventory.TOTAL_RETURN_QTY = inventoryRequest.TOTAL_RETURN_QTY;
                dt_MainReturnInventory.RETURN_NO = inventoryRequest.RETURN_NO;
                dt_MainReturnInventory.RETURN_ITEM_NO = inventoryRequest.RETURN_ITEM_NO;
                dt_MainReturnInventory.TPNUM = inventoryRequest.TPNUM;
                dt_MainReturnInventory.YLZD1 = inventoryRequest.YLZD1;
                dt_MainReturnInventory.YLZD2 = inventoryRequest.YLZD2;
                dt_MainReturnInventory.YLZD3 = inventoryRequest.YLZD3;
                dt_MainReturnInventory.YLZD4 = inventoryRequest.YLZD4;
                dt_MainReturnInventory.YLZD5 = inventoryRequest.YLZD5;
                dt_MainReturnInventory.IZLID = inventoryRequest.IZLID;
                dt_MainReturnInventory.SYSNOD = inventoryRequest.SYSNOD;
                dt_MainReturnInventory.MO_NO = inventoryRequest.MO_NO;
                foreach (ReturnInventory item in inventoryRequest.DATA)
                {
                    Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = new Dt_ReturnInventoryDetail();
                    dt_ReturnInventoryDetail.LABEL_NO = item.LABEL_NO;
                    dt_ReturnInventoryDetail.SOBKZ = item.SOBKZ;
                    dt_ReturnInventoryDetail.UNIT = item.UNIT;
                    dt_ReturnInventoryDetail.LGORT = item.LGORT;
                    dt_ReturnInventoryDetail.QTY = item.QTY;
                    dt_ReturnInventoryDetail.LIFNR = item.LIFNR;
                    dt_ReturnInventoryDetail.F_LGORT = item.F_LGORT;
                    dt_ReturnInventoryDetail.MATNR = item.MATNR;
                    _ReturnInventoryDetailRepository.AddData(dt_ReturnInventoryDetail);
                    SerialNumbers.Add(item.LABEL_NO);
                }
                materielGroupDTO.SerialNumbers = SerialNumbers;
                _mainReturnInventoryRepository.AddData(dt_MainReturnInventory);
                WebResponseContent content = ReturnMaterielGroup(materielGroupDTO, inventoryRequest);
                if (content.Status)
                {
                    response.MSGTY = "S";
                    response.MSGTX = "";
                }
                else
                {
                    response.MSGTY = "E";
                    response.MSGTX = content.Message;
                }
            }
            else
            {
                response.MSGTY = "E";
                response.MSGTX = content.Message;
                response.MSGTX = "不能重复申请!";
            }
            return response;
        }