普通项目通过合同编号反向关联
This commit is contained in:
+5
-5
@@ -2,23 +2,23 @@ package com.jero.contract.common;
|
|||||||
|
|
||||||
public class PayIncomeContractCommon {
|
public class PayIncomeContractCommon {
|
||||||
/**
|
/**
|
||||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
|
||||||
*/
|
*/
|
||||||
public final static Integer STATUS1 = 1;
|
public final static Integer STATUS1 = 1;
|
||||||
/**
|
/**
|
||||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
|
||||||
*/
|
*/
|
||||||
public final static Integer STATUS2 = 2;
|
public final static Integer STATUS2 = 2;
|
||||||
/**
|
/**
|
||||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
|
||||||
*/
|
*/
|
||||||
public final static Integer STATUS3 = 3;
|
public final static Integer STATUS3 = 3;
|
||||||
/**
|
/**
|
||||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
|
||||||
*/
|
*/
|
||||||
public final static Integer STATUS4 = 4;
|
public final static Integer STATUS4 = 4;
|
||||||
/**
|
/**
|
||||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
|
||||||
*/
|
*/
|
||||||
public final static Integer STATUS5 = 5;
|
public final static Integer STATUS5 = 5;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-2
@@ -174,8 +174,8 @@ public class PayIncomeContract implements Serializable {
|
|||||||
@ApiModelProperty(value = "打包年份")
|
@ApiModelProperty(value = "打包年份")
|
||||||
private java.lang.String packYear;
|
private java.lang.String packYear;
|
||||||
/**合同状态(1:草稿,2:已通过,3:未通过,4:已归档)*/
|
/**合同状态(1:草稿,2:已通过,3:未通过,4:已归档)*/
|
||||||
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)", width = 15)
|
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已存档)", width = 15)
|
||||||
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)")
|
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已存档)")
|
||||||
@Dict(dicCode = "revenue_contract_status")
|
@Dict(dicCode = "revenue_contract_status")
|
||||||
private java.lang.Integer status;
|
private java.lang.Integer status;
|
||||||
/**创建人*/
|
/**创建人*/
|
||||||
|
|||||||
+20
@@ -131,4 +131,24 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
|
|||||||
* @Exception
|
* @Exception
|
||||||
*/
|
*/
|
||||||
PayIncomeContract checkContractNum(String contractNum);
|
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.contract.vo.ProjectOutput;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
|
import com.jero.project.common.PayProjectCommon;
|
||||||
import com.jero.project.entity.PayCommonProject;
|
import com.jero.project.entity.PayCommonProject;
|
||||||
import com.jero.project.entity.PayWorkingGroup;
|
import com.jero.project.entity.PayWorkingGroup;
|
||||||
import com.jero.project.entity.PayWorkingGroupSubItem;
|
import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||||
@@ -621,4 +622,55 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
|||||||
}
|
}
|
||||||
return null;
|
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> listNew = new ArrayList<>();
|
||||||
List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>();
|
List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>();
|
||||||
if(!CollectionUtils.isEmpty(list)){
|
if(!CollectionUtils.isEmpty(list)){
|
||||||
// todo 获取打包项目对比数据
|
|
||||||
// payPackCompanyService.list();
|
|
||||||
List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
|
List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
|
||||||
// 获取已经关联合同的普通项目
|
// 获取已经关联合同的普通项目
|
||||||
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||||
|
|||||||
+39
-17
@@ -1,6 +1,7 @@
|
|||||||
package com.jero.project.service.impl;
|
package com.jero.project.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
@@ -67,13 +68,14 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void addPayCommonProject(PayCommonProject payCommonProject) {
|
public void addPayCommonProject(PayCommonProject payCommonProject) {
|
||||||
try {
|
try {
|
||||||
// 编辑保存前再次校验来款项目是否存在
|
// 编辑保存前再次校验来款项目是否存在
|
||||||
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(PayCommonProject::getChargeProject,payCommonProject.getChargeProject());
|
queryWrapper.eq(PayCommonProject::getChargeProject,payCommonProject.getChargeProject());
|
||||||
PayCommonProject payCommonProjectNew = payCommonProjectService.getOne(queryWrapper);
|
PayCommonProject payCommonProjectNew = payCommonProjectService.getOne(queryWrapper);
|
||||||
// 来款项目存在,并且编辑id与查询不同,则校验不通过
|
// 来款项目存在,则校验不通过
|
||||||
if(!Objects.isNull(payCommonProjectNew)) {
|
if(!Objects.isNull(payCommonProjectNew)) {
|
||||||
throw new JeroBootException("来款项目已存在!");
|
throw new JeroBootException("来款项目已存在!");
|
||||||
}
|
}
|
||||||
@@ -88,23 +90,29 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
|
||||||
payCommonProject.setMail(PayProjectCommon.MAIL0);
|
payCommonProject.setMail(PayProjectCommon.MAIL0);
|
||||||
payCommonProjectService.save(payCommonProject);
|
payCommonProjectService.save(payCommonProject);
|
||||||
|
|
||||||
|
PayIncomeContract payIncomeContract = null;
|
||||||
// 来款方式为合同,校验合同编号
|
// 来款方式为合同,校验合同编号
|
||||||
if(Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
if(Objects.equals(payCommonProject.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){
|
||||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkContractNum(payCommonProject.getContractNum());
|
payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(payCommonProject.getContractNum(),payCommonProject.getChargeCompanyId(),payCommonProject.getId());
|
||||||
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getSignedCompanyId(),payCommonProject.getChargeCompanyId())){
|
}
|
||||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||||
payIncomeContractAssociated.setProjectId(payCommonProject.getId());
|
if(!Objects.isNull(payIncomeContract) && Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
|
||||||
payIncomeContractAssociated.setContractId(payIncomeContract.getId());
|
LambdaUpdateWrapper<PayCommonProject> update = new LambdaUpdateWrapper<>();
|
||||||
payIncomeContractAssociated.setProjectType(Integer.parseInt(PayProjectCommon.PROJECT_TYPE1));
|
update.eq(PayCommonProject::getId,payCommonProject.getId());
|
||||||
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
|
update.set(PayCommonProject::getPack,PayProjectCommon.PACKAGING1);
|
||||||
// todo 缺少添加打包功能
|
payCommonProjectService.update(update);
|
||||||
}
|
// todo 缺少添加打包功能
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void editPayCommonProject(PayCommonProject payCommonProject) {
|
public void editPayCommonProject(PayCommonProject payCommonProject) {
|
||||||
|
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject);
|
||||||
|
if(Objects.isNull(payCommonProjectOld)){
|
||||||
|
throw new JeroBootException("项目不存在!");
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
// 编辑保存前再次校验来款项目是否存在
|
// 编辑保存前再次校验来款项目是否存在
|
||||||
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
@@ -118,16 +126,30 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
|||||||
log.info("普通项目管理-编辑异常",e);
|
log.info("普通项目管理-编辑异常",e);
|
||||||
throw new JeroBootException("来款项目已存在!");
|
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);
|
setPayCommonProject(payCommonProject);
|
||||||
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
|
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
|
||||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject.getId());
|
|
||||||
if(Objects.isNull(payCommonProjectOld)){
|
|
||||||
throw new JeroBootException("来款项目不存在!");
|
|
||||||
}
|
|
||||||
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyId());
|
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyId());
|
||||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsId(),payCommonProjectOld.getMailContactsId()));
|
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsId(),payCommonProjectOld.getMailContactsId()));
|
||||||
payCommonProjectService.updateById(payCommonProject);
|
payCommonProjectService.updateById(payCommonProject);
|
||||||
|
|||||||
Reference in New Issue
Block a user