生成合同

This commit is contained in:
1073413548 2024-08-15 09:46:14 +08:00
parent 0ec418b257
commit d92d80ca55
23 changed files with 449 additions and 37 deletions

View File

@ -167,13 +167,15 @@ public class PsContractInfoController extends BaseController {
/**
* 免费派单
* @param contractCode 合同编码
* @param businessType 服务类别
* @param businessProject 服务项目
* @return
*/
@Log(title = "免费派单")
@SaCheckPermission("business:task:list")
@GetMapping("/freeWork")
public R<Void> freeWork(@org.jetbrains.annotations.NotNull String contractCode) {
psContractInfoService.freeWork(contractCode);
public R<Void> freeWork(@NotNull String contractCode,@NotNull String businessType,@NotNull String businessProject) {
psContractInfoService.freeWork(contractCode,businessType,businessProject);
return R.ok();
}
//

View File

@ -66,6 +66,17 @@ public class PsContractOperateController extends BaseController {
return R.ok();
}
/**
* 合同添加退款记录
*/
@SaCheckPermission("business:contractOperate:addReturnRecord")
@PostMapping(value = "/addReturnRecord", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> addReturnRecord(@RequestPart("files") List<MultipartFile> files,
@Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception {
payService.addPay( files, psContractPayBo);
return R.ok();
}
/**
* 回传合同
*/

View File

@ -36,16 +36,39 @@ public class PsContractPayController extends BaseController {
private final IPsContractPayService psContractPayService;
/* *//**
/**
* 查询合同回款记录列表
*//*
*/
@SaCheckPermission("business:contractPay:list")
@GetMapping("/list")
public TableDataInfo<PsContractPayVo> list(PsContractPayBo bo, PageQuery pageQuery) {
return psContractPayService.queryPageList(bo, pageQuery);
public List<PsContractPayVo> list(@NotBlank(message = "合同编码不能为空") String contractCode) {
return psContractPayService.queryListByContractCode(contractCode,null,null);
}
/**
* 获取合同回款记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("business:contractPay:query")
@GetMapping("/{id}")
public R<PsContractPayVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(psContractPayService.queryById(id));
}
*//**
/**
* 修改合同回款记录
*/
// @SaCheckPermission("business:contractPay:edit")
// @Log(title = "合同回款记录", businessType = BusinessType.UPDATE)
// @RepeatSubmit()
// @PutMapping()
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) {
// return toAjax(psContractPayService.updateById(bo));
// }
/**
* 导出合同回款记录列表
*//*
@SaCheckPermission("business:contractPay:export")

View File

@ -143,6 +143,20 @@ public class PsTaskController extends BaseController {
return R.ok();
}
/**
* 免费工单任务作废
* @param id 任务主表id
* @param desc 作废原因
* @return
*/
@Log(title = "免费工单任务作废")
@SaCheckPermission("business:task:list")
@GetMapping("/cancel")
public R<Void> taskReset(@NotNull("任务id不能为空") Long id,@NotNull("作废原因不能为空") String desc) {
psTaskMainService.cancel(id,desc);
return R.ok();
}
// /**
// * 导出主任务列表

View File

@ -58,7 +58,7 @@ public class PsContractPay extends TenantEntity {
private String payType;
/**
* 支付方式1扫码2对公3现金
* 支付方式1扫码2对公3现金4对私
*/
private String payMode;

View File

@ -48,26 +48,23 @@ public class PsContractPayBo {
/**
* 回款日期
*/
@NotNull(message = "回款日期不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM-dd")
private Date payDate;
/**
* 回款类型1全款2分期
*/
@NotBlank(message = "回款类型1全款2分期不能为空", groups = { AddGroup.class, EditGroup.class })
private String payType;
/**
* 支付方式1扫码2对公3现金
* 支付方式1扫码2对公3现金4对私
*/
@NotBlank(message = "支付方式1扫码2对公3现金)不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "支付方式1扫码2对公3现金4对私)不能为空", groups = { AddGroup.class, EditGroup.class })
private String payMode;
/**
* 收款主体
*/
@NotBlank(message = "收款主体不能为空", groups = { AddGroup.class, EditGroup.class })
private String gathMain;
// /**

View File

@ -68,7 +68,7 @@ public class PsContractPayVo implements Serializable {
private String payType;
/**
* 支付方式1扫码2对公3现金
* 支付方式1扫码2对公3现金4对私
*/
private String payMode;

View File

@ -15,7 +15,10 @@ public enum ApproverTypeEnum {
SIGN("sign","合同签章审批"),
ROLBACK("rolback","回传合同审批"),
TASKFINISH("taskFinish","任务完成审批"),
PUBLIC("PUBLIC","公海认领审批");
PUBLIC("public","公海认领审批"),
TASKCANCE("taskcance","任务作废审批"),
RETURN("RETURN","退款审批"),
FREE("free","免费工单审批");
private String code;
private String text;
}

View File

@ -3,15 +3,28 @@ package com.pusong.business.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.List;
/**
* 支付状态美剧
*/
@Getter
@AllArgsConstructor
public enum PayStatusEnum {
PAYAPPO("3","退款支付审批中"),
PAYAPPOSUCC("4","退款支付审批成功"),
PAYAPPOFIL("5","退款支付审批失败"),
PAYING("0","支付中"),
SUCCESS("1","成功"),
FILE("2","失败");
private String code;
private String text;
/**
* 查询收款记录时无用的状态
* @return
*/
public static List<String> getStatus() {
return List.of(PAYAPPO.getCode(),PAYAPPOSUCC.getCode(),PAYAPPOFIL.getCode());
}
}

View File

@ -15,10 +15,10 @@ public enum TaskStatusEnum {
INIT("10","任务初始化(待派单)"),
ING("20","进行中"),
OA("25","完成审批中"),
OAFAIL("26","完成审批失败"),
FINISH("30","完成"),
PAUSE("40","暂停"),
CANCEL("50","作废");
CANCEL("50","作废"),
CANCELAPPO("55","作废审批中");
private String code;
private String text;

View File

@ -105,8 +105,10 @@ public interface IPsContractInfoService {
/**
* 免费工单
* @param contractCode 合同编码
* @param businessType 服务类别
* @param businessProject 服务项目
*/
void freeWork(String contractCode);
void freeWork(String contractCode,String businessType,String businessProject);
/**
* 查询符合条件的合同基本信息列表
*

View File

@ -36,14 +36,19 @@ public interface IPsContractPayService {
* @param payBo 支付信息
*/
void addPay(List<MultipartFile> files, PsContractPayBo payBo);
/**
* 添加退款记录
* @param files 支付凭证
* @param payBo 支付信息
*/
void returnPay(List<MultipartFile> files, PsContractPayBo payBo);
/**
* 根据主键id查询回款记录
*
* @param id 查询条件
* @return 合同回款记录列表
*/
PsContractPay queryById(Long id);
PsContractPayVo queryById(Long id);
/**
* 根据id修改合同回款记录

View File

@ -99,6 +99,12 @@ public interface IPsTaskService {
* @param executorId 任务新的执行者id
*/
void taskReset(Long id,Long executorId);
/**
* 免费工单任务作废
* @param id 任务主表id
* @param desc 作废原因
*/
void cancel(Long id,String desc);
/* *//**
* 查询主任务

View File

@ -44,7 +44,7 @@ public class CancellaApproverServiceImpl extends ApproverAbstractServiceImpl {
public void fail(PsApproverRecord psApproverRecord) {
PsContractInfo info = new PsContractInfo();
info.setContractCode(psApproverRecord.getContractCode());
info.setRollBackStatus(CommonStatusEnum.FAIL.getCode());
info.setContractStatus(psApproverRecord.getUpdateData());
contractInfoService.updateByCode(info);
}
}

View File

@ -0,0 +1,60 @@
package com.pusong.business.service.approver.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsTaskAppoint;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.domain.vo.PsContractInfoVo;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.TaskStatusEnum;
import com.pusong.business.enums.TaskTypeEnum;
import com.pusong.business.mapper.PsTaskAppointMapper;
import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.IPsContractInfoService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 免费工单审批
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class FreeApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override
public String approverType() {
return ApproverTypeEnum.FREE.getCode();
}
private final PsTaskMainMapper taskMainMapper;
private final PsTaskAppointMapper taskAppointMapper;
private final IPsContractInfoService contractInfoService;
/**
* 1 审批成功 合同作废成功合同状态显示为已作废
* @param psApproverRecord 神瀑类
*/
@Override
public void success(PsApproverRecord psApproverRecord) {
PsContractInfoVo vo = contractInfoService.queryContractByCode(psApproverRecord.getBusinessId());
PsTaskMain psTaskMain = new PsTaskMain();
psTaskMain.setCompanyId(vo.getCompanyId());
psTaskMain.setCustomId(vo.getCustomId());
psTaskMain.setContractCode(vo.getContractCode());
psTaskMain.setTaskType(TaskTypeEnum.FREE.getCode());
psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode());
psTaskMain.setBusinessType(psApproverRecord.getUpdateData().split("@@")[0]);
psTaskMain.setBusinessProject(psApproverRecord.getUpdateData().split("@@")[1]);
taskMainMapper.insert(psTaskMain);
}
/**
* 审批拒绝
* @param psApproverRecord
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
}
}

View File

@ -70,6 +70,10 @@ public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl
@Override
public void fail(PsApproverRecord psApproverRecord) {
//修改回款记录状态
PsContractPay update = new PsContractPay();
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
update.setPayStatus(PayStatusEnum.FILE.getCode());
payService.updateById(update);
}
}

View File

@ -0,0 +1,47 @@
package com.pusong.business.service.approver.impl;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.PsCustomInfo;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.CustomerStatusEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.mapper.PsCustomInfoMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 公海认领审批
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class PublicApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override
public String approverType() {
return ApproverTypeEnum.PUBLIC.getCode();
}
private final PsCustomInfoMapper customInfoMapper;
/**
* 1 审批成功 退款审批成功
* @param psApproverRecord 神瀑类
*/
@Override
public void success(PsApproverRecord psApproverRecord) {
PsCustomInfo info = customInfoMapper.selectById(Long.valueOf(psApproverRecord.getBusinessId()));
info.setCustomStatus(CustomerStatusEnum.INIT.getCode());
info.setCustomManager(Long.valueOf(psApproverRecord.getUpdateData()));
customInfoMapper.updateById(info);
}
/**
* 审批拒绝 退款审批失败
* @param psApproverRecord
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
}
}

View File

@ -0,0 +1,50 @@
package com.pusong.business.service.approver.impl;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractPay;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.enums.TaskStatusEnum;
import com.pusong.business.mapper.PsContractPayMapper;
import com.pusong.business.mapper.PsTaskMainMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 退款审批
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class ReturnApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override
public String approverType() {
return ApproverTypeEnum.RETURN.getCode();
}
private final PsContractPayMapper baseMapper;
/**
* 1 审批成功 退款审批成功
* @param psApproverRecord 神瀑类
*/
@Override
public void success(PsApproverRecord psApproverRecord) {
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
info.setPayStatus(PayStatusEnum.PAYAPPOSUCC.getCode());
baseMapper.updateById(info);
}
/**
* 审批拒绝 退款审批失败
* @param psApproverRecord
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
PsContractPay info = baseMapper.selectById(psApproverRecord.getBusinessId());
info.setPayStatus(PayStatusEnum.PAYAPPOFIL.getCode());
baseMapper.updateById(info);
}
}

View File

@ -0,0 +1,60 @@
package com.pusong.business.service.approver.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsTaskAppoint;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.ContractStatusEnum;
import com.pusong.business.enums.TaskStatusEnum;
import com.pusong.business.mapper.PsTaskAppointMapper;
import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.IPsContractInfoService;
import com.pusong.business.service.IPsTaskService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 任务作废审批
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class TaskCancellaApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override
public String approverType() {
return ApproverTypeEnum.TASKCANCE.getCode();
}
private final PsTaskMainMapper taskMainMapper;
private final PsTaskAppointMapper taskAppointMapper;
/**
* 1 审批成功 合同作废成功合同状态显示为已作废
* @param psApproverRecord 神瀑类
*/
@Override
public void success(PsApproverRecord psApproverRecord) {
//主任务作废
PsTaskMain info = taskMainMapper.selectById(psApproverRecord.getBusinessId());
info.setTaskStatus(TaskStatusEnum.CANCEL.getCode());
taskMainMapper.updateById(info);
//子任务作废
taskAppointMapper.update(Wrappers.<PsTaskAppoint>lambdaUpdate()
.set(PsTaskAppoint::getAppointStatus, TaskStatusEnum.AppointStatusEnum.CANCEL.getCode())
.eq(PsTaskAppoint::getTaskId, info.getId()));
}
/**
* 审批拒绝 合同的状态变回原状态并在原状态下方展示拒绝原因
* @param psApproverRecord
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
//还原状态
PsTaskMain info = taskMainMapper.selectById(psApproverRecord.getBusinessId());
info.setTaskStatus(psApproverRecord.getUpdateData());
taskMainMapper.updateById(info);
}
}

View File

@ -0,0 +1,50 @@
package com.pusong.business.service.approver.impl;
import com.pusong.business.domain.PsApproverRecord;
import com.pusong.business.domain.PsContractInfo;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.ContractStatusEnum;
import com.pusong.business.enums.TaskStatusEnum;
import com.pusong.business.mapper.PsTaskMainMapper;
import com.pusong.business.service.IPsContractInfoService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 任务完成审批
*/
@RequiredArgsConstructor
@Service
@Slf4j
public class TaskFinishApproverServiceImpl extends ApproverAbstractServiceImpl {
@Override
public String approverType() {
return ApproverTypeEnum.TASKFINISH.getCode();
}
private final PsTaskMainMapper taskMainMapper;
/**
* 1 审批成功 任务的状态变为成功
* @param psApproverRecord 神瀑类
*/
@Override
public void success(PsApproverRecord psApproverRecord) {
PsTaskMain info = taskMainMapper.selectById(psApproverRecord.getBusinessId());
info.setTaskStatus(TaskStatusEnum.FINISH.getCode());
taskMainMapper.updateById(info);
}
/**
* 审批拒绝 任务的状态变为进行中
* @param psApproverRecord
*/
@Override
public void fail(PsApproverRecord psApproverRecord) {
PsTaskMain info = taskMainMapper.selectById(psApproverRecord.getBusinessId());
info.setTaskStatus(TaskStatusEnum.ING.getCode());
taskMainMapper.updateById(info);
}
}

View File

@ -283,10 +283,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//todo 1已派单撤回任务派单不在任务列表展示
// 2未派单更新任务列表不在任务列表展示
}else{
if(StringUtils.isBlank(desc)){throw new ServiceException("请填写作废原因");}
//有收款点击作废填写作废原因后发起作废审批
ApproverService service = container.getService(ApproverTypeEnum.CANCELLA.getCode());
service.apply(contractCode,contractCode,desc, null);
service.apply(contractCode,contractCode,desc, infoVo.getContractStatus());
info.setContractStatus(ContractStatusEnum.CANAPPROVER.getCode());
}
@ -395,16 +396,14 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
/**
* 免费工单
* @param contractCode 合同编码
* @param businessType 服务类别
* @param businessProject 服务项目
*/
public void freeWork(String contractCode) {
public void freeWork(String contractCode,String businessType,String businessProject) {
PsContractInfoVo info = this.queryContractByCode(contractCode);
PsTaskMain psTaskMain = new PsTaskMain();
psTaskMain.setCompanyId(info.getCompanyId());
psTaskMain.setCustomId(info.getCustomId());
psTaskMain.setContractCode(contractCode);
psTaskMain.setTaskType(TaskTypeEnum.FREE.getCode());
psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode());
taskMainService.insert(psTaskMain);
//发起审批
ApproverService service = container.getService(ApproverTypeEnum.FREE.getCode());
service.apply(info.getContractCode(),info.getContractCode(),null, businessType+"@@"+businessProject);
}
private QueryWrapper<PsContractInfo> buildQueryWrapper(PsContractInfoQueryBo bo) {
@ -412,9 +411,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
//删除标志
qw.eq( "info.del_flag", 0);//删除标志
//合同表条件
qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"contract_status", bo.getContractStatus());
qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"contract_status", bo.getInContractStatus());
qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"contract_status", bo.getNotInContractStatus());
qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"info.contract_status", bo.getContractStatus());
qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"info.contract_status", bo.getInContractStatus());
qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"info.contract_status", bo.getNotInContractStatus());
qw.eq( StringUtils.isNotBlank(bo.getContractCode()),"info.contract_code", bo.getContractCode());
//客户表条件
qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName());
qw.like( StringUtils.isNotBlank(bo.getCustomMobile()),"cus.custom_mobile", bo.getCustomMobile());

View File

@ -1,9 +1,11 @@
package com.pusong.business.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.pusong.business.enums.ApproverTypeEnum;
import com.pusong.business.enums.PayStatusEnum;
import com.pusong.business.service.approver.ApproverContainer;
import com.pusong.business.service.approver.ApproverService;
import com.pusong.common.core.exception.ServiceException;
import com.pusong.common.core.utils.MapstructUtils;
import com.pusong.common.core.utils.StringUtils;
import com.pusong.common.mybatis.core.page.TableDataInfo;
@ -55,6 +57,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
eq(PsContractPay::getContractCode, contractCode).eq(PsContractPay::getDelFlag,0)
.eq(StringUtils.isNotBlank(business),PsContractPay::getBusinessType,business)
.eq(enu != null ,PsContractPay::getPayStatus, enu.getCode())
.notIn(PsContractPay::getPayStatus, PayStatusEnum.getStatus())//去掉无用的状态
.orderByAsc(PsContractPay::getPayDate));
return list == null?new ArrayList<>():list;
}
@ -81,7 +84,34 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
ApproverService service = container.getService(ApproverTypeEnum.PAY.getCode());
service.apply(pay.getId()+"",pay.getContractCode(),null, null);
}
/**
* 添加退款记录
*
* @param payBo 支付信息
* @return 是否新增成功
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void returnPay(List<MultipartFile> files, PsContractPayBo payBo){
PsContractPay pay = MapstructUtils.convert(payBo, PsContractPay.class);
if(StringUtils.equals("4",payBo.getPayType()) && CollectionUtils.isEmpty(files)){
throw new ServiceException("请上传对私二维码");
}
if(CollectionUtils.isNotEmpty(files)){
List<String> payCertifications = new ArrayList<>();
for(MultipartFile file : files){
SysOssVo vo = ossService.upload(file);
payCertifications.add(vo.getOssId()+"");
}
pay.setGathMain(StringUtils.join(payCertifications,","));
}
pay.setPayStatus(PayStatusEnum.PAYAPPO.getCode());
baseMapper.insert(pay);
//发起审批
ApproverService service = container.getService(ApproverTypeEnum.RETURN.getCode());
service.apply(pay.getId()+"",pay.getContractCode(),null, null);
}
/**
* 根据主键id查询回款记录
*
@ -89,8 +119,8 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
* @return 合同回款记录列表
*/
@Override
public PsContractPay queryById(Long id) {
return baseMapper.selectById(id);
public PsContractPayVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
@ -103,6 +133,20 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
public Boolean updateById(PsContractPay pay) {
return baseMapper.updateById(pay) > 0;
}
/**
* 修改合同回款记录
*
* @param bo 合同回款记录
* @return 是否修改成功
*/
// @Override
// public Boolean updateByBo(PsContractPayBo bo) {
// PsContractPay update = MapstructUtils.convert(bo, PsContractPay.class);
// validEntityBeforeSave(update);
// return baseMapper.updateById(update) > 0;
// }
/* *//**
* 查询合同回款记录
*

View File

@ -36,6 +36,8 @@ import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.info.InfoEndpoint;
import org.springframework.stereotype.Service;
import com.pusong.business.domain.PsTaskMain;
import com.pusong.business.mapper.PsTaskMainMapper;
@ -64,6 +66,9 @@ public class PsTaskServiceImpl implements IPsTaskService {
private final ISysOssService ossService;
@Resource
private ApproverContainer approverContainer;
@Autowired
private InfoEndpoint infoEndpoint;
/**
* 新增主任务
*
@ -297,7 +302,23 @@ public class PsTaskServiceImpl implements IPsTaskService {
appoint.setExecutor(executorId);
appointMapper.updateById(appoint);
}
/**
* 免费工单任务作废
* @param id 任务主表id
* @param desc 作废原因
*/
public void cancel(Long id,String desc){
PsTaskMain info = baseMapper.selectById(id);
if(!StringUtils.equals(TaskTypeEnum.FREE.getCode(),info.getTaskType())){
throw new ServiceException("只有免费工单的任务可以作废");
}
//发起审批
ApproverService service = approverContainer.getService(ApproverTypeEnum.TASKCANCE.getCode());
service.apply(id+"",info.getContractCode(),null,info.getTaskStatus());
//修改状态为审批中
info.setTaskStatus(TaskStatusEnum.CANCELAPPO.getCode());
baseMapper.updateById(info);
}
private QueryWrapper<PsTaskMain> buildQueryWrapper(PsTaskQueryBo bo) {
QueryWrapper<PsTaskMain> lqw = new QueryWrapper<PsTaskMain>();