package com.bonus.material.task.service.impl;

import java.util.List;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bonus.material.task.mapper.TmTaskMapper;
import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.service.ITmTaskService;

/**
 * 任务Service业务层处理
 * 
 * @author xsheng
 * @date 2024-10-16
 */
@Service
public class TmTaskServiceImpl implements ITmTaskService {
    @Autowired
    private TmTaskMapper tmTaskMapper;

    /**
     * 查询任务
     * 
     * @param taskId 任务主键
     * @return 任务
     */
    @Override
    public TmTask selectTmTaskByTaskId(Long taskId) {
        return tmTaskMapper.selectTmTaskByTaskId(taskId);
    }

    /**
     * 查询任务列表
     * 
     * @param tmTask 任务
     * @return 任务
     */
    @Override
    public List<TmTask> selectTmTaskList(TmTask tmTask) {
        return tmTaskMapper.selectTmTaskList(tmTask);
    }

    /**
     * 新增任务
     * 
     * @param tmTask 任务
     * @return 结果
     */
    @Override
    public int insertTmTask(TmTask tmTask) {
        tmTask.setCreateTime(DateUtils.getNowDate());
        try {
            return tmTaskMapper.insertTmTask(tmTask);
        } catch (Exception e) {
            throw new ServiceException("错误信息描述");
        }
    }

    /**
     * 修改任务
     * 
     * @param tmTask 任务
     * @return 结果
     */
    @Override
    public int updateTmTask(TmTask tmTask) {
        tmTask.setUpdateTime(DateUtils.getNowDate());
        try {
            return tmTaskMapper.updateTmTask(tmTask);
        } catch (Exception e) {
            throw new ServiceException("错误信息描述");
        }
    }

    /**
     * 批量删除任务
     * 
     * @param taskIds 需要删除的任务主键
     * @return 结果
     */
    @Override
    public int deleteTmTaskByTaskIds(Long[] taskIds) {
        return tmTaskMapper.deleteTmTaskByTaskIds(taskIds);
    }

    /**
     * 删除任务信息
     * 
     * @param taskId 任务主键
     * @return 结果
     */
    @Override
    public int deleteTmTaskByTaskId(Long taskId) {
        return tmTaskMapper.deleteTmTaskByTaskId(taskId);
    }

    /**
     * 获取单个申请列表
     */
//    @Override
//    public List<TmTaskRequestVo> getLeaseAuditList(TmTaskRequestVo tmTaskRequestVo) {
//        Set<String> roles = SecurityUtils.getLoginUser().getRoles();
//        List<TmTaskRequestVo> tmTaskList;
//        if (roles.contains(MaterialConstants.STRING_ADMIN)) {
//            tmTaskList = tmTaskMapper.getAuditListByLeaseTmTask(tmTaskRequestVo);
//        } else {
//            String username = SecurityUtils.getLoginUser().getUsername();
//            tmTaskRequestVo.setCreateBy(username);
//            tmTaskList = tmTaskMapper.getAuditListByLeaseTmTaskByPeople(tmTaskRequestVo);
//        }
//        for (TmTaskRequestVo tmTask : tmTaskList) {
//            int count = 0;
//            if (tmTask != null) {
//                // 去查询任务分单表
//                List<LeaseApplyInfo> auditListByLeaseInfo = tmTaskMapper.getAuditListByLeaseInfo(tmTask);
//                if (auditListByLeaseInfo != null && !auditListByLeaseInfo.isEmpty()) {
//                    // 对领料任务集合查询具体详情
//                    for (LeaseApplyInfo leaseApplyInfo : auditListByLeaseInfo) {
//                        if (leaseApplyInfo != null) {
//                            // 去查询领料任务详情表
//                            List<LeaseApplyDetails> leaseApplyDetails = tmTaskMapper.getLeaseApplyDetails(leaseApplyInfo);
//                            if (leaseApplyDetails != null && !leaseApplyDetails.isEmpty()) {
//                                for (LeaseApplyDetails leaseApplyDetail : leaseApplyDetails) {
//                                    if (leaseApplyDetail != null && leaseApplyDetail.getPreNum() != null) {
//                                        // 统计预领数量
//                                        count += leaseApplyDetail.getPreNum();
//                                    }
//                                }
//                                // 塞入领料任务详情的集合中
//                                leaseApplyInfo.setLeaseApplyDetails(leaseApplyDetails);
//                            }
//                        }
//                    }
//                    // 存入领料任务实体集合
//                    tmTask.setLeaseApplyInfoList(auditListByLeaseInfo);
//                    tmTask.setRemark(auditListByLeaseInfo.get(0).getRemark());
//                }
//                // 塞入预领的合计数量
//                tmTask.setPreCountNum(count);
//            }
//        }
//        return tmTaskList;
//    }


}
