package com.zcloud.controller.bus;

import java.io.File;
import java.util.*;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.controller.app.highriskwork.Model;
import com.zcloud.entity.hotWorkApplication.Color;
import com.zcloud.entity.hotWorkApplication.Node;
import com.zcloud.entity.hotWorkApplication.Overseer;
import com.zcloud.entity.system.Dictionaries;
import com.zcloud.entity.system.User;
import com.zcloud.service.bus.*;
import com.zcloud.service.highriskwork.*;
import com.zcloud.service.system.DictionariesService;
import com.zcloud.util.*;
import com.zcloud.util.message.MessageService;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.session.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.apache.shiro.authz.annotation.RequiresPermissions;

import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;

/**
 * 说明:动火审批表
 * 作者:luoxiaobao
 * 时间:2022-04-27
 * 官网:www.zcloudchina.com
 */
@Controller
@RequestMapping("/hotworkapplication")
public class HotWorkApplicationController extends BaseController {

	@Autowired
	private HotWorkApplicationService hotworkapplicationService;
	@Autowired
	private HotWorkApplicationUserService hotWorkApplicationUserService;
	@Autowired
	private HotworkToMeasuresService hotworkToMeasuresService;
	@Autowired
	private ImgFilesService imgfilesService;
	@Autowired
	private SpecialUserService specialUserService;
	@Autowired
	private CorpInfoService corpinfoService;
	@Autowired
	private HotWorkSafetyMethodRecordService hotWorkSafetyMethodRecordService;
	@Autowired
	private HotWorkApplicationDelayedService hotWorkApplicationDelayedService;
	@Autowired
	private NoticeRegulatoryService noticeRegulatoryService;
	@Autowired
	private MessageService messageService;

	@Autowired
	private DictionariesService dictionariesService;

