diff --git a/pusong-admin/src/main/resources/application.yml b/pusong-admin/src/main/resources/application.yml index a60bc45..01c484e 100644 --- a/pusong-admin/src/main/resources/application.yml +++ b/pusong-admin/src/main/resources/application.yml @@ -61,8 +61,6 @@ user: spring: application: name: ${ruoyi.name} - main: - allow-circular-references: true threads: # 开启虚拟线程 仅jdk21可用 virtual: 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 cc22e21..9dc7f5d 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 @@ -164,7 +164,18 @@ public class PsContractInfoController extends BaseController { } - + /** + * 免费派单 + * @param contractCode 合同编码 + * @return + */ + @Log(title = "免费派单") + @SaCheckPermission("business:task:list") + @GetMapping("/freeWork") + public R freeWork(@org.jetbrains.annotations.NotNull String contractCode) { + psContractInfoService.freeWork(contractCode); + return R.ok(); + } // // /** // * 获取合同基本信息详细信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java index 4218141..3611075 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCustomController.java @@ -177,7 +177,7 @@ public class PsCustomController extends BaseController { @SaCheckPermission("business:customInfo:list") @RepeatSubmit @Log(title = "主动认领") - @GetMapping("/stop") + @GetMapping("/claim") public R claim(@NotNull Long customerId) { psCustomInfoService.claim(customerId); return R.ok(); 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 8f02df5..57bf3df 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 @@ -144,19 +144,6 @@ public class PsTaskController extends BaseController { } - /** - * 免费派单 - * @param contractCode 合同编码 - * @return - */ - @Log(title = "免费派单") - @SaCheckPermission("business:task:list") - @GetMapping("/freeWork") - public R freeWork(@NotNull String contractCode) { - psTaskMainService.freeWork(contractCode); - return R.ok(); - } - // /** // * 导出主任务列表 // */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java index 265b49f..8452dd1 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java @@ -117,4 +117,9 @@ public class PsContractInfoBo { * 合同签章状态CommonStatusEnum */ private String signStatus; + + /** + * 合同状态 + */ + private String contractStatusCode; } 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 fb00020..8a75490 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 @@ -101,6 +101,12 @@ public interface IPsContractInfoService { * @return */ void invoice(String contractCode); + + /** + * 免费工单 + * @param contractCode 合同编码 + */ + void freeWork(String contractCode); /** * 查询符合条件的合同基本信息列表 * 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 93a2975..5aa69ec 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,11 +99,7 @@ public interface IPsTaskService { * @param executorId 任务新的执行者id */ void taskReset(Long id,Long executorId); - /** - * 免费工单 - * @param contractCode 合同编码 - */ - void freeWork(String contractCode); + /* *//** * 查询主任务 * 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 new file mode 100644 index 0000000..9a495e0 --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/CancellaApproverServiceImpl.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.enums.ApproverTypeEnum; +import com.pusong.business.enums.CommonStatusEnum; +import com.pusong.business.enums.ContractStatusEnum; +import com.pusong.business.service.IPsContractBusinessService; +import com.pusong.business.service.IPsContractInfoService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 合同作废审批 + */ +@RequiredArgsConstructor +@Service +@Slf4j +public class CancellaApproverServiceImpl extends ApproverAbstractServiceImpl { + @Override + public String approverType() { + return ApproverTypeEnum.CANCELLA.getCode(); + } + private final IPsContractInfoService contractInfoService; + + /** + * 1 审批成功 合同作废成功,合同状态显示为【已作废】 + * @param psApproverRecord 神瀑类 + */ + @Override + public void success(PsApproverRecord psApproverRecord) { + PsContractInfo psContractInfo = new PsContractInfo(); + psContractInfo.setContractCode(psApproverRecord.getContractCode()); + psContractInfo.setContractStatus(ContractStatusEnum.CANCELLATION.getCode()); + contractInfoService.updateByCode(psContractInfo); + } + + /** + * 审批拒绝 合同的状态变回原状态,并在原状态下方展示【拒绝原因】 + * @param psApproverRecord + */ + @Override + public void fail(PsApproverRecord psApproverRecord) { + PsContractInfo info = new PsContractInfo(); + info.setContractCode(psApproverRecord.getContractCode()); + info.setRollBackStatus(CommonStatusEnum.FAIL.getCode()); + contractInfoService.updateByCode(info); + } +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java index ca8936d..2778da6 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/UpdateContractApproverServiceImpl.java @@ -1,21 +1,29 @@ package com.pusong.business.service.approver.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +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.domain.bo.PsContractInfoBo; import com.pusong.business.domain.vo.PsContractInfoVo; -import com.pusong.business.enums.ApproverStatusEnum; -import com.pusong.business.enums.ApproverTypeEnum; -import com.pusong.business.enums.CommonStatusEnum; +import com.pusong.business.enums.*; +import com.pusong.business.mapper.PsTaskAppointMapper; +import com.pusong.business.mapper.PsTaskMainMapper; import com.pusong.business.service.IPsContractBusinessService; import com.pusong.business.service.IPsContractInfoService; +import com.pusong.business.service.IPsTaskService; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.stream.Collectors; + /** * 修改合同审批处理类 */ @@ -29,9 +37,13 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm } private final IPsContractBusinessService businessService; private final IPsContractInfoService contractInfoService; + private final IPsTaskService taskService; + private final PsTaskMainMapper taskMainMapper; + private final PsTaskAppointMapper appointMapper; /** - * 1 审批成功合同已派单:任务重置 + * 1 审批成功 合同状态变为待派单 合同已派单:任务重置 + * * @param psApproverRecord 神瀑类 */ @Override @@ -49,9 +61,24 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm 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); + //5.任务状态变为待派单,子任务删除 + List task = taskMainMapper.selectList(Wrappers.lambdaQuery().eq(PsTaskMain::getContractCode, psApproverRecord.getContractCode()).eq(PsTaskMain::getDelFlag, 0)); + List list = task.stream().map(PsTaskMain::getId).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(list)){ + return; + } + //任务变为待派单 + taskMainMapper.update(Wrappers.lambdaUpdate() + .set(PsTaskMain::getTaskStatus, TaskStatusEnum.INIT.getCode()) + .in(PsTaskMain::getDelFlag,0) + .in(PsTaskMain::getId,list)); + //删除子任务 + appointMapper.update(Wrappers.lambdaUpdate().set(PsTaskAppoint::getAppointStatus, TaskStatusEnum.AppointStatusEnum.CANCEL.getCode()).in(PsTaskAppoint::getTaskId,list)); } /** * 修改合同后操作 @@ -67,8 +94,17 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm } } + + /** + * 审批失败合同状态变为原状态 + * @param psApproverRecord + */ @Override public void fail(PsApproverRecord psApproverRecord) { - + PsContractInfoBo bo = JSON.parseObject(psApproverRecord.getUpdateData(),PsContractInfoBo.class); + PsContractInfo add = new PsContractInfo(); + add.setContractCode(psApproverRecord.getContractCode()); + add.setContractStatus(bo.getContractStatusCode()); + contractInfoService.updateByCode(add); } } 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 6421b72..33cebe6 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 @@ -253,14 +253,15 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { //5.已回款之后的合同修改后走审批 if(ContractStatusEnum.isReturn(src.getContractStatus())){ + bo.setContractStatusCode(src.getContractStatus()); //发起审批 ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode()); service.apply(bo.getContractCode(),bo.getContractCode(),bo.getUpdateDesc(), JSON.toJSONString(bo)); + PsContractInfo info = new PsContractInfo(); + info.setContractCode(bo.getContractCode()); + info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode()); + updateByCode(info); } - PsContractInfo info = new PsContractInfo(); - info.setContractCode(bo.getContractCode()); - info.setContractStatus(ContractStatusEnum.UPDATEAPPROVER.getCode()); - updateByCode(info); return true; } @@ -391,7 +392,20 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode()); taskMainService.insert(psTaskMain); } - + /** + * 免费工单 + * @param contractCode 合同编码 + */ + public void freeWork(String contractCode) { + 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); + } private QueryWrapper buildQueryWrapper(PsContractInfoQueryBo bo) { QueryWrapper qw = Wrappers.query(); @@ -489,6 +503,9 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } } + + + /** * 查询合同基本信息 * 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 789be67..2a2a891 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 @@ -62,7 +62,6 @@ public class PsTaskServiceImpl implements IPsTaskService { private final IPsTaskMediaService mediaService; private final IPsCompanyInfoService companyInfoService; private final ISysOssService ossService; - private final IPsContractInfoService psContractInfoService; @Resource private ApproverContainer approverContainer; /** @@ -299,20 +298,6 @@ public class PsTaskServiceImpl implements IPsTaskService { appointMapper.updateById(appoint); } - /** - * 免费工单 - * @param contractCode 合同编码 - */ - public void freeWork(String contractCode) { - PsContractInfoVo info = psContractInfoService.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()); - this.insert(psTaskMain); - } private QueryWrapper buildQueryWrapper(PsTaskQueryBo bo) { QueryWrapper lqw = new QueryWrapper();