package cn.timer.api.utils.router.business;

import java.text.ParseException;

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

import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import cn.timer.api.controller.kqgl.service.KqglService;
import cn.timer.api.dto.kqmk.AttEvectionApprovalDto;
import cn.timer.api.dto.kqmk.AttLeaveApprovalDto;
import cn.timer.api.dto.spmk.FromData;
import cn.timer.api.utils.DateUtil;
import lombok.Builder;

/**
 * 请假-业务
 * 
 * @author Tang
 *
 */
@Service
public class LeaveBusiness extends SpmkAssoBusiness {

	@Autowired
	private KqglService kqglService;
	
	@Value("${config-8timer.environmental-science}")
	public String environmental_science;
	
	public void Logoutput(String science) {
		
		if(!("pro").equals(environmental_science)) {
			
			System.out.println(science);
		}else {
			System.out.println("");
		}
		
	}
	
	@Override
	public void handleApprove(JSONObject jsonObj) throws ParseException {
		// TODO Auto-generated method stub
		// 发起人企业id
		Integer orgCode = ObjectUtil.isNull(jsonObj.get("orgCode")) ? null : Convert.toInt(jsonObj.get("orgCode"));
		// 发起人id
		Integer id = jsonObj.getInt("id");
		
		// 审批汇总id
		String approveId = ObjectUtil.isNull(jsonObj.get("approveId",FromData.class)) ? null : jsonObj.get("approveId",FromData.class).getValue();
		// 请假类型 - 前端传中文
		String LeaveType = ObjectUtil.isNull(jsonObj.get("__LeaveType",FromData.class)) ? null : jsonObj.get("__LeaveType",FromData.class).getValue();
		// 开始时间
		String startTime = ObjectUtil.isNull(jsonObj.get("__startTime",FromData.class)) ? null : jsonObj.get("__startTime",FromData.class).getValue();
		// 结束时间
		String endTime = ObjectUtil.isNull(jsonObj.get("__endTime",FromData.class)) ? null : jsonObj.get("__endTime",FromData.class).getValue();
		// 时长
		String longTime = ObjectUtil.isNull(jsonObj.get("__longTime",FromData.class)) ? null : jsonObj.get("__longTime",FromData.class).getValue();
		// 请假事由
		String ReasonsForLeave = ObjectUtil.isNull(jsonObj.get("__ReasonsForLeave",FromData.class)) ? null : jsonObj.get("__ReasonsForLeave",FromData.class).getValue();
		// 上传文件
		String UploadAttachment = ObjectUtil.isNull(jsonObj.get("UploadAttachment",FromData.class)) ? null : jsonObj.get("UploadAttachment",FromData.class).getValue();
		
		AttLeaveApprovalDto laD = AttLeaveApprovalDto
				.builder()
				.userid(id)
				.orgcode(orgCode)
				.leaveid(Convert.toInt(approveId))
				.leavetype(Convert.toInt(LeaveType))
				.starttime(DateUtil.getFormat(startTime))
				.endtime(DateUtil.getFormat(endTime))
				.duration(Convert.toDouble(longTime))
				.build();
				
		Logoutput("请假:" + laD);
		// 调 考勤管理 业务-请假
		kqglService.attleaveapproval(laD);
	}

}