xiangpei
2025-03-04 ab9df564cda29254ee53bb366d8346978b5bab9a
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -11,10 +11,7 @@
import com.ycl.common.enums.business.HandlerTypeEnum;
import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.domain.entity.ProcessLog;
import com.ycl.domain.json.DelegateData;
import com.ycl.domain.json.JumpData;
import com.ycl.domain.json.RejectData;
import com.ycl.domain.json.SuperviseData;
import com.ycl.domain.json.*;
import com.ycl.domain.query.ProcessLogQuery;
import com.ycl.domain.vo.ProcessLogVO;
import com.ycl.framework.utils.PageUtil;
@@ -58,7 +55,7 @@
     * @param eventDataJson json扩展内容
     */
    @Override
    public void add(String taskId, String flowInsId, ProcessLogEventTypeEnum eventType, Long projectId, String eventDataJson) {
    public void add(String taskId, String flowInsId, ProcessLogEventTypeEnum eventType, String projectId, String eventDataJson) {
        ProcessLog log = new ProcessLog();
        log.setTaskId(taskId);
        log.setProcessInsId(flowInsId);
@@ -137,6 +134,30 @@
        return CollectionUtils.isNotEmpty(list);
    }
    @Override
    public Boolean taskIsHangup(String taskId, String processInsId) {
        Long num = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getTaskId, taskId)
                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.HANGUP, ProcessLogEventTypeEnum.CANCEL_HANGUP)
                .count();
        return num % 2 != 0;
    }
    @Override
    public Boolean taskIsTeamwork(String taskId, String processInsId) {
        ProcessLog log = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getTaskId, taskId)
                .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.TEAM_WORK)
                .one();
        if (Objects.isNull(log)) {
            return Boolean.FALSE;
        } else {
            // 判断协同人是否全部完成了协同。TODO
        }
        return null;
    }
    @Override
    public Result projectProcessLogPage(ProcessLogQuery query) {
@@ -163,6 +184,8 @@
                        superviseData.setSenderName(user.getNickName() + "(" + (Objects.nonNull(user.getDept()) ? user.getDept().getDeptName() : "无部门") + ")");
                    }
                    log.setEventDataObj(superviseData);
                } else if (ProcessLogEventTypeEnum.HANGUP.equals(log.getEventType())) {
                    log.setEventDataObj(JSON.parseObject(log.getEventDataJson(), HangupData.class));
                }
            }
        });