package com.by4cloud.platformx.business.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.util.ObjUtil;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.by4cloud.platformx.business.dto.DropLossAddDTO;
|
import com.by4cloud.platformx.business.dto.DropLossQueryDTO;
|
import com.by4cloud.platformx.business.entity.Contract;
|
import com.by4cloud.platformx.business.entity.DropLoss;
|
import com.by4cloud.platformx.business.mapper.ContractMapper;
|
import com.by4cloud.platformx.business.mapper.DropLossMapper;
|
import com.by4cloud.platformx.business.service.DropLossService;
|
import com.by4cloud.platformx.common.core.util.R;
|
import com.by4cloud.platformx.common.data.datascope.DataScope;
|
import com.by4cloud.platformx.common.security.util.SecurityUtils;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.stereotype.Service;
|
/**
|
* 降点损失
|
*
|
* @author syt
|
* @date 2026-08-25 09:11:48
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class DropLossServiceImpl extends ServiceImpl<DropLossMapper, DropLoss> implements DropLossService {
|
|
private final ContractMapper contractMapper;
|
|
@Override
|
public Page pageScope(Page page, DropLossQueryDTO queryDTO) {
|
return baseMapper.pageScope(page,queryDTO, DataScope.of("comp_id"));
|
}
|
|
@Override
|
public R add(DropLossAddDTO addDTO) {
|
Contract contract = contractMapper.selectById(addDTO.getContractId());
|
if (ObjUtil.isNull(contract)){
|
return R.failed("合同查询异常");
|
}
|
if (addDTO.getDropAmount().compareTo(contract.getAmount())==0){
|
return R.failed("损失金额不能超过合同金额");
|
}
|
DropLoss loss = BeanUtil.copyProperties(addDTO,DropLoss.class);
|
loss.setDropUser(SecurityUtils.getUser().getName());
|
loss.setDropUserId(SecurityUtils.getUser().getId());
|
baseMapper.insert(loss);
|
|
contract.setDropAmount(addDTO.getDropAmount());
|
contractMapper.updateById(contract);
|
return R.ok();
|
}
|
}
|