2026-01-15 17:35:00 +08:00
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
List<String> assetsCoverImg = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
|
|
|
|
|
if(assetsCoverImg != null && assetsCoverImg.size() >= 1) {
|
|
|
|
|
contractVo.setCoverImgUrl(assetsCoverImg.get(0));
|
2026-01-15 17:35:00 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
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);
|
|
|
|
|
}
|
2026-01-15 17:35:00 +08:00
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
List<String> assetsCoverImgs = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
|
2026-01-15 17:35:00 +08:00
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
if(assetsCoverImgs != null) {
|
|
|
|
|
assetsInfo.setCover(assetsCoverImgs.get(0));
|
2026-01-15 17:35:00 +08:00
|
|
|
}
|
|
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
List<String> assetsCoverImgs = oaFileHandlerService.getUrls(true, assetsVo.getAssetsNo(), assetsVo.getFormId(), "AssetsCoverImg", assetsVo.getCoverImg());
|
2026-01-15 17:35:00 +08:00
|
|
|
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);
|
2026-04-21 20:04:59 +08:00
|
|
|
if(assetsCoverImgs != null) {
|
|
|
|
|
assetsInfo.setCover(assetsCoverImgs.get(0));
|
2026-01-15 17:35:00 +08:00
|
|
|
}
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|