修改合同
This commit is contained in:
parent
40631b8bb7
commit
2c50e16704
@ -152,6 +152,11 @@ public class PsContractInfoBo {
|
||||
*/
|
||||
private String contractStatusCode;
|
||||
|
||||
/**
|
||||
* 修改合同之前的合同状态是什么,记录是否已回款
|
||||
*/
|
||||
private String beforeContractStatus;
|
||||
|
||||
/**
|
||||
* 签约主体 1 企业 2个人
|
||||
*/
|
||||
|
@ -74,6 +74,9 @@ public class PsContractInfoVo implements Serializable {
|
||||
* 合同状态
|
||||
*/
|
||||
private String contractStatus;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 合同状态审批失败描述
|
||||
*/
|
||||
|
@ -78,6 +78,8 @@ public interface IPsContractInfoService {
|
||||
*/
|
||||
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());
|
||||
//json化修改的数据
|
||||
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.删除所有服务类型和服务项目,.插入服务类型
|
||||
businessService.saveList(businessBoslist,bo.getContractCode());
|
||||
//保存公司合同关联表
|
||||
companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode());
|
||||
// businessService.saveList(businessBoslist,bo.getContractCode());
|
||||
// //保存公司合同关联表
|
||||
// companyInfoService.saveContractCompany(bo.getServiceCompanyInfoList(),src.getContractCode());
|
||||
|
||||
contractInfoService.update(src, bo);
|
||||
|
||||
|
||||
//3.修改后操作
|
||||
afterUpdateOperate(bo, src);
|
||||
// afterUpdateOperate(bo, src);
|
||||
//插入合同
|
||||
PsContractInfo add = new PsContractInfo();
|
||||
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||
MapstructUtils.convert(bo, add);
|
||||
//合同状态已汇款
|
||||
add.setContractStatus(ContractStatusEnum.RETURN.getCode());
|
||||
contractInfoService.updateByCode(add);
|
||||
//4.生成合同
|
||||
contractInfoService.makePdf(add,bo,true);
|
||||
// PsContractInfo add = new PsContractInfo();
|
||||
// add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||
// MapstructUtils.convert(bo, add);
|
||||
// //合同状态已汇款
|
||||
// add.setContractStatus(ContractStatusEnum.RETURN.getCode());
|
||||
// contractInfoService.updateByCode(add);
|
||||
// //4.生成合同
|
||||
// contractInfoService.makePdf(add,bo,true);
|
||||
//5.任务状态变为待派单,子任务删除
|
||||
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());
|
||||
if(CollectionUtils.isEmpty(list)){
|
||||
return;
|
||||
}
|
||||
//任务变为待派单
|
||||
taskMainMapper.update(Wrappers.<PsTaskMain>lambdaUpdate()
|
||||
.set(PsTaskMain::getTaskStatus, TaskStatusEnum.INIT.getCode())
|
||||
.in(PsTaskMain::getDelFlag,0)
|
||||
.in(PsTaskMain::getId,list));
|
||||
//删除子任务
|
||||
appointMapper.update(Wrappers.<PsTaskAppoint>lambdaUpdate().set(PsTaskAppoint::getAppointStatus, TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).in(PsTaskAppoint::getTaskId,list));
|
||||
// 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());
|
||||
// if(CollectionUtils.isEmpty(list)){
|
||||
// return;
|
||||
// }
|
||||
// //任务变为待派单
|
||||
// taskMainMapper.update(Wrappers.<PsTaskMain>lambdaUpdate()
|
||||
// .set(PsTaskMain::getTaskStatus, TaskStatusEnum.INIT.getCode())
|
||||
// .in(PsTaskMain::getDelFlag,0)
|
||||
// .in(PsTaskMain::getId,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
|
||||
private final IPsCompanyInfoService companyInfoService;
|
||||
private final PsCompanyInfoMapper companyInfoMapper;
|
||||
|
||||
private final PsContractCompanyMapper psContractCompanyMapper;
|
||||
@Resource
|
||||
private final IPsCustomInfoService customInfoService;
|
||||
@Resource
|
||||
@ -77,7 +79,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
private final PsTaskMainMapper taskMainMapper;
|
||||
private final PsTaskAppointMapper taskAppointMapper;
|
||||
private final PsApproverRecordMapper recordMapper;
|
||||
|
||||
private final PsContractBusinessMapper businessMapper;
|
||||
private final PsContractBusinessDetailMapper businessDetailMapper;
|
||||
private final ISysDictDataService dictDataService;
|
||||
private final IPsApproverRecordService approverRecordService;
|
||||
|
||||
@ -327,7 +330,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
updateBo.getCompanyInfoBo().setCustomId(updateBo.getCustomId());
|
||||
}
|
||||
|
||||
|
||||
updateBo.setBeforeContractStatus(old.getContractStatus());
|
||||
|
||||
//5.已回款之后的合同修改后走审批
|
||||
if(!ContractStatusEnum.isReturn(old.getContractStatus())){
|
||||
@ -376,7 +379,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
addCompany.add(companyInfoBo);
|
||||
continue;
|
||||
}
|
||||
if (!oldCompanyMap.containsKey(companyInfoBo.getId())){
|
||||
PsCompanyInfoVo oldCompanyInfo = oldCompanyMap.get(companyInfoBo.getId());
|
||||
if (oldCompanyInfo == null){
|
||||
addCompany.add(companyInfoBo);
|
||||
continue;
|
||||
}
|
||||
@ -386,17 +390,28 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
|
||||
for (PsCompanyInfoBo psCompanyInfoBo : updateCompany) {
|
||||
//服务公司信息修改、、服务项目修改
|
||||
|
||||
companyInfoService.saveBo(psCompanyInfoBo);
|
||||
}
|
||||
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();
|
||||
//删除标志
|
||||
qw.eq( "info.del_flag", 0);//删除标志
|
||||
|
||||
qw.eq( "service_company_id", psCompanyInfoBo.getId());
|
||||
qw.eq( "contract_code", updateBo.getContractCode());
|
||||
List<PsTaskMain> psTaskMainList = taskMainMapper.selectList(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) {
|
||||
//服务公司加,增加任务,重新计算合同是待分配还是已分配
|
||||
companyInfoBo.setCompanyType("2");
|
||||
@ -410,10 +425,25 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
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.装填合同信息
|
||||
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())){
|
||||
|
||||
|
||||
updateBo.setContractStatusCode(calcContractStatus(updateBo).getCode());
|
||||
}
|
||||
//签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请
|
||||
if(StringUtils.equals(old.getSignStatus(), CommonStatusEnum.SUCCESS.getCode()) ){
|
||||
updateBo.setSignStatus(CommonStatusEnum.INIT.getCode());
|
||||
}
|
||||
|
||||
|
||||
PsContractInfo add = new PsContractInfo();
|
||||
MapstructUtils.convert(updateBo, add);
|
||||
add.setCompanyId(updateBo.getCompanyInfoBo().getId());//公司id
|
||||
add.setIsCancel(CommonStatusEnum.INIT.getCode());
|
||||
add.setContractStatus(updateBo.getContractStatusCode());
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
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