package io.hmit.modules.job.task;

import io.hmit.modules.fhjw.dto.FhjwCaseDTO;
import io.hmit.modules.fhjw.entity.FhjwCaseEntity;
import io.hmit.modules.fhjw.service.FhjwCaseService;
import io.hmit.modules.sys.dto.SysUserDTO;
import io.hmit.modules.sys.entity.SysUserEntity;
import io.hmit.modules.sys.service.SysDeptService;
import io.hmit.modules.sys.service.SysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

@Component("caseInfoUpdateTask")
public class CaseInfoUpdateTask implements ITask {

    private Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    private FhjwCaseService fhjwCaseService;

    @Autowired
    private SysUserService sysUserService;


    @Override
    public void run(String params) {

        logger.debug("caseInfoUpdateTask定时任务正在执行，参数为：{}", params);

        Map<String, Object> param = new HashMap<>();
        param.put("flag","2");
        List<FhjwCaseDTO> dtos = fhjwCaseService.list(param);

        dtos.stream().forEach(item ->{
           Optional<SysUserDTO> dto =Optional.ofNullable(sysUserService.getByRealName(item.getUndertaker()));
           dto.ifPresent(user ->{
               item.setDeptId(user.getDeptId());
               item.setFlag("1");
               item.setUpdateDate(new Date());
               fhjwCaseService.update(item);
           });
        });

    }
}
