doum
2026-06-18 93de43267e1663031fe5dc2f5ae40d128a182a76
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -19,6 +19,7 @@
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwContractService;
import com.doumee.service.business.YwCustomerDeviceAutoBindService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -73,6 +74,8 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private YwCustomerDeviceAutoBindService ywCustomerDeviceAutoBindService;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwContract model) {
@@ -94,6 +97,9 @@
        dealDetailListBiz(model,false);//处理条款信息
        dealMultifileBiz(model);//处理附件信息
        dealRoomsForContract(model);//处理房源关联表
        if (Constants.equalsInteger(model.getStatus(), Constants.ONE) && model.getRenterId() != null) {
            ywCustomerDeviceAutoBindService.syncByContractId(model.getId(), model.getLoginUserInfo());
        }
        dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,model.getLoginUserInfo().getRealname(),"【"+model.getRemark().replace("合同摘要:","")+"】");//记录新建日志
        return model.getId();
    }
@@ -377,6 +383,9 @@
        update.setBtRemark(getbackRentRemarkByParam(param));
        ywContractMapper.updateById(update);
        dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param));
        if (model.getRenterId() != null) {
            ywCustomerDeviceAutoBindService.refreshCustomerDevices(model.getRenterId(), param.getLoginUserInfo());
        }
        //如果退租日期小于当前日期 则直接释放房源信息 未租赁
        if(Utils.Date.getEnd(param.getBtDate()).getTime()<System.currentTimeMillis()){
            List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda()
@@ -416,6 +425,14 @@
                roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
                        .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
                );
            }
            LoginUserInfo timerUser = new LoginUserInfo();
            timerUser.setId(1);
            timerUser.setRealname("timer");
            for (YwContract c : listA) {
                if (c.getRenterId() != null) {
                    ywCustomerDeviceAutoBindService.syncByContractId(c.getId(), timerUser);
                }
            }
        }
@@ -1631,7 +1648,7 @@
            queryWrapper.eq(YwContract::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.eq(YwContract::getCode, pageWrap.getModel().getCode());
            queryWrapper.like(YwContract::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.eq(YwContract::getUserId, pageWrap.getModel().getUserId());
@@ -1702,6 +1719,9 @@
        if (pageWrap.getModel().getCompanyName() != null) {
            queryWrapper.like(Company::getName, pageWrap.getModel().getCompanyName());
        }
        if (pageWrap.getModel().getRenterName() != null) {
            queryWrapper.like(YwCustomer::getName, pageWrap.getModel().getRenterName());
        }
        if (pageWrap.getModel().getRoomId() != null) {
            queryWrapper.apply(" t.id in ( select ycr.CONTRACT_ID from yw_contract_room ycr where ycr.type = 0 and  ycr.ROOM_ID = "+pageWrap.getModel().getRoomId()+" )  ");
        }
@@ -1771,6 +1791,14 @@
                    .in(YwContract::getId,ywContractList.stream().map(i->i.getId()).collect(Collectors.toList()))
            );
            LoginUserInfo timerUser = new LoginUserInfo();
            timerUser.setId(1);
            timerUser.setRealname("timer");
            for (YwContract c : ywContractList) {
                if (c.getRenterId() != null) {
                    ywCustomerDeviceAutoBindService.refreshCustomerDevices(c.getRenterId(), timerUser);
                }
            }
            List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
                    ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));