package com.by4cloud.platformx.business.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjUtil; 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.by4cloud.platformx.business.dto.ContractDelayOutQueryDTO; import com.by4cloud.platformx.business.entity.Contract; import com.by4cloud.platformx.business.entity.ContractDelayOut; import com.by4cloud.platformx.business.mapper.ContractDelayOutMapper; import com.by4cloud.platformx.business.mapper.ContractMapper; import com.by4cloud.platformx.business.service.ContractDelayOutService; import com.by4cloud.platformx.common.data.datascope.DataScope; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** * 延期出货 * * @author syt * @date 2026-06-17 08:44:56 */ @Service @RequiredArgsConstructor public class ContractDelayOutServiceImpl extends ServiceImpl implements ContractDelayOutService { private final ContractMapper contractMapper; @Override public void approvalPass(Long contractId) { ContractDelayOut delayOut = baseMapper.selectOne(Wrappers.lambdaQuery().eq(ContractDelayOut::getContractId,contractId) .eq(ContractDelayOut::getDelayStatus,"0").last("limit 1")); if (ObjUtil.isNull(delayOut)){ log.error("合同延期发货审批同意后查询审批数据异常"); return; } delayOut.setDelayStatus("1"); baseMapper.updateById(delayOut); Contract contract = contractMapper.selectById(contractId); if (ObjUtil.isNull(contract)){ log.error("合同延期发货审批同意后查询合同数据异常"); return; } contract.setExpirationDate(DateUtil.offsetDay(contract.getExpirationDate(),delayOut.getDelayDay())); contractMapper.updateById(contract); } @Override public void refuseApproval(Long contractId) { ContractDelayOut delayOut = baseMapper.selectOne(Wrappers.lambdaQuery().eq(ContractDelayOut::getContractId,contractId) .eq(ContractDelayOut::getDelayStatus,"0").last("limit 1")); if (ObjUtil.isNull(delayOut)){ log.error("合同延期发货审批同意后查询审批数据异常"); return; } delayOut.setDelayStatus("2"); baseMapper.updateById(delayOut); } @Override public Page pageNew(Page page, ContractDelayOutQueryDTO queryDTO) { return baseMapper.pageNew(page,queryDTO, DataScope.of("comp_id")); } }