package cn.iocoder.yudao.module.bpm.convert.oa;

import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.worktask.BpmOAWorkTaskReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.worktask.BpmOAWorkTaskRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAWorkTaskDO;
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 分配任务 Convert
 *
 * @author 芋艿
 */
@Mapper
public interface BpmOAWorkTaskConvert {

    BpmOAWorkTaskConvert INSTANCE = Mappers.getMapper(BpmOAWorkTaskConvert.class);

    BpmOAWorkTaskDO convert(BpmOAWorkTaskReqVO bean);

    default BpmOAWorkTaskRespVO convert(BpmOAWorkTaskDO workTask, AdminUserRespDTO userRespDTO, DeptRespDTO deptRespDTO, String taskId) {

        BpmOAWorkTaskRespVO respVO = BeanUtils.toBean(workTask, BpmOAWorkTaskRespVO.class);

        respVO.setUserName(userRespDTO.getNickname());
        respVO.setDeptName(deptRespDTO.getName());
        respVO.setTaskId(taskId);

        return respVO;
    }
}
