修改合同
This commit is contained in:
parent
40631b8bb7
commit
2c50e16704
@ -152,6 +152,11 @@ public class PsContractInfoBo {
|
|||||||
*/
|
*/
|
||||||
private String contractStatusCode;
|
private String contractStatusCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改合同之前的合同状态是什么,记录是否已回款
|
||||||
|
*/
|
||||||
|
private String beforeContractStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约主体 1 企业 2个人
|
* 签约主体 1 企业 2个人
|
||||||
*/
|
*/
|
||||||
|
@ -74,6 +74,9 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
* 合同状态
|
* 合同状态
|
||||||
*/
|
*/
|
||||||
private String contractStatus;
|
private String contractStatus;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同状态审批失败描述
|
* 合同状态审批失败描述
|
||||||
*/
|
*/
|
||||||
|
@ -78,6 +78,8 @@ public interface IPsContractInfoService {
|
|||||||
*/
|
*/
|
||||||
boolean updateContractByCode(PsContractInfoBo bo);
|
boolean updateContractByCode(PsContractInfoBo bo);
|
||||||
|
|
||||||
|
void update(PsContractInfoVo old, PsContractInfoBo updateBo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废合同
|
* 作废合同
|
||||||
*
|
*
|
||||||
|
@ -55,35 +55,39 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm
|
|||||||
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
||||||
//json化修改的数据
|
//json化修改的数据
|
||||||
PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class);
|
PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class);
|
||||||
List<PsContractBusinessBo> businessBoslist = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
// List<PsContractBusinessBo> businessBoslist = bo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
//2.删除所有服务类型和服务项目,.插入服务类型
|
//2.删除所有服务类型和服务项目,.插入服务类型
|
||||||
businessService.saveList(businessBoslist,bo.getContractCode());
|
// businessService.saveList(businessBoslist,bo.getContractCode());
|
||||||
//保存公司合同关联表
|
// //保存公司合同关联表
|
||||||
companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode());
|
// companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode());
|
||||||
|
|
||||||
|
contractInfoService.update(src, bo);
|
||||||
|
|
||||||
|
|
||||||
//3.修改后操作
|
//3.修改后操作
|
||||||
afterUpdateOperate(bo, src);
|
// afterUpdateOperate(bo, src);
|
||||||
//插入合同
|
//插入合同
|
||||||
PsContractInfo add = new PsContractInfo();
|
// PsContractInfo add = new PsContractInfo();
|
||||||
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
// add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||||
MapstructUtils.convert(bo, add);
|
// MapstructUtils.convert(bo, add);
|
||||||
//合同状态已汇款
|
// //合同状态已汇款
|
||||||
add.setContractStatus(ContractStatusEnum.RETURN.getCode());
|
// add.setContractStatus(ContractStatusEnum.RETURN.getCode());
|
||||||
contractInfoService.updateByCode(add);
|
// contractInfoService.updateByCode(add);
|
||||||
//4.生成合同
|
// //4.生成合同
|
||||||
contractInfoService.makePdf(add,bo,true);
|
// contractInfoService.makePdf(add,bo,true);
|
||||||
//5.任务状态变为待派单,子任务删除
|
//5.任务状态变为待派单,子任务删除
|
||||||
List<PsTaskMain> task = taskMainMapper.selectList(Wrappers.<PsTaskMain>lambdaQuery().eq(PsTaskMain::getContractCode, psApproverRecord.getContractCode()).eq(PsTaskMain::getDelFlag, 0));
|
// List<PsTaskMain> task = taskMainMapper.selectList(Wrappers.<PsTaskMain>lambdaQuery().eq(PsTaskMain::getContractCode, psApproverRecord.getContractCode()).eq(PsTaskMain::getDelFlag, 0));
|
||||||
List<Long> list = task.stream().map(PsTaskMain::getId).collect(Collectors.toList());
|
// List<Long> list = task.stream().map(PsTaskMain::getId).collect(Collectors.toList());
|
||||||
if(CollectionUtils.isEmpty(list)){
|
// if(CollectionUtils.isEmpty(list)){
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
//任务变为待派单
|
// //任务变为待派单
|
||||||
taskMainMapper.update(Wrappers.<PsTaskMain>lambdaUpdate()
|
// taskMainMapper.update(Wrappers.<PsTaskMain>lambdaUpdate()
|
||||||
.set(PsTaskMain::getTaskStatus, TaskStatusEnum.INIT.getCode())
|
// .set(PsTaskMain::getTaskStatus, TaskStatusEnum.INIT.getCode())
|
||||||
.in(PsTaskMain::getDelFlag,0)
|
// .in(PsTaskMain::getDelFlag,0)
|
||||||
.in(PsTaskMain::getId,list));
|
// .in(PsTaskMain::getId,list));
|
||||||
//删除子任务
|
// //删除子任务
|
||||||
appointMapper.update(Wrappers.<PsTaskAppoint>lambdaUpdate().set(PsTaskAppoint::getAppointStatus, TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).in(PsTaskAppoint::getTaskId,list));
|
// appointMapper.update(Wrappers.<PsTaskAppoint>lambdaUpdate().set(PsTaskAppoint::getAppointStatus, TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).in(PsTaskAppoint::getTaskId,list));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 修改合同后操作
|
* 修改合同后操作
|
||||||
|
@ -63,6 +63,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
@Resource
|
@Resource
|
||||||
private final IPsCompanyInfoService companyInfoService;
|
private final IPsCompanyInfoService companyInfoService;
|
||||||
private final PsCompanyInfoMapper companyInfoMapper;
|
private final PsCompanyInfoMapper companyInfoMapper;
|
||||||
|
|
||||||
|
private final PsContractCompanyMapper psContractCompanyMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private final IPsCustomInfoService customInfoService;
|
private final IPsCustomInfoService customInfoService;
|
||||||
@Resource
|
@Resource
|
||||||
@ -77,7 +79,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
private final PsTaskMainMapper taskMainMapper;
|
private final PsTaskMainMapper taskMainMapper;
|
||||||
private final PsTaskAppointMapper taskAppointMapper;
|
private final PsTaskAppointMapper taskAppointMapper;
|
||||||
private final PsApproverRecordMapper recordMapper;
|
private final PsApproverRecordMapper recordMapper;
|
||||||
|
private final PsContractBusinessMapper businessMapper;
|
||||||
|
private final PsContractBusinessDetailMapper businessDetailMapper;
|
||||||
private final ISysDictDataService dictDataService;
|
private final ISysDictDataService dictDataService;
|
||||||
private final IPsApproverRecordService approverRecordService;
|
private final IPsApproverRecordService approverRecordService;
|
||||||
|
|
||||||
@ -327,7 +330,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
updateBo.getCompanyInfoBo().setCustomId(updateBo.getCustomId());
|
updateBo.getCompanyInfoBo().setCustomId(updateBo.getCustomId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateBo.setBeforeContractStatus(old.getContractStatus());
|
||||||
|
|
||||||
//5.已回款之后的合同修改后走审批
|
//5.已回款之后的合同修改后走审批
|
||||||
if(!ContractStatusEnum.isReturn(old.getContractStatus())){
|
if(!ContractStatusEnum.isReturn(old.getContractStatus())){
|
||||||
@ -376,7 +379,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
addCompany.add(companyInfoBo);
|
addCompany.add(companyInfoBo);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!oldCompanyMap.containsKey(companyInfoBo.getId())){
|
PsCompanyInfoVo oldCompanyInfo = oldCompanyMap.get(companyInfoBo.getId());
|
||||||
|
if (oldCompanyInfo == null){
|
||||||
addCompany.add(companyInfoBo);
|
addCompany.add(companyInfoBo);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -386,17 +390,28 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
|
|
||||||
for (PsCompanyInfoBo psCompanyInfoBo : updateCompany) {
|
for (PsCompanyInfoBo psCompanyInfoBo : updateCompany) {
|
||||||
//服务公司信息修改、、服务项目修改
|
//服务公司信息修改、、服务项目修改
|
||||||
|
companyInfoService.saveBo(psCompanyInfoBo);
|
||||||
}
|
}
|
||||||
for (PsCompanyInfoVo psCompanyInfoBo : oldCompanyMap.values()) {
|
for (PsCompanyInfoVo psCompanyInfoBo : oldCompanyMap.values()) {
|
||||||
|
//删除服务公司
|
||||||
|
QueryWrapper<PsContractCompany> qw1 = Wrappers.query();
|
||||||
|
qw1.eq( "company_id", psCompanyInfoBo.getId());
|
||||||
|
qw1.eq( "contract_code", updateBo.getContractCode());
|
||||||
|
psContractCompanyMapper.delete(qw1);
|
||||||
|
|
||||||
//服务公司删,则删任务,重新校验合同状态,可能已完成
|
//服务公司删,则删任务,重新校验合同状态,可能已完成
|
||||||
QueryWrapper<PsTaskMain> qw = Wrappers.query();
|
QueryWrapper<PsTaskMain> qw = Wrappers.query();
|
||||||
//删除标志
|
qw.eq( "service_company_id", psCompanyInfoBo.getId());
|
||||||
qw.eq( "info.del_flag", 0);//删除标志
|
qw.eq( "contract_code", updateBo.getContractCode());
|
||||||
|
List<PsTaskMain> psTaskMainList = taskMainMapper.selectList(qw);
|
||||||
taskMainMapper.delete(qw);
|
taskMainMapper.delete(qw);
|
||||||
// taskAppointMapper.delete();
|
|
||||||
|
//服务公司删,则删任务,重新校验合同状态,可能已完成
|
||||||
|
List<Long> taskIds = psTaskMainList.stream().map(stTask1 -> stTask1.getId()).collect(Collectors.toList());
|
||||||
|
taskAppointMapper.deleteByIds(taskIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<PsTaskMain> psTaskMainList = new ArrayList<>();
|
||||||
for (PsCompanyInfoBo companyInfoBo : addCompany) {
|
for (PsCompanyInfoBo companyInfoBo : addCompany) {
|
||||||
//服务公司加,增加任务,重新计算合同是待分配还是已分配
|
//服务公司加,增加任务,重新计算合同是待分配还是已分配
|
||||||
companyInfoBo.setCompanyType("2");
|
companyInfoBo.setCompanyType("2");
|
||||||
@ -410,10 +425,25 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
psContractBusinessBo.setCompanyId(companyInfoBo.getId());
|
psContractBusinessBo.setCompanyId(companyInfoBo.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(ContractStatusEnum.isReturn(old.getContractStatus())){
|
||||||
|
//已回款的添加任务,没回款的等审批后再添加
|
||||||
|
PsTaskMain psTaskMain = new PsTaskMain();
|
||||||
|
psTaskMain.setContractCode(old.getContractCode());
|
||||||
|
psTaskMain.setTaskType(TaskTypeEnum.CONTRACT.getCode());
|
||||||
|
psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode());
|
||||||
|
psTaskMain.setCompanyId(updateBo.getCompanyInfoBo().getId());
|
||||||
|
psTaskMain.setCustomId(updateBo.getCustomId());
|
||||||
|
psTaskMain.setServiceCompanyId(companyInfoBo.getId());
|
||||||
|
psTaskMainList.add(psTaskMain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!psTaskMainList.isEmpty()){
|
||||||
|
taskMainService.insertBatch(psTaskMainList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//保存公司合同关联表
|
||||||
|
companyInfoService.saveContractCompany(updateBo.getServiceCompanyInfoList(), old.getContractCode());
|
||||||
|
|
||||||
//4.装填合同信息
|
//4.装填合同信息
|
||||||
List<PsContractBusinessBo> list = updateBo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
List<PsContractBusinessBo> list = updateBo.getServiceCompanyInfoList().stream().flatMap(com -> com.getBusinessList().stream()).toList();
|
||||||
@ -432,21 +462,51 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
|
|
||||||
//重新计算当前的合同状态,待回款、待处理、处理中、已完结、已作废;;;已完结和处理中可能会变成待处理
|
//重新计算当前的合同状态,待回款、待处理、处理中、已完结、已作废;;;已完结和处理中可能会变成待处理
|
||||||
if(ContractStatusEnum.isReturn(old.getContractStatus())){
|
if(ContractStatusEnum.isReturn(old.getContractStatus())){
|
||||||
|
updateBo.setContractStatusCode(calcContractStatus(updateBo).getCode());
|
||||||
|
}
|
||||||
|
//签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请
|
||||||
|
if(StringUtils.equals(old.getSignStatus(), CommonStatusEnum.SUCCESS.getCode()) ){
|
||||||
|
updateBo.setSignStatus(CommonStatusEnum.INIT.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PsContractInfo add = new PsContractInfo();
|
PsContractInfo add = new PsContractInfo();
|
||||||
MapstructUtils.convert(updateBo, add);
|
MapstructUtils.convert(updateBo, add);
|
||||||
add.setCompanyId(updateBo.getCompanyInfoBo().getId());//公司id
|
add.setCompanyId(updateBo.getCompanyInfoBo().getId());//公司id
|
||||||
|
add.setIsCancel(CommonStatusEnum.INIT.getCode());
|
||||||
|
add.setContractStatus(updateBo.getContractStatusCode());
|
||||||
this.updateByCode(add);
|
this.updateByCode(add);
|
||||||
//4.删除所有服务类型和服务项目,.插入服务类型
|
|
||||||
businessService.saveList(list, add.getContractCode());
|
//删除所有服务
|
||||||
|
QueryWrapper<PsContractBusiness> qw2 = Wrappers.query();
|
||||||
|
qw2.eq( "contract_code", updateBo.getContractCode());
|
||||||
|
List<PsContractBusiness> psContractBusinesses = businessMapper.selectList(qw2);
|
||||||
|
businessMapper.delete(qw2);
|
||||||
|
List<Long> ids = psContractBusinesses.stream().map(item -> item.getId()).collect(Collectors.toList());
|
||||||
|
businessDetailMapper.deleteByIds(ids);
|
||||||
|
//创建服务
|
||||||
|
businessService.saveList(list, updateBo.getContractCode());
|
||||||
|
|
||||||
makePdf(add, updateBo,true);
|
makePdf(add, updateBo,true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ContractStatusEnum calcContractStatus(PsContractInfoBo updateBo){
|
||||||
|
// QueryWrapper<PsTaskMain> qw = Wrappers.query();
|
||||||
|
// qw.eq( "contract_code", updateBo.getContractCode());
|
||||||
|
// List<PsTaskMain> psTaskMainList = taskMainMapper.selectList(qw);
|
||||||
|
|
||||||
|
QueryWrapper<PsTaskAppoint> qw2 = Wrappers.query();
|
||||||
|
qw2.eq( "contract_code", updateBo.getContractCode());
|
||||||
|
List<PsTaskAppoint> psTaskAppoints = taskAppointMapper.selectList(qw2);
|
||||||
|
for (PsTaskAppoint psTaskAppoint : psTaskAppoints) {
|
||||||
|
if (AppointStatusEnum.ING.getCode().equals(psTaskAppoint.getAppointStatus())){
|
||||||
|
return ContractStatusEnum.EXECUTION;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ContractStatusEnum.RETURN;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废合同
|
* 作废合同
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user