普通项目通过合同编号反向关联
This commit is contained in:
+5
-5
@@ -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;
|
||||
/**
|
||||
|
||||
+2
-2
@@ -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;
|
||||
/**创建人*/
|
||||
|
||||
+20
@@ -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);
|
||||
}
|
||||
|
||||
+52
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
-2
@@ -137,8 +137,6 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
|
||||
List<PayCommonProjectOutput> listNew = new ArrayList<>();
|
||||
List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
// todo 获取打包项目对比数据
|
||||
// payPackCompanyService.list();
|
||||
List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
|
||||
// 获取已经关联合同的普通项目
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||
|
||||
+39
-17
@@ -1,6 +1,7 @@
|
||||
package com.jero.project.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -67,13 +68,14 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void addPayCommonProject(PayCommonProject payCommonProject) {
|
||||
try {
|
||||
// 编辑保存前再次校验来款项目是否存在
|
||||
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(PayCommonProject::getChargeProject,payCommonProject.getChargeProject());
|
||||
PayCommonProject payCommonProjectNew = payCommonProjectService.getOne(queryWrapper);
|
||||
// 来款项目存在,并且编辑id与查询不同,则校验不通过
|
||||
// 来款项目存在,则校验不通过
|
||||
if(!Objects.isNull(payCommonProjectNew)) {
|
||||
throw new JeroBootException("来款项目已存在!");
|
||||
}
|
||||
@@ -88,23 +90,29 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
||||
payCommonProject.setMail(PayProjectCommon.MAIL0);
|
||||
payCommonProjectService.save(payCommonProject);
|
||||
|
||||
PayIncomeContract payIncomeContract = null;
|
||||
// 来款方式为合同,校验合同编号
|
||||
if(Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkContractNum(payCommonProject.getContractNum());
|
||||
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getSignedCompanyId(),payCommonProject.getChargeCompanyId())){
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
payIncomeContractAssociated.setProjectId(payCommonProject.getId());
|
||||
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
|
||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
||||
// todo 缺少添加打包功能
|
||||
}
|
||||
payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(payCommonProject.getContractNum(),payCommonProject.getChargeCompanyId(),payCommonProject.getId());
|
||||
}
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
LambdaUpdateWrapper<PayCommonProject> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(PayCommonProject::getId,payCommonProject.getId());
|
||||
update.set(PayCommonProject::getPack,PayProjectCommon.PACKAGING1);
|
||||
payCommonProjectService.update(update);
|
||||
// todo 缺少添加打包功能
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void editPayCommonProject(PayCommonProject payCommonProject) {
|
||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject);
|
||||
if(Objects.isNull(payCommonProjectOld)){
|
||||
throw new JeroBootException("项目不存在!");
|
||||
}
|
||||
try {
|
||||
// 编辑保存前再次校验来款项目是否存在
|
||||
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
||||
@@ -118,16 +126,30 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
log.info("普通项目管理-编辑异常",e);
|
||||
throw new JeroBootException("来款项目已存在!");
|
||||
}
|
||||
// 来款方式为合同,校验合同编号
|
||||
if(Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||
payIncomeContractService.checkContractNum(payCommonProject.getContractNum());
|
||||
|
||||
// 校验项目是否已关联合同
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payCommonProjectOld.getId());
|
||||
if(!Objects.isNull(payIncomeContract) && !Objects.equals(payIncomeContract.getContractNum(),payCommonProject.getContractNum())){
|
||||
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
||||
}
|
||||
|
||||
PayIncomeContract payIncomeContractAdd = null;
|
||||
// 没有关联合同 && 来款方式为合同,校验合同编号
|
||||
if(Objects.isNull(payIncomeContract) && Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payCommonProject.getContractNum(),payCommonProject.getChargeCompanyId(),payCommonProject.getId());
|
||||
}
|
||||
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(!Objects.isNull(payIncomeContractAdd) && Objects.equals(payIncomeContractAdd.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
LambdaUpdateWrapper<PayCommonProject> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(PayCommonProject::getId,payCommonProjectOld.getId());
|
||||
update.set(PayCommonProject::getPack,PayProjectCommon.PACKAGING1);
|
||||
payCommonProjectService.update(update);
|
||||
// todo 缺少添加打包功能
|
||||
}
|
||||
|
||||
setPayCommonProject(payCommonProject);
|
||||
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
|
||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject.getId());
|
||||
if(Objects.isNull(payCommonProjectOld)){
|
||||
throw new JeroBootException("来款项目不存在!");
|
||||
}
|
||||
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyId());
|
||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsId(),payCommonProjectOld.getMailContactsId()));
|
||||
payCommonProjectService.updateById(payCommonProject);
|
||||
|
||||
Reference in New Issue
Block a user