yupeng
2025-03-13 cdf1624438e9d77f3671f9d96fbffed060a8a114
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -3,34 +3,39 @@
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.util.ObjectUtil;
import com.aizuda.bpm.engine.core.FlowCreator;
import com.aizuda.bpm.engine.entity.FlwTask;
import com.aizuda.bpm.mybatisplus.mapper.FlwTaskMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.ImmutableMap;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.constant.DictConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.ProcessCategoryEnum;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.system.bo.ProcessStartBO;
import com.ruoyi.system.dto.*;
import com.ruoyi.system.dto.RevokeDTO;
import com.ruoyi.system.dto.SetContractDto;
import com.ruoyi.system.dto.TContractDTO;
import com.ruoyi.system.dto.TerminateContractDTO;
import com.ruoyi.system.export.ContractExport;
import com.ruoyi.system.export.OpticalInspectionExport;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TContractBillQuery;
import com.ruoyi.system.query.TContractQuery;
import com.ruoyi.system.query.THouseQuery;
import com.ruoyi.system.query.TUserHistoryQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.task.base.QuartzManager;
import com.ruoyi.system.task.base.TimeJobType;
import com.ruoyi.system.task.jobs.StateProcessJob;
import com.ruoyi.system.vo.BillVO;
import com.ruoyi.system.vo.CheckAcceptRecordVO;
import com.ruoyi.system.vo.HouseVO;
import com.ruoyi.system.vo.TContractVO;
import com.ruoyi.web.controller.tool.NumberToChineseUtils;
import com.ruoyi.web.controller.tool.WordUtil;
import io.swagger.annotations.Api;
import com.ruoyi.system.vo.TContractVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
@@ -45,7 +50,6 @@
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
@@ -74,6 +78,8 @@
    private TCheckAcceptRecordService checkAcceptRecordService;
    @Autowired
    private StateProcessTemplateService stateProcessTemplateService;
    @Autowired
    private FlwTaskMapper flwTaskMapper;
    @ApiOperation(value = "获取合同分页列表")
    @PostMapping(value = "/contractList")
@@ -106,7 +112,21 @@
            variable.put("projectId", dto.getId());
            processStartBO.setVariable(variable);
            //开启工作流程
            stateProcessTemplateService.start(processStartBO);
            Boolean start = stateProcessTemplateService.start(processStartBO);
            if(start){
                FlwTask flwTask = flwTaskMapper.selectOne(Wrappers.lambdaQuery(FlwTask.class)
                        .like(FlwTask::getVariable, dto.getId())
                        .orderByDesc(FlwTask::getCreateTime)
                        .last("LIMIT 1"));
                if(Objects.nonNull(flwTask)){
                    // 添加定时任务
                    Map<String, ? extends Object> maps =
                            new ImmutableMap.Builder<String, Long>().
                                    put("id", flwTask.getId())
                                    .build();
                    QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+48*60*60*1000L), maps);
                }
            }
        }
        if (dto.getIsIncreasing()){
            TContractRentType tContractRentType = new TContractRentType();
@@ -164,15 +184,13 @@
        if (contractRentType!=null){
            BeanUtils.copyProperties(contractRentType,res);
        }
        TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
                        .eq(TContract::getHouseId,contract.getHouseId())
                .eq(TContract::getStatus, 4)
                .le(TContract::getStartTime, LocalDateTime.now())
                .ge(TContract::getEndTime, LocalDateTime.now()));
//        TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
//                        .eq(TContract::getHouseId,contract.getHouseId())
//                .eq(TContract::getStatus, 4)
//                .le(TContract::getStartTime, LocalDateTime.now())
//                .ge(TContract::getEndTime, LocalDateTime.now()));
        THouse house = houseService.getById(contract.getHouseId());
        if (oldContract!=null){
            house.setTenantType(oldContract.getPayType());
        }
        house.setTenantType(contract.getPayType());
        res.setHouse(house);
        List<TBill> list = billService.lambdaQuery()
                .eq(TBill::getContractId, id)