|
|
@@ -1,31 +1,45 @@
|
|
|
package com.zksy.property.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.zksy.property.domain.AContractInfo;
|
|
|
+import com.zksy.property.domain.ASimplifiedHouseInfo;
|
|
|
+import com.zksy.property.domain.bo.*;
|
|
|
+import com.zksy.property.domain.dto.ContractFormDTO;
|
|
|
+import com.zksy.property.domain.vo.HouseInfoVo;
|
|
|
+import com.zksy.property.factory.ContractFactory;
|
|
|
import com.zksy.property.mapper.AContractInfoMapper;
|
|
|
import com.zksy.property.service.AContractInfoService;
|
|
|
+import com.zksy.property.service.ARentalContractService;
|
|
|
+import com.zksy.property.service.ASimplifiedHouseInfoService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
-* @author Administrator
|
|
|
-* @description 针对表【a_contract_info(合同信息表)】的数据库操作Service实现
|
|
|
-* @createDate 2025-07-14 11:59:44
|
|
|
-*/
|
|
|
+ * @author Administrator
|
|
|
+ * @description 针对表【a_contract_info(合同信息表)】的数据库操作Service实现
|
|
|
+ * @createDate 2025-07-14 11:59:44
|
|
|
+ */
|
|
|
@Service
|
|
|
public class AContractInfoServiceImpl extends ServiceImpl<AContractInfoMapper, AContractInfo>
|
|
|
- implements AContractInfoService{
|
|
|
+ implements AContractInfoService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ @Lazy
|
|
|
+ private ASimplifiedHouseInfoService aSimplifiedHouseInfoService;
|
|
|
|
|
|
@Override
|
|
|
public Page<AContractInfo> findByPage(long pageNum, long pageSize, String contractNumber, String contractDate, String contractStatus) {
|
|
|
- Page<AContractInfo> page = new Page<>(pageNum,pageSize);
|
|
|
+ Page<AContractInfo> page = new Page<>(pageNum, pageSize);
|
|
|
LambdaQueryWrapper<AContractInfo> queryWrapper = new LambdaQueryWrapper();
|
|
|
- queryWrapper.like(contractNumber != null,AContractInfo::getContractNumber,contractNumber);
|
|
|
- queryWrapper.eq(contractDate != null,AContractInfo::getContractDate,contractDate);
|
|
|
- queryWrapper.like(contractStatus != null,AContractInfo::getContractStatus,contractStatus);
|
|
|
+ queryWrapper.like(contractNumber != null, AContractInfo::getContractNumber, contractNumber);
|
|
|
+ queryWrapper.eq(contractDate != null, AContractInfo::getContractDate, contractDate);
|
|
|
+ queryWrapper.like(contractStatus != null, AContractInfo::getContractStatus, contractStatus);
|
|
|
queryWrapper.orderByDesc(AContractInfo::getUpdateTime);
|
|
|
Page<AContractInfo> page1 = this.page(page, queryWrapper);
|
|
|
return page1;
|
|
|
@@ -34,9 +48,9 @@ public class AContractInfoServiceImpl extends ServiceImpl<AContractInfoMapper, A
|
|
|
@Override
|
|
|
public List<AContractInfo> getAContractInfoList(String contractNumber, String contractDate, String contractStatus) {
|
|
|
LambdaQueryWrapper<AContractInfo> queryWrapper = new LambdaQueryWrapper();
|
|
|
- queryWrapper.like(contractNumber != null,AContractInfo::getContractNumber,contractNumber);
|
|
|
- queryWrapper.eq(contractDate != null,AContractInfo::getContractDate,contractDate);
|
|
|
- queryWrapper.like(contractStatus != null,AContractInfo::getContractStatus,contractStatus);
|
|
|
+ queryWrapper.like(contractNumber != null, AContractInfo::getContractNumber, contractNumber);
|
|
|
+ queryWrapper.eq(contractDate != null, AContractInfo::getContractDate, contractDate);
|
|
|
+ queryWrapper.like(contractStatus != null, AContractInfo::getContractStatus, contractStatus);
|
|
|
List<AContractInfo> list = this.list(queryWrapper);
|
|
|
return list;
|
|
|
}
|
|
|
@@ -44,9 +58,159 @@ public class AContractInfoServiceImpl extends ServiceImpl<AContractInfoMapper, A
|
|
|
@Override
|
|
|
public AContractInfo getBySimplifiedHouseId(String simplifiedHouseId) {
|
|
|
LambdaQueryWrapper<AContractInfo> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(AContractInfo::getSimplifiedHouseId,simplifiedHouseId);
|
|
|
+ queryWrapper.eq(AContractInfo::getSimplifiedHouseId, simplifiedHouseId);
|
|
|
return this.getOne(queryWrapper);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String signContract(ContractFormDTO dto) {
|
|
|
+ HouseInfoVo houseDetailInfo = aSimplifiedHouseInfoService.getHouseDetailInfo(dto.getHouseId());
|
|
|
+ ASimplifiedHouseInfo aSimplifiedHouseInfo = aSimplifiedHouseInfoService.getById(dto.getHouseId());
|
|
|
+ Contract baseContract = ContractFactory.createContract(aSimplifiedHouseInfo.getAssetType());
|
|
|
+ BeanUtil.copyProperties(dto.getContractData(), baseContract);
|
|
|
+ RentalTempBo bo = new RentalTempBo();
|
|
|
+ var resPath = "";
|
|
|
+ if (baseContract instanceof ContractA) {
|
|
|
+ processContractA((ContractA) baseContract,aSimplifiedHouseInfo,houseDetailInfo, bo);
|
|
|
+ resPath = fillContractData(bo, aSimplifiedHouseInfo.getAssetType());
|
|
|
+ } else if (baseContract instanceof ContractB) {
|
|
|
+ processContractB((ContractB) baseContract, bo);
|
|
|
+ resPath = fillContractData(bo, aSimplifiedHouseInfo.getAssetType());
|
|
|
+ } else if (baseContract instanceof ContractC) {
|
|
|
+ processContractC((ContractC) baseContract, bo);
|
|
|
+ resPath = fillContractData(bo, aSimplifiedHouseInfo.getAssetType());
|
|
|
+ }
|
|
|
+ return resPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void processContractC(ContractC baseContract, RentalTempBo bo) {
|
|
|
+ ContractC contractC = baseContract;
|
|
|
+ //todo 处理bo
|
|
|
+ bo.setC1("");
|
|
|
+ bo.setC2("");
|
|
|
+ bo.setC3("");
|
|
|
+ bo.setC4("");
|
|
|
+ bo.setC5("");
|
|
|
+ bo.setC6("");
|
|
|
+ bo.setC7("");
|
|
|
+ bo.setC8("");
|
|
|
+ bo.setC9("");
|
|
|
+ bo.setC10("");
|
|
|
+ bo.setC11("");
|
|
|
+ bo.setC12("");
|
|
|
+ bo.setC13("");
|
|
|
+ bo.setC14("");
|
|
|
+ bo.setC15("");
|
|
|
+ bo.setC16("");
|
|
|
+ bo.setC17("");
|
|
|
+ bo.setC18("");
|
|
|
+ bo.setC19("");
|
|
|
+ bo.setC20("");
|
|
|
+ bo.setC21("");
|
|
|
+ bo.setC22("");
|
|
|
+ bo.setC23("");
|
|
|
+ bo.setC24("");
|
|
|
+ bo.setC25("");
|
|
|
+ bo.setC26("");
|
|
|
+ bo.setC27("");
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void processContractB(ContractB baseContract, RentalTempBo bo) {
|
|
|
+ ContractB contractB = baseContract;
|
|
|
+ //todo 处理bo
|
|
|
+ bo.setB1("");
|
|
|
+ bo.setB2("");
|
|
|
+ bo.setB3("");
|
|
|
+ bo.setB4("");
|
|
|
+ bo.setB5("");
|
|
|
+ bo.setB6("");
|
|
|
+ bo.setB7("");
|
|
|
+ bo.setB8("");
|
|
|
+ bo.setB9("");
|
|
|
+ bo.setB10("");
|
|
|
+ bo.setB11("");
|
|
|
+ bo.setB12("");
|
|
|
+ bo.setB13("");
|
|
|
+ bo.setB14("");
|
|
|
+ bo.setB15("");
|
|
|
+ bo.setB16("");
|
|
|
+ bo.setB17("");
|
|
|
+ bo.setB18("");
|
|
|
+ bo.setB19("");
|
|
|
+ bo.setB20("");
|
|
|
+ bo.setB21("");
|
|
|
+ bo.setB22("");
|
|
|
+ bo.setB23("");
|
|
|
+ bo.setB24("");
|
|
|
+ bo.setB25("");
|
|
|
+ bo.setB26("");
|
|
|
+ bo.setB27("");
|
|
|
+ bo.setB28("");
|
|
|
+ bo.setB29("");
|
|
|
+ bo.setB30("");
|
|
|
+ bo.setB31("");
|
|
|
+ bo.setB32("");
|
|
|
+ bo.setB33("");
|
|
|
+ bo.setB34("");
|
|
|
+ bo.setB35("");
|
|
|
+ bo.setB36("");
|
|
|
+ bo.setB37("");
|
|
|
+ bo.setB38("");
|
|
|
+ bo.setB39("");
|
|
|
+ bo.setB40("");
|
|
|
+ bo.setB41("");
|
|
|
+ bo.setB42("");
|
|
|
+ bo.setB43("");
|
|
|
+ bo.setB44("");
|
|
|
+ bo.setB45("");
|
|
|
+ bo.setB46("");
|
|
|
+ bo.setB47("");
|
|
|
+ bo.setB48("");
|
|
|
+ bo.setB49("");
|
|
|
+ bo.setB50("");
|
|
|
+ bo.setB51("");
|
|
|
+ bo.setB52("");
|
|
|
+ bo.setB53("");
|
|
|
+ bo.setB54("");
|
|
|
+ bo.setB55("");
|
|
|
+ bo.setB56("");
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void processContractA(ContractA baseContract, ASimplifiedHouseInfo aSimplifiedHouseInfo, HouseInfoVo houseDetailInfo, RentalTempBo bo) {
|
|
|
+ ContractA contractA = baseContract;
|
|
|
+ //todo 处理bo
|
|
|
+ bo.setA1(contractA.getLandlordName());
|
|
|
+ bo.setA2(contractA.getTenantName());
|
|
|
+ bo.setA3(aSimplifiedHouseInfo.getAddress());
|
|
|
+ bo.setA4(contractA.getTenantTime());
|
|
|
+ bo.setA5(contractA.getTenantTimeStart());
|
|
|
+ bo.setA6(contractA.getTenantTimeEnd());
|
|
|
+ bo.setA7(contractA.getTenantRent());
|
|
|
+ bo.setA8(contractA.getTenantDeposit());
|
|
|
+ bo.setA9(contractA.getTenantDepositAmount());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ARentalContractService aRentalContractService;
|
|
|
+
|
|
|
+ private String fillContractData(RentalTempBo bo, String houseType) {
|
|
|
+ var f = 0;
|
|
|
+ switch (houseType) {
|
|
|
+ case "公租房": {
|
|
|
+ f = 1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "厂房": {
|
|
|
+ f = 2;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "创新创业基地": {
|
|
|
+ f = 3;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return aRentalContractService.generatorRental(String.valueOf(f), bo);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|