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 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(); } }