	/**新增
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/add")
	@RequiresPermissions("hotwork:add")
	@ResponseBody
	public Object add() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("HOTWORKAPPLICATION_ID", this.get32UUID());	//主键
		hotworkapplicationService.save(pd);
		map.put("result", errInfo);
		return map;
	}

	/**删除
	 * @param out
	 * @throws Exception
	 */
	@RequestMapping(value="/delete")
	@RequiresPermissions("hotwork:del")
	@ResponseBody
	public Object delete() throws Exception{
		Map<String,String> map = new HashMap<String,String>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		hotworkapplicationService.delete(pd);
		map.put("result", errInfo);				//返回结果
		return map;
	}

	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/edit")
	@RequiresPermissions("hotwork:edit")
	@ResponseBody
	public Object edit() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		hotworkapplicationService.edit(pd);
		map.put("result", errInfo);
		return map;
	}

	/**列表
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/list")
	@RequiresPermissions("hotwork:list")
	@ResponseBody
	public Object list(Page page) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		String KEYWORDS = pd.getString("KEYWORDS");						//关键词检索条件
		if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim());
		pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());	//企业ID
		pd = Jurisdiction.getUserDataJurisdiction(pd);
//		if (!"1".equals(Jurisdiction.getIS_MAIN())){
//			pd.put("myApprove",Jurisdiction.getUSER_ID());
//		}
		page.setPd(pd);
		List<PageData>	varList = hotworkapplicationService.list(page);	//列出HotWorkApplication列表

		List<PageData> hotUserAllList = hotWorkApplicationUserService.getUserByHot(varList);

//		map.put("varList", varList);
		map.put("varList", hotUserAllList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}

	 /**去修改页面获取数据
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/goEdit")
//	@RequiresPermissions("hotwork:edit")
	@ResponseBody
	public Object goEdit() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd = hotworkapplicationService.findById(pd);	//根据ID读取
		if( Tools.isEmpty(pd) || Tools.isEmpty(pd.get("HOTWORKAPPLICATION_ID"))){
			map.put("hotUserList", "");
			map.put("result", "ERROR");
			map.put("msg", "未找到该动火申请信息,请联系管理员!");
			return map;
		}
		if(!Tools.isEmpty(pd.get("JOB_TYPE_INDEX"))){
			if("0".equals(pd.getString("JOB_TYPE_INDEX"))){
				pd.put("JOB_TYPE_NAME","内部作业");
			}else if("1".equals(pd.getString("JOB_TYPE_INDEX"))){
				pd.put("JOB_TYPE_NAME","相关方作业");
			}
		}
		if(!Tools.isEmpty(pd.get("HOT_WORK_LEVEL_INDEX"))){
			if("0".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","特级");
			}else if("1".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","一级");
			}else if("2".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","二级");
			}else if("3".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","三级");
			}
		}
		pd.put("HOT_WORK_OPERATOR_NAME","");
		if(!Tools.isEmpty(pd)){
			PageData hotUser = new PageData();
			hotUser.put("FOREIGN_KEY",pd.getString("HOTWORKAPPLICATION_ID"));
			List<PageData> hotUserAllList = hotWorkApplicationUserService.listAll(hotUser);

			String [] userKey =new String[]{"APPLY_USER_ID","HOT_WORK_USER_ID","PROJECT_UNIT_LEADER_ID","SITE_LEADER_ID",
					"UNIT_LEADER_ID","ISSUING_USER_ID",
					"SAFETY_DIRECTOR_USER_ID" ,"GAS_TESTING_USER_ID"};
			for (PageData userPageData : hotUserAllList){
				String type = userPageData.get("STATE").toString();
				if("0".equals(type)){ // 申请办理人
					pd.put("APPLY_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("APPLY_USER_NAME",userPageData.getString("userName"));
					pd.put("APPLY_USER_ID",userPageData.getString("USER_ID"));
				}else if("1".equals(type)){ // 动火单位确认人
					pd.put("HOT_WORK_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_USER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_USER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("2".equals(type)){ // 项目发包单位
					pd.put("PROJECT_UNIT_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("PROJECT_UNIT_LEADER_NAME",userPageData.getString("userName"));
					pd.put("PROJECT_UNIT_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("PROJECT_UNIT_LEADER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("PROJECT_UNIT_LEADER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("3".equals(type)){ // 现场管辖单位负责人
					pd.put("UNIT_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("UNIT_LEADER_NAME",userPageData.getString("userName"));
					pd.put("UNIT_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("UNIT_LEADER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("UNIT_LEADER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("4".equals(type)){ //动火许可签发单位负责人
					pd.put("ISSUING_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("ISSUING_USER_NAME",userPageData.getString("userName"));
					pd.put("ISSUING_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("ISSUING_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("ISSUING_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("5".equals(type)){ // 安全总监审批
					pd.put("SAFETY_DIRECTOR_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("SAFETY_DIRECTOR_USER_NAME",userPageData.getString("userName"));
					pd.put("SAFETY_DIRECTOR_PHONE",userPageData.getString("userPhone"));
					pd.put("SAFETY_DIRECTOR_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SAFETY_DIRECTOR_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("6".equals(type)){ // 现场负责人接收
					pd.put("SITE_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("SITE_LEADER_NAME",userPageData.getString("userName"));
					pd.put("SITE_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("SITE_DIRECTOR_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SITE_DIRECTOR_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("7".equals(type)){ // 动火前
					pd.put("HOT_WORK_PERSON_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_PERSON_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_PERSON_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_PERSON_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_PERSON_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("8".equals(type)){ // 现在负责人
					pd.put("PERSON_CONFIRM_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("PERSON_CONFIRM_USER_NAME",userPageData.getString("userName"));
					pd.put("PERSON_CONFIRM_PHONE",userPageData.getString("userPhone"));
					pd.put("PERSON_CONFIRM_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("PERSON_CONFIRM_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("9".equals(type)){ // 动火后
					pd.put("HOT_WORK_AFTER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_AFTER_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_AFTER_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_AFTER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_AFTER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("10".equals(type)){ // 延时监火
					pd.put("TIME_LAPSE_FIREMAN_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("TIME_LAPSE_FIREMAN_NAME",userPageData.getString("userName"));
					pd.put("TIME_LAPSE_FIREMAN_PHONE",userPageData.getString("userPhone"));
					pd.put("TIME_LAPSE_FIREMAN_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("TIME_LAPSE_FIREMAN_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}
				else if("21".equals(type)){ // 动火操作人
					String userName = userPageData.getString("userName2") +",";
					String oldName = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_NAME"))?"":pd.get("HOT_WORK_OPERATOR_NAME").toString();
					pd.put("HOT_WORK_OPERATOR_NAME",oldName + userName);
				}else if("22".equals(type)){ // 动火操作人
					pd.put("SUPERVISOR_OF_HOT_WORK_UNIT",userPageData.getString("USER_ID"));
					String userName = userPageData.getString("userName2") +",";
					String oldName = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_NAME"))?"":pd.get("HOT_WORK_OPERATOR_NAME").toString();
					pd.put("SUPERVISOR_OF_HOT_WORK_UNIT_NAME",oldName + userName);
				}else if("24".equals(type)){ // 需要气体检测
					pd.put("GAS_TESTING_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("GAS_TESTING_USER_NAME",userPageData.getString("userName"));
					pd.put("GAS_TESTING_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("GAS_TESTING_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("GAS_TESTING_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("30".equals(type)){ // 特级动火 动火负责确认人部门
					pd.put("projectCompetent_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectCompetent_USER_NAME",userPageData.getString("userName"));
					pd.put("projectCompetent_USER_ID",userPageData.getString("USER_ID"));
					pd.put("projectCompetent_PHONE",userPageData.getString("userPhone"));
					pd.put("projectCompetent_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectCompetent_TYPE",userPageData.getString("TYPE"));
				}else if("31".equals(type)){ // 特级动火 项目主管初审人员部门
					pd.put("projectSupervisor_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectSupervisor_USER_NAME",userPageData.getString("userName"));
					pd.put("projectSupervisor_PHONE",userPageData.getString("userPhone"));
					pd.put("projectCompetent_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectSupervisor_TYPE",userPageData.getString("TYPE"));
				}else if("32".equals(type)){ // 特级动火 项目主管负责人部门
					pd.put("projectPreliminarily_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectPreliminarily_USER_NAME",userPageData.getString("userName"));
					pd.put("projectPreliminarily_PHONE",userPageData.getString("userPhone"));
					pd.put("projectPreliminarily_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("projectPreliminarily_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectPreliminarily_TYPE",userPageData.getString("TYPE"));
				}else if("33".equals(type)){ // 特级动火 分公司安全总监部门
					pd.put("inspectorGeneral_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("inspectorGeneral_USER_NAME",userPageData.getString("userName"));
					pd.put("inspectorGeneral_PHONE",userPageData.getString("userPhone"));
					pd.put("inspectorGeneral_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("inspectorGeneral_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("inspectorGeneral_TYPE",userPageData.getString("TYPE"));
				}else if("34".equals(type)){ //分公司主要负责人
					pd.put("OFFICE_RESPOMSIBLE_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("OFFICE_RESPOMSIBLE_USER_NAME",userPageData.getString("userName"));
					pd.put("OFFICE_RESPOMSIBLE_PHONE",userPageData.getString("userPhone"));
					pd.put("OFFICE_RESPOMSIBLE_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("OFFICE_RESPOMSIBLE_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("OFFICE_RESPOMSIBLE_TYPE",userPageData.getString("TYPE"));
				}
			}
		}
		List<PageData>	safetymethodrecordList = hotWorkSafetyMethodRecordService.listAll(pd);//其它安全措施明细集合
		map.put("safetymethodrecordList", safetymethodrecordList);
		List<PageData> delayedList = hotWorkApplicationDelayedService.listAll(pd);
		map.put("delayedList", delayedList);
		map.put("pd", pd);
		map.put("result", errInfo);
		return map;
	}

	/**去修改页面获取数据
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/goSuperEdit")
	@ResponseBody
	public Object goSuperEdit() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd = hotworkapplicationService.findById(pd);	//根据ID读取
		if(pd.getString("HOT_WORK_METHOD_ID").contains(",")){
			String[] array = pd.getString("HOT_WORK_METHOD_ID").split(",");
			List<Dictionaries> name =  dictionariesService.listSubDictByIds(array);
			String HOT_WORK_METHOD_NAME = "";

			for(Dictionaries dictionaries:name){
				HOT_WORK_METHOD_NAME += dictionaries.getNAME() + ",";
			}
			if(HOT_WORK_METHOD_NAME.charAt(HOT_WORK_METHOD_NAME.length()-1) == ','){  //注释:判断字符串最后一位是否是"," 是则去掉,
				HOT_WORK_METHOD_NAME =  HOT_WORK_METHOD_NAME.substring(0, HOT_WORK_METHOD_NAME.length()-1);
				pd.put("HOT_WORK_METHOD_NAME",HOT_WORK_METHOD_NAME);
			}
		}

		PageData corpinfo = corpinfoService.findById(pd);
		if( Tools.isEmpty(pd) || Tools.isEmpty(pd.getString("HOTWORKAPPLICATION_ID"))){
			map.put("hotUserList", "");
			map.put("result", "ERROR");
			map.put("msg", "未找到该动火申请信息,请联系管理员!");
			return map;
		}
		if(!Tools.isEmpty(pd.getString("JOB_TYPE_INDEX"))){
			if("0".equals(pd.getString("JOB_TYPE_INDEX"))){
				pd.put("JOB_TYPE_NAME","内部作业");
			}else if("1".equals(pd.getString("JOB_TYPE_INDEX"))){
				pd.put("JOB_TYPE_NAME","相关方作业");
			}
		}
		if(!Tools.isEmpty(pd.getString("HOT_WORK_LEVEL_INDEX"))){
			if("0".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","特级");
			}else if("1".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","一级");
			}else if("2".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","二级");
			}else if("3".equals(pd.getString("HOT_WORK_LEVEL_INDEX"))){
				pd.put("HOT_WORK_LEVEL_NAME","三级");
			}
		}
		pd.put("HOT_WORK_OPERATOR_NAME","");
		if(!Tools.isEmpty(pd)){
			PageData hotUser = new PageData();
			hotUser.put("FOREIGN_KEY",pd.getString("HOTWORKAPPLICATION_ID"));
			List<PageData> hotUserAllList = hotWorkApplicationUserService.listAll(hotUser);
			List<PageData> specialUserList = new ArrayList<PageData>();
			String [] userKey =new String[]{"APPLY_USER_ID","HOT_WORK_USER_ID","PROJECT_UNIT_LEADER_ID","SITE_LEADER_ID",
					"UNIT_LEADER_ID","ISSUING_USER_ID",
					"SAFETY_DIRECTOR_USER_ID" ,"GAS_TESTING_USER_ID"};
			for (PageData userPageData : hotUserAllList){
				String type = userPageData.get("STATE").toString();
				if("0".equals(type)){ // 申请办理人
					pd.put("APPLY_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("APPLY_USER_NAME",userPageData.getString("userName"));
					pd.put("APPLY_USER_ID",userPageData.getString("USER_ID"));
				}else if("1".equals(type)){ // 动火单位确认人
					pd.put("HOT_WORK_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("HOT_WORK_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_USER_ID",userPageData.getString("USER_ID"));
					pd.put("HOT_WORK_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_USER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_USER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("2".equals(type)){ // 项目发包单位
					pd.put("PROJECT_UNIT_LEADER_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("PROJECT_UNIT_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("PROJECT_UNIT_LEADER_ID",userPageData.getString("USER_ID"));
					pd.put("PROJECT_UNIT_LEADER_NAME",userPageData.getString("userName"));
					pd.put("PROJECT_UNIT_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("PROJECT_UNIT_LEADER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("PROJECT_UNIT_LEADER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("3".equals(type)){ // 现场管辖单位负责人
					pd.put("UNIT_LEADER_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("UNIT_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("UNIT_LEADER_ID",userPageData.getString("USER_ID"));
					pd.put("UNIT_LEADER_NAME",userPageData.getString("userName"));
					pd.put("UNIT_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("UNIT_LEADER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("UNIT_LEADER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("4".equals(type)){ //动火许可签发单位负责人
					pd.put("ISSUING_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("ISSUING_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("ISSUING_USER_ID",userPageData.getString("USER_ID"));
					pd.put("ISSUING_USER_NAME",userPageData.getString("userName"));
					pd.put("ISSUING_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("ISSUING_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("ISSUING_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("5".equals(type)){ // 安全总监审批
					pd.put("SAFETY_DIRECTOR_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("SAFETY_DIRECTOR_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("SAFETY_DIRECTOR_USER_ID",userPageData.getString("USER_ID"));
					pd.put("SAFETY_DIRECTOR_USER_NAME",userPageData.getString("userName"));
					pd.put("SAFETY_DIRECTOR_PHONE",userPageData.getString("userPhone"));
					pd.put("SAFETY_DIRECTOR_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SAFETY_DIRECTOR_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("6".equals(type)){ // 现场负责人接收
					pd.put("SITE_LEADER_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("SITE_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("SITE_LEADER_ID",userPageData.getString("USER_ID"));
					pd.put("SITE_LEADER_NAME",userPageData.getString("userName"));
					pd.put("SITE_LEADER_PHONE",userPageData.getString("userPhone"));
					pd.put("SITE_DIRECTOR_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SITE_DIRECTOR_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("7".equals(type)){ // 动火前
					pd.put("HOT_WORK_PERSON_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("HOT_WORK_PERSON_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_PERSON_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_PERSON_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_PERSON_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_PERSON_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("8".equals(type)){ // 现在负责人
					pd.put("PERSON_CONFIRM_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("PERSON_CONFIRM_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("PERSON_CONFIRM_USER_NAME",userPageData.getString("userName"));
					pd.put("PERSON_CONFIRM_PHONE",userPageData.getString("userPhone"));
					pd.put("PERSON_CONFIRM_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("PERSON_CONFIRM_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("9".equals(type)){ // 动火后
					pd.put("HOT_WORK_AFTER_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("HOT_WORK_AFTER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("HOT_WORK_AFTER_USER_NAME",userPageData.getString("userName"));
					pd.put("HOT_WORK_AFTER_PHONE",userPageData.getString("userPhone"));
					pd.put("HOT_WORK_AFTER_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("HOT_WORK_AFTER_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("10".equals(type)){ // 延时监火
					pd.put("TIME_LAPSE_FIREMAN_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("TIME_LAPSE_FIREMAN_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("TIME_LAPSE_FIREMAN_NAME",userPageData.getString("userName"));
					pd.put("TIME_LAPSE_FIREMAN_PHONE",userPageData.getString("userPhone"));
					pd.put("TIME_LAPSE_FIREMAN_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("TIME_LAPSE_FIREMAN_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}
				else if("21".equals(type)){ // 动火操作人
					// 特种作业人员
					if(userPageData.get("USER_TYPE") != null && Tools.notEmpty(userPageData.get("USER_TYPE").toString())
							&& ("1".equals(userPageData.get("USER_TYPE").toString()) || "2".equals(userPageData.get("USER_TYPE").toString()))){
						String userId = userPageData.getString("USER_ID") +",";
						String oldId = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_ID"))?"":pd.get("HOT_WORK_OPERATOR_ID").toString();
						pd.put("HOT_WORK_OPERATOR_ID",oldId + userId);
					}
					userPageData.put("USER_NAME", userPageData.getString("userName2"));
					specialUserList.add(userPageData);
					String userName = userPageData.getString("userName2") +",";
					String oldName = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_NAME"))?"":pd.get("HOT_WORK_OPERATOR_NAME").toString();
					pd.put("HOT_WORK_OPERATOR_NAME",oldName + userName);
				}else if("22".equals(type)){ // 动火操作人
					pd.put("SUPERVISOR_OF_HOT_WORK_UNIT",userPageData.getString("USER_ID"));
				}else if("24".equals(type)){ // 需要气体检测
					pd.put("GAS_TESTING_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("GAS_TESTING_DEPARTMENT_NAME",userPageData.getString("deptName"));
					pd.put("GAS_TESTING_USER_ID",userPageData.getString("USER_ID"));
					pd.put("GAS_TESTING_USER_NAME",userPageData.getString("userName"));
					pd.put("GAS_TESTING_USER_PHONE",userPageData.getString("userPhone"));
					pd.put("GAS_TESTING_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("GAS_TESTING_PRINCIPAL_TIME",userPageData.getString("OPERATTIME"));
				}else if("30".equals(type)){ // 特级动火 动火负责人确认
					pd.put("projectCompetent_DEPT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("projectCompetent_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectCompetent_USER_NAME",userPageData.getString("userName"));
					pd.put("projectCompetent_USER_ID",userPageData.getString("USER_ID"));
					pd.put("projectCompetent_PHONE",userPageData.getString("userPhone"));
					pd.put("projectCompetent_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectCompetent_TYPE",userPageData.getString("TYPE"));
					// APP回显使用

					pd.put("CHARGECONFIRM_DEPT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("CHARGECONFIRM_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("CHARGECONFIRM_USER_ID",userPageData.getString("USER_ID"));
					pd.put("CHARGECONFIRM_USER_NAME",userPageData.getString("userName"));
					pd.put("CHARGECONFIRM_USER_PHONE",userPageData.getString("userPhone"));
				}else if("31".equals(type)){ // 特级动火 动火负责人确认
					pd.put("projectSupervisor_DEPT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("projectSupervisor_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectSupervisor_USER_NAME",userPageData.getString("userName"));
					pd.put("projectSupervisor_PHONE",userPageData.getString("userPhone"));
					pd.put("projectCompetent_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectSupervisor_TYPE",userPageData.getString("TYPE"));
				}else if("32".equals(type)){ // 特级动火 动火负责人确认
					pd.put("projectPreliminarily_DEPT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("projectPreliminarily_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("projectPreliminarily_USER_NAME",userPageData.getString("userName"));
					pd.put("projectPreliminarily_PHONE",userPageData.getString("userPhone"));
					pd.put("projectPreliminarily_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("projectPreliminarily_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("projectPreliminarily_TYPE",userPageData.getString("TYPE"));
				}else if("33".equals(type)){ // 特级动火 动火负责人确认
					pd.put("inspectorGeneral_DEPT_ID",userPageData.getString("DEPARTMENT_ID"));
					pd.put("inspectorGeneral_DEPT_NAME",userPageData.getString("deptName"));
					pd.put("inspectorGeneral_USER_NAME",userPageData.getString("userName"));
					pd.put("inspectorGeneral_PHONE",userPageData.getString("userPhone"));
					pd.put("inspectorGeneral_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("inspectorGeneral_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("inspectorGeneral_TYPE",userPageData.getString("TYPE"));
				}else if("34".equals(type)){ //分公司主要负责人
					pd.put("OFFICE_RESPOMSIBLE_DEPT_NAME",userPageData.getString("REGULATORY_DEPT_NAME"));
					pd.put("OFFICE_RESPOMSIBLE_USER_NAME",userPageData.getString("REGULATORY_USER_NAME"));
					pd.put("OFFICE_RESPOMSIBLE_PHONE",userPageData.getString("userPhone"));
					pd.put("OFFICE_RESPOMSIBLE_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("OFFICE_RESPOMSIBLE_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("OFFICE_RESPOMSIBLE_TYPE",userPageData.getString("TYPE"));
				}else if("35".equals(type)){ // 特级动火 安全监督部初审
					pd.put("SUPERVISION_DEPARTMENT_DEPT_NAME",userPageData.getString("REGULATORY_DEPT_NAME"));
					pd.put("SUPERVISION_DEPARTMENT_USER_NAME",userPageData.getString("REGULATORY_USER_NAME"));
					pd.put("SUPERVISION_DEPARTMENT_PHONE",userPageData.getString("userPhone"));
					pd.put("SUPERVISION_DEPARTMENT_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SUPERVISION_DEPARTMENT_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("SUPERVISION_DEPARTMENT_TYPE",userPageData.getString("TYPE"));
				}else if("36".equals(type)){ // 特级动火 安委会办公室审批
					pd.put("SECURITY_COMMITTEE_DEPT_NAME",userPageData.getString("REGULATORY_DEPT_NAME"));
					pd.put("SECURITY_COMMITTEE_USER_NAME",userPageData.getString("REGULATORY_USER_NAME"));
					pd.put("SECURITY_COMMITTEE_PHONE",userPageData.getString("userPhone"));
					pd.put("SECURITY_COMMITTEE_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SECURITY_COMMITTEE_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("SECURITY_COMMITTEE_TYPE",userPageData.getString("TYPE"));
				}else if("37".equals(type)){ // 特级动火 安全总监签批
					pd.put("SAFETY_DIRECTOR_DEPT_NAME",userPageData.getString("REGULATORY_DEPT_NAME"));
					pd.put("SAFETY_DIRECTOR_USER_NAME",userPageData.getString("REGULATORY_USER_NAME"));
					pd.put("SAFETY_DIRECTOR_PHONE",userPageData.getString("userPhone"));
					pd.put("SAFETY_DIRECTOR_PRINCIPAL",userPageData.getString("AUTOGRAPH"));
					pd.put("SAFETY_DIRECTOR_OPERATTIME",userPageData.getString("OPERATTIME"));
					pd.put("SAFETY_DIRECTOR_TYPE",userPageData.getString("TYPE"));
				}
			}
			pd.put("specialUserList", specialUserList);
		}
		if(pd.getString("STATE").equals("11")){
			map.put("hotdelayed", hotWorkApplicationUserService.getHotdelayed(pd)); //延时监火和 气体检测信息
			map.put("hotGasanalysis", hotWorkApplicationUserService.getHotGasanalysis(pd)); //延时监火和 气体检测信息
		}
		map.put("corpinfo",corpinfo);
		map.put("pd", pd);
		map.put("result", errInfo);
		return map;
	}

	 /**批量删除
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/deleteAll")
	@RequiresPermissions("hotwork:del")
	@ResponseBody
	public Object deleteAll() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		String DATA_IDS = pd.getString("DATA_IDS");
		if(Tools.notEmpty(DATA_IDS)){
			String ArrayDATA_IDS[] = DATA_IDS.split(",");
			hotworkapplicationService.deleteAll(ArrayDATA_IDS);
			errInfo = "success";
		}else{
			errInfo = "fail";
		}
		map.put("result", errInfo);				//返回结果
		return map;
	}

	 /**导出到excel
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/excel")
	@RequiresPermissions("toExcel")
	public ModelAndView exportExcel() throws Exception{
		ModelAndView mv = new ModelAndView();
		PageData pd = new PageData();
		pd = this.getPageData();
		Map<String,Object> dataMap = new HashMap<String,Object>();
		List<String> titles = new ArrayList<String>();
		titles.add("申请办理人");	//1
		titles.add("作业编号");	//2
		titles.add("申请日期");	//3
		titles.add("作业类型");	//4
		titles.add("动火部位");	//5
		titles.add("动火作业级别");	//6
		titles.add("动火方法");	//7
		titles.add("作业内容");	//8
		titles.add("现场负责人");	//9
		titles.add("现场负责人电话");	//10
		titles.add("动火单位监护人员");	//11
		titles.add("动火时间");	//12
		titles.add("动火单位负责人");	//13
		titles.add("现场管辖单位负责人");	//14
		titles.add("项目发包单位负责人");	//15
		titles.add("动火许可证签发单位");	//16
		dataMap.put("titles", titles);
		List<PageData> varOList = hotworkapplicationService.listAll(pd);
		List<PageData> varList = new ArrayList<PageData>();
		for(int i=0;i<varOList.size();i++){
			PageData vpd = new PageData();
			vpd.put("var1", varOList.get(i).getString("APPLY_USER_ID"));	    //1
			vpd.put("var2", varOList.get(i).getString("JOB_NUMBER"));	    //2
			vpd.put("var3", varOList.get(i).getString("APPLICATION_DATE"));	    //3
			vpd.put("var4", varOList.get(i).getString("JOB_TYPE_INDEX"));	    //4
			vpd.put("var5", varOList.get(i).getString("HOT_WORK_POSITION"));	    //5
			vpd.put("var6", varOList.get(i).getString("HOT_WORK_LEVEL_INDEX"));	    //6
			vpd.put("var7", varOList.get(i).getString("HOT_WORK_METHOD_INDEX"));	    //7
			vpd.put("var8", varOList.get(i).getString("JOB_CONTENT"));	    //8
			vpd.put("var9", varOList.get(i).getString("SITE_LEADER_INDEX"));	    //9
			vpd.put("var10", varOList.get(i).getString("SITE_LEADER_PHONE"));	    //10
			vpd.put("var11", varOList.get(i).getString("SUPERVISOR_OF_HOT_WORK_UNIT"));	    //11
			vpd.put("var12", varOList.get(i).getString("HOT_WORK_TIME"));	    //12
			vpd.put("var13", varOList.get(i).getString("HOT_WORK_UNIT_LEADER_INDEX"));	    //13
			vpd.put("var14", varOList.get(i).getString("UNIT_LEADER_INDEX"));	    //14
			vpd.put("var15", varOList.get(i).getString("PROJECT_UNIT_LEADER_INDEX"));	    //15
			vpd.put("var16", varOList.get(i).getString("HOT_WORK_PERMIT_ISSUING_UNIT"));	    //16
			varList.add(vpd);
		}
		dataMap.put("varList", varList);
		ObjectExcelView erv = new ObjectExcelView();
		mv = new ModelAndView(erv,dataMap);
		return mv;
	}

	/**
	 * 特级动火申请
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/superApproveUser")
	@RequiresPermissions("hotwork:edit")
	@ResponseBody
	public Object superApproveUser() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();

		PageData myHot = new PageData();
		myHot.put("",Jurisdiction.getUSER_ID());
		myHot.put("STATE","11");
		List<PageData> myHotList = hotWorkApplicationUserService.listAll(myHot);
		if(myHotList.size() !=1){
			map.put("result", "ERROR");
			map.put("msg", "只能申请指派给我的特级动火申请!");
			return map;
		}
		if(Tools.isEmpty(pd.get("APPROVER_ID"))){
			map.put("result", "ERROR");
			map.put("msg", "特级动火申请人信息不全,请联系管理员");
			return map;
		}
		PageData delayedUserPd = new PageData();
		delayedUserPd.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
		delayedUserPd.put("STATE","12");
		hotWorkApplicationUserService.deleteByforward(delayedUserPd);

		PageData superedUser = new PageData();
		superedUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
		superedUser.put("USER_ID",pd.get("APPROVER_ID"));
		superedUser.put("STATE","12");
		superedUser.put("TYPE","0");
		superedUser.put("ISDELETE","0");
		superedUser.put("OPINION","");
		superedUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
		superedUser.put("CREATOR", Jurisdiction.getUSER_ID());
		superedUser.put("CREATTIME", DateUtil.date2Str(new Date()));
		superedUser.put("OPERATOR", Jurisdiction.getUSER_ID());
		superedUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
		hotWorkApplicationUserService.save(superedUser); // 添加  特级动火审批人
		// 保存申请说明
		PageData applicant = new PageData();
		applicant.put("STATE","11");
		applicant.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
		applicant.put("USER_ID",Jurisdiction.getUSER_ID());
		applicant.put("OPINION",pd.getString("description"));
		applicant.put("OPERATOR",Jurisdiction.getUSER_ID());
		applicant.put("OPERATTIME",DateUtil.date2Str(new Date()));
		hotWorkApplicationUserService.editExplain(applicant);

		PageData stateData = new PageData();
		stateData.put("HOTWORKAPPLICATION_ID", pd.getString("HOTWORKAPPLICATION_ID"));
		stateData.put("loginUserId", Jurisdiction.getUSER_ID());
		stateData.put("STATE", "11");
		hotworkapplicationService.editByState(stateData);
//		hotworkapplicationService.editByState(pd.get("HOTWORKAPPLICATION_ID").toString(),"11");
		map.put("result", errInfo);
		return map;
	}

	/**
	 * 特级动火审批
	 * @param files203
	 * @param files204
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/editSuperOpinion")
	@ResponseBody
	@Transactional
	public Object editSuperOpinion(@RequestParam(value="FFILE203",required=false) MultipartFile[] files203,
								   @RequestParam(value="FFILE204",required=false) MultipartFile[] files204) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("CORPINFO_ID",Jurisdiction.getCORPINFO_ID());
		String type = pd.getString("TYPE"); //1 通过 2.未通过
		PageData hotUserPd = new PageData();
		hotUserPd.put("FOREIGN_KEY",pd.getString("HOTWORKAPPLICATION_ID")); // 动火标识
		hotUserPd.put("STATE",pd.get("STATE").toString());  // 哪一步
		hotUserPd.put("USER_ID",Jurisdiction.getUSER_ID());// 登录人
		hotUserPd.put("CORPINFO_ID",Jurisdiction.getCORPINFO_ID());

		List<PageData> hotUserList = hotWorkApplicationUserService.listAll(hotUserPd); // 找到这一笔的审批人
		if(hotUserList.size() != 1){
			map.put("result", "error");
			map.put("msg", "获取审批人意见失败!请联系管理员");
			return map;
		}
		PageData  hotUser = hotUserList.get(0);
		PageData hot = hotworkapplicationService.findById(pd);
		if("1".equals(type)){
			hotUser.put("OPINION",pd.getString("OPINION"));
			hotUser.put("TYPE","1");
			String state = "-1";
			// 特级动火打回
			if(hot.get("STATE") != null && Tools.notEmpty(hot.get("STATE").toString())){
				Integer hotSta = Integer.parseInt(hot.get("STATE").toString());
				if(hotSta >= 30 && hotSta <= 37){
					if (hotSta == 31){
						state = "-5";// 初审打回返回-5
					} else {
						state = "-2";// 其他审核。返回 -2
					}
				}
			}
			PageData stateData = new PageData();
			stateData.put("HOTWORKAPPLICATION_ID", hot.getString("HOTWORKAPPLICATION_ID"));
			stateData.put("loginUserId", Jurisdiction.getUSER_ID());
			stateData.put("STATE", state);
			hotworkapplicationService.editByState(stateData);// 把动火状态修改成未通过
			messageService.sendMessageByParameter("HOT_MAIL_001", "特级动火作业审批【编号:" + hot.getString("JOB_NUMBER") + "】",
					Jurisdiction.getCORPINFO_ID(),pd.getString("APPLY_USER_ID"),hot.getString("HOTWORKAPPLICATION_ID"),
					hot.getString("JOB_NUMBER"),"打回","","","");
		}else if ("2".equals(type)){
//			if(file !=null){
//				String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
//				if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
//					errInfo = "fail";
//					map.put("result", errInfo);
//					map.put("msg", "文件格式不正确!");
//					return map;
//				}
//				String  ffile = DateUtil.getDays();
//				String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
//				Smb.sshSftp(file, fileName, Const.FILEPATHYHTP + pd.get("CORPINFO_ID").toString() + "/" + ffile);
//
//				hotUser.put("AUTOGRAPH",Const.FILEPATHYHTP +  pd.get("CORPINFO_ID").toString() + "/" + ffile + "/" + fileName);
//			}
			if(StringUtils.isNotBlank(pd.getString("SIGNER_PATH"))){
				MultipartFile img = BASE64DecodedMultipartFile.base64ToMultipart(pd.getString("SIGNER_PATH"));
				String suffixName = img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
				if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
					errInfo = "fail";
					map.put("result", errInfo);
					map.put("msg", "文件格式不正确!");
					return map;
				}
				String  ffile = DateUtil.getDays();
				String fileName = this.get32UUID()+img.getOriginalFilename().substring(img.getOriginalFilename().lastIndexOf("."));
				Smb.sshSftp(img, fileName, Const.FILEPATHYHTP + pd.get("CORPINFO_ID").toString() + "/" + ffile);
				hotUser.put("AUTOGRAPH",Const.FILEPATHYHTP +  pd.get("CORPINFO_ID").toString() + "/" + ffile + "/" + fileName);
//				String path = Model.saveFile(img, Jurisdiction.getCORPINFO_ID());
//				pd.put("CONFIRM_SIGNER_PATH", path);
//				pd.put("CONFIRM_SIGNER_TIME",pd.getString("CONFIRM_SIGNER_TIME"));
			}
			hotUser.put("TYPE","2");
			// 审批进入下一阶段 1.特技动火。2发包单位
			if ("0".equals(hot.getString("JOB_TYPE_INDEX")) && "1".equals(hot.get("STATE").toString())){
				hot.put("STATE","2"); // 如何是内容作业,跳过项目单发作业
			}
			if ("0".equals(hot.getString("IS_SAFETY_DIRECTOR")) && "4".equals(hot.get("STATE").toString())){
				hot.put("STATE","5");
			}
			PageData stateData = new PageData();
			stateData.put("HOTWORKAPPLICATION_ID", hot.getString("HOTWORKAPPLICATION_ID"));
			stateData.put("loginUserId", Jurisdiction.getUSER_ID());
			stateData.put("STATE", hot.get("STATE").toString());
			hotworkapplicationService.editByState(stateData);
//			hotworkapplicationService.editByState(hot.getString("HOTWORKAPPLICATION_ID"),hot.get("STATE").toString());
			// 单位负责人确认时。保存主要安全措施
			if("1".equals(pd.get("STATE").toString()) && pd.get("measureList") != null && Tools.notEmpty(pd.get("measureList").toString())){
				List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("measureList").toString());
				for (JSONObject json : list) {
					// 因必须选择符合,所以只存需要填的项
					if(json.get("ANSWER1") != null || json.get("ANSWER2") != null || json.get("ANSWER3") != null || json.get("ANSWER4") != null){
						PageData measures = new PageData();
						measures.put("HOTWORKTOMEASURES_ID", this.get32UUID()); // 主键
						measures.put("HOTWORKAPPLICATION_ID", pd.getString("HOTWORKAPPLICATION_ID"));
						measures.put("BUS_HOTWORK_MEASURES_ID", json.get("BUS_HOTWORK_MEASURES_ID"));
						measures.put("ANSWER1", json.get("ANSWER1"));
						measures.put("ANSWER2", json.get("ANSWER2"));
						measures.put("ANSWER3", json.get("ANSWER3"));
						measures.put("ANSWER4", json.get("ANSWER4"));
						measures.put("STATUS", json.get("radio"));
						hotworkToMeasuresService.save(measures);
					}

				}
			}
			if(Tools.notEmpty(pd.getString("projectSupervisor_USER_ID"))){ //特级动火初审站内信
				messageService.sendMessageByParameter("HOT_MAIL_001", "特级动火作业审批【编号:" + hot.getString("JOB_NUMBER") + "】",
						Jurisdiction.getCORPINFO_ID(),pd.getString("projectSupervisor_USER_ID"),hot.getString("HOTWORKAPPLICATION_ID"),
						hot.getString("JOB_NUMBER"),"项目主管人员初审","","","");
			}
			if(Tools.notEmpty(pd.getString("projectPreliminarily_USER_ID"))){ //特级动火审核站内信
				messageService.sendMessageByParameter("HOT_MAIL_001", "特级动火作业审批【编号:" + hot.getString("JOB_NUMBER") + "】",
						Jurisdiction.getCORPINFO_ID(),pd.getString("projectPreliminarily_USER_ID"),hot.getString("HOTWORKAPPLICATION_ID"),
						hot.getString("JOB_NUMBER"),"项目主管负责人审核","","","");
			}
			if(Tools.notEmpty(pd.getString("inspectorGeneral_USER_ID"))){ //特级动火总监审批
				messageService.sendMessageByParameter("HOT_MAIL_001", "特级动火作业审批【编号:" + hot.getString("JOB_NUMBER") + "】",
						Jurisdiction.getCORPINFO_ID(),pd.getString("inspectorGeneral_USER_ID"),hot.getString("HOTWORKAPPLICATION_ID"),
						hot.getString("JOB_NUMBER"),"安全总监审批","","","");
			}
			if(Tools.notEmpty(pd.getString("officeResponsible_USER_ID"))){ //特级动火分公司主要负责人签批
				messageService.sendMessageByParameter("HOT_MAIL_001", "特级动火作业签批【编号:" + hot.getString("JOB_NUMBER") + "】",
						Jurisdiction.getCORPINFO_ID(),pd.getString("officeResponsible_USER_ID"),hot.getString("HOTWORKAPPLICATION_ID"),
						hot.getString("JOB_NUMBER"),"公司主要负责人签批","","","");
			}
		}else{
			map.put("result", "error");
			map.put("msg", "未知审批状态!请联系管理员");
			return map;
		}
		if("3".equals(pd.getString("STATE"))){ // 添加动火前
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("HOT_WORK_BEFORE_UNIT_LEADER_ID"));
			leaderUser.put("STATE","7");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser); //
		}else if("8".equals(pd.getString("STATE"))){ // 添加动火后现场负责人
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("HOT_WORK_AFTER_UNIT_LEADER_ID"));
			leaderUser.put("STATE","9");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser); // 添加  动火后负责人
		}else if("9".equals(pd.getString("STATE"))){ // 添加 临时监火
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("TIME_LAPSE_FIREMAN_ID"));
			leaderUser.put("STATE","10");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser); // 添加  动火后负责人
		} else if("10".equals(pd.getString("STATE"))){ // 延时监火完成后,进行归档
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("loginUserId"));
			leaderUser.put("STATE","11");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser); // 添加  动火后负责人
		} else if("30".equals(pd.getString("STATE"))){ // 特级动火 -- 选择项目主管人员
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("projectSupervisor_USER_ID"));
			leaderUser.put("STATE","31");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}else if("31".equals(pd.getString("STATE"))){ // 特级动火 -- 项目主管部门负责人
			//防止打回后有多个意见
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("projectPreliminarily_USER_ID"));
			leaderUser.put("STATE","32");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}else if("32".equals(pd.getString("STATE"))){ // 特级动火
			PageData back = new PageData();
			back.put("STATE","33");
			back.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			hotWorkApplicationUserService.deleteForBack(back);
			back.put("TYPES",new String [] {"203","204"});
			imgfilesService.hideImg(back);
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("inspectorGeneral_USER_ID"));
			leaderUser.put("STATE","33");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
			if (files203 != null && files203.length > 0) {
				for (int i = 0; i < files203.length; i++) {
					MultipartFile file203 = files203[i];
					String suffixName = file203.getOriginalFilename().substring(file203.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
					if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
						errInfo = "fail";
						map.put("result", errInfo);
						map.put("msg", "文件格式不正确!");
						return map;
					}
					String  ffile = DateUtil.getDays();
//        		String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile;	//文件上传路径
//        		String fileName = FileUpload.fileUp(file, filePath, this.get32UUID());				//执行上传
					String fileName = this.get32UUID()+file203.getOriginalFilename().substring(file203.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file203, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
					PageData img = new PageData();
					pd.put("IMGFILES_ID",  this.get32UUID());
					pd.put("FILEPATH",  Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
					pd.put("TYPE", "203");
					pd.put("FOREIGN_KEY",  pd.get("HOTWORKAPPLICATION_ID"));
					imgfilesService.save(pd);
				}
			}
			if (files204 != null && files204.length > 0) {
				for (int i = 0; i < files204.length; i++) {
					MultipartFile file204 = files204[i];
					String suffixName = file204.getOriginalFilename().substring(file204.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
					if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
						errInfo = "fail";
						map.put("result", errInfo);
						map.put("msg", "文件格式不正确!");
						return map;
					}
					String  ffile = DateUtil.getDays();
//        		String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile;	//文件上传路径
//        		String fileName = FileUpload.fileUp(file, filePath, this.get32UUID());				//执行上传
					String fileName = this.get32UUID()+file204.getOriginalFilename().substring(file204.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file204, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
					PageData img = new PageData();
					pd.put("IMGFILES_ID",  this.get32UUID());
					pd.put("FILEPATH",  Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
					pd.put("TYPE", "204");
					pd.put("FOREIGN_KEY",  pd.get("HOTWORKAPPLICATION_ID"));
					imgfilesService.save(pd);
				}
			}
		}else if("33".equals(pd.getString("STATE"))){ // 特级动火
			PageData back = new PageData();
			back.put("STATE","34");
			back.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			hotWorkApplicationUserService.deleteForBack(back);
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("officeResponsible_USER_ID"));
			leaderUser.put("STATE","34");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}else if("34".equals(pd.getString("STATE"))){ // 特级动火
			PageData back = new PageData();
			back.put("STATE","35");
			back.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			hotWorkApplicationUserService.deleteForBack(back);
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("supervision_USER_ID"));
			leaderUser.put("STATE","35");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}else if("35".equals(pd.getString("STATE"))){ // 特级动火
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("committee_USER_ID"));
			leaderUser.put("STATE","36");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}else if("36".equals(pd.getString("STATE"))){ // 特级动火
			PageData leaderUser = new PageData();
			leaderUser.put("HOTWORKAPPLICATIONUSER_ID", UuidUtil.get32UUID());
			leaderUser.put("USER_ID",pd.get("safetyDirector_USER_ID"));
			leaderUser.put("STATE","37");
			leaderUser.put("TYPE","-1");
			leaderUser.put("ISDELETE","0");
			leaderUser.put("FOREIGN_KEY",pd.get("HOTWORKAPPLICATION_ID"));
			leaderUser.put("CREATOR",pd.getString("loginUserId"));
			leaderUser.put("CREATTIME",DateUtil.date2Str(new Date()));
			leaderUser.put("OPERATOR",pd.getString("loginUserId"));
			leaderUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
			hotWorkApplicationUserService.save(leaderUser);
		}
		hotUser.put("OPERATOR",pd.getString("loginUserId"));
		hotUser.put("OPERATTIME",DateUtil.date2Str(new Date()));
		hotWorkApplicationUserService.edit(hotUser);
		map.put("result", errInfo);
		return map;
	}


	/**
	 * description: 特种动火流程
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/getInformationById")
	@ResponseBody
	public Object getInformationById() throws Exception{
		Map<String,Object> response = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = this.getPageData();
		PageData information = hotworkapplicationService.findById(pd);

		PageData hotUser = new PageData();
		hotUser.put("FOREIGN_KEY",information.getString("HOTWORKAPPLICATION_ID"));
		List<PageData> hotUserAllList = hotWorkApplicationUserService.listAll(hotUser);

		Map<String,PageData> hotUserMapAll = new HashMap<>();
		for (PageData pageData: hotUserAllList){
			hotUserMapAll.put(pageData.getString("STATE"),pageData);
		}

		if("0".equals(information.getString("HOT_WORK_LEVEL_INDEX"))){
			Overseer overseer = new Overseer();
			List<Node> nodes = overseer.getSpecialHotWorkFlow();
			nodes.stream().forEach(n -> {
				String tex = n.getText();
				String state = n.getOrder();
				if(hotUserMapAll.containsKey(state)){
					StringBuffer val = new StringBuffer();
					val.append(tex);
					PageData userhot = hotUserMapAll.get(state);
					String name = userhot.getString("userName");
					val.append("<br>" + name);
					if(!userhot.getString("TYPE").equals("-1")){
						String time = userhot.getString("OPERATTIME");
						val.append("<br>" + time);
					}
					if("1".equals(n.getOrder())){
						String time = userhot.getString("OPERATTIME");
						val.append("<br>" + time);
					}
					n.setText(val.toString());
				}
				if (Integer.parseInt(n.getOrder()) < Integer.parseInt(information.getString("STATE"))){
					n.setColor(Color.green.toString());
				}
				if (n.getOrder().equals(information.getString("STATE"))){
					n.setColor(Color.red.toString());
				}
				if (Integer.parseInt(n.getOrder()) > Integer.parseInt(information.getString("STATE"))){
					n.setColor(Color.blue.toString());
				}
			});
			response.put("nodes",overseer.getSpecialHotWorkFlow());
			response.put("from",overseer.getSpecialFrom());
		}
		response.put("pd", information);
		response.put("result", errInfo);
		return response;
	}


	/**列表
	 * 1. 是由我发起的
	 * 2. 是给我审批的
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/listByCharge")
	@ResponseBody
	@Transactional
	public Object listByCharge(Page page) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("loginUserId", Jurisdiction.getUSER_ID());
		String KEYWORDS = pd.getString("KEYWORDS");						//关键词检索条件
		if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim());
		page.setPd(pd);
		if(Tools.isEmpty(pd.get("STATE"))){
			map.put("varList", "");
			map.put("page", page);
			map.put("result", "ERROR");
			map.put("msg", "没有流程标识,请联系管理员");
			return map;
		}
		if("0".equals(pd.get("STATE").toString())){
			pd.put("CREATOR", Jurisdiction.getUSER_ID());
		}else if(!"11".equals(pd.get("STATE").toString())){
			pd.put("myApprove",Jurisdiction.getUSER_ID());
		}if("24".equals(pd.get("STATE").toString())){ //查询未完成的动火数据
			pd.put("isNotComplete","1");
		}
		List<PageData>	varList = hotworkapplicationService.list(page);	//列出HotWorkApplication列表
		Map<String,Integer> hotIdKeyMap = new HashMap<>();
		List<String> hotIds = new ArrayList<>();
		for (int i=0;i<varList.size();i++){
			PageData pageData = varList.get(i);
			hotIds.add(pageData.getString("HOTWORKAPPLICATION_ID"));
			hotIdKeyMap.put(pageData.getString("HOTWORKAPPLICATION_ID"),i);
			if(!Tools.isEmpty(pageData.get("JOB_TYPE_INDEX"))){
				if("0".equals(pageData.getString("JOB_TYPE_INDEX"))){
					pageData.put("JOB_TYPE_NAME","内部作业");
				}else if("1".equals(pageData.getString("JOB_TYPE_INDEX"))){
					pageData.put("JOB_TYPE_NAME","相关方作业");
				}
			}
			if(!Tools.isEmpty(pageData.get("HOT_WORK_LEVEL_INDEX"))){
				if("0".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","特级");
				}else if("1".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","一级");
				}else if("2".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","二级");
				}else if("3".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","三级");
				}
			}
		}
		PageData hotUser = new PageData();
		hotUser.put("hotIds", hotIds);
		List<PageData> hotUserAllList = hotWorkApplicationUserService.listAll(hotUser);
		for (PageData userPageData : hotUserAllList){
			String hotAndType = userPageData.getString("FOREIGN_KEY");
			if(hotIdKeyMap.containsKey(hotAndType)){
				PageData hot = varList.get(hotIdKeyMap.get(hotAndType));
				String type = userPageData.get("STATE").toString();
				if("0".equals(type)){ // 申请办理人
					hot.put("APPLY_DEPARTMENT_NAME",userPageData.getString("deptName"));
					hot.put("APPLY_USER_NAME",userPageData.getString("userName"));
					hot.put("APPLY_USER_ID",userPageData.getString("USER_ID"));
				}else if("1".equals(type)){ //动火单位负责人
					hot.put("HOT_WORK_UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("HOT_WORK_UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("2".equals(type)){ // 项目发包单位负责人
					hot.put("PROJECT_UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("PROJECT_UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("4".equals(type)){ // 现场管辖单位负责人
					hot.put("UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("5".equals(type)){ // 动火前 负责人
					hot.put("HOT_WORK_BEFORE_UNIT_LEADER",userPageData.getString("userName"));
				}else if("6".equals(type)){ // 现场负责人
					hot.put("SITE_LEADER_NAME",userPageData.getString("userName"));
					hot.put("SITE_LEADER_PHONE",userPageData.getString("userPhone"));
				}else if("7".equals(type)){ // 动火后 负责人
					hot.put("HOT_WORK_AFTER_UNIT_LEADER",userPageData.getString("userName"));
				} else if("11".equals(type)){ // 特级动火 申请人
					hot.put("DEPARTMENT_PERSONNEL_NAME",userPageData.getString("userName"));
					hot.put("DEPARTMENT_PERSONNEL_ID",userPageData.getString("USER_ID"));
				}else if("20".equals(type)){ // 特级动火 申请人
					hot.put("SUPERVISOR_OF_HOT_WORK_UNIT",userPageData.getString("USER_ID"));
				}else if("21".equals(type)){ // 动火后 负责人
					String userName = userPageData.getString("userName2") +",";
					String oldName = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_NAME"))?"":pd.get("HOT_WORK_OPERATOR_NAME").toString();
					hot.put("HOT_WORK_OPERATOR_NAME",oldName + userName);
				}
			}
		}
		List<PageData> allList = hotWorkApplicationUserService.getUserByHot(varList);

//		map.put("varList", varList);
		map.put("varList", allList);
//		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}

	/**列表
	 * 1. 是由我发起的
	 * 2. 是给我审批的
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/hotWorkData")
	@ResponseBody
	@Transactional
	public Object hotWorkData(Page page) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("CREATOR", Jurisdiction.getUSER_ID());
		pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());	//企业ID
		pd = Jurisdiction.getUserDataJurisdiction(pd);
		page.setPd(pd);
		List<PageData>	varList = hotworkapplicationService.hotworkdatalistPage(page);	//列出HotWorkApplication列表
		Map<String,Integer> hotIdKeyMap = new HashMap<>();
		List<String> hotIds = new ArrayList<>();
		for (int i=0;i<varList.size();i++){
			PageData pageData = varList.get(i);
			hotIds.add(pageData.getString("HOTWORKAPPLICATION_ID"));
			hotIdKeyMap.put(pageData.getString("HOTWORKAPPLICATION_ID"),i);
			if(!Tools.isEmpty(pageData.get("JOB_TYPE_INDEX"))){
				if("0".equals(pageData.getString("JOB_TYPE_INDEX"))){
					pageData.put("JOB_TYPE_NAME","内部作业");
				}else if("1".equals(pageData.getString("JOB_TYPE_INDEX"))){
					pageData.put("JOB_TYPE_NAME","相关方作业");
				}
			}
			if(!Tools.isEmpty(pageData.get("HOT_WORK_LEVEL_INDEX"))){
				if("0".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","特级");
				}else if("1".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","一级");
				}else if("2".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","二级");
				}else if("3".equals(pageData.getString("HOT_WORK_LEVEL_INDEX"))){
					pageData.put("HOT_WORK_LEVEL_NAME","三级");
				}
			}
		}
		PageData hotUser = new PageData();
		hotUser.put("hotIds", hotIds);
		List<PageData> hotUserAllList = hotWorkApplicationUserService.listAll(hotUser);
		for (PageData userPageData : hotUserAllList){
			String hotAndType = userPageData.getString("FOREIGN_KEY");
			if(hotIdKeyMap.containsKey(hotAndType)){
				PageData hot = varList.get(hotIdKeyMap.get(hotAndType));
				String type = userPageData.get("STATE").toString();
				if("0".equals(type)){ // 申请办理人
					hot.put("APPLY_DEPARTMENT_NAME",userPageData.getString("deptName"));
					hot.put("APPLY_USER_NAME",userPageData.getString("userName"));
					hot.put("APPLY_USER_ID",userPageData.getString("USER_ID"));
				}else if("1".equals(type)){ //动火单位负责人
					hot.put("HOT_WORK_UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("HOT_WORK_UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("2".equals(type)){ // 项目发包单位负责人
					hot.put("PROJECT_UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("PROJECT_UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("4".equals(type)){ // 现场管辖单位负责人
					hot.put("UNIT_LEADER_DEPARTMENT_ID",userPageData.getString("DEPARTMENT_ID"));
					hot.put("UNIT_LEADER_DEPARTMENT_NAME",userPageData.getString("deptName"));
					hot.put("UNIT_LEADER_NAME",userPageData.getString("userName"));
					hot.put("UNIT_LEADER_ID",userPageData.getString("USER_ID"));
				}else if("5".equals(type)){ // 动火前 负责人
					hot.put("HOT_WORK_BEFORE_UNIT_LEADER",userPageData.getString("userName"));
				}else if("6".equals(type)){ // 现场负责人
					hot.put("SITE_LEADER_NAME",userPageData.getString("userName"));
					hot.put("SITE_LEADER_PHONE",userPageData.getString("userPhone"));
				}else if("7".equals(type)){ // 动火后 负责人
					hot.put("HOT_WORK_AFTER_UNIT_LEADER",userPageData.getString("userName"));
				} else if("11".equals(type)){ // 特级动火 申请人
					hot.put("DEPARTMENT_PERSONNEL_NAME",userPageData.getString("userName"));
					hot.put("DEPARTMENT_PERSONNEL_ID",userPageData.getString("USER_ID"));
				}else if("20".equals(type)){ // 特级动火 申请人
					hot.put("SUPERVISOR_OF_HOT_WORK_UNIT",userPageData.getString("USER_ID"));
				}else if("21".equals(type)){ // 动火后 负责人
					String userName = userPageData.getString("userName2") +",";
					String oldName = Tools.isEmpty(pd.get("HOT_WORK_OPERATOR_NAME"))?"":pd.get("HOT_WORK_OPERATOR_NAME").toString();
					hot.put("HOT_WORK_OPERATOR_NAME",oldName + userName);
				}
			}
		}
		List<PageData> allList = hotWorkApplicationUserService.getUserByHot(varList);
		map.put("varList", varList);
//		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}
}