package cn.iocoder.yudao.module.pms.convert.iotrhdailyreport;

import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttasktemplate.vo.IotProjectTaskTemplateRespVO;
import cn.iocoder.yudao.module.pms.controller.admin.iotrhdailyreport.vo.IotRhDailyReportRespVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttasktemplate.IotProjectTaskTemplateDO;
import cn.iocoder.yudao.module.pms.dal.dataobject.iotrhdailyreport.IotRhDailyReportDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;
import java.util.Map;

@Mapper
public interface IotRhDailyReportConvert {

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

    default List<IotRhDailyReportRespVO> convertList(List<IotRhDailyReportDO> list, Map<Long, DeptDO> deptMap) {
        return CollectionUtils.convertList(list, de -> convert(de, deptMap.get(de.getDeptId())));
    }

    default IotRhDailyReportRespVO convert(IotRhDailyReportDO user, DeptDO dept) {
        IotRhDailyReportRespVO userVO = BeanUtils.toBean(user, IotRhDailyReportRespVO.class);
        if (dept != null) {
            userVO.setDeptName(dept.getName());
        }
        return userVO;
    }

}
