diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java index 9dc7f5d..90a39be 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java @@ -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 freeWork(@org.jetbrains.annotations.NotNull String contractCode) { - psContractInfoService.freeWork(contractCode); + public R freeWork(@NotNull String contractCode,@NotNull String businessType,@NotNull String businessProject) { + psContractInfoService.freeWork(contractCode,businessType,businessProject); return R.ok(); } // diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java index 8f11f22..2844d68 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractOperateController.java @@ -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 addReturnRecord(@RequestPart("files") List files, + @Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception { + payService.addPay( files, psContractPayBo); + return R.ok(); + } + /** * 回传合同 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java index abeb38b..2606d5f 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java @@ -36,16 +36,39 @@ public class PsContractPayController extends BaseController { private final IPsContractPayService psContractPayService; - /* *//** + /** * 查询合同回款记录列表 - *//* + */ @SaCheckPermission("business:contractPay:list") @GetMapping("/list") - public TableDataInfo list(PsContractPayBo bo, PageQuery pageQuery) { - return psContractPayService.queryPageList(bo, pageQuery); + public List list(@NotBlank(message = "合同编码不能为空") String contractCode) { + return psContractPayService.queryListByContractCode(contractCode,null,null); + } + /** + * 获取合同回款记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("business:contractPay:query") + @GetMapping("/{id}") + public R 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 edit(@Validated(EditGroup.class) @RequestBody PsContractPayBo bo) { +// return toAjax(psContractPayService.updateById(bo)); +// } + + + /** * 导出合同回款记录列表 *//* @SaCheckPermission("business:contractPay:export") diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java index 57bf3df..c86b5df 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsTaskController.java @@ -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 taskReset(@NotNull("任务id不能为空") Long id,@NotNull("作废原因不能为空") String desc) { + psTaskMainService.cancel(id,desc); + return R.ok(); + } + // /** // * 导出主任务列表 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java index 2779f7e..b14a5aa 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractPay.java @@ -58,7 +58,7 @@ public class PsContractPay extends TenantEntity { private String payType; /** - * 支付方式(1扫码,2对公,3现金) + * 支付方式(1扫码,2对公,3现金,4对私) */ private String payMode; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java index e7cc772..f61291c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractPayBo.java @@ -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; // /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java index 9315474..cf9a517 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsContractPayVo.java @@ -68,7 +68,7 @@ public class PsContractPayVo implements Serializable { private String payType; /** - * 支付方式(1扫码,2对公,3现金) + * 支付方式(1扫码,2对公,3现金,4对私) */ private String payMode; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java index 23f890c..9088464 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverTypeEnum.java @@ -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; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java index c7c5648..47fd9a6 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/PayStatusEnum.java @@ -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 getStatus() { + return List.of(PAYAPPO.getCode(),PAYAPPOSUCC.getCode(),PAYAPPOFIL.getCode()); + } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java index 03b379b..84236fa 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/TaskStatusEnum.java @@ -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; diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index 8a75490..82b1473 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java @@ -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); /** * 查询符合条件的合同基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java index 9e1f608..a40c8a9 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractPayService.java @@ -36,14 +36,19 @@ public interface IPsContractPayService { * @param payBo 支付信息 */ void addPay(List files, PsContractPayBo payBo); - + /** + * 添加退款记录 + * @param files 支付凭证 + * @param payBo 支付信息 + */ + void returnPay(List files, PsContractPayBo payBo); /** * 根据主键id查询回款记录 * * @param id 查询条件 * @return 合同回款记录列表 */ - PsContractPay queryById(Long id); + PsContractPayVo queryById(Long id); /** * 根据id修改合同回款记录 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java index 5aa69ec..b0c9ded 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsTaskService.java @@ -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); /* *//** * 查询主任务 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java index 9a495e0..499acec 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.java @@ -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); } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java new file mode 100644 index 0000000..827f145 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/FreeApproverServiceImpl.java @@ -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) { + + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java index a8a4d25..3223a2c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PayContractApproverServiceImpl.java @@ -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); } } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java new file mode 100644 index 0000000..2561746 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/PublicApproverServiceImpl.java @@ -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) { + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java new file mode 100644 index 0000000..ce2e71f --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/ReturnApproverServiceImpl.java @@ -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); + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java new file mode 100644 index 0000000..8fbf5da --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskCancellaApproverServiceImpl.java @@ -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.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); + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java new file mode 100644 index 0000000..c93a43d --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/TaskFinishApproverServiceImpl.java @@ -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); + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 33cebe6..8413820 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -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 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()); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java index ef23670..3893c36 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -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 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 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; +// } + /* *//** * 查询合同回款记录 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index 2a2a891..7dcadd2 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -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 buildQueryWrapper(PsTaskQueryBo bo) { QueryWrapper lqw = new QueryWrapper();