package org.jeecg.modules.stm.rectify.plan.service.impl;

import org.jeecg.modules.stm.rectify.approve.entity.StRectifyApprove;
import org.jeecg.modules.stm.rectify.approve.service.IStRectifyApproveService;
import org.jeecg.modules.stm.rectify.exec.entity.StRectifyExec;
import org.jeecg.modules.stm.rectify.exec.service.IStRectifyExecService;
import org.jeecg.modules.stm.rectify.plan.entity.StRectifyPlan;
import org.jeecg.modules.stm.rectify.plan.mapper.StRectifyPlanMapper;
import org.jeecg.modules.stm.rectify.plan.service.IStRectifyPlanService;
import org.jeecg.modules.stm.rectify.plan.vo.StRectifyPlanVo;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

/**
 * @Description: 整改计划
 * @Author: jeecg-boot
 * @Date: 2023-07-21
 * @Version: V1.0
 */
@Service
public class StRectifyPlanServiceImpl extends ServiceImpl<StRectifyPlanMapper, StRectifyPlan>
		implements IStRectifyPlanService {
	@Autowired
	IStRectifyApproveService stRectifyApproveService;
	@Autowired
	IStRectifyExecService stRectifyExecService;

	@SuppressWarnings("unused")
	@Override
	public IPage<StRectifyPlanVo> queryStRectifyPlanVoByPage(IPage<StRectifyPlanVo> page,
			StRectifyPlanVo stRectifyPlanVo) {
		// TODO Auto-generated method stub
		IPage<StRectifyPlanVo> stRectifyPlanVoList = baseMapper.queryStRectifyPlanVoByPage(page, stRectifyPlanVo);
		for (StRectifyPlanVo stRectifyPlanVoTemp : stRectifyPlanVoList.getRecords()) {
			stRectifyPlanVo.setId(stRectifyPlanVoTemp.getId());
			List<StRectifyApprove> stRectifyApproveList = stRectifyApproveService
					.queryApproveByPlanId(new ArrayList<StRectifyApprove>(), stRectifyPlanVo);
			List<StRectifyExec> stRectifyExecList = stRectifyExecService
					.queryExecByPlanId(new ArrayList<StRectifyExec>(), stRectifyPlanVo);
			String approveDesList="";
			String rectifyDesList="";
            SimpleDateFormat aDate=new SimpleDateFormat("yyyy-MM-dd");
			for (StRectifyApprove stRectifyApprove : stRectifyApproveList) {
				approveDesList=approveDesList+"审核时间："+aDate.format(stRectifyApprove.getApproveTime());
				if(stRectifyApprove.getApproveFlag().equals("3")){
					approveDesList=approveDesList+"，审核结果：通过，审核意见：";
				}else{
					approveDesList=approveDesList+"，审核结果：驳回，审核意见：";
				}
				approveDesList=approveDesList+stRectifyApprove.getApproveDes()+"\n";

			}
			//预留-暂时不用 黄健
			for (StRectifyExec stRectifyExec : stRectifyExecList) {
				rectifyDesList=rectifyDesList+aDate.format(stRectifyExec.getExecTime());
				rectifyDesList=rectifyDesList+stRectifyExec.getRectifyDes()+"\n";
			}
			stRectifyPlanVoTemp.setApproveDesList(approveDesList);
			stRectifyPlanVoTemp.setRectifyDesList(rectifyDesList);

		}
		return stRectifyPlanVoList;
	}

	@Override
	public void saveOrUpateStRectifyPlan(StRectifyPlan stRectifyPlan) {
		// TODO Auto-generated method stub
		if (stRectifyPlan.getId() == null) {
			baseMapper.insert(stRectifyPlan);
		} else {
			baseMapper.updateById(stRectifyPlan);
		}
	}

	@Override
	public void saveOrUpateStRectifyExecute(StRectifyPlan stRectifyPlan) {
		if (stRectifyPlan.getId() == null) {
			baseMapper.insert(stRectifyPlan);
		} else {
			baseMapper.updateById(stRectifyPlan);
		}
		stRectifyPlan = baseMapper.selectById(stRectifyPlan.getId());
		StRectifyExec stRectifyExec = new StRectifyExec();
		BeanUtils.copyProperties(stRectifyPlan, stRectifyExec);
		stRectifyExec.setProblemTaskId(stRectifyPlan.getProblemTaskId());
		stRectifyExec.setRectifyPlanId(stRectifyPlan.getId());
		stRectifyExec.setCreatedUser(stRectifyPlan.getApproveUser());
		stRectifyExec.setUpdatedUser(stRectifyPlan.getApproveUser());
		stRectifyExec.setExecTime(stRectifyPlan.getExecDate());
		stRectifyExec.setCreatedTime(null);
		stRectifyExec.setId(null);
		stRectifyExecService.save(stRectifyExec);
		// TODO Auto-generated method stub

	}

	@Override
	public void saveOrUpateStRectifyApprove(StRectifyPlan stRectifyPlan) {
		if (stRectifyPlan.getId() == null) {
			baseMapper.insert(stRectifyPlan);
		} else {
			baseMapper.updateById(stRectifyPlan);
		}
		stRectifyPlan = baseMapper.selectById(stRectifyPlan.getId());
		StRectifyApprove stRectifyApprove = new StRectifyApprove();
		BeanUtils.copyProperties(stRectifyPlan, stRectifyApprove);
		stRectifyApprove.setProblemTaskId(stRectifyPlan.getProblemTaskId());
		stRectifyApprove.setRectifyPlanId(stRectifyPlan.getId());
		stRectifyApprove.setCreatedUser(stRectifyPlan.getApproveUser());
		stRectifyApprove.setUpdatedUser(stRectifyPlan.getApproveUser());
		stRectifyApprove.setCreatedTime(null);
		stRectifyApprove.setId(null);
		stRectifyApproveService.save(stRectifyApprove);
		// TODO Auto-generated method stub

	}

}
