预览合同
This commit is contained in:
parent
cb62db6484
commit
a8ba3a08eb
@ -51,8 +51,8 @@ public class PsContractInfoController extends BaseController {
|
|||||||
@Log(title = "生成合同", businessType = BusinessType.INSERT)
|
@Log(title = "生成合同", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PsContractInfoBo bo) {
|
public R<Long> add(@Validated(AddGroup.class) @RequestBody PsContractInfoBo bo) {
|
||||||
return toAjax(psContractInfoService.createContract(bo,2));
|
return R.ok(psContractInfoService.createContract(bo,2));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 暂存合同
|
* 暂存合同
|
||||||
@ -61,10 +61,19 @@ public class PsContractInfoController extends BaseController {
|
|||||||
@Log(title = "暂存合同", businessType = BusinessType.INSERT)
|
@Log(title = "暂存合同", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/hold")
|
@PostMapping("/hold")
|
||||||
public R<Void> hold( @RequestBody PsContractInfoBo bo) {
|
public R<Long> hold( @RequestBody PsContractInfoBo bo) {
|
||||||
return toAjax(psContractInfoService.createContract(bo,1));
|
return R.ok(psContractInfoService.createContract(bo,1));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 预览合同
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("business:customInfo:addContract")
|
||||||
|
@Log(title = "预览合同", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/preview")
|
||||||
|
public R<Long> preview( @RequestBody PsContractInfoBo bo) {
|
||||||
|
return R.ok(psContractInfoService.preview(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据客户id查询暂存的合同详情信息
|
* 根据客户id查询暂存的合同详情信息
|
||||||
*/
|
*/
|
||||||
|
@ -25,7 +25,14 @@ public interface IPsContractInfoService {
|
|||||||
* @param type 操作类型 1保存2暂存
|
* @param type 操作类型 1保存2暂存
|
||||||
* @return 是否新增成功
|
* @return 是否新增成功
|
||||||
*/
|
*/
|
||||||
Boolean createContract(PsContractInfoBo bo,Integer type);
|
Long createContract(PsContractInfoBo bo,Integer type);
|
||||||
|
/**
|
||||||
|
* 预览合同
|
||||||
|
*
|
||||||
|
* @param bo 合同信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Long preview(PsContractInfoBo bo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据客户id查询暂存的合同详情信息
|
* 根据客户id查询暂存的合同详情信息
|
||||||
|
@ -73,9 +73,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@Transactional//开启事务
|
@Transactional//开启事务
|
||||||
public Boolean createContract(PsContractInfoBo bo,Integer type) {
|
public Long createContract(PsContractInfoBo bo,Integer type) {
|
||||||
|
|
||||||
|
|
||||||
//1校验
|
//1校验
|
||||||
PsContractInfo add = validEntity(bo,UserConstants.YES);
|
PsContractInfo add = validEntity(bo,UserConstants.YES);
|
||||||
//2.插入公司信息
|
//2.插入公司信息
|
||||||
@ -95,9 +93,27 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
baseMapper.insertOrUpdate(add);
|
baseMapper.insertOrUpdate(add);
|
||||||
//4.删除所有服务类型和服务项目,.插入服务类型
|
//4.删除所有服务类型和服务项目,.插入服务类型
|
||||||
businessService.saveList(bo.getBusinessList(),bo.getContractCode());
|
businessService.saveList(bo.getBusinessList(),bo.getContractCode());
|
||||||
return true;
|
//7.生成合同
|
||||||
|
return makePdf(add,bo);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 预览合同
|
||||||
|
*
|
||||||
|
* @param bo 合同信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
public Long preview(PsContractInfoBo bo){
|
||||||
|
//3.如果已存在合同,则进行修改,否则新增
|
||||||
|
PsContractInfo add = new PsContractInfo();
|
||||||
|
add.setContractCode("0000000000-1");//合同编码
|
||||||
|
add.setContractName("合同名称");//todo 合同名称
|
||||||
|
add.setCustomManager(LoginHelper.getUserId());//所属销售经理id
|
||||||
|
add.setCompanyId(bo.getCompanyInfoBo().getId());//公司id
|
||||||
|
MapstructUtils.convert(bo, add);
|
||||||
|
BigDecimal sum = bo.getBusinessList().stream().map(PsContractBusinessBo::getBusinessAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
add.setContractAmount(sum);//合同总金额
|
||||||
|
return makePdf(add,bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -272,11 +288,12 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 生成pdf
|
* 生成合同pdf
|
||||||
* @param add
|
* @param add
|
||||||
* @param bo
|
* @param bo
|
||||||
*/
|
*/
|
||||||
private void makePdf(PsContractInfo add ,PsContractInfoBo bo){
|
private Long makePdf(PsContractInfo add ,PsContractInfoBo bo){
|
||||||
|
Long ossId = null;
|
||||||
try{
|
try{
|
||||||
//生成合同pdf
|
//生成合同pdf
|
||||||
PsCustomInfo customer = customInfoService.listById(add.getCustomId());
|
PsCustomInfo customer = customInfoService.listById(add.getCustomId());
|
||||||
@ -291,6 +308,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
File file = new File(path);
|
File file = new File(path);
|
||||||
//上传到oss服务
|
//上传到oss服务
|
||||||
SysOssVo sysOssVo = ossService.upload(new File(path));
|
SysOssVo sysOssVo = ossService.upload(new File(path));
|
||||||
|
ossId = sysOssVo.getOssId();
|
||||||
//删除临时的合同文件
|
//删除临时的合同文件
|
||||||
if(file.exists())file.delete();
|
if(file.exists())file.delete();
|
||||||
//更新合同id
|
//更新合同id
|
||||||
@ -303,6 +321,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("生成pdf失败",e);
|
log.error("生成pdf失败",e);
|
||||||
}
|
}
|
||||||
|
return ossId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user