package com.aucma.dms.service.impl;

//import com.hw.common.core.exception.ServiceException;
//import com.hw.common.core.utils.DateUtils;
//import com.hw.common.security.utils.SecurityUtils;
//import com.aucma.dms.domain.DmsBaseLubeStandard;
//import com.aucma.dms.mapper.DmsBaseLubeStandardMapper;
//import com.aucma.dms.service.IDmsBaseLubeStandardService;
//import com.hw.system.api.model.LoginUser;

import com.aucma.common.core.domain.model.LoginUser;
import com.aucma.common.exception.ServiceException;
import com.aucma.common.utils.DateUtils;
import com.aucma.common.utils.SecurityUtils;
import com.aucma.dms.domain.DmsBaseLubeStandard;
import com.aucma.dms.mapper.DmsBaseLubeStandardMapper;
import com.aucma.dms.service.IDmsBaseLubeStandardService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 润滑标准信息Service业务层处理
 *
 * @author Open Platform
 * @date 2024-01-12
 */
@Service
public class DmsBaseLubeStandardServiceImpl implements IDmsBaseLubeStandardService
{
    @Autowired
    private DmsBaseLubeStandardMapper dmsBaseLubeStandardMapper;

    /**
     * 查询润滑标准信息
     *
     * @param lubeStandardId 润滑标准信息主键
     * @return 润滑标准信息
     */
    @Override
    public DmsBaseLubeStandard selectDmsBaseLubeStandardByLubeStandardId(Long lubeStandardId)
    {
        return dmsBaseLubeStandardMapper.selectDmsBaseLubeStandardByLubeStandardId(lubeStandardId);
    }

    /**
     * 查询润滑标准信息列表
     *
     * @param dmsBaseLubeStandard 润滑标准信息
     * @return 润滑标准信息
     */
    @Override
    public List<DmsBaseLubeStandard> selectDmsBaseLubeStandardList(DmsBaseLubeStandard dmsBaseLubeStandard)
    {
        return dmsBaseLubeStandardMapper.selectDmsBaseLubeStandardList(dmsBaseLubeStandard);
    }

    /**
     * 新增润滑标准信息
     *
     * @param dmsBaseLubeStandard 润滑标准信息
     * @return 结果
     */
    @Override
    public int insertDmsBaseLubeStandard(DmsBaseLubeStandard dmsBaseLubeStandard)
    {
        DmsBaseLubeStandard LubeStandard = new DmsBaseLubeStandard();
        LubeStandard.setLubeStandardCode(dmsBaseLubeStandard.getLubeStandardCode());
        List<DmsBaseLubeStandard> dmsBaseLubeStandardList =  dmsBaseLubeStandardMapper.
                selectDmsBaseLubeStandardList(LubeStandard);
        if (dmsBaseLubeStandardList.size()>0){throw new ServiceException("润滑标准编码已存在");}
        LoginUser user = SecurityUtils.getLoginUser();
        dmsBaseLubeStandard.setIsFlag("1");
        dmsBaseLubeStandard.setCreateBy(user.getUserId());
        dmsBaseLubeStandard.setCreateTime(DateUtils.getNowDate());
        return dmsBaseLubeStandardMapper.insertDmsBaseLubeStandard(dmsBaseLubeStandard);
    }

    /**
     * 修改润滑标准信息
     *
     * @param dmsBaseLubeStandard 润滑标准信息
     * @return 结果
     */
    @Override
    public int updateDmsBaseLubeStandard(DmsBaseLubeStandard dmsBaseLubeStandard)
    {
        //ZCH
        DmsBaseLubeStandard LubeStandard = new DmsBaseLubeStandard();
        LubeStandard.setLubeStandardCode(dmsBaseLubeStandard.getLubeStandardCode());
        List<DmsBaseLubeStandard> dmsBaseLubeStandardList = dmsBaseLubeStandardMapper.
                selectDmsBaseLubeStandardList(LubeStandard);
        if (dmsBaseLubeStandardList.size()>0&&!dmsBaseLubeStandard.getLubeStandardId()
                .equals(dmsBaseLubeStandardList.get(0).getLubeStandardId())){
            throw new ServiceException("润滑标准编码已存在");
        }
        LoginUser user = SecurityUtils.getLoginUser();
        dmsBaseLubeStandard.setUpdateBy(user.getUserId());
        dmsBaseLubeStandard.setUpdateTime(DateUtils.getNowDate());
        return dmsBaseLubeStandardMapper.updateDmsBaseLubeStandard(dmsBaseLubeStandard);
    }

    /**
     * 批量删除润滑标准信息
     *
     * @param lubeStandardIds 需要删除的润滑标准信息主键
     * @return 结果
     */
    @Override
    public int deleteDmsBaseLubeStandardByLubeStandardIds(Long[] lubeStandardIds)
    {
        return dmsBaseLubeStandardMapper.deleteDmsBaseLubeStandardByLubeStandardIds(lubeStandardIds);
    }

    /**
     * 删除润滑标准信息信息
     *
     * @param lubeStandardId 润滑标准信息主键
     * @return 结果
     */
    @Override
    public int deleteDmsBaseLubeStandardByLubeStandardId(Long lubeStandardId)
    {
        return dmsBaseLubeStandardMapper.deleteDmsBaseLubeStandardByLubeStandardId(lubeStandardId);
    }
}
