普通项目通过合同编号反向关联

This commit is contained in:
梁琦涛
2021-09-09 10:36:36 +08:00
parent 7c11caf55f
commit 7e6628f7c7
6 changed files with 118 additions and 26 deletions
@@ -2,23 +2,23 @@ package com.jero.contract.common;
public class PayIncomeContractCommon {
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
*/
public final static Integer STATUS1 = 1;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
*/
public final static Integer STATUS2 = 2;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
*/
public final static Integer STATUS3 = 3;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
*/
public final static Integer STATUS4 = 4;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
*/
public final static Integer STATUS5 = 5;
/**
@@ -174,8 +174,8 @@ public class PayIncomeContract implements Serializable {
@ApiModelProperty(value = "打包年份")
private java.lang.String packYear;
/**合同状态(1:草稿,2:已通过,3:未通过,4:已归档)*/
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)", width = 15)
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)")
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已存档)", width = 15)
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已存档)")
@Dict(dicCode = "revenue_contract_status")
private java.lang.Integer status;
/**创建人*/
@@ -131,4 +131,24 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
* @Exception
*/
PayIncomeContract checkContractNum(String contractNum);
/**
* @Description 校验项目是否已关联合同
* @Author lqt
* @Date 2021/9/9
* @Param projectId 项目id
* @Return
* @Exception
*/
PayIncomeContract checkPayIncomeContractAssociated(String projectId);
/**
* @Description 校验合同编号是否存在,存在即关联合同
* @Author lqt
* @Date 2021/9/9
* @Param contractNum 合同编号
* @Param companyId 企业id
* @Param projectId 项目id
* @Return
* @Exception
*/
PayIncomeContract setPayIncomeContractAssociated(String contractNum,String companyId,String projectId);
}
@@ -23,6 +23,7 @@ import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
@@ -621,4 +622,55 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
return null;
}
@Override
public PayIncomeContract checkPayIncomeContractAssociated(String projectId) {
// 检查项目是否关联了合同
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,projectId);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
PayIncomeContract payIncomeContract = payIncomeContractService.getById(listPayIncomeContractAssociated.get(0).getContractId());
// 关联合同不存在,去掉关联
if(Objects.isNull(payIncomeContract)){
payIncomeContractAssociatedService.removeById(listPayIncomeContractAssociated.get(0).getId());
return null;
}else{
return payIncomeContract;
}
}else{
return null;
}
}
@Override
public PayIncomeContract setPayIncomeContractAssociated(String contractNum, String companyId, String projectId) {
if(StringUtils.isAllBlank(contractNum,companyId,projectId)){
throw new JeroBootException("合同编号、企业di、项目id不能为空!");
}
PayIncomeContract payIncomeContract = payIncomeContractService.checkContractNum(contractNum);
// 能关联上合同
if(!Objects.isNull(payIncomeContract)){
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS2)){
throw new JeroBootException("关联合同状态为待审核不可以进行关联!");
}
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS3)){
throw new JeroBootException("关联合同状态为已通过不可以进行关联!");
}
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS5)){
throw new JeroBootException("关联合同状态为已存档不可以进行关联!");
}
if(!Objects.equals(payIncomeContract.getSignedCompanyId(),companyId)){
throw new JeroBootException("关联合同中签订单位与项目中来款企业不匹配!");
}
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
payIncomeContractAssociated.setProjectId(projectId);
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
return payIncomeContract;
}
return null;
}
}