package com.ruoyi.requier.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.requier.dto.ProcurementSuppliesExpendDto;
import com.ruoyi.requier.mapper.ProcurementSuppliesExpendsMapper;
import com.ruoyi.requier.mapper.ProcurementSuppliesListMapper;
import com.ruoyi.requier.pojo.ProcurementSuppliesExpends;
import com.ruoyi.requier.pojo.ProcurementSuppliesList;
import com.ruoyi.requier.service.ProcurementSuppliesExpendsService;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2024-11-15 03:47:19
*/
@Service
public class ProcurementSuppliesExpendsServiceImpl extends ServiceImpl implements ProcurementSuppliesExpendsService {
@Resource
private ProcurementSuppliesExpendsMapper expendsMapper;
@Resource
private ProcurementSuppliesListMapper listMapper;
@Override
public IPage selectAll(Page page, Long procurementSuppliesListId) {
IPage list = expendsMapper.pageList(page, Wrappers.lambdaQuery().eq(ProcurementSuppliesExpendDto::getListId, procurementSuppliesListId));
return list;
}
@Override
@Transactional
public Integer addExpends(ProcurementSuppliesExpendDto expendDto) {
ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expendDto.getListId());
ProcurementSuppliesExpends expends = new ProcurementSuppliesExpends();
BeanUtils.copyProperties(expendDto, expends);
int userId = SecurityUtils.getUserId().intValue();
expends.setEnterUserId(userId);
expends.setUpdateUserId(userId);
expends.setSpecimenName(expendDto.getSpecimenName());
if (list.getCurrentAmount() < expendDto.getAmount()) {
return 0;
}
list.setCurrentAmount(list.getCurrentAmount() - expendDto.getAmount());
listMapper.updateById(list);
return expendsMapper.insert(expends);
}
@Override
@Transactional
public Integer deleteExpends(Long id) {
ProcurementSuppliesExpends expend = expendsMapper.selectById(id);
ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expend.getListId());
list.setCurrentAmount(list.getCurrentAmount() + expend.getAmount());
int userId = SecurityUtils.getUserId().intValue();
list.setUpdateUser(userId);
listMapper.updateById(list);
return expendsMapper.deleteById(id);
}
}