public Map listTaskDetail(String taskId) {
    if (StringUtils.isBlank(taskId)) {
      throw new BusinessException("taskId", ErrorCode.PARAMETER_NOT_FOUND);
    }
    EpTask epTask = epTaskDAO.selectByPrimaryKey(taskId);
    Map map = new HashMap();
    if (epTask != null) {
      map.put("id", epTask.getId());
      map.put("taskName", epTask.getName());
      map.put("taskType", epTask.getType());
      map.put("organId", epTask.getOrganId());
      map.put("taskNote", epTask.getNote());
      map.put("branchId", epTask.getBranchId());
      EpTaskStepExample stepexample = new EpTaskStepExample();
      String orderByClause = "seq";
      stepexample.setOrderByClause(orderByClause);
      EpTaskStepExample.Criteria criteria = stepexample.createCriteria();
      criteria.andTaskIdEqualTo(taskId);
      List<EpTaskStep> list = epTaskStepDAO.selectByExample(stepexample);
      // System.out.println("list:"+list.size());
      List stepList = new ArrayList();
      if (list.size() > 0) {
        for (EpTaskStep epTaskStep : list) {
          EpTaskStepVO epTaskStepVO = new EpTaskStepVO();
          epTaskStepVO.setId(epTaskStep.getId());
          epTaskStepVO.setDeviceType(epTaskStep.getDeviceType());
          epTaskStepVO.setStepName(epTaskStep.getName());
          epTaskStepVO.setStepNote(epTaskStep.getNote());
          epTaskStepVO.setSequence(epTaskStep.getSeq() + "");
          epTaskStepVO.setTaskId(epTaskStep.getTaskId());
          List<EpRTaskstepMonitor> monitorList =
              epRTaskstepMonitorDao.listEpRTaskstepMonitor(epTaskStep.getId());
          System.out.println("1:" + epTaskStep.getId());
          List probersList = new ArrayList();
          List vicList = new ArrayList();
          String lastMonitorId = null;
          // System.out.println("monitorList:"+monitorList.size());
          if (monitorList.size() > 0) {
            for (EpRTaskstepMonitor monitor : monitorList) {
              Map mMap = new HashMap();
              if (monitor.getMonitorType().equals(new BigDecimal(2))) {
                EpRTaskstepMonitorVO vo = new EpRTaskstepMonitorVO();
                vo.setId(monitor.getMonitorId());
                probersList.add(vo);
              }
              /*
               * System.out .println("lastMonitorId:" +
               * lastMonitorId);
               * System.out.println("monitor.getMonitorId():" +
               * monitor.getMonitorId()); System.out
               * .println("lastMonitorId!=monitor.getMonitorId():"
               * + lastMonitorId != monitor .getMonitorId());
               * System.out
               * .println("lastMonitorId!=monitor.getMonitorId():"
               * + monitor.getMonitorId().equals( lastMonitorId));
               * System.out.println(monitor.getMonitorId().equals(
               * lastMonitorId));
               */
              if (monitor.getMonitorType().equals(new BigDecimal(1))
                  && !monitor.getMonitorId().equals(lastMonitorId)) {

                ListEpRTaskstepMonitorVO vo = new ListEpRTaskstepMonitorVO();
                vo.setId(monitor.getMonitorId());
                List viclist = new ArrayList();
                for (EpRTaskstepMonitor vmonitor : monitorList) {
                  if (monitor.getMonitorId().equals(vmonitor.getMonitorId())) {
                    EpRTaskstepMonitorVO visvo = new EpRTaskstepMonitorVO();
                    visvo.setId(vmonitor.getPresetId());
                    EpPreset epPreset = epPresetDAO.selectByPrimaryKey(vmonitor.getPresetId());
                    if (epPreset != null) {
                      viclist.add(epPreset);
                    }
                  }
                }
                vo.setPresets(viclist);
                vicList.add(vo);
              }

              lastMonitorId = monitor.getMonitorId();
            }
          }
          epTaskStepVO.setProbers(probersList);
          epTaskStepVO.setVics(vicList);
          stepList.add(epTaskStepVO);
        }
        map.put("steps", stepList);
      }
    }
    return map;
  }
  public void updateEpTask(String jsonString) throws JSONException {
    JSONObject jsonObj = new JSONObject(jsonString);
    String taskName = jsonObj.getString("taskName");
    String taskType = jsonObj.getString("taskType");
    String organId = jsonObj.getString("organId");
    String id = jsonObj.getString("id");
    if (StringUtils.isBlank(id)) {
      throw new BusinessException("id", ErrorCode.PARAMETER_NOT_FOUND);
    }
    String taskNote = jsonObj.getString("taskNote");
    String branchId = jsonObj.getString("branchId");

    /*
     * EpTaskExample example = new EpTaskExample(); EpTaskExample.Criteria
     * criteria = example.createCriteria();
     * criteria.andNameEqualTo(taskName); List<EpTask> list =
     * epTaskDAO.selectByExample(example); System.out.println(list.size());
     * if (list.size() > 1 && list.get(0).getId() != id) { throw new
     * BusinessException("taskName", ErrorCode.NAME_EXIST); }
     */
    Long time = System.currentTimeMillis();
    EpTask epTask = new EpTask();
    epTask.setId(id);
    epTask.setCreateTime(new BigDecimal(time));
    epTask.setName(taskName);
    epTask.setType(new BigDecimal(taskType));
    epTask.setOrganId(organId);
    epTask.setNote(taskNote);
    epTask.setBranchId(branchId);
    // 更新task表
    epTaskDAO.updateByPrimaryKeySelective(epTask);
    // 删除EpTaskStep
    EpTaskStepExample TaskStepExample = new EpTaskStepExample();
    EpTaskStepExample.Criteria EpTaskStepcriteria = TaskStepExample.createCriteria();
    EpTaskStepcriteria.andTaskIdEqualTo(id);
    epTaskStepDAO.deleteByExample(TaskStepExample);
    // 删除EpTaskStepMonitor
    EpRTaskstepMonitorExample epRTaskstepMonitorExample = new EpRTaskstepMonitorExample();
    EpRTaskstepMonitorExample.Criteria epRTaskstepMonitorCriteria =
        epRTaskstepMonitorExample.createCriteria();
    epRTaskstepMonitorCriteria.andTaskIdEqualTo(id);
    epRTaskstepMonitorDao.deleteByExample(epRTaskstepMonitorExample);

    JSONArray jsonArray = jsonObj.getJSONArray("steps");
    if (jsonArray.length() > 0) {
      for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonSteps = new JSONObject(jsonArray.getString(i));
        String sequence = jsonSteps.getString("sequence");
        String stepName = jsonSteps.getString("stepName");
        String stepNote = jsonSteps.getString("stepNote");
        String deviceType = jsonSteps.getString("deviceType");
        if (StringUtils.isBlank(sequence)) {
          throw new BusinessException("sequence", ErrorCode.PARAMETER_NOT_FOUND);
        }
        if (StringUtils.isBlank(stepName)) {
          throw new BusinessException("stepName", ErrorCode.PARAMETER_NOT_FOUND);
        }
        String stepId = sequenceDAO.getEpTaskStepSeq();
        EpTaskStep epts = new EpTaskStep();
        epts.setSeq(Integer.parseInt(sequence));
        epts.setName(stepName);
        epts.setNote(stepNote);
        epts.setTaskId(id);
        epts.setDeviceType(deviceType);
        epts.setId(stepId);
        epTaskStepDAO.insert(epts);
        JSONArray probers = jsonSteps.getJSONArray("probers");
        if (probers.length() > 0) {
          for (int j = 0; j < probers.length(); j++) {
            JSONObject jsonprobers = new JSONObject(probers.getString(j));
            String monitorId = jsonprobers.getString("id");
            if (StringUtils.isBlank(monitorId)) {
              throw new BusinessException("id", ErrorCode.PARAMETER_NOT_FOUND);
            }
            String epRTaskStepMonitorId = sequenceDAO.getEpRTaskStepMonitorSeq();
            EpRTaskstepMonitor ertsm = new EpRTaskstepMonitor();
            ertsm.setId(epRTaskStepMonitorId);
            ertsm.setMonitorId(monitorId);
            ertsm.setStepId(stepId);
            ertsm.setTaskId(id);
            ertsm.setMonitorType(new BigDecimal(2));
            epRTaskstepMonitorDao.insert(ertsm);
          }
        }
        JSONArray vics = jsonSteps.getJSONArray("vics");
        if (vics.length() > 0) {
          for (int k = 0; k < vics.length(); k++) {
            JSONObject jsonvics = new JSONObject(vics.getString(k));
            String monitorId = jsonvics.getString("id");
            JSONArray presetsnum = jsonvics.getJSONArray("presets");
            if (presetsnum.length() > 0) {
              for (int l = 0; l < presetsnum.length(); l++) {
                JSONObject jsonpresets = new JSONObject(presetsnum.getString(l));
                String presetsnumid = jsonpresets.getString("id");
                if (StringUtils.isBlank(monitorId)) {
                  throw new BusinessException("id", ErrorCode.PARAMETER_NOT_FOUND);
                }
                String epRTaskStepMonitorId = sequenceDAO.getEpRTaskStepMonitorSeq();
                EpRTaskstepMonitor ertsm = new EpRTaskstepMonitor();
                ertsm.setPresetId(presetsnumid);
                ertsm.setId(epRTaskStepMonitorId);
                ertsm.setMonitorId(monitorId);
                ertsm.setStepId(stepId);
                ertsm.setTaskId(id);
                ertsm.setMonitorType(new BigDecimal(1));
                epRTaskstepMonitorDao.insert(ertsm);
              }
            } else {
              String epRTaskStepMonitorId = sequenceDAO.getEpRTaskStepMonitorSeq();
              EpRTaskstepMonitor ertsm = new EpRTaskstepMonitor();
              ertsm.setId(epRTaskStepMonitorId);
              ertsm.setMonitorId(monitorId);
              ertsm.setStepId(stepId);
              ertsm.setTaskId(id);
              ertsm.setMonitorType(new BigDecimal(1));
              epRTaskstepMonitorDao.insert(ertsm);
            }
          }
        }
      }
    }
  }