xiangpei
2024-07-26 a106ddc2b1b25c8891cb0a15a775bd39b5bda2ff
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -4,7 +4,7 @@
import com.alibaba.excel.write.merge.LoopMergeStrategy;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.handler.CommentWriteHandler;
@@ -12,18 +12,22 @@
import com.ycl.platform.domain.entity.CalculateMoneyRule;
import com.ycl.platform.domain.entity.CalculateRule;
import com.ycl.platform.domain.entity.TContract;
import com.ycl.platform.domain.query.ContractQuery;
import com.ycl.platform.domain.vo.ContractVO;
import com.ycl.platform.mapper.TContractMapper;
import com.ycl.platform.service.ICalculateRuleService;
import com.ycl.platform.service.ITContractService;
import com.ycl.system.AjaxResult;
import com.ycl.system.Result;
import com.ycl.system.page.PageUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.StringUtils;
import enumeration.ContractStatus;
import enumeration.general.RuleDeductCategoryEnum;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.multipart.MultipartFile;
@@ -134,7 +138,6 @@
    public AjaxResult importData(MultipartFile file, TContract tContract) {
        // 保存合同
        tContract.setCreateTime(DateUtils.getNowDate());
        tContract.setDeleted("0");
        save(tContract);
        List<CalculateRule> list = calculateRuleService.readExcel(file);
@@ -197,16 +200,32 @@
    }
    @Override
    public List<TContract> selectAll() {
        return list(new LambdaQueryWrapper<TContract>()
                .orderByDesc(TContract::getCreateTime))
                .stream().peek(
                        tContract -> tContract.setUnitName(ywUnitService.getById(tContract.getUnitId()).getUnitName())
                ).toList();
    public Result selectAll(ContractQuery query) {
        IPage<ContractVO> page = PageUtil.getPage(query, ContractVO.class);
        baseMapper.getPage(page, query);
        page.getRecords().stream().forEach(contract -> {
            Date now = new Date();
            if (now.before(contract.getStartTime())) {
                contract.setStatus(ContractStatus.NOT_START);
            } else if (now.after(contract.getEndTime())) {
                contract.setStatus(ContractStatus.FINISHED);
            } else {
                contract.setStatus(ContractStatus.ACTIVE);
            }
        });
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
    @Override
    public List<CalculateMoneyRule> selectMoneyRules(Integer contractId) {
        return calculateMoneyRuleService.selectMoneyRules(contractId);
    }
    @Override
    public List<TContract> selectUsingContract() {
        return new LambdaQueryChainWrapper<>(baseMapper)
                .le(TContract::getStartTime, DateUtils.getDate())
                .ge(TContract::getEndTime, DateUtils.getDate())
                .list();
    }
}