shiyunteng
2026-05-18 2d22e2697a48b6061745e674c20359fef4280052
feat:合同流程审批
4个文件已修改
38 ■■■■ 已修改文件
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/FlowCallBackController.java
@@ -2,6 +2,7 @@
import com.by4cloud.platformx.business.constant.FlowNameEnum;
import com.by4cloud.platformx.business.service.ContractService;
import com.by4cloud.platformx.flow.task.constant.TaskStatusEnum;
import com.by4cloud.platformx.flow.task.dto.ProcessInstanceParamDto;
import com.by4cloud.platformx.flow.task.dto.ProcessNodeRecordParamDto;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -33,7 +34,9 @@
     */
    @PostMapping("/startNodeEvent")
    public void startNodeEvent(@RequestBody ProcessNodeRecordParamDto recordParamDto){
        if (recordParamDto.getFlowName().equals(FlowNameEnum.合同审批.getName())) {
        }
    }
    /**
     * 任务结束事件
@@ -43,7 +46,14 @@
    @PostMapping("/endProcess")
    public void endProcessEvent(@RequestBody ProcessInstanceParamDto processInstanceParamDto) {
        if (processInstanceParamDto.getFlowName().equals(FlowNameEnum.合同审批.getName())) {
            contractService.startApproval(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+""));
            //通过后更新主表状态
            if (processInstanceParamDto.getTaskStatus()== TaskStatusEnum.YJS.getCode()){
                contractService.takeEffect(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+""));
            }
            //拒绝后回退主表状态
            if (processInstanceParamDto.getTaskStatus()== TaskStatusEnum.JJ.getCode()){
                contractService.refuseApproval(Long.valueOf(processInstanceParamDto.getParamMap().get("id")+""));
            }
        }
    }
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/ContractService.java
@@ -22,4 +22,8 @@
    R startApproval(Long id);
    R genCurrentOverdue();
    R refuseApproval(Long id);
    void takeEffect(Long id);
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/ContractServiceImpl.java
@@ -193,14 +193,14 @@
        if (r1.getCode() == 1) {
            return R.failed("流程启动失败");
        }
        contract.setContractStatus(2);
        contract.setContractStatus(1);
        baseMapper.updateById(contract);
        return R.ok();
    }
    public void takeEffect(Long id) {
        Contract contract = baseMapper.selectById(id);
        contract.setContractStatus(1);
        contract.setContractStatus(2);
        baseMapper.updateById(contract);
        ContractPaymentSchedule fitstSchedule = contractPaymentScheduleMapper.selectOne(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId())
                .orderByAsc(ContractPaymentSchedule::getCreateTime).last("limit 1"));
@@ -399,4 +399,12 @@
        }
        return R.ok();
    }
    @Override
    public R refuseApproval(Long id) {
        Contract contract = baseMapper.selectById(id);
        contract.setContractStatus(0);
        baseMapper.updateById(contract);
        return R.ok();
    }
}
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -13,7 +13,6 @@
import com.by4cloud.platformx.business.mapper.HistoryOverdueMapper;
import com.by4cloud.platformx.business.mapper.PaymentConfirmMapper;
import com.by4cloud.platformx.business.service.BusinessCustomerService;
import com.by4cloud.platformx.business.service.ContractPaymentScheduleService;
import com.by4cloud.platformx.business.service.ContractService;
import com.by4cloud.platformx.business.service.PaymentConfirmService;
import com.by4cloud.platformx.common.core.util.R;
@@ -23,6 +22,7 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 收款确认
@@ -169,6 +169,14 @@
            entity.setConfirmTime(new Date());
            baseMapper.insert(entity);
        }
        // 查询所有付款阶段是否都付款完成
        List<ContractPaymentSchedule> scheduleList = contractPaymentScheduleMapper.selectList(Wrappers.<ContractPaymentSchedule>lambdaQuery().eq(ContractPaymentSchedule::getContractId,contract.getId()));
        if (ArrayUtil.isNotEmpty(scheduleList.toArray())){
            if (scheduleList.stream().allMatch(item -> Objects.equals(item.getPaymentStatus(), 2))){
                contract.setContractStatus(3);
                contractService.updateById(contract);
            };
        }
        return R.ok();
    }
}