作者 shenhailong

水表实时信息查询入库 单个水表实时信息查询 远程调用接口 工具类

package com.sunyo.energy.location.controller;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sunyo.energy.location.controller.response.ResultJson;
import com.sunyo.energy.location.dao.LocationMapper;
import com.sunyo.energy.location.model.Location;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/location")
public class LocationController {
@Autowired
private LocationMapper locationMapper;
@RequestMapping(value="/list",method= RequestMethod.GET)
public ResultJson startActivityDemo(@RequestParam(value = "pageNum",required = false,defaultValue = "1")
int pageNum,
@RequestParam(value = "pageSize",required = false,defaultValue = "5")
int pageSize){
Page<Location> page = PageHelper.startPage(pageNum,pageSize);
List<Location> list= locationMapper.selectAll(0);
PageInfo<Location> result = new PageInfo<Location>(list);
return new ResultJson("200","success",result);
}
}
package com.sunyo.energy.location.controller;
import com.sunyo.energy.location.controller.response.ResultJson;
import com.sunyo.energy.location.model.WaterMeter;
import com.sunyo.energy.location.service.WaterMeterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/water_meter")
public class WaterMeterController {
@Autowired
private WaterMeterService waterMeterService;
/**
* 水表实施信息入库
* @param resultJson
* @return
*/
@RequestMapping("/realTime")
@ResponseBody
public ResultJson realTime(ResultJson resultJson){
int i = waterMeterService.realTime();
if (i>0){
resultJson.setCode("200");
resultJson.setMsg("操作成功");
}else {
resultJson.setCode("500");
resultJson.setMsg("操作失败");
}
return resultJson;
}
/**
* 水表单个实施信息查询
*/
@RequestMapping("/findRealTime")
@ResponseBody
public WaterMeter findRealTime(@RequestParam(value = "wmId", required = false) String wmId){
return waterMeterService.findRealTime(wmId);
}
}
... ...
package com.sunyo.energy.location.dao;
import com.sunyo.energy.location.model.Location;
import java.util.List;
public interface LocationMapper {
int deleteByPrimaryKey(Integer id);
int insert(Location record);
int insertSelective(Location record);
List<Location> selectByPrimaryKey(Integer id);
List<Location> selectAll(Integer id);
int updateByPrimaryKeySelective(Location record);
int updateByPrimaryKey(Location record);
}
\ No newline at end of file
package com.sunyo.energy.location.dao;
import com.sunyo.energy.location.model.WaterElectricityParameter;
public interface WaterElectricityParameterMapper {
int deleteByPrimaryKey(Integer id);
int insert(WaterElectricityParameter record);
int insertSelective(WaterElectricityParameter record);
WaterElectricityParameter selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(WaterElectricityParameter record);
int updateByPrimaryKey(WaterElectricityParameter record);
}
\ No newline at end of file
... ...
package com.sunyo.energy.location.dao;
import com.sunyo.energy.location.model.WaterMeter;
public interface WaterMeterMapper {
int insert(WaterMeter record);
int insertSelective(WaterMeter record);
}
\ No newline at end of file
... ...
package com.sunyo.energy.location.model;
import lombok.Data;
import java.util.List;
@Data
public class Location {
private Integer id;
private String adrname;
private Integer parent;
private Integer type;
private List<Location> children;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAdrname() {
return adrname;
}
public void setAdrname(String adrname) {
this.adrname = adrname == null ? null : adrname.trim();
}
public Integer getParent() {
return parent;
}
public void setParent(Integer parent) {
this.parent = parent;
}
}
\ No newline at end of file
package com.sunyo.energy.location.model;
import java.util.Date;
public class WaterElectricityParameter {
private Integer id;
private Boolean prepaid;
private Boolean warningtrip;
private Long warningthreshold;
private Boolean overdraft;
private Long overdraftthreshold;
private Boolean load;
private Long water;
private Long power;
private String powerfactor;
private Boolean free;
private Long freeelectricitylimit;
private String freewater;
private String wmId;
private Date creattime;
private String eeId;
private String reamke2;
private String reamke3;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Boolean getPrepaid() {
return prepaid;
}
public void setPrepaid(Boolean prepaid) {
this.prepaid = prepaid;
}
public Boolean getWarningtrip() {
return warningtrip;
}
public void setWarningtrip(Boolean warningtrip) {
this.warningtrip = warningtrip;
}
public Long getWarningthreshold() {
return warningthreshold;
}
public void setWarningthreshold(Long warningthreshold) {
this.warningthreshold = warningthreshold;
}
public Boolean getOverdraft() {
return overdraft;
}
public void setOverdraft(Boolean overdraft) {
this.overdraft = overdraft;
}
public Long getOverdraftthreshold() {
return overdraftthreshold;
}
public void setOverdraftthreshold(Long overdraftthreshold) {
this.overdraftthreshold = overdraftthreshold;
}
public Boolean getLoad() {
return load;
}
public void setLoad(Boolean load) {
this.load = load;
}
public Long getWater() {
return water;
}
public void setWater(Long water) {
this.water = water;
}
public Long getPower() {
return power;
}
public void setPower(Long power) {
this.power = power;
}
public String getPowerfactor() {
return powerfactor;
}
public void setPowerfactor(String powerfactor) {
this.powerfactor = powerfactor == null ? null : powerfactor.trim();
}
public Boolean getFree() {
return free;
}
public void setFree(Boolean free) {
this.free = free;
}
public Long getFreeelectricitylimit() {
return freeelectricitylimit;
}
public void setFreeelectricitylimit(Long freeelectricitylimit) {
this.freeelectricitylimit = freeelectricitylimit;
}
public String getFreewater() {
return freewater;
}
public void setFreewater(String freewater) {
this.freewater = freewater == null ? null : freewater.trim();
}
public String getWmId() {
return wmId;
}
public void setWmId(String wmId) {
this.wmId = wmId == null ? null : wmId.trim();
}
public Date getCreattime() {
return creattime;
}
public void setCreattime(Date creattime) {
this.creattime = creattime;
}
public String getEeId() {
return eeId;
}
public void setEeId(String eeId) {
this.eeId = eeId == null ? null : eeId.trim();
}
public String getReamke2() {
return reamke2;
}
public void setReamke2(String reamke2) {
this.reamke2 = reamke2 == null ? null : reamke2.trim();
}
public String getReamke3() {
return reamke3;
}
public void setReamke3(String reamke3) {
this.reamke3 = reamke3 == null ? null : reamke3.trim();
}
}
\ No newline at end of file
... ...
package com.sunyo.energy.location.model;
import java.util.Date;
public class WaterMeter {
private String wmId;
private String wmSacc;
private String wmLacc;
private String wmRdtime;
private String wmFmstate;
private String wmErrmessage;
private String wmVoltage;
private String wmSignalpower;
private Date creattime;
private Date updatetime;
private String reamke1;
private String reamke2;
private String reamke3;
private String reamke4;
public String getWmId() {
return wmId;
}
public void setWmId(String wmId) {
this.wmId = wmId == null ? null : wmId.trim();
}
public String getWmSacc() {
return wmSacc;
}
public void setWmSacc(String wmSacc) {
this.wmSacc = wmSacc == null ? null : wmSacc.trim();
}
public String getWmLacc() {
return wmLacc;
}
public void setWmLacc(String wmLacc) {
this.wmLacc = wmLacc == null ? null : wmLacc.trim();
}
public String getWmRdtime() {
return wmRdtime;
}
public void setWmRdtime(String wmRdtime) {
this.wmRdtime = wmRdtime == null ? null : wmRdtime.trim();
}
public String getWmFmstate() {
return wmFmstate;
}
public void setWmFmstate(String wmFmstate) {
this.wmFmstate = wmFmstate == null ? null : wmFmstate.trim();
}
public String getWmErrmessage() {
return wmErrmessage;
}
public void setWmErrmessage(String wmErrmessage) {
this.wmErrmessage = wmErrmessage == null ? null : wmErrmessage.trim();
}
public String getWmVoltage() {
return wmVoltage;
}
public void setWmVoltage(String wmVoltage) {
this.wmVoltage = wmVoltage == null ? null : wmVoltage.trim();
}
public String getWmSignalpower() {
return wmSignalpower;
}
public void setWmSignalpower(String wmSignalpower) {
this.wmSignalpower = wmSignalpower == null ? null : wmSignalpower.trim();
}
public Date getCreattime() {
return creattime;
}
public void setCreattime(Date creattime) {
this.creattime = creattime;
}
public Date getUpdatetime() {
return updatetime;
}
public void setUpdatetime(Date updatetime) {
this.updatetime = updatetime;
}
public String getReamke1() {
return reamke1;
}
public void setReamke1(String reamke1) {
this.reamke1 = reamke1 == null ? null : reamke1.trim();
}
public String getReamke2() {
return reamke2;
}
public void setReamke2(String reamke2) {
this.reamke2 = reamke2 == null ? null : reamke2.trim();
}
public String getReamke3() {
return reamke3;
}
public void setReamke3(String reamke3) {
this.reamke3 = reamke3 == null ? null : reamke3.trim();
}
public String getReamke4() {
return reamke4;
}
public void setReamke4(String reamke4) {
this.reamke4 = reamke4 == null ? null : reamke4.trim();
}
}
\ No newline at end of file
... ...
package com.sunyo.energy.location.service;
import com.sunyo.energy.location.model.WaterMeter;
public interface WaterMeterService {
int realTime();
WaterMeter findRealTime(String wmId);
}
... ...
package com.sunyo.energy.location.service.imp;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.sunyo.energy.location.dao.WaterMeterMapper;
import com.sunyo.energy.location.model.WaterMeter;
import com.sunyo.energy.location.service.WaterMeterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import utils.HttpsUtils;
import java.util.*;
@Service
public class WaterMeterServiceImp implements WaterMeterService {
@Autowired
private WaterMeterMapper waterMeterMapper;
@Override
public int realTime() {
try {
// 调用远程接口
String url = "http://123.56.159.203:8023/nowwmrd/getSelectNowwmrdbyProjectID";
Map<String, Object> datas = new HashMap<>();
datas.put("ProjectID", "33-99-00-00-00-00-01");
String s = HttpsUtils.httpRequest(url, datas);
List<WaterMeter> waterMeterList = new ArrayList<>();
JSONArray jsonArray = JSON.parseArray(s);
for (Object jsonObject:jsonArray){
WaterMeter waterMeter= new WaterMeter();
Map<String,Object> map = (Map)jsonObject;
if (!map.containsKey("state")){
waterMeter.setWmId(map.get("wm_id").toString());
waterMeter.setWmErrmessage(map.get("wm_errmessage").toString());
waterMeter.setWmFmstate(map.get("wm_fmstate").toString());
waterMeter.setWmSacc(map.get("wm_sacc").toString());
waterMeter.setWmLacc(map.get("wm_lacc").toString());
waterMeter.setWmRdtime(map.get("wm_rdtime").toString());
waterMeter.setWmSignalpower(map.get("wm_signalpower").toString());
waterMeter.setWmVoltage(map.get("wm_voltage").toString());
waterMeter.setCreattime(new Date());
waterMeterMapper.insertSelective(waterMeter);
}else {
if ("0".equals(map.get("state").toString())){
return 1;
}
return 0;
}
}
return 1;
}catch (Exception e){
e.printStackTrace();
return 0;
}
}
@Override
public WaterMeter findRealTime(String wmId) {
try {
// 调用远程接口http://123.56.159.203:8023/nowwmrd/getSelectNowwmrdbyMtId?MtId=68-74-40-34-05-29-55
String url = "http://123.56.159.203:8023/nowwmrd/getSelectNowwmrdbyMtId";
Map<String, Object> datas = new HashMap<>();
datas.put("MtId", wmId);
String s = HttpsUtils.httpRequest(url, datas);
JSONArray jsonArray = JSON.parseArray(s);
WaterMeter waterMeter= new WaterMeter();
for (Object jsonObject:jsonArray){
Map<String,Object> map = (Map)jsonObject;
if (!map.containsKey("state")){
waterMeter.setWmId(map.get("wm_id").toString());
waterMeter.setWmErrmessage(map.get("wm_errmessage").toString());
waterMeter.setWmFmstate(map.get("wm_fmstate").toString());
waterMeter.setWmSacc(map.get("wm_sacc").toString());
waterMeter.setWmLacc(map.get("wm_lacc").toString());
waterMeter.setWmRdtime(map.get("wm_rdtime").toString());
waterMeter.setWmSignalpower(map.get("wm_signalpower").toString());
waterMeter.setWmVoltage(map.get("wm_voltage").toString());
}
}
return waterMeter;
}catch (Exception e){
e.printStackTrace();
return new WaterMeter();
}
}
}
... ...
package utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sunyo.energy.location.model.WaterMeter;
import jdk.nashorn.internal.parser.JSONParser;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HttpsUtils {
/**
* java调用运程api公共方法
*
* @param requestUrl
* @param params
* @return
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public static String httpRequest(String requestUrl, Map params) throws Exception {
// buffer用于接受返回的字符
StringBuffer buffer = new StringBuffer();
// 建立URL,把请求地址给补全,其中urlencode()方法用于把params里的参数给取出来
URL url = new URL(requestUrl + "?" + urlencode(params));
// 打开http连接
HttpURLConnection httpUrlConn = (HttpURLConnection) url
.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod("GET");
httpUrlConn.connect();
// 获得输入
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(
inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 将bufferReader的值给放到buffer里
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
// 关闭bufferReader和输入流
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream = null;
// 断开连接
httpUrlConn.disconnect();
// 返回字符串
return buffer.toString();
}
/**
* 请求参数拼接(组装)
*
* @param data
* @return
*/
@SuppressWarnings("rawtypes")
public static String urlencode(Map<String, Object> data) {
// 将map里的参数变成像 showapi_appid=###&showapi_sign=###&的样子
StringBuilder sb = new StringBuilder();
for (Map.Entry i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=")
.append(URLEncoder.encode(i.getValue() + "", "UTF-8"))
.append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
/**
* 向指定 URL 发送POST方法的请求
*
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPostHttpRequest(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 1.获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 2.中文有乱码的需要将PrintWriter改为如下
// out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8")
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
// 测试是否有效
// public static void main(String[] args) {
// // 接口地址
// String requestUrl = "http://123.56.159.203:8023/mtfmset/allWMadd";
// try {
//
// String url = "http://123.56.159.203:8023/nowwmrd/getSelectNowwmrdbyProjectID";
// Map<String, Object> datas = new HashMap<>();
// datas.put("ProjectID", "33-99-00-00-00-00-01");
// List list = new ArrayList<>();
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
}
... ...