package com.zcloud.controller.gf;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.aspect.DockAnnotation;
import com.zcloud.controller.base.BaseController;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.service.gf.GFBreakGroundAcceptUserService;
import com.zcloud.service.gf.GFBreakGroundLogService;
import com.zcloud.service.gf.GFBreakGroundService;
import com.zcloud.service.gf.GFBreakGroundToMeasuresService;
import com.zcloud.util.*;
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 org.springframework.web.multipart.MultipartRequest;

import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.*;

/**
 * 说明:动土作业
 * 作者:fjk
 * 时间:2021-08-27
 * 官网:www.zcloudchina.com
 */
@Controller
@RequestMapping("/app/gfBreakGround")
public class AppGFBreakGroundController extends BaseController {

    @Resource
    private GFBreakGroundService GFbreakGroundService;
    @Autowired
    private GFBreakGroundAcceptUserService breakgroundacceptuserService;
    @Resource
    private GFBreakGroundLogService GFbreakGroundLogService;
    @Resource
    private GFBreakGroundToMeasuresService GFbreakGroundToMeasuresService;
    @Resource
    private SendMessageUtil sendMessageUtil;
    @Autowired
    private Smb smb;

    /**
     * 获取编码
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/getCode")
    @ResponseBody
//	@LogAnno(menuType= "手机",menuServer= "动土作业",instructionsOperate = "动土作业",instructionsType = "获取编码")
    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 = GFbreakGroundService.getCode(pd);    //根据ID读取
        String code = "DT" + 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
    @DockAnnotation(hasAnnex = true)
    public Object add(
            @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();
        ArrayList<String> sendPicturesList = new ArrayList<>();
        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));
        pd2.put("CREATDATE", year + "-" + month + "-" + day);
        pd2.put("CORPINFO_ID", pd.get("CORPINFO_ID"));
        pd2 = GFbreakGroundService.getCode(pd2);    //根据ID读取
        String code = "DT" + year + month + day + dft.format((Integer.parseInt(pd2.get("code").toString()) + 1));
        pd = this.getPageData();
        pd.put("CHECK_NO", code);
        pd.put("BREAKGROUND_ID", this.get32UUID());    //主键
        pd.put("CREATTIME", DateUtil.date2Str(new Date()));    //添加时间
        pd.put("ISDELETE", "0");    //是否删除 1-是  0-否
        pd.put("OTHER_PROTECTIVE_MEASURES", (StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? pd.getString("OTHER_PROTECTIVE_MEASURES") : "") + ";_;");
        pd.put("HAZARD_IDENTIFICATION", (StringUtils.isNotBlank(pd.getString("HAZARD_IDENTIFICATION")) ? pd.getString("HAZARD_IDENTIFICATION") : "") + ";_;");
        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);
            sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName
                    + "@@" + fileName
            );
            pd.put("APPLY_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
            pd.put("APPLY_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
        }
        GFbreakGroundService.save(pd);
        PageData breakGroundPageData = new PageData();
        PageData breakGroundLogPageData = new PageData();

        breakGroundPageData.putAll(pd);
        if (pd.get("APPLY_STATUS").equals("1")) {
            PageData log = new PageData();
            log.put("BREAKGROUNDLOG_ID", this.get32UUID());
            log.put("ACTION", "提交申请");
            log.put("BREAKGROUND_ID", pd.get("BREAKGROUND_ID"));
            log.put("CREATOR", pd.get("ACTION_USER"));
            log.put("CREATTIME", DateUtil.date2Str(new Date()));
            GFbreakGroundLogService.save(log);
            breakGroundLogPageData.putAll(log);
            List<PageData> paramsList = new ArrayList<PageData>();
            // 发短信
            PageData mes = new PageData();
            mes.put("RECEIVER_ID", pd.get("CONSTRUCTION_USER_ID"));// 收信人userid
            mes.put("templateCode", "DT_Y01");// 短信模板编码
            mes.put("SMSCode", "SMS_227245922");// 短信模板编码
            mes.put("CORPINFO_ID", pd.get("CORPINFO_ID"));// 企业id
            // 参数集合
            // 第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);
        }
        PageData dockData = new PageData();
        dockData.put("breakGroundPageData", JSON.toJSONString(breakGroundPageData));
        dockData.put("breakGroundLogPageData", JSON.toJSONString(breakGroundLogPageData));
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(dockData));
        map.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
        return map;
    }

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/editGuardian")
    @ResponseBody
    @Transactional
    @DockAnnotation
    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 = GFbreakGroundService.findById(pd);
        pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
        pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
        ArrayList<String> sendPicturesList = new ArrayList<>();
        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);
            sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName
                    + "@@" + fileName
            );
            pd2.put("GUARDIAN_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
            pd2.put("GUARDIAN_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
            GFbreakGroundService.edit(pd2);
        }
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(pd2));
        map.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
        return map;
    }

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/editConfess")
    @ResponseBody
    @Transactional
    @DockAnnotation
    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 = GFbreakGroundService.findById(pd);
        pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
        pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
        ArrayList<String> sendPicturesList = new ArrayList<>();

        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);
            sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName
                    + "@@" + fileName
            );
            pd2.put("CONFESS_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
            pd2.put("CONFESS_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
            GFbreakGroundService.edit(pd2);
        }
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(pd2));
        map.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
        return map;
    }

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/editAcceptconfess")
    @ResponseBody
    @Transactional
    @DockAnnotation
    public Object editAcceptconfess(MultipartRequest request) 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 = GFbreakGroundService.findById(pd);
        pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
        pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
        List<MultipartFile> fileList = new ArrayList<MultipartFile>();
        String signertime = "";
        String SIGNTIME[] = pd.getString("SIGNTIME").split(",");
        PageData dockData = new PageData();
        ArrayList<PageData> dataArrayList = new ArrayList<>();
        for (int i = 0; i < SIGNTIME.length; i++) {
            signertime = SIGNTIME[i];
            fileList.add(request.getFile("file" + i));
            MultipartFile[] fileArr = new MultipartFile[fileList.size()];
            PageData item = saveImg(fileList.toArray(fileArr), signertime, pd.getString("BREAKGROUND_ID"), pd.getString("CORPINFO_ID"), pd.getString("ACCEPT_CONFESS_USER_ID"), pd.getString("ACCEPT_CONFESS_DEPARTMENT_ID"));
            dataArrayList.add(item);
            fileList.clear();
        }
        dockData.put("data", JSON.toJSONString(dataArrayList));
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(dockData));
        return map;
    }

    private PageData saveImg(MultipartFile[] files, String signertime, String BREAKGROUND_ID, String CORPINFO_ID, String ACCEPT_CONFESS_USER_ID, String ACCEPT_CONFESS_DEPARTMENT_ID) throws Exception {
        if (files != null && files.length > 0) {
            PageData dockData = new PageData();
            ArrayList<PageData> dataArrayList = new ArrayList<>();
            ArrayList<String> sendPicturesList = new ArrayList<>();
            for (int i = 0; i < files.length; i++) {
                PageData pd = this.getPageData();
                MultipartFile file = files[i];
                String ffile = DateUtil.getDays();
                String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                smb.sshSftp(file, fileName, Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile);
                sendPicturesList.add(Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile + "/" + fileName
                        + "@@" + fileName
                );
                pd.put("ACCEPT_CONFESS_USER_SIGNER_TIME", signertime);
                pd.put("ACCEPT_CONFESS_ID", this.get32UUID());
                pd.put("OPERATOR", pd.get("OPERATOR"));    //修改人
                pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
                pd.put("ACCEPT_CONFESS_USER_SIGNER_PATH", Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile + "/" + fileName);
                pd.put("ISDELETE", '0');
                pd.put("CORPINFO_ID", CORPINFO_ID);
                pd.put("BREAKGROUND_ID", BREAKGROUND_ID);
                pd.put("ACCEPT_CONFESS_USER_ID", ACCEPT_CONFESS_USER_ID);
                pd.put("ACCEPT_CONFESS_DEPARTMENT_ID", ACCEPT_CONFESS_DEPARTMENT_ID);
                pd.put("ACCEPT_USER_ID", "");
                pd.put("ACCEPT_DEPARTMENT_ID", "");
                dataArrayList.add(pd);
                breakgroundacceptuserService.save(pd);
            }
            dockData.put("dataArrayList", JSON.toJSONString(dataArrayList));
            dockData.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
            return dockData;
        }
        return null;
    }

    /**
     * 上传图
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/uploadImg")
    @ResponseBody
    @Transactional
    public Object uploadImg(
            @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();
        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);

            map.put("path", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
        }

        map.put("result", errInfo);
        return map;
    }

    /**
     * 删除图
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/deleteImg")
    @ResponseBody
    @Transactional
    public Object deleteImg() throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        String errInfo = "success";
        PageData pd = new PageData();
        pd = this.getPageData();
        smb.deleteFile(pd.getString("path"));
        map.put("result", errInfo);
        return map;
    }


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

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/edit")
    @ResponseBody
    @Transactional
    @DockAnnotation(hasAnnex = true)
    public Object edit(
            @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();
        ArrayList<String> sendPicturesList = new ArrayList<>();
        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
        pd.put("OTHER_PROTECTIVE_MEASURES", (StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? pd.getString("OTHER_PROTECTIVE_MEASURES") : "") + ";_;");
        pd.put("HAZARD_IDENTIFICATION", (StringUtils.isNotBlank(pd.getString("HAZARD_IDENTIFICATION")) ? pd.getString("HAZARD_IDENTIFICATION") : "") + ";_;");
        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);
            pd.put("APPLY_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
            sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);
            pd.put("APPLY_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
        }
        PageData breakGroundEditData = new PageData();
        PageData breakGroundlogData = new PageData();
        ArrayList<PageData> measuresList = new ArrayList<>();
        GFbreakGroundService.edit(pd);
        GFbreakGroundToMeasuresService.delete(pd);
        breakGroundEditData.putAll(pd);
        if (pd.get("measuresList") != null) {
            List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("measuresList").toString());
            for (JSONObject json : list) {
                PageData measures = new PageData();
                measures.put("BREAKGROUNDTOMEASURES_ID", this.get32UUID()); // 主键
                measures.put("BREAKGROUND_ID", pd.get("BREAKGROUND_ID"));
                measures.put("BUS_BREAKGROUND_MEASURES_ID", json.get("BUS_BREAKGROUND_MEASURES_ID"));
                measures.put("STATUS", json.get("STATUS"));
                measures.put("ANSWER", json.get("ANSWER"));
                measures.put("CONFIRM_ID", pd.get("OPERATOR"));
                measures.put("CONFIRM_NAME", pd.get("ACTION_USER"));
                GFbreakGroundToMeasuresService.save(measures);
                measuresList.add(measures);
            }
        }
        if (!pd.get("APPLY_STATUS").equals("0")) {
            PageData log = new PageData();
            log.put("BREAKGROUNDLOG_ID", this.get32UUID());
            log.put("ACTION", "修改申请,重新提交");
            log.put("BREAKGROUND_ID", pd.get("BREAKGROUND_ID"));
            log.put("CREATOR", pd.get("ACTION_USER"));
            log.put("CREATTIME", DateUtil.date2Str(new Date()));
            GFbreakGroundLogService.save(log);
            breakGroundlogData.putAll(log);

            // 发短信
            PageData mes = new PageData();
            mes.put("RECEIVER_ID", pd.get("CONSTRUCTION_USER_ID"));// 收信人userid
            mes.put("templateCode", "DT_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);
        }
        PageData dockData = new PageData();
        dockData.put("breakGroundEditData", JSON.toJSONString(breakGroundEditData));
        dockData.put("breakGroundlogData", JSON.toJSONString(breakGroundlogData));
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(dockData));
        map.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
        return map;
    }

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/editAcceptStatus")
    @ResponseBody
    @Transactional
    @DockAnnotation(hasAnnex = true)
    public Object editAcceptStatus(MultipartRequest request) 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 = GFbreakGroundService.findById(pd);
        pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
        pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间

        PageData log = new PageData();
        log.put("BREAKGROUNDLOG_ID", this.get32UUID());
//        log.put("ACTION", "审核打回");
        log.put("BREAKGROUND_ID", pd.get("BREAKGROUND_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 = (StringUtils.isNotBlank(pd2.getString("OTHER_PROTECTIVE_MEASURES")) ? pd2.getString("OTHER_PROTECTIVE_MEASURES") : "") +
                (StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? (pd.getString("OTHER_PROTECTIVE_MEASURES") + ";_;") : ";_;");
        String HAZARD_IDENTIFICATION = (StringUtils.isNotBlank(pd2.getString("HAZARD_IDENTIFICATION")) ? pd2.getString("HAZARD_IDENTIFICATION") : "") +
                (StringUtils.isNotBlank(pd.getString("HAZARD_IDENTIFICATION")) ? (pd.getString("HAZARD_IDENTIFICATION") + ";_;") : ";_;");
        //打回清空数据
        pd2.put("OTHER_PROTECTIVE_MEASURES", "");
        pd2.put("HAZARD_IDENTIFICATION", "");
        ArrayList<String> sendPicturesList = new ArrayList<>();
        ArrayList<PageData> saveAcceptUserList = new ArrayList<>();
        switch (status) {

            case "6"://验收人
                List<MultipartFile> fileList = new ArrayList<MultipartFile>();
                String signertime = "";
                String SIGNTIME[] = pd.getString("SIGNTIME").split(",");

                for (int i = 0; i < SIGNTIME.length; i++) {
                    signertime = SIGNTIME[i];
                    fileList.add(request.getFile("file" + i));
                    MultipartFile[] fileArr = new MultipartFile[fileList.size()];
                    saveAcceptImg(sendPicturesList,saveAcceptUserList,fileList.toArray(fileArr), signertime, pd.getString("BREAKGROUND_ID"), pd.getString("CORPINFO_ID"), pd.getString("ACCEPT_USER_ID"), pd.getString("ACCEPT_DEPARTMENT_ID"));
                    fileList.clear();
                }
                pd2.put("ACCEPT_CONTENT", pd.get("CONTENT"));
                pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
                pd2.put("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                GFbreakGroundService.edit(pd2);
                log.put("ACTION", "验收通过");


                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;

            case "-6"://审批打回
                log.put("ACTION", "验收人打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("ACCEPT_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);
                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            default:
                break;
        }

        GFbreakGroundLogService.save(log);
        PageData dockData = new PageData();
        dockData.put("saveAcceptUserList", JSON.toJSONString(saveAcceptUserList));
        dockData.put("logData", JSON.toJSONString(log));
        dockData.put("STATUS", status);
        dockData.put("editData", JSON.toJSONString(pd2));
        map.put("sendPicturesList", JSON.toJSONString(sendPicturesList));
        map.put("dockData",  JSON.toJSONString(dockData));
        map.put("result", errInfo);
        return map;
    }

    private void saveAcceptImg(List<String> sendPicturesList,List<PageData> saveAcceptUserList,MultipartFile[] files, String signertime, String BREAKGROUND_ID, String CORPINFO_ID, String ACCEPT_USER_ID, String ACCEPT_DEPARTMENT_ID) throws Exception {
        if (files != null && files.length > 0) {
            for (int i = 0; i < files.length; i++) {
                PageData cpd = new PageData();
                cpd = this.getPageData();
                MultipartFile file = files[i];
                String ffile = DateUtil.getDays();
                String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                smb.sshSftp(file, fileName, Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile);
                sendPicturesList.add(Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile + "/" + fileName+
                        "@@"+fileName);
                cpd.put("ACCEPT_USER_SIGNER_TIME", signertime);
                cpd.put("ACCEPT_CONFESS_ID", this.get32UUID());
                cpd.put("OPERATOR", cpd.get("OPERATOR"));    //修改人
                cpd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
                cpd.put("ACCEPT_USER_SIGNER_PATH", Const.FILEPATHFILE + CORPINFO_ID + "/" + ffile + "/" + fileName);
                cpd.put("ISDELETE", '0');
                cpd.put("CORPINFO_ID", CORPINFO_ID);
                cpd.put("BREAKGROUND_ID", BREAKGROUND_ID);
                cpd.put("ACCEPT_USER_ID", ACCEPT_USER_ID);
                cpd.put("ACCEPT_CONFESS_DEPARTMENT_ID", "");
                cpd.put("ACCEPT_CONFESS_USER_ID", "");
                cpd.put("ACCEPT_DEPARTMENT_ID", ACCEPT_DEPARTMENT_ID);
                breakgroundacceptuserService.save(cpd);
                saveAcceptUserList.add(cpd);
            }
        }
    }

    /**
     * 修改
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/editStatus")
    @ResponseBody
    @Transactional
    @DockAnnotation(hasAnnex = true)
    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 = GFbreakGroundService.findById(pd);
        pd2.put("OPERATOR", pd.get("OPERATOR"));    //修改人
        pd2.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
        ArrayList<String> sendPicturesList = new ArrayList<>();
        ArrayList<PageData> toMeasuresList = new ArrayList<>();
        PageData log = new PageData();
        log.put("BREAKGROUNDLOG_ID", this.get32UUID());
//        log.put("ACTION", "审核打回");
        log.put("BREAKGROUND_ID", pd.get("BREAKGROUND_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 = (StringUtils.isNotBlank(pd2.getString("OTHER_PROTECTIVE_MEASURES")) ? pd2.getString("OTHER_PROTECTIVE_MEASURES") : "") +
                (StringUtils.isNotBlank(pd.getString("OTHER_PROTECTIVE_MEASURES")) ? (pd.getString("OTHER_PROTECTIVE_MEASURES") + ";_;") : ";_;");
        String HAZARD_IDENTIFICATION = (StringUtils.isNotBlank(pd2.getString("HAZARD_IDENTIFICATION")) ? pd2.getString("HAZARD_IDENTIFICATION") : "") +
                (StringUtils.isNotBlank(pd.getString("HAZARD_IDENTIFICATION")) ? (pd.getString("HAZARD_IDENTIFICATION") + ";_;") : ";_;");
        //打回清空数据
        pd2.put("OTHER_PROTECTIVE_MEASURES", "");
        pd2.put("HAZARD_IDENTIFICATION", "");
        switch (status) {
            case "2"://作业负责单位
                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);
                    sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);
                    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("PRODUCTION_USER_ID") == null || StringUtils.isBlank(pd2.getString("PRODUCTION_USER_ID"))) {
                        OTHER_PROTECTIVE_MEASURES += ";_;";
                        HAZARD_IDENTIFICATION += ";_;";
                        if (pd2.get("SAFETY_USER_ID") == null || StringUtils.isBlank(pd2.getString("SAFETY_USER_ID"))) {
                            OTHER_PROTECTIVE_MEASURES += ";_;";
                            HAZARD_IDENTIFICATION += ";_;";
                            if (pd2.get("LEADER_USER_ID") == null || StringUtils.isBlank(pd2.getString("LEADER_USER_ID"))) {
                                OTHER_PROTECTIVE_MEASURES += ";_;";
                                HAZARD_IDENTIFICATION += ";_;";
                            }
                        }
                    }
                    pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
                    pd2.put("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                    pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                    GFbreakGroundService.edit(pd2);
                    log.put("ACTION", "作业负责单位通过");
                    GFbreakGroundToMeasuresService.delete(pd);
                    if (pd.get("measuresList") != null) {
                        List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("measuresList").toString());
                        for (JSONObject json : list) {
                            PageData measures = new PageData();
                            measures.put("BREAKGROUNDTOMEASURES_ID", this.get32UUID()); // 主键
                            measures.put("BREAKGROUND_ID", pd.get("BREAKGROUND_ID"));
                            measures.put("BUS_BREAKGROUND_MEASURES_ID", json.get("BUS_BREAKGROUND_MEASURES_ID"));
                            measures.put("STATUS", json.get("STATUS"));
                            measures.put("ANSWER", json.get("ANSWER"));
                            measures.put("CONFIRM_ID", pd.get("OPERATOR"));
                            measures.put("CONFIRM_NAME", pd.get("ACTION_USER"));
                            GFbreakGroundToMeasuresService.save(measures);
                            toMeasuresList.add(measures);
                        }
                    }
                    // 发短信
                    this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                }
                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);
                    sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);

                    pd2.put("PRODUCTION_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
                    pd2.put("PRODUCTION_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
                    pd2.put("PRODUCTION_CONTENT", pd.get("CONTENT"));
                    if (pd2.get("SAFETY_USER_ID") == null || StringUtils.isBlank(pd2.getString("SAFETY_USER_ID"))) {
                        OTHER_PROTECTIVE_MEASURES += ";_;";
                        HAZARD_IDENTIFICATION += ";_;";
                        if (pd2.get("LEADER_USER_ID") == null || StringUtils.isBlank(pd2.getString("LEADER_USER_ID"))) {
                            OTHER_PROTECTIVE_MEASURES += ";_;";
                            HAZARD_IDENTIFICATION += ";_;";
                        }
                    }
                    pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
                    pd2.put("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                    pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                    GFbreakGroundService.edit(pd2);
                    log.put("ACTION", "所在单位通过");

                    // 发短信
                    this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                }
                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);
                    sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);

                    pd2.put("SAFETY_USER_SIGNER_PATH", Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
                    pd2.put("SAFETY_USER_SIGNER_TIME", pd.get("SIGNER_TIME"));
                    pd2.put("SAFETY_CONTENT", pd.get("CONTENT"));
                    if (pd2.get("LEADER_USER_ID") == null || StringUtils.isBlank(pd2.getString("LEADER_USER_ID"))) {
                        OTHER_PROTECTIVE_MEASURES += ";_;";
                        HAZARD_IDENTIFICATION += ";_;";
                    }
                    pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
                    pd2.put("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                    pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                    GFbreakGroundService.edit(pd2);
                    log.put("ACTION", "安全部门通过");

                    // 发短信
                    this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                }
                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);
                    sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);

                    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"));
                    pd2.put("OTHER_PROTECTIVE_MEASURES", OTHER_PROTECTIVE_MEASURES);
                    pd2.put("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                    pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                    GFbreakGroundService.edit(pd2);
                    log.put("ACTION", "审批部门通过");

                    // 发短信
                    this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                }
                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);
                    sendPicturesList.add(Const.FILEPATHFILE + pd.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName + "@@" + fileName);

                    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("HAZARD_IDENTIFICATION", HAZARD_IDENTIFICATION);
                    pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                    GFbreakGroundService.edit(pd2);
                    log.put("ACTION", "验收通过");


                    // 发短信
                    this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                }
                break;
            case "-2"://作业负责单位
                log.put("ACTION", "作业负责单位打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("CONSTRUCTION_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);

                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            case "-3"://所在单位打回
                log.put("ACTION", "所在单位打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("PRODUCTION_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);

                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            case "-4"://安全部门打回
                log.put("ACTION", "安全部门打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("SAFETY_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);

                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            case "-5"://审批打回
                log.put("ACTION", "审批部门打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("LEADER_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);

                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            case "-6"://审批打回
                log.put("ACTION", "验收人打回");
                pd2.put("APPLY_STATUS", pd.get("APPLY_STATUS"));
                pd2.put("ACCEPT_CONTENT", pd.get("CONTENT"));
                GFbreakGroundService.edit(pd2);
                // 发短信
                this.switchMessages(pd.get("APPLY_STATUS").toString(), pd2);
                break;
            default:
                break;
        }
        GFbreakGroundLogService.save(log);
        PageData dockData = new PageData();
        dockData.put("logData",JSON.toJSONString(log));
        dockData.put("STATUS",status);
        dockData.put("saveData",JSON.toJSONString(pd2));
        dockData.put("requestData",JSON.toJSONString(pd));
        dockData.put("toMeasuresList",JSON.toJSONString(toMeasuresList));
        map.put("result", errInfo);
        map.put("dockData", JSON.toJSONString(dockData));
        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 = GFbreakGroundService.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 = GFbreakGroundService.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 = GFbreakGroundService.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 = GFbreakGroundService.list(page);    //列出BreakGround列表
        map.put("varList", varList);
        map.put("page", page);
        map.put("result", errInfo);
        return map;
    }

    /**
     * 去修改页面获取数据
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/goAdd")
    @ResponseBody
    public Object goAdd() throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        String errInfo = "success";
        PageData pd = new PageData();
        map.put("measuresList", GFbreakGroundService.listAllMeasures(pd));
        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 = GFbreakGroundService.findById(pd);    //根据ID读取
        map.put("pd", pd);
        map.put("measuresList", GFbreakGroundService.listAllMeasures(pd));
        map.put("imgList1", breakgroundacceptuserService.findById(pd));
        map.put("imgList", breakgroundacceptuserService.findByIds(pd));
        map.put("result", errInfo);
        return map;
    }

    /**
     * 批量删除
     *
     * @param
     * @throws Exception
     */
    @RequestMapping(value = "/deleteAll")
    @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(",");
            GFbreakGroundService.deleteAll(ArrayDATA_IDS);
            errInfo = "success";
        } else {
            errInfo = "error";
        }
        map.put("result", errInfo);                //返回结果
        return map;
    }

    /**
     * 选择短信模板
     *
     * @param appStatus 阶段
     * @param pd2       参数集合
     * @throws Exception
     */
    private void switchMessages(String appStatus, PageData pd2) throws Exception {
        PageData mes = new PageData();
        List<PageData> paramsList = new ArrayList<PageData>();
        PageData params1 = new PageData();
        PageData params2 = new PageData();
        PageData params3 = new PageData();
        PageData params4 = new PageData();
        switch (appStatus) {
            case "2"://作业负责单位
                System.out.println(pd2.get("APPLY_STATUS"));
                if ("2".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("PRODUCTION_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y02");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("3".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("SAFETY_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y03");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("4".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("LEADER_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y04");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("5".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y05");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("6".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y06");// 短信模板编码
                    mes.put("SMSCode", "SMS_227250920");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                }
                // 发短信


                // 第1个参数
                params1.put("name", "number");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params1");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params2");// 存入短信模板中的参数名称
                params3.put("value", "所在单位");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                // 第4个参数
                params4.put("name", "params3");// 存入短信模板中的参数名称
                params4.put("value", "审核");// 存入上面参数名称所传递的值
                paramsList.add(params4);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;

            case "3"://所在单位
                System.out.println(pd2.get("APPLY_STATUS"));
                if ("3".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("SAFETY_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y03");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("4".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("LEADER_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y04");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("5".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y05");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("6".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y06");// 短信模板编码
                    mes.put("SMSCode", "SMS_227250920");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                }
                // 发短信
                // 第1个参数
                params1.put("name", "number");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params1");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params2");// 存入短信模板中的参数名称
                params3.put("value", "安全部门");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                // 第4个参数
                params4.put("name", "params3");// 存入短信模板中的参数名称
                params4.put("value", "审核");// 存入上面参数名称所传递的值
                paramsList.add(params4);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;

            case "4"://安全部门
                System.out.println(pd2.get("APPLY_STATUS"));
                if ("4".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("LEADER_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y04");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("5".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("LEADER_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y05");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("6".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y06");// 短信模板编码
                    mes.put("SMSCode", "SMS_227250920");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                }
                // 发短信
                // 第1个参数
                params1.put("name", "number");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params1");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params2");// 存入短信模板中的参数名称
                params3.put("value", "审批部门");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                // 第4个参数
                params4.put("name", "params3");// 存入短信模板中的参数名称
                params4.put("value", "审批");// 存入上面参数名称所传递的值
                paramsList.add(params4);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;

            case "5"://审批部门
                System.out.println(pd2.get("APPLY_STATUS"));
                if ("5".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("ACCEPT_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y05");// 短信模板编码
                    mes.put("SMSCode", "SMS_227245922");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                } else if ("6".equals(pd2.get("APPLY_STATUS"))) {
                    mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                    mes.put("templateCode", "DT_Y06");// 短信模板编码
                    mes.put("SMSCode", "SMS_227250920");// 短信模板编码
                    mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                }
                // 第1个参数
                params1.put("name", "number");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params1");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params2");// 存入短信模板中的参数名称
                params3.put("value", "验收");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                // 第4个参数
                params4.put("name", "params3");// 存入短信模板中的参数名称
                params4.put("value", "验收");// 存入上面参数名称所传递的值
                paramsList.add(params4);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;

            case "6"://验收人
                System.out.println(pd2.get("APPLY_STATUS"));
                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_Y06");// 短信模板编码
                mes.put("SMSCode", "SMS_227250920");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "number");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "type");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            case "-2"://作业负责单位
                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_N02");// 短信模板编码
                mes.put("SMSCode", "SMS_223580715");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "params1");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params2");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params3");// 存入短信模板中的参数名称
                params3.put("value", "作业负责单位");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            case "-3"://所在单位打回
                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_N03");// 短信模板编码
                mes.put("SMSCode", "SMS_223580715");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "params1");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params2");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params3");// 存入短信模板中的参数名称
                params3.put("value", "所在单位意见");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            case "-4"://安全部门打回

                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_N04");// 短信模板编码
                mes.put("SMSCode", "SMS_223580715");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "params1");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params2");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params3");// 存入短信模板中的参数名称
                params3.put("value", "安全部门");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            case "-5"://审批打回
                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_N05");// 短信模板编码
                mes.put("SMSCode", "SMS_223580715");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "params1");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params2");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params3");// 存入短信模板中的参数名称
                params3.put("value", "审批部门");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            case "-6"://验收打回
                // 发短信
                mes.put("RECEIVER_ID", pd2.get("APPLY_USER_ID"));// 收信人userid
                mes.put("templateCode", "DT_N06");// 短信模板编码
                mes.put("SMSCode", "SMS_223580715");// 短信模板编码
                mes.put("CORPINFO_ID", pd2.get("CORPINFO_ID"));// 企业id
                // 第1个参数
                params1.put("name", "params1");// 存入短信模板中的参数名称
                params1.put("value", pd2.get("CHECK_NO"));// 存入上面参数名称所传递的值
                paramsList.add(params1);

                // 第2个参数
                params2.put("name", "params2");// 存入短信模板中的参数名称
                params2.put("value", "动土作业");// 存入上面参数名称所传递的值
                paramsList.add(params2);
                // 第3个参数
                params3.put("name", "params3");// 存入短信模板中的参数名称
                params3.put("value", "验收部门");// 存入上面参数名称所传递的值
                paramsList.add(params3);
                sendMessageUtil.sendMessages(mes, paramsList);
                break;
            default:
                break;
        }
    }

    /**
     * 待办作业数统计
     *
     * @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 = this.getPageData();
        PageData count = GFbreakGroundService.countCheck(pd);
        map.put("result", errInfo);
        map.put("count", count);
        return map;
    }

}