package com.zcloud.controller.gf;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.service.gf.*;
import com.zcloud.util.*;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
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 javax.annotation.Resource;
import java.io.File;
import java.text.DecimalFormat;
import java.util.*;

/**
 * 说明:高空作业
 * 作者:luoxiaobao
 * 时间:2021-08-31
 * 官网:www.zcloudchina.com
 */
@Controller
@RequestMapping("/app/gfHighwork")
public class AppGFHighWorkController extends BaseController {

	@Resource
	private GFHighWorkService GFhighworkService;
	@Resource
	private GFHighWorkLogService GFhighWorkLogService;
	@Resource
	private GFHighWorkToMeasuresService GFhighWorkToMeasuresService;
	@Autowired
	private SendMessageUtil sendMessageUtil;
	/**获取编码
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/getCode")
	@ResponseBody
	public Object getCode() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		Calendar calendar = Calendar.getInstance();
		DecimalFormat dft=new DecimalFormat("00");
		int year = calendar.get(Calendar.YEAR);
		String month = dft.format(calendar.get(Calendar.MONTH) + 1);
		String day = dft.format(calendar.get(Calendar.DAY_OF_MONTH));
		pd.put("CREATDATE",year + "-" + month + "-" + day);
		pd = GFhighworkService.getCode(pd);	//根据ID读取
		String code = "GK"+year + month + day + dft.format((Integer.parseInt(pd.get("code").toString())+1));
		map.put("code", code);
		map.put("result", errInfo);
		return map;
	}

	/**新增
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/add")
	@ResponseBody
	@Transactional
	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("HIGHWORK_ID", this.get32UUID());	//主键
		pd.put("CREATTIME", DateUtil.date2Str(new Date()));	//添加时间
		pd.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
		pd.put("ISDELETE", "0");	//是否删除 1-是  0-否
		GFhighworkService.save(pd);

		if(pd.get("APPLY_STATUS").equals("1")) {
			PageData log = new PageData();
			log.put("HIGHWORKLOG_ID", this.get32UUID());
			log.put("ACTION", "提交申请");
			log.put("HIGHWORK_ID", pd.get("HIGHWORK_ID"));
			log.put("CREATOR",pd.get("ACTION_USER"));
			log.put("CREATTIME", DateUtil.date2Str(new Date()));
			GFhighWorkLogService.save(log);

			// 发短信
			PageData mes = new PageData();
			mes.put("RECEIVER_ID", pd.get("CONSTRUCTION_USER_ID"));// 收信人userid
			mes.put("templateCode", "GK_Y01");// 短信模板编码
			mes.put("SMSCode", "SMS_227245922");// 短信模板编码
			mes.put("CORPINFO_ID", pd.get("CORPINFO_ID"));// 企业id
			// 参数集合
			List<PageData> paramsList = new ArrayList<PageData>();
			// 第1个参数
			PageData params1 = new PageData();
			params1.put("name", "number");// 存入短信模板中的参数名称
			params1.put("value", pd.get("CHECK_NO"));// 存入上面参数名称所传递的值
			paramsList.add(params1);
			// 第2个参数
			PageData params2 = new PageData();
			params2.put("name", "params1");// 存入短信模板中的参数名称
			params2.put("value", "高空作业");// 存入上面参数名称所传递的值
			paramsList.add(params2);
			// 第3个参数
			PageData params3 = new PageData();
			params3.put("name", "params2");// 存入短信模板中的参数名称
			params3.put("value", "作业负责人确认");// 存入上面参数名称所传递的值
			paramsList.add(params3);
			// 第4个参数
			PageData params4 = new PageData();
			params4.put("name", "params3");// 存入短信模板中的参数名称
			params4.put("value", "确认");// 存入上面参数名称所传递的值
			paramsList.add(params4);
			sendMessageUtil.sendMessages(mes, paramsList);
		}
		map.put("result", errInfo);
		return map;
	}

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

	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/edit")
	@ResponseBody
	@Transactional
	public Object edit() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		pd.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
		GFhighworkService.edit(pd);
		if(pd.get("APPLY_STATUS").equals("1")) {
			PageData log = new PageData();
			log.put("HIGHWORKLOG_ID", this.get32UUID());
			log.put("ACTION", "提交申请");
			log.put("HIGHWORK_ID", pd.get("HIGHWORK_ID"));
			log.put("CREATOR",pd.get("ACTION_USER"));
			log.put("CREATTIME", DateUtil.date2Str(new Date()));
			GFhighWorkLogService.save(log);

			// 发短信
			PageData mes = new PageData();
			mes.put("RECEIVER_ID", pd.get("CONSTRUCTION_USER_ID"));// 收信人userid
			mes.put("templateCode", "GK_Y01");// 短信模板编码
			mes.put("SMSCode", "SMS_227245922");// 短信模板编码
			mes.put("CORPINFO_ID", pd.get("CORPINFO_ID"));// 企业id
			// 参数集合
			List<PageData> paramsList = new ArrayList<PageData>();
			// 第1个参数
			PageData params1 = new PageData();
			params1.put("name", "number");// 存入短信模板中的参数名称
			params1.put("value", pd.get("CHECK_NO"));// 存入上面参数名称所传递的值
			paramsList.add(params1);
			// 第2个参数
			PageData params2 = new PageData();
			params2.put("name", "params1");// 存入短信模板中的参数名称
			params2.put("value", "高空作业");// 存入上面参数名称所传递的值
			paramsList.add(params2);
			// 第3个参数
			PageData params3 = new PageData();
			params3.put("name", "params2");// 存入短信模板中的参数名称
			params3.put("value", "作业负责人确认");// 存入上面参数名称所传递的值
			paramsList.add(params3);
			// 第4个参数
			PageData params4 = new PageData();
			params4.put("name", "params3");// 存入短信模板中的参数名称
			params4.put("value", "确认");// 存入上面参数名称所传递的值
			paramsList.add(params4);
			sendMessageUtil.sendMessages(mes, paramsList);
		}
		map.put("result", errInfo);
		return map;
	}
	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/editGuardian")
	@ResponseBody
	@Transactional
	public Object editGuardian(
			@RequestParam(value="FFILE",required=false) MultipartFile[] files
	) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		PageData pd2 = new PageData();
		pd2 = GFhighworkService.findById(pd);
		pd2.put("OPERATOR", pd.get("OPERATOR"));	//修改人
		pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
		if (files != null && files.length > 0) {
			MultipartFile file = files[0];

			String  ffile = DateUtil.getDays();
			String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

			pd2.put("GUARDIAN_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
			pd2.put("GUARDIAN_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
//					pd2.put("GUARDIAN_CONTENT",  pd.get("CONTENT"));
//					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
			GFhighworkService.edit(pd2);
		}

//		if(pd.get("APPLY_STATUS").equals("1")) {
//			PageData log = new PageData();
//			log.put("CONFINEDSPACELOG_ID", this.get32UUID());
//			log.put("ACTION", "提交申请");
//			log.put("CONFINEDSPACE_ID", pd.get("CONFINEDSPACE_ID"));
//			log.put("CREATOR",pd.get("ACTION_USER"));
//			log.put("ISDELETE", "0");	//是否删除 1-是  0-否
//			log.put("CREATTIME", DateUtil.date2Str(new Date()));
//			GFhighworkService.save(log);


//			// 发短信
//			PageData mes = new PageData();
//			mes.put("RECEIVER_ID", pd.get("CONFIRM_USER_ID"));// 收信人userid
//			mes.put("templateCode", "YX_Y01");// 短信模板编码
//			mes.put("SMSCode", "SMS_227245922");// 短信模板编码
//			mes.put("CORPINFO_ID", pd.get("CORPINFO_ID"));// 企业id
//			// 参数集合
//			List<PageData> paramsList = new ArrayList<PageData>();
//			// 第1个参数
//			PageData params1 = new PageData();
//			params1.put("name", "number");// 存入短信模板中的参数名称
//			params1.put("value", pd.get("CHECK_NO"));// 存入上面参数名称所传递的值
//			paramsList.add(params1);
//			// 第2个参数
//			PageData params2 = new PageData();
//			params2.put("name", "params1");// 存入短信模板中的参数名称
//			params2.put("value", "有限空间作业");// 存入上面参数名称所传递的值
//			paramsList.add(params2);
//			// 第3个参数
//			PageData params3 = new PageData();
//			params3.put("name", "params2");// 存入短信模板中的参数名称
//			params3.put("value", "作业单位确认");// 存入上面参数名称所传递的值
//			paramsList.add(params3);
//			// 第4个参数
//			PageData params4 = new PageData();
//			params4.put("name", "params3");// 存入短信模板中的参数名称
//			params4.put("value", "确认");// 存入上面参数名称所传递的值
//			paramsList.add(params4);
//			sendMessageUtil.sendMessages(mes, paramsList);
//		}
		map.put("result", errInfo);
		return map;
	}
	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/editConfess")
	@ResponseBody
	@Transactional
	public Object editConfess(
			@RequestParam(value="FFILE",required=false) MultipartFile[] files
	) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		PageData pd2 = new PageData();
		pd2 = GFhighworkService.findById(pd);
		pd2.put("OPERATOR", pd.get("OPERATOR"));	//修改人
		pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
		if (files != null && files.length > 0) {
			MultipartFile file = files[0];

			String  ffile = DateUtil.getDays();
			String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

			pd2.put("CONFESS_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
			pd2.put("CONFESS_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
//					pd2.put("GUARDIAN_CONTENT",  pd.get("CONTENT"));
//					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
			GFhighworkService.edit(pd2);
		}
		map.put("result", errInfo);
		return map;
	}
	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/editAcceptconfess")
	@ResponseBody
	@Transactional
	public Object editAcceptconfess(
			@RequestParam(value="FFILE",required=false) MultipartFile[] files
	) throws Exception {
		Map<String, Object> map = new HashMap<String, Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		PageData pd2 = new PageData();
		pd2 = GFhighworkService.findById(pd);
		pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
		pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
		if (files != null && files.length > 0) {
			MultipartFile file = files[0];

			String ffile = DateUtil.getDays();
			String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

			pd2.put("ACCEPT_CONFESS_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
			pd2.put("ACCEPT_CONFESS_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
//					pd2.put("GUARDIAN_CONTENT",  pd.get("CONTENT"));
//					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
			GFhighworkService.edit(pd2);
		}
		map.put("result", errInfo);
		return map;
	}
	/**修改
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/editStatus")
	@ResponseBody
	@Transactional
	public Object editStatus(
			@RequestParam(value="FFILE",required=false) MultipartFile[] files
	) throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		PageData pd2 = new PageData();
		pd2 = GFhighworkService.findById(pd);
		pd2.put("OPERATOR", pd.get("OPERATOR"));	//修改人
		pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
//		pd2.put("OTHER_PROTECTIVE_MEASURES", pd.get("OTHER_PROTECTIVE_MEASURES"));	//修改人
//		pd2.put("HAZARD_IDENTIFICATION", pd.get("HAZARD_IDENTIFICATION"));	//修改人
		PageData log = new PageData();
		log.put("HIGHWORKLOG_ID", this.get32UUID());
//        log.put("ACTION", "审核打回");
		log.put("HIGHWORK_ID", pd.get("HIGHWORK_ID"));
		log.put("CREATOR",pd.get("ACTION_USER"));
		log.put("CREATTIME", DateUtil.date2Str(new Date()));

		String status = pd.get("STATUS").toString();
		String OTHER_PROTECTIVE_MEASURES = pd2.getString("OTHER_PROTECTIVE_MEASURES");
		if ("2".equals(status) || "3".equals(status) || "4".equals(status) || "5".equals(status)) {
			OTHER_PROTECTIVE_MEASURES = (StringUtils.isNotBlank(pd2.getString("OTHER_PROTECTIVE_MEASURES")) ? pd2.getString("OTHER_PROTECTIVE_MEASURES") : "") +
					(StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? (pd.getString("OTHER_PROTECTIVE_MEASURES") + ";_;") : ";_;");
//			pd2.put("OTHER_PROTECTIVE_MEASURES", (StringUtils.isNotBlank(pd2.getString("OTHER_PROTECTIVE_MEASURES")) ? pd2.getString("OTHER_PROTECTIVE_MEASURES") : "") +
//					(StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? (pd.getString("OTHER_PROTECTIVE_MEASURES") + ";_;") : ";_;"));
//			pd2.put("HAZARD_IDENTIFICATION", (StringUtils.isNotBlank(pd2.getString("HAZARD_IDENTIFICATION")) ? pd2.getString("HAZARD_IDENTIFICATION") : "") +
//					(StringUtils.isNotBlank(pd.getString("HAZARD_IDENTIFICATION")) ? (pd.getString("HAZARD_IDENTIFICATION") + ";_;") : ";_;"));
		} else if ("-2".equals(status) || "-3".equals(status) || "-4".equals(status) || "-5".equals(status) || "-6".equals(status)) {
			//打回清空数据
			pd2.put("OTHER_PROTECTIVE_MEASURES", "");
//			pd2.put("HAZARD_IDENTIFICATION", "");
		}
		switch (status) {
			case "2"://作业单位
				if (files != null && files.length > 0) {
					MultipartFile file = files[0];
//                 保存文件
					File tempFile = new File(file.getOriginalFilename());
					FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile);

					String  ffile = DateUtil.getDays();
					String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

					pd2.put("CONSTRUCTION_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
					pd2.put("CONSTRUCTION_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
					pd2.put("CONSTRUCTION_CONTENT",  pd.get("CONTENT"));
					if (pd2.get("LEADER_USER_ID") == null || StringUtils.isBlank(pd2.getString("LEADER_USER_ID"))) {
						OTHER_PROTECTIVE_MEASURES += ";_;";
						if (pd2.get("AUDIT_USER_ID") == null || StringUtils.isBlank(pd2.getString("AUDIT_USER_ID"))) {
							OTHER_PROTECTIVE_MEASURES += ";_;";
							if (pd2.get("APPROVE_USER_ID") == null || StringUtils.isBlank(pd2.getString("APPROVE_USER_ID"))) {
								OTHER_PROTECTIVE_MEASURES += ";_;";
							}
						}
					}
					pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
					GFhighworkService.edit(pd2);
					GFhighWorkToMeasuresService.delete(pd);
					List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("measuresList").toString());
					for (JSONObject json : list) {
						PageData measures = new PageData();
						measures.put("HIGHWORKTOMEASURES_ID", this.get32UUID()); // 主键
						measures.put("HIGHWORK_ID", pd2.get("HIGHWORK_ID"));
						measures.put("BUS_HIGHWORK_MEASURES_ID", json.get("HIGHWORK_MEASURES_ID"));
						measures.put("STATUS", json.get("STATUS"));
						measures.put("CONFIRM_ID", pd.get("OPERATOR"));
						measures.put("CONFIRM_NAME", pd.get("ACTION_USER"));
						GFhighWorkToMeasuresService.save(measures);
					}
					log.put("ACTION", "作业单位通过");

					// 发短信
					PageData mes = new PageData();
					if("2".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("LEADER_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y02");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("3".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("AUDIT_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y03");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("4".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("APPROVE_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y04");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("5".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y05");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}

					// 参数集合
					List<PageData> paramsList = new ArrayList<PageData>();
					// 第1个参数
					PageData params1 = new PageData();
					params1.put("name", "number");// 存入短信模板中的参数名称
					params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
					paramsList.add(params1);
					// 第2个参数
					PageData params2 = new PageData();
					params2.put("name", "params1");// 存入短信模板中的参数名称
					params2.put("value", "高空作业");// 存入上面参数名称所传递的值
					paramsList.add(params2);
					// 第3个参数
					PageData params3 = new PageData();
					params3.put("name", "params2");// 存入短信模板中的参数名称
					params3.put("value", "所在单位确认");// 存入上面参数名称所传递的值
					paramsList.add(params3);
					// 第4个参数
					PageData params4 = new PageData();
					params4.put("name", "params3");// 存入短信模板中的参数名称
					params4.put("value", "确认");// 存入上面参数名称所传递的值
					paramsList.add(params4);
					sendMessageUtil.sendMessages(mes, paramsList);
				}
				break;

			case "3"://所在单位
				if (files != null && files.length > 0) {
					MultipartFile file = files[0];

					String  ffile = DateUtil.getDays();
					String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

					pd2.put("LEADER_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
					pd2.put("LEADER_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
					pd2.put("LEADER_CONTENT",  pd.get("CONTENT"));
					if (pd2.get("AUDIT_USER_ID") == null || StringUtils.isBlank(pd2.getString("AUDIT_USER_ID"))) {
						OTHER_PROTECTIVE_MEASURES += ";_;";
						if (pd2.get("APPROVE_USER_ID") == null || StringUtils.isBlank(pd2.getString("APPROVE_USER_ID"))) {
							OTHER_PROTECTIVE_MEASURES += ";_;";
						}
					}
					pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
					GFhighworkService.edit(pd2);
					log.put("ACTION", "所在单位通过");

					// 发短信
					PageData mes = new PageData();
					if("3".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("AUDIT_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y03");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("4".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("APPROVE_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y04");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("5".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y05");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}
					// 参数集合
					List<PageData> paramsList = new ArrayList<PageData>();
					// 第1个参数
					PageData params1 = new PageData();
					params1.put("name", "number");// 存入短信模板中的参数名称
					params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
					paramsList.add(params1);
					// 第2个参数
					PageData params2 = new PageData();
					params2.put("name", "params1");// 存入短信模板中的参数名称
					params2.put("value", "高空作业");// 存入上面参数名称所传递的值
					paramsList.add(params2);
					// 第3个参数
					PageData params3 = new PageData();
					params3.put("name", "params2");// 存入短信模板中的参数名称
					params3.put("value", "审核人审核");// 存入上面参数名称所传递的值
					paramsList.add(params3);
					// 第4个参数
					PageData params4 = new PageData();
					params4.put("name", "params3");// 存入短信模板中的参数名称
					params4.put("value", "审核");// 存入上面参数名称所传递的值
					paramsList.add(params4);
					sendMessageUtil.sendMessages(mes, paramsList);
				}
				break;

			case "4"://审核部门
				if (files != null && files.length > 0) {
					MultipartFile file = files[0];

					String  ffile = DateUtil.getDays();
					String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

					pd2.put("AUDIT_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
					pd2.put("AUDIT_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
					pd2.put("AUDIT_CONTENT",  pd.get("CONTENT"));
					if (pd2.get("APPROVE_USER_ID") == null || StringUtils.isBlank(pd2.getString("APPROVE_USER_ID"))) {
						OTHER_PROTECTIVE_MEASURES += ";_;";
					}
					pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
					GFhighworkService.edit(pd2);
					log.put("ACTION", "审核部门通过");

					// 发短信
					PageData mes = new PageData();
					if("4".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("APPROVE_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y04");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}else if("5".equals(pd.get("APPLY_STATUS"))){
						mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
						mes.put("templateCode", "GK_Y05");// 短信模板编码
						mes.put("SMSCode", "SMS_227245922");// 短信模板编码
						mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					}
					// 参数集合
					List<PageData> paramsList = new ArrayList<PageData>();
					// 第1个参数
					PageData params1 = new PageData();
					params1.put("name", "number");// 存入短信模板中的参数名称
					params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
					paramsList.add(params1);
					// 第2个参数
					PageData params2 = new PageData();
					params2.put("name", "params1");// 存入短信模板中的参数名称
					params2.put("value", "高空作业");// 存入上面参数名称所传递的值
					paramsList.add(params2);
					// 第3个参数
					PageData params3 = new PageData();
					params3.put("name", "params2");// 存入短信模板中的参数名称
					params3.put("value", "审批人审批");// 存入上面参数名称所传递的值
					paramsList.add(params3);
					// 第4个参数
					PageData params4 = new PageData();
					params4.put("name", "params3");// 存入短信模板中的参数名称
					params4.put("value", "审批");// 存入上面参数名称所传递的值
					paramsList.add(params4);
					sendMessageUtil.sendMessages(mes, paramsList);
				}
				break;

			case "5"://审批部门
				if (files != null && files.length > 0) {
					MultipartFile file = files[0];

					String  ffile = DateUtil.getDays();
					String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

					pd2.put("APPROVE_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
					pd2.put("APPROVE_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
					pd2.put("APPROVE_CONTENT",  pd.get("CONTENT"));
					pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
					GFhighworkService.edit(pd2);
					log.put("ACTION", "审批部门通过");

					// 发短信
					PageData mes = new PageData();
					mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
					mes.put("templateCode", "GK_Y05");// 短信模板编码
					mes.put("SMSCode", "SMS_227245922");// 短信模板编码
					mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					// 参数集合
					List<PageData> paramsList = new ArrayList<PageData>();
					// 第1个参数
					PageData params1 = new PageData();
					params1.put("name", "number");// 存入短信模板中的参数名称
					params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
					paramsList.add(params1);
					// 第2个参数
					PageData params2 = new PageData();
					params2.put("name", "params1");// 存入短信模板中的参数名称
					params2.put("value", "高空作业");// 存入上面参数名称所传递的值
					paramsList.add(params2);
					// 第3个参数
					PageData params3 = new PageData();
					params3.put("name", "params2");// 存入短信模板中的参数名称
					params3.put("value", "验收");// 存入上面参数名称所传递的值
					paramsList.add(params3);
					// 第4个参数
					PageData params4 = new PageData();
					params4.put("name", "params3");// 存入短信模板中的参数名称
					params4.put("value", "验收");// 存入上面参数名称所传递的值
					paramsList.add(params4);
					sendMessageUtil.sendMessages(mes, paramsList);
				}
				break;

			case "6"://验收人
				if (files != null && files.length > 0) {
					MultipartFile file = files[0];

					String  ffile = DateUtil.getDays();
					String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
					Smb.sshSftp(file, fileName, Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile);

					pd2.put("ACCEPT_USER_SIGNER_PATH",  Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
					pd2.put("ACCEPT_USER_SIGNER_TIME",  pd.get("SIGNER_TIME"));
					pd2.put("ACCEPT_CONTENT",  pd.get("CONTENT"));
					pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
					pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
					GFhighworkService.edit(pd2);
					log.put("ACTION", "验收通过");

					// 发短信
					PageData mes = new PageData();
					mes.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
					mes.put("templateCode", "GK_Y06");// 短信模板编码
					mes.put("SMSCode", "SMS_227250920");// 短信模板编码
					mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
					// 参数集合
					List<PageData> paramsList = new ArrayList<PageData>();
					// 第1个参数
					PageData params1 = new PageData();
					params1.put("name", "number");// 存入短信模板中的参数名称
					params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
					paramsList.add(params1);
					// 第2个参数
					PageData params2 = new PageData();
					params2.put("name", "type");// 存入短信模板中的参数名称
					params2.put("value", "高空作业");// 存入上面参数名称所传递的值
					paramsList.add(params2);
					sendMessageUtil.sendMessages(mes, paramsList);
				}
				break;
			case "-2"://作业单位
				log.put("ACTION", "作业单位打回");
				pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
				pd2.put("CONSTRUCTION_CONTENT",  pd.get("CONTENT"));
				GFhighworkService.edit(pd2);

				// 发短信
				PageData mes = new PageData();
				mes.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
				mes.put("templateCode", "GK_N02");// 短信模板编码
				mes.put("SMSCode", "SMS_223580715");// 短信模板编码
				mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
				// 参数集合
				List<PageData> paramsList = new ArrayList<PageData>();
				// 第1个参数
				PageData params1 = new PageData();
				params1.put("name", "params1");// 存入短信模板中的参数名称
				params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
				paramsList.add(params1);
				// 第2个参数
				PageData params2 = new PageData();
				params2.put("name", "params2");// 存入短信模板中的参数名称
				params2.put("value", "高空作业");// 存入上面参数名称所传递的值
				paramsList.add(params2);
				// 第3个参数
				PageData params3 = new PageData();
				params3.put("name", "params3");// 存入短信模板中的参数名称
				params3.put("value", "作业负责人");// 存入上面参数名称所传递的值
				paramsList.add(params3);
				sendMessageUtil.sendMessages(mes, paramsList);
				break;
			case "-3"://所在单位
				log.put("ACTION", "所在单位打回");
				pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
				pd2.put("CONSTRUCTION_CONTENT",  pd.get("CONTENT"));
				GFhighworkService.edit(pd2);

				// 发短信
				PageData mes4 = new PageData();
				mes4.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
				mes4.put("templateCode", "GK_N03");// 短信模板编码
				mes4.put("SMSCode", "SMS_223580715");// 短信模板编码
				mes4.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
				// 参数集合
				List<PageData> paramsList4 = new ArrayList<PageData>();
				// 第1个参数
				PageData params41 = new PageData();
				params41.put("name", "params1");// 存入短信模板中的参数名称
				params41.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
				paramsList4.add(params41);
				// 第2个参数
				PageData params42 = new PageData();
				params42.put("name", "params2");// 存入短信模板中的参数名称
				params42.put("value", "高空作业");// 存入上面参数名称所传递的值
				paramsList4.add(params42);
				// 第3个参数
				PageData params43 = new PageData();
				params43.put("name", "params3");// 存入短信模板中的参数名称
				params43.put("value", "所在单位");// 存入上面参数名称所传递的值
				paramsList4.add(params43);
				sendMessageUtil.sendMessages(mes4, paramsList4);
				break;
			case "-4"://审核部门打回
				log.put("ACTION", "审核部门打回");
				pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
				pd2.put("AUDIT_CONTENT",  pd.get("CONTENT"));
				GFhighworkService.edit(pd2);

				// 发短信
				PageData mes1 = new PageData();
				mes1.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
				mes1.put("templateCode", "GK_N04");// 短信模板编码
				mes1.put("SMSCode", "SMS_223580715");// 短信模板编码
				mes1.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
				// 参数集合
				List<PageData> paramsList1 = new ArrayList<PageData>();
				// 第1个参数
				PageData params4 = new PageData();
				params4.put("name", "params1");// 存入短信模板中的参数名称
				params4.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
				paramsList1.add(params4);
				// 第2个参数
				PageData params5 = new PageData();
				params5.put("name", "params2");// 存入短信模板中的参数名称
				params5.put("value", "高空作业");// 存入上面参数名称所传递的值
				paramsList1.add(params5);
				// 第3个参数
				PageData params6 = new PageData();
				params6.put("name", "params3");// 存入短信模板中的参数名称
				params6.put("value", "审核人");// 存入上面参数名称所传递的值
				paramsList1.add(params6);
				sendMessageUtil.sendMessages(mes1, paramsList1);
				break;
			case "-5"://审批部门打回
				log.put("ACTION", "审批部门打回");
				pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
				pd2.put("APPROVE_CONTENT",  pd.get("CONTENT"));
				GFhighworkService.edit(pd2);

				// 发短信
				PageData mes2 = new PageData();
				mes2.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
				mes2.put("templateCode", "GK_N05");// 短信模板编码
				mes2.put("SMSCode", "SMS_223580715");// 短信模板编码
				mes2.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
				// 参数集合
				List<PageData> paramsList2 = new ArrayList<PageData>();
				// 第1个参数
				PageData params7 = new PageData();
				params7.put("name", "params1");// 存入短信模板中的参数名称
				params7.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
				paramsList2.add(params7);
				// 第2个参数
				PageData params8 = new PageData();
				params8.put("name", "params2");// 存入短信模板中的参数名称
				params8.put("value", "高空作业");// 存入上面参数名称所传递的值
				paramsList2.add(params8);
				// 第3个参数
				PageData params9 = new PageData();
				params9.put("name", "params3");// 存入短信模板中的参数名称
				params9.put("value", "审批人");// 存入上面参数名称所传递的值
				paramsList2.add(params9);
				sendMessageUtil.sendMessages(mes2, paramsList2);
				break;
			case "-6"://验收人打回
				log.put("ACTION", "验收人打回");
				pd2.put("APPLY_STATUS",  pd.get("APPLY_STATUS"));
				pd2.put("ACCEPT_CONTENT",  pd.get("CONTENT"));
				GFhighworkService.edit(pd2);


				// 发短信
				PageData mes3 = new PageData();
				mes3.put("RECEIVER_ID", pd2.get("CREATOR"));// 收信人userid
				mes3.put("templateCode", "GK_N06");// 短信模板编码
				mes3.put("SMSCode", "SMS_223580715");// 短信模板编码
				mes3.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
				// 参数集合
				List<PageData> paramsList3 = new ArrayList<PageData>();
				// 第1个参数
				PageData params10 = new PageData();
				params10.put("name", "params1");// 存入短信模板中的参数名称
				params10.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
				paramsList3.add(params10);
				// 第2个参数
				PageData params11 = new PageData();
				params11.put("name", "params2");// 存入短信模板中的参数名称
				params11.put("value", "高空作业");// 存入上面参数名称所传递的值
				paramsList3.add(params11);
				// 第3个参数
				PageData params12 = new PageData();
				params12.put("name", "params3");// 存入短信模板中的参数名称
				params12.put("value", "验收人");// 存入上面参数名称所传递的值
				paramsList3.add(params12);
				sendMessageUtil.sendMessages(mes3, paramsList3);
				break;
			default:
				break;
		}
		GFhighWorkLogService.save(log);
		map.put("result", errInfo);
		return map;
	}
	/**列表
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/jhlist")
	@ResponseBody
	public Object jhlist(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());
		page.setPd(pd);
		List<PageData>	varList = GFhighworkService.jhlist(page);	//列出confinedspace列表
		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}
	/**列表
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/aqlist")
	@ResponseBody
	public Object aqlist(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());
		page.setPd(pd);
		List<PageData>	varList = GFhighworkService.aqlist(page);	//列出confinedspace列表
		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}
	/**列表
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/jslist")
	@ResponseBody
	public Object jslist(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());
		page.setPd(pd);
		List<PageData>	varList = GFhighworkService.jslist(page);	//列出confinedspace列表
		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}

	/**列表
	 * @param page
	 * @throws Exception
	 */
	@RequestMapping(value="/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());
		page.setPd(pd);
		List<PageData>	varList = GFhighworkService.list(page);	//列出HighWork列表
		map.put("varList", varList);
		map.put("page", page);
		map.put("result", errInfo);
		return map;
	}

	 /**去修改页面获取数据
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/goEdit")
	@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 = GFhighworkService.findById(pd);	//根据ID读取
		map.put("measuresList", GFhighworkService.listAllMeasures(pd));
		map.put("pd", pd);
		map.put("result", errInfo);
		return map;
	}

	/**待办作业数统计
	 * @param
	 * @throws Exception
	 */
	@RequestMapping(value="/countCheck")
	@ResponseBody
	public Object countCheck() throws Exception{
		Map<String,Object> map = new HashMap<String,Object>();
		String errInfo = "success";
		PageData pd = new PageData();
		pd = this.getPageData();
		PageData count = GFhighworkService.countCheck(pd);
		map.put("result", errInfo);
		map.put("count", count);
		return map;
	}

}