package com.sunda.spmsoversea.service.impl;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sunda.spmscommon.feign.IFeignServiceCommon;
import com.sunda.spmsoversea.dto.KulingReport;
import com.sunda.spmsoversea.dto.SpmsKulingReportExcel;
import com.sunda.spmsoversea.entity.ZSpmsGetKuling;
import com.sunda.spmsoversea.mapper.ZSpmsGetKulingMapper;
import com.sunda.spmsoversea.service.IZSpmsGetKulingService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
 * <p>
 * SAP呆滞库存 服务实现类
 * </p>
 *
 * @author HZC
 * @since 2024-01-31
 */
@Service
public class ZSpmsGetKulingServiceImpl extends ServiceImpl<ZSpmsGetKulingMapper, ZSpmsGetKuling> implements IZSpmsGetKulingService {



    private static final Logger logger = LoggerFactory.getLogger(ZSpmsGetKulingServiceImpl.class);

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public IPage getKulingListByRecord(KulingReport kulingPage) {
        IPage iPage = kulingPage.getPage();
        List<ZSpmsGetKuling> pages = this.baseMapper.getKuling(iPage, kulingPage);
        for(ZSpmsGetKuling vo : pages){
            List<Map<String, Object>> storageNo = this.baseMapper.getWhsStorageNo(vo.getWerks(),vo.getMatnr());
            if(storageNo!=null && storageNo.size()>0){
                vo.setLgort(storageNo.get(0).get("WHS_LOCATION_CODE")==null?"":storageNo.get(0).get("WHS_LOCATION_CODE").toString());
            }
        }
        iPage.setRecords(pages);
        return iPage;
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public List<SpmsKulingReportExcel> getKulingListByRecordExcel(KulingReport kulingPage) {
        List<SpmsKulingReportExcel>  list= this.baseMapper.getKulingExcel(kulingPage);
        for(SpmsKulingReportExcel vo : list){
            List<Map<String, Object>> storageNo = this.baseMapper.getWhsStorageNo(vo.getWerks(),vo.getMatnr());
            if(storageNo!=null && storageNo.size()>0){
                vo.setLgort(storageNo.get(0).get("WHS_LOCATION_CODE")==null?"":storageNo.get(0).get("WHS_LOCATION_CODE").toString());
            }
        }
        return list;
    }

}
