Files
qichenweapp/src/main/java/org/chenyon/contract/ContractService.java
2026-04-21 20:04:59 +08:00

160 lines
7.3 KiB
Java

package org.chenyon.contract;
import org.apache.commons.lang3.StringUtils;
import org.chenyon.assets.vo.AssetsVo;
import org.chenyon.file.OaFileHandlerService;
import org.chenyon.file.OaFileLocalRefVo;
import org.chenyon.file.OaFileVo;
import org.chenyon.oa.OaContractService;
import org.chenyon.oa.asset.OaAssetsVo;
import org.chenyon.oa.contract.OaContractVo;
import org.rcy.framework.api.entity.PageResult;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class ContractService {
@Autowired
private OaContractService oaContractService;
@Autowired
private OaFileHandlerService oaFileHandlerService;
private void hanldeSignStatus(ContractQueryCondition condition) {
if (StringUtils.isNotBlank(condition.getSignStatus())) {
switch (condition.getSignStatus()){
case "all": condition.setSignStatus(null);break;
case "pending" : condition.setSignStatus("待签署");break;
case "signed" : condition.setSignStatus("已签署");break;
case "expired" : condition.setSignStatus("已过期");break;
}
}
}
private String convertSignStatus(String status) {
if (StringUtils.isNotBlank(status)) {
switch (status){
case "待签署" : return "pending";
case "已签署" : return "signed";
case "已过期" : return "expired";
}
}
return "";
}
public PageResult<ContractVo> queryContractPage(ContractQueryCondition condition) throws Exception {
//调用OA接口查询
hanldeSignStatus(condition);
PageResult<OaContractVo> pageResultOa = oaContractService.pageQueryContract(condition);
PageResult<ContractVo> pageResult = new PageResult<>();
pageResult.setPageNo(pageResultOa.getPageNo());
pageResult.setPageSize(pageResultOa.getPageSize());
pageResult.setRecordTotal(pageResultOa.getRecordTotal());
List<ContractVo> contractVoList = new ArrayList<>();
for (OaContractVo oaContractVo : pageResultOa.getResult()) {
ContractVo contractVo = new ContractVo();
BeanUtils.copyProperties(oaContractVo, contractVo);
if(oaContractVo.getAssetsVos() != null) {
List<OaAssetsVo> assetsVos = oaContractVo.getAssetsVos();
OaAssetsVo assetsVo = assetsVos.get(0);
List<String> assetsCoverImg = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
if(assetsCoverImg != null && assetsCoverImg.size() >= 1) {
contractVo.setCoverImgUrl(assetsCoverImg.get(0));
}
}
contractVo.setSignStatus(convertSignStatus(contractVo.getSignStatus()));
contractVoList.add(contractVo);
}
pageResult.setResult(contractVoList);
return pageResult;
}
public List<ContractVo> queryAll(String cusNo) throws Exception {
ContractQueryCondition condition = new ContractQueryCondition();
condition.setCusNo(cusNo);
condition.setSignStatus("已签署");
List<ContractVo> contractVos = new ArrayList<>();
List<OaContractVo> oaContractVos = oaContractService.queryAll(condition);
for (OaContractVo oaContractVo : oaContractVos) {
ContractVo contractVo = new ContractVo();
BeanUtils.copyProperties(oaContractVo, contractVo);
if(oaContractVo.getAssetsVos() != null) {
List<ContractAssetsVo> contractAssetsVos = new ArrayList<>();
for (OaAssetsVo assetsVo : oaContractVo.getAssetsVos()) {
ContractAssetsVo contractAssetsVo = new ContractAssetsVo();
contractAssetsVo.setAssetsNo(assetsVo.getAssetsNo());
contractAssetsVo.setAssetsName(assetsVo.getAssetsName());
contractAssetsVos.add(contractAssetsVo);
}
contractVo.setAssetsInfos(contractAssetsVos);
}
contractVos.add(contractVo);
}
return contractVos;
}
public ContractAssetsVo queryMoreContractAssets(String formId,Integer pageNo,Integer pageSize) throws Exception {
ContractQueryCondition condition = new ContractQueryCondition();
condition.setFormmainId(formId);
condition.setPageNo(pageNo);
condition.setPageSize(pageSize);
OaAssetsVo assetsVo = oaContractService.pageQueryContractAssets(condition);
List<String> assetsCoverImgs = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
ContractAssetsVo assetsInfo = new ContractAssetsVo();
BeanUtils.copyProperties(assetsVo, assetsInfo);
RentFeeInfo rentFeeInfo = new RentFeeInfo();
if(StringUtils.isNotBlank(assetsVo.getRentFee())){
rentFeeInfo.setRentFee(Double.parseDouble(assetsVo.getRentFee()));
}
assetsInfo.setFeeInfo(rentFeeInfo);
if(assetsCoverImgs != null) {
assetsInfo.setCover(assetsCoverImgs.get(0));
}
return assetsInfo;
}
public Integer countUnsign(String cusNo) throws Exception {
Integer count = oaContractService.countUnsign(cusNo);
return count;
}
public ContractVo queryContractDetail(String cusNo,String contractNo) throws Exception {
ContractQueryCondition condition = new ContractQueryCondition();
condition.setContractNo(contractNo);
OaContractVo oaContractVo = oaContractService.queryContractDetail(condition);
if(!cusNo.equals(oaContractVo.getCusNo())) {
return null;
}
ContractVo contractVo = new ContractVo();
BeanUtils.copyProperties(oaContractVo, contractVo);
List<OaAssetsVo> assetsVos = oaContractVo.getAssetsVos();
OaAssetsVo assetsVo = assetsVos.get(0);
List<String> assetsCoverImgs = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
List<String> eContractUrl = oaFileHandlerService.getUrls(false,cusNo,oaContractVo.getContractNo(),oaContractVo.getFormId(),"eContractFile",oaContractVo.geteContractFile());
ContractAssetsVo assetsInfo = new ContractAssetsVo();
BeanUtils.copyProperties(assetsVo, assetsInfo);
RentFeeInfo rentFeeInfo = new RentFeeInfo();
if(StringUtils.isNotBlank(assetsVo.getRentFee())){
rentFeeInfo.setRentFee(Double.parseDouble(assetsVo.getRentFee()));
}
assetsInfo.setFeeInfo(rentFeeInfo);
if(assetsCoverImgs != null) {
assetsInfo.setCover(assetsCoverImgs.get(0));
}
if(eContractUrl != null) {
contractVo.seteContractUrl(eContractUrl.get(0));
}
List<ContractAssetsVo> assetsInfoList = new ArrayList<>();
assetsInfoList.add(assetsInfo);
contractVo.setAssetsInfos(assetsInfoList);
return contractVo;
}
public String getSignLink(String eFlowId) throws Exception {
String signLink = oaContractService.getSignLink(eFlowId);
return signLink;
}
}