package com.sunda.spmsorder.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsorder.entity.MaterialPriceImport;
import com.sunda.spmsorder.mapper.MaterialPriceImportMapper;
import com.sunda.spmsorder.service.IMaterialPriceImportService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sunda.spmsorder.vo.MaterialPriceImportVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 物料价格表-人工导入 服务实现类
 * </p>
 *
 * @author Wayne
 * @since 2024-04-27
 */
@Service
public class MaterialPriceImportServiceImpl extends ServiceImpl<MaterialPriceImportMapper, MaterialPriceImport> implements IMaterialPriceImportService {

    @Autowired
    MaterialPriceImportMapper materialPriceImportMapper;

    @Override
    public int insertMaterialPrice(MaterialPriceImport materialPriceImport, String userID) {
        MaterialPriceImport priceImport = materialPriceImportMapper.selectOne(new QueryWrapper<MaterialPriceImport>().eq("MATERIAL_NO", materialPriceImport.getMaterialNo()).eq("FACTORY", materialPriceImport.getFactory()));
        if(priceImport!=null){
            materialPriceImport.setUpdateTime(new Date());
            materialPriceImport.setUpdateUserid(userID);
            return materialPriceImportMapper.update(materialPriceImport, new QueryWrapper<MaterialPriceImport>().eq("MATERIAL_NO", materialPriceImport.getMaterialNo()).eq("FACTORY", materialPriceImport.getFactory()));
        }else{
            materialPriceImport.setCreateTime(new Date());
            materialPriceImport.setCreateUserid(userID);
            return materialPriceImportMapper.insert(materialPriceImport);
        }
    }

    @Override
    public int deleteMaterialPrice(String materialNumber,String factory) {
        return this.baseMapper.delete(new QueryWrapper<MaterialPriceImport>().eq("MATERIAL_NO", materialNumber).eq("FACTORY", factory));
    }

    @Override
    public ResponseResult getMaterialPriceList(MaterialPriceImportVO record) {
        IPage<Map<String, Object>> iPage = new Page<>(record.getPageNo(), record.getPageSize());
        List<Map<String, Object>> list = this.baseMapper.selectMaterialPriceList(iPage, record);
        iPage.setRecords(list);
        return ResponseResult.success().add("list", iPage);
//
//        QueryWrapper<MaterialPriceImport> queryWrapper = new QueryWrapper<MaterialPriceImport>();
//        if (StringUtils.isNotEmpty(materialPriceImport.getFactory())) {
//            queryWrapper.eq("FACTORY", materialPriceImport.getFactory());
//        }
//        if (StringUtils.isNotEmpty(materialPriceImport.getMaterialNo())) {
//            queryWrapper.eq("MATERIAL_NO", materialPriceImport.getMaterialNo());
//        }
//        queryWrapper.orderByDesc("CREATE_TIME");
//        return this.baseMapper.selectList(queryWrapper);
    }

}
