多值传入,数据被覆盖求解决

前台传入两个id循环遍历

img


最后得到的结果是最后传入的i

img


d值
下面是代码求帮助!

img

img

img

img

img


下边是代码

public String getSssjDataJson(String token, String devid) {
    // TODO Auto-generated method stub
    Map<String, String> paramMap = new HashMap<String, String>();
    ResponseBean responseBean = new ResponseBean();
    JSONObject json = null;
    String[] devs = devid.split(",");

    List<DataSssjBean> beanList = new ArrayList<>();
    //遥信
    List<DigitalBean> retList = new ArrayList<>();
    //遥控
    List<DigitalBean> retListYk = new ArrayList<>();

    List<DevWarnBean> devWarnBeans = new ArrayList<>();
    for (int j = 0; j < devs.length; j++) {
        //paramMap.put("ip", ip);
        paramMap.put("token", token);
        paramMap.put("devid", devs[j]);
        int count = interfaceService.queryDevCount(paramMap);
        if (count > 0) {
            //遥测
            beanList = dataPushService.queryDataSssjByDevId(devs[j]);
            Terminal terminal = terminalmapDao.queryTerminalByTmcode(devs[j]);
            String devType = terminal.getType();
            if (devType.equals(SystemCons.TERMINAL_TYPE_SW) || devType.equals(SystemCons.TERMINAL_TYPE_FSGPRS) || devType.equals(SystemCons.TERMINAL_TYPE_HZGPRS)
                    || devType.equals(SystemCons.TERMINAL_TYPE_SZY206_2012) || devType.equals(SystemCons.TERMINAL_TYPE_VIRTUAL)) {
                retList = terminalmapDao.queryDigitalNewDataPagerListByTmcode(devid, 1,
                        0, 50);
                retListYk = terminalmapDao.queryDigitalNewDataPagerListByTmcode(devid, 2,
                        0, 50);
            } else {
                retList = terminalmapDao.queryDigitalNewDataPagerList(devid, 1,
                        0, 50);
                retListYk = terminalmapDao.queryDigitalNewDataPagerList(devid, 2,
                        0, 50);
            }
            for (int i = 0; i < retList.size(); i++) {
                DataSssjBean dataSssjBean = new DataSssjBean();
                DigitalBean digitalBean = retList.get(i);
                dataSssjBean.setDevid(devs[j]);
                dataSssjBean.setData(Double.parseDouble(digitalBean.getOnoff()));
                dataSssjBean.setDatatype(Integer.parseInt(digitalBean.getCtype()));
                dataSssjBean.setName(digitalBean.getRelname());
                dataSssjBean.setDatatime(digitalBean.getDatatime());
                beanList.add(dataSssjBean);
            }
            for (int i = 0; i < retListYk.size(); i++) {
                DataSssjBean dataSssjBean = new DataSssjBean();
                DigitalBean digitalBean = retListYk.get(i);
                dataSssjBean.setDevid(devs[j]);
                dataSssjBean.setData(Double.parseDouble(digitalBean.getOnoff()));
                dataSssjBean.setDatatype(Integer.parseInt(digitalBean.getCtype()));
                dataSssjBean.setName(digitalBean.getRelname());
                dataSssjBean.setDatatime(digitalBean.getDatatime());
                beanList.add(dataSssjBean);
            }

            //报警
            devWarnBeans = devWarnService.queryDevWarnByDevid(devs[j]);
            JSONArray dsbJsonArray = JSONArray.fromObject(beanList);
            JSONArray warnJsonArray = JSONArray.fromObject(devWarnBeans);
            //属性数据
            JSONObject prodataobj = new JSONObject();
            prodataobj.put("devname", terminal.getName());
            prodataobj.put("status", terminal.getStatus());
            prodataobj.put("longitude", terminal.getLongitude());
            prodataobj.put("latitude", terminal.getLatitude());
            prodataobj.put("xzqh", terminal.getXzqh());

            JSONObject dataJson = new JSONObject();
            dataJson.put("devdata", dsbJsonArray);
            dataJson.put("warndata", warnJsonArray);
            dataJson.put("prodata", prodataobj);
            responseBean.setData(dataJson);
            responseBean.setCode(0);
            responseBean.setMsg("success");
            json = JSONObject.fromObject(responseBean);
        } else {
            responseBean.setCode(-1);
            responseBean.setMsg("No devices available");
            json = JSONObject.fromObject(responseBean);
        }
    }
    return json.toString();
}

推荐上代码,别上图片

这种代码,你一个debug就看出来了,还不如去百度下怎么debug

按这个改下吧,返回jsonArray,每个设备id对应一个jsonObject

img