diff --git a/model/管理水位信息第一次迭代uml顺序图.png b/model/管理水位信息第一次迭代uml顺序图.png new file mode 100644 index 0000000..09b3155 Binary files /dev/null and b/model/管理水位信息第一次迭代uml顺序图.png differ diff --git a/model/管理水位信息第二次迭代uml顺序图.png b/model/管理水位信息第二次迭代uml顺序图.png new file mode 100644 index 0000000..08316f1 Binary files /dev/null and b/model/管理水位信息第二次迭代uml顺序图.png differ diff --git a/model/管理水质信息第一次迭代uml顺序图.png b/model/管理水质信息第一次迭代uml顺序图.png new file mode 100644 index 0000000..2c99313 Binary files /dev/null and b/model/管理水质信息第一次迭代uml顺序图.png differ diff --git a/model/管理水质信息第二次迭代uml顺序图.png b/model/管理水质信息第二次迭代uml顺序图.png new file mode 100644 index 0000000..94848c6 Binary files /dev/null and b/model/管理水质信息第二次迭代uml顺序图.png differ diff --git a/other/200340013 廖启兴 实践总结报告.docx b/other/200340013 廖启兴 实践总结报告.docx new file mode 100644 index 0000000..ea5cba9 Binary files /dev/null and b/other/200340013 廖启兴 实践总结报告.docx differ diff --git a/src/src_houduan/dao/WaterLevelDao.java b/src/src_houduan/dao/WaterLevelDao.java new file mode 100644 index 0000000..68944eb --- /dev/null +++ b/src/src_houduan/dao/WaterLevelDao.java @@ -0,0 +1,20 @@ +package dao; + +import domain.PageBean; +import domain.WaterLevel; + +import java.util.List; +import java.util.Map; + +public interface WaterLevelDao +{ + public abstract List findAllByPage(int start,int pageSize);//从start开始查询pagesize行信息 + public abstract int findAllCount();//查询水位信息的总量 + public abstract boolean addWaterLevelInfo(WaterLevel waterLevel); + public abstract boolean update(WaterLevel waterLevel); + public abstract boolean deleteInfo(int id); + public abstract List conditionalQueryByPage(int start, int pageSize, Map condition);//条件查找 + public abstract int conditionalFindAllCount(Map condition);//条件查找总数 + public abstract List findBySiteName(String siteName);//通过站点来查询水位信息,查询一个站点的所有水位信息 + public abstract List findWeekData();//返回过去一周的数据,及筛出时间戳在一周以内的数据 +} diff --git a/src/src_houduan/dao/WaterQualityDao.java b/src/src_houduan/dao/WaterQualityDao.java new file mode 100644 index 0000000..35362a4 --- /dev/null +++ b/src/src_houduan/dao/WaterQualityDao.java @@ -0,0 +1,26 @@ +package dao; + +import domain.StationAndQuality; +import domain.Statistics; +import domain.WaterQuality; + +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-20 15:03 + */ +public interface WaterQualityDao +{ + public abstract boolean add(WaterQuality waterQuality);//添加一条记录 + public abstract List findByName(String stationName); + public abstract boolean update(WaterQuality waterQuality); + public abstract boolean del(int id); + public abstract WaterQuality findNewestRecord(String stationName); + public abstract List findPollutedWater(); + public abstract List findByNameAndTime(String name,String startTime,String endTime,String level); + public abstract List findByStationName(String name); + public abstract List findWeekData(); + + +} diff --git a/src/src_houduan/dao/impl/WaterLevelDaoImpl.java b/src/src_houduan/dao/impl/WaterLevelDaoImpl.java new file mode 100644 index 0000000..2877aa4 --- /dev/null +++ b/src/src_houduan/dao/impl/WaterLevelDaoImpl.java @@ -0,0 +1,252 @@ +package dao.impl; +//Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 +import dao.WaterLevelDao; +import domain.PageBean; //分页对象 +import domain.WaterLevel; //水位信息对象 +import org.springframework.dao.DataAccessException; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +//BeanPropertyRowMapper 是 RowMapper 执行该表的行转换成指定的映射的目标类的一个新实例 +import org.springframework.jdbc.core.JdbcTemplate; +//JdbcTemplate 是 Spring JDBC 核心包(core)中的核心类, +// 它可以通过配置文件、注解、Java 配置类等形式获取数据库的相关信息, +// 实现了对 JDBC 开发过程中的驱动加载、连接的开启和关闭、SQL 语句的创建与执行、异常处理、事务处理、数据类型转换等操作的封装。 +// 我们只要对其传入SQL 语句和必要的参数即可轻松进行 JDBC 编程 +import util.JDBCUtils; +//JDBCUtils的作用:连接数据库的四大参数是:驱动类、URL、用户名、密码, +// 这些参数都是与特定数据库关联,如果将来想要更改数据库,那么就要去修改这四大参数,那么为了不去修改代码, +// 我们需要写一个JDBCUtils类,让它从配置文件中读取到配置参数,然后创建连接对象 +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class WaterLevelDaoImpl implements WaterLevelDao +{ + JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); + @Override + public List findAllByPage(int start,int pageSize)//查询从start行数为pageSize的水位数据 + { + + String sql="select * from water_level limit ?,?"; + List list = template.query(sql, new BeanPropertyRowMapper(WaterLevel.class),start,pageSize); + //获取水位信息,start开始 + return list;//返回从第start开始的水位信息的列表,所查询信息的行数为pageSize + } + + @Override + public int findAllCount()//返回水位信息数据总数 + { + String sql="select count(*) from water_level"; + int integer = template.queryForObject(sql, Integer.class); + return integer; + + } + + @Override + public boolean addWaterLevelInfo(WaterLevel waterLevel)//添加水位信息 + { + String sq="select * from water_level where siteName=? and collectionDate=?"; + List query=null; + try { + query = template.query(sq, new BeanPropertyRowMapper(WaterLevel.class), waterLevel.getSiteName(), waterLevel.getCollectionDate()); + } catch (Exception e) { + System.out.println(e); + } + int update=0; + if(query==null||query.size()==0)//没有查询到该水位信息信息,则添加该信息 + { + try { + String sql="insert into water_level (id,riverName,siteName,collectionDate,waterLevel,flow,over) values(null,?,?,?,?,?,?)"; + update = template.update(sql, waterLevel.getRiverName(), + waterLevel.getSiteName(), + waterLevel.getCollectionDate(), + waterLevel.getWaterLevel(), + waterLevel.getFlow(), + waterLevel.getOver()); + } catch (Exception e) { + System.out.println(e); + } + + } + + if(update!=0)//含有该信息则不添加该水位信息 + { + return true; + } + else + { + return false; + } + + } + + @Override + public boolean update(WaterLevel waterLevel)//修改水位信息 + { + int update=0; + try { + String sql="update water_level set riverName=?,siteName=?,collectionDate=? ,waterLevel=?,flow=?,over=? where id=?"; + update = template.update(sql, + waterLevel.getRiverName(), + waterLevel.getSiteName(), + waterLevel.getCollectionDate(), + waterLevel.getWaterLevel(), + waterLevel.getFlow(), + waterLevel.getOver(), + waterLevel.getId()); + } catch (DataAccessException e) { + e.printStackTrace(); + } + if(update!=0) + { + return true; + } + else + { + return false; + } + + } + + @Override + public boolean deleteInfo(int id)//根据id来删除相关水位信息 + { + int update=0; + try { + String sql="delete from water_level where id=?"; + update = template.update(sql, id); + } catch (DataAccessException e) { + e.printStackTrace(); + } + if(update!=0) + { + return true; + } + else + { + return false; + } + + } + + @Override + public List conditionalQueryByPage(int start, int pageSize, Map condition)//条件查询 + //map为映射,condition为该映射的名? + { + + StringBuilder builder=new StringBuilder();//代表整个sql语句 + String starStr="select * from water_level where 1=1 "; + builder.append(starStr); + + List valueList=new ArrayList<>(); + + //遍历map集合 + for(String key:condition.keySet()) + { + + //排除分页条件参数 + if("currentPage2".equals(key) || "pageSize2".equals(key)) + { + continue; + } + + + String value = condition.get(key)[0]; + if(value!=null&&!"".equals(value)) + { + builder.append(" and "+key+" like ? "); + valueList.add("%"+value+"%"); + + } + } + + + builder.append(" limit ?,? "); + //sql = select * from water_level where 1=1 " and "+key+" like ? " limit ?,? + valueList.add(start); + valueList.add(pageSize); + String sql = builder.toString(); + + System.out.println(sql);//sql语句 + System.out.println(Arrays.toString(valueList.toArray()));//查询条件 + + //执行sql,条件查询 + List objList = null; + try { + objList = template.query(sql, new BeanPropertyRowMapper(WaterLevel.class), valueList.toArray()); + } catch (Exception e) { + System.out.println(e); + } + + return objList;//返回条件查询结果 + } + + @Override + public int conditionalFindAllCount(Map condition)//条件查询的总记录数,符合条件的总数 + { + StringBuilder builder=new StringBuilder();//代表整个sql语句 + String starStr="select count(*) from water_level where 1=1 "; + builder.append(starStr); + + List valueList=new ArrayList<>(); + + //遍历map集合 + for(String key:condition.keySet()) + { + + //排除分页条件参数 + if("currentPage2".equals(key) || "pageSize2".equals(key)) + { + continue; + } + + + String value = condition.get(key)[0]; + if(value!=null&&!"".equals(value)) + { + builder.append(" and "+key+" like ? "); + valueList.add("%"+value+"%"); + + } + } + String sql = builder.toString(); + System.out.println(sql); + System.out.println(valueList); + + int integer = 0; + try { + integer = template.queryForObject(sql, Integer.class, valueList.toArray()); + } catch (Exception e) { + System.out.println(e); + } + + + return integer; + } + + @Override + public List findBySiteName(String siteName)//通过站点来查询水位信息,插叙一个站点的所有水位信息 + { + List query = null; + try { + String sql="SELECT * FROM water_level WHERE siteName=? ORDER BY collectionDate"; + query = template.query(sql, new BeanPropertyRowMapper(WaterLevel.class), siteName); + } catch (Exception e) { + System.out.println(e); + } + return query; + } + + @Override + public List findWeekData()//返回过去一周的数据,及筛出时间戳在一种以内的数据 + { + List query = null; + try { + String sql="SELECT * FROM water_level WHERE TO_DAYS(NOW())-TO_DAYS(collectionDate)<=6 ORDER BY collectionDate DESC;"; + query = template.query(sql, new BeanPropertyRowMapper(WaterLevel.class)); + } catch (Exception e) { + System.out.println(e); + } + return query; + } +} diff --git a/src/src_houduan/dao/impl/WaterQualityDaoImpl.java b/src/src_houduan/dao/impl/WaterQualityDaoImpl.java new file mode 100644 index 0000000..0c28a57 --- /dev/null +++ b/src/src_houduan/dao/impl/WaterQualityDaoImpl.java @@ -0,0 +1,203 @@ +package dao.impl; + +import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; +import dao.WaterQualityDao; +import domain.StationAndQuality; +import domain.Statistics;//水质信息对象和水质的站点信息对象 +import domain.WaterQuality;//统计对象 +import org.springframework.dao.DataAccessException; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import util.JDBCUtils; + +import java.sql.Timestamp; +import java.util.LinkedList; +import java.util.List; + + +public class WaterQualityDaoImpl implements WaterQualityDao +{ + private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource()); + + @Override + public boolean add(WaterQuality waterQuality)//添加水质信息 + { + + String sq="select * from water_quality where belongStation=? and datetime =?"; + List query=null; + try { + query = template.query(sq, new BeanPropertyRowMapper(WaterQuality.class),waterQuality.getBelongStation(),waterQuality.getDateTime()); + } catch (Exception e) { + System.out.println(e); + } + System.out.println(query); + + + int update=0; + if(query==null||query.size()==0)//如果数据不存在,才允许插入数据,保证数据的唯一性 + { + try { + String sql="insert into water_quality (belongStation,dateTime,pH,DO,NH4,CODMn,TOC,level) values (?,?,?,?,?,?,?,?)"; + update = template.update(sql, waterQuality.getBelongStation(), + waterQuality.getDateTime(), waterQuality.getpH(), waterQuality.getdO(), waterQuality.getnH4(), + waterQuality.getcODMn(), waterQuality.gettOC(), waterQuality.getLevel()); + } catch (Exception e) { + System.out.println(e); + } + + + } + + if(update==0) + { + return false; + } + else + { + return true; + } + } + + @Override + public List findByName(String stationName)//通过水质信息所属站点名来查询水质信息 + { + List list=null; + try + { + String sql="select * from water_quality where belongStation=?"; + list = template.query(sql, new BeanPropertyRowMapper(WaterQuality.class), stationName); + } catch (Exception e) + { + System.out.println(e); + } + return list; + } + + @Override + public boolean update(WaterQuality waterQuality)//更新水质信息 + { + int update=0; + try + { + String sql="update water_quality set belongStation=?,dateTime=?,pH=?,DO=?,NH4=?,CODMn=?,TOC=?,level=? where id=?"; + update = template.update(sql, waterQuality.getBelongStation(), + waterQuality.getDateTime(), waterQuality.getpH(), waterQuality.getdO(), waterQuality.getnH4(), + waterQuality.getcODMn(), waterQuality.gettOC(), waterQuality.getLevel(), waterQuality.getId()); + } catch (Exception e) + { + System.out.println(e); + } + return update!=0; + } + + @Override + public boolean del(int id)//通过id删除水质信息 + { + int update=0; + try + { + String sql="delete from water_quality where id=?"; + update = template.update(sql, id); + } catch (Exception e) + { + System.out.println(e); + } + return update!=0; + } + + @Override + public WaterQuality findNewestRecord(String stationName)//返回某站点最新的水质信息 + { + WaterQuality waterQuality = null; + try + { + String sql="SELECT * FROM water_quality WHERE belongStation=? ORDER BY DATETIME DESC LIMIT 1"; + waterQuality = template.queryForObject(sql, new BeanPropertyRowMapper(WaterQuality.class),stationName); + } catch (Exception e) + { + System.out.println(e); + } + return waterQuality; + } + + @Override + public List findPollutedWater()//查询到有污染的水质信息 + { + List list=null; + try { + String sql="SELECT * FROM water_quality WHERE \n" + + "(LEVEL='Ⅳ' OR LEVEL='Ⅴ' OR LEVEL='劣Ⅴ') AND TO_DAYS(NOW())- TO_DAYS(DATETIME)<= 1 ORDER BY DATETIME DESC "; + list = template.query(sql, new BeanPropertyRowMapper(WaterQuality.class)); + } catch (Exception e) { + System.out.println(e); + } + return list; + } + + @Override + public List findByNameAndTime(String name, String startTime, String endTime,String level) + //通过站点名以及某一时间段以及污染级别来查询水质信息 + { + StringBuilder stringBuilder=new StringBuilder("SELECT * FROM water_quality WHERE 1=1 "); + LinkedList list=new LinkedList<>(); + if(name!=null&&!name.equals("")) + { + stringBuilder.append(" AND belongStation LIKE ? "); + list.add("%"+name+"%"); + } + if(startTime!=null&&!startTime.equals("")&&!startTime.equals(":00")) + { + stringBuilder.append(" AND DATETIME >=? "); + list.add(startTime); + } + if(endTime!=null&&!endTime.equals("")&&!endTime.equals(":00")) + { + stringBuilder.append(" AND DATETIME <=? "); + list.add(endTime); + } + if(level!=null&&!level.equals("")&&!level.equals("--水质类别--")) + { + stringBuilder.append(" AND level =? "); + list.add(level); + } + stringBuilder.append(" ORDER BY DATETIME DESC "); + String sql=stringBuilder.toString(); + System.out.println(sql); + Object[] objects =list.toArray(); + List query = null; + try { + query = template.query(sql, new BeanPropertyRowMapper(WaterQuality.class), objects); + } catch (Exception e) { + System.out.println(e); + } + return query; + } + + @Override + public List findByStationName(String name)//通过水质所属站点查询水质信息,并通过时间排序 + { + List query = null; + try { + String sql="SELECT * FROM water_quality WHERE belongStation=? ORDER BY DATETIME"; + query = template.query(sql, new BeanPropertyRowMapper(WaterQuality.class), name); + } catch (Exception e) { + System.out.println(e); + } + return query; + } + + @Override + public List findWeekData()//查询最近一周的水质信息 + { + List query = null; + try { + String sql="SELECT * FROM water_quality WHERE TO_DAYS(NOW())-TO_DAYS(DATETIME)<=6 ORDER BY DATETIME DESC"; + query = template.query(sql, new BeanPropertyRowMapper(WaterQuality.class)); + } catch (Exception e) { + System.out.println(e); + } + return query; + } + + +} diff --git a/src/src_houduan/service/WaterLevelService.java b/src/src_houduan/service/WaterLevelService.java new file mode 100644 index 0000000..8b803e3 --- /dev/null +++ b/src/src_houduan/service/WaterLevelService.java @@ -0,0 +1,22 @@ +package service; + +import domain.PageBean;//分页对象 +import domain.WaterLevel; + +import java.util.List; +import java.util.Map; + +public interface WaterLevelService +{ + public abstract PageBean findAllByPage(int currentPage,int pageSize); + public abstract int findAllCount(); + public abstract boolean addWaterLevelInfo(WaterLevel waterLevel); + public abstract int addManyLevel(List levelList); + public abstract boolean update(WaterLevel waterLevel); + public abstract boolean deleteInfo(int id); + public abstract PageBean conditionalQueryByPage(int currentPage,int pageSize, Map condition); + public abstract int conditionalFindAllCount(Map condition); + public abstract List findBySiteName(String siteName); + public abstract List findWeekData(); + +} diff --git a/src/src_houduan/service/WaterQualityService.java b/src/src_houduan/service/WaterQualityService.java new file mode 100644 index 0000000..782b545 --- /dev/null +++ b/src/src_houduan/service/WaterQualityService.java @@ -0,0 +1,30 @@ +package service; + +import dao.WaterQualityDao; +import dao.impl.WaterQualityDaoImpl; +import domain.Statistics; +import domain.WaterQuality; + +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-20 15:15 + */ +public interface WaterQualityService +{ + public abstract int add(List waterQualityList); + + public abstract boolean addOne(WaterQuality waterQuality); + public abstract List findByName(String stationName); + public abstract boolean update(WaterQuality waterQuality); + public abstract boolean del(int id); + public abstract Statistics count(String stationName); + public abstract WaterQuality findNewestRecord(String stationName); + public abstract List findPollutedWater(); + public abstract List findByNameAndTime(String name,String startTime,String endTime,String level); + public abstract List findByStationName(String name); + public abstract List findWeekData(); + + +} diff --git a/src/src_houduan/service/impl/WaterLevelServiceImpl.java b/src/src_houduan/service/impl/WaterLevelServiceImpl.java new file mode 100644 index 0000000..1878350 --- /dev/null +++ b/src/src_houduan/service/impl/WaterLevelServiceImpl.java @@ -0,0 +1,107 @@ +package service.impl; + +import dao.WaterLevelDao; +import dao.impl.WaterLevelDaoImpl; +import domain.PageBean; +import domain.WaterLevel; +import service.WaterLevelService; + +import java.util.List; +import java.util.Map; + +public class WaterLevelServiceImpl implements WaterLevelService +{ + WaterLevelDao dao=new WaterLevelDaoImpl(); + @Override + public PageBean findAllByPage(int currentPage,int pageSize) + { + PageBean pageBean=new PageBean<>(); + pageBean.setCurrentPage(currentPage); + pageBean.setRows(pageSize); + int totalCount = dao.findAllCount(); + pageBean.setTotalCount(totalCount); + int start=(currentPage-1)*pageSize; + List allByPage = dao.findAllByPage(start, pageSize); + pageBean.setList(allByPage); + int totalPage=totalCount%pageSize==0?totalCount/pageSize:(totalCount/pageSize+1); + pageBean.setTotalPage(totalPage); + return pageBean; + } + + @Override + public int findAllCount() + { + return dao.findAllCount(); + } + + @Override + public boolean addWaterLevelInfo(WaterLevel waterLevel) + { + boolean b = dao.addWaterLevelInfo(waterLevel); + return b; + } + + @Override + public int addManyLevel(List levelList) + { + int count=0; + for (WaterLevel waterLevel : levelList) + { + boolean b = dao.addWaterLevelInfo(waterLevel); + if (b) + { + count++; + } + + } + return count; + } + + @Override + public boolean update(WaterLevel waterLevel) + { + boolean update = dao.update(waterLevel); + return update; + } + + @Override + public boolean deleteInfo(int id) + { + boolean b = dao.deleteInfo(id); + return b; + } + + @Override + public PageBean conditionalQueryByPage(int currentPage, int pageSize, Map condition) + { + PageBean pageBean=new PageBean<>(); + int totalCount= dao.conditionalFindAllCount(condition); + pageBean.setTotalCount(totalCount); + int totalPage=totalCount%pageSize==0?totalCount/pageSize:(totalCount/pageSize+1); + pageBean.setTotalPage(totalPage); + pageBean.setCurrentPage(currentPage); + pageBean.setRows(pageSize); + List list = dao.conditionalQueryByPage((currentPage - 1) * pageSize, pageSize, condition); + pageBean.setList(list); + + + return pageBean; + } + + @Override + public int conditionalFindAllCount(Map condition) + { + int i = dao.conditionalFindAllCount(condition); + return i; + } + + @Override + public List findBySiteName(String siteName) { + return dao.findBySiteName(siteName); + } + + @Override + public List findWeekData() { + return dao.findWeekData(); + } +} diff --git a/src/src_houduan/service/impl/WaterQualityServiceImpl.java b/src/src_houduan/service/impl/WaterQualityServiceImpl.java new file mode 100644 index 0000000..9da9cae --- /dev/null +++ b/src/src_houduan/service/impl/WaterQualityServiceImpl.java @@ -0,0 +1,146 @@ +package service.impl; + +import dao.WaterQualityDao; +import dao.impl.WaterQualityDaoImpl; +import domain.Statistics; +import domain.WaterQuality; +import service.WaterQualityService; + +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-20 15:18 + */ +public class WaterQualityServiceImpl implements WaterQualityService +{ + WaterQualityDao dao=new WaterQualityDaoImpl(); + + @Override + public int add(List waterQualityList) + { + int count=0; + for (WaterQuality waterQuality : waterQualityList) + { + boolean flag = dao.add(waterQuality); + if(flag) + { + count++; + } + + } + return count;//返回的是添加成功的记录数 + } + + @Override + public boolean addOne(WaterQuality waterQuality) + { + boolean add = dao.add(waterQuality); + return add; + } + + @Override + public List findByName(String stationName) + { + List list= dao.findByName(stationName); + return list; + } + + @Override + public boolean update(WaterQuality waterQuality) + { + return dao.update(waterQuality); + } + + @Override + public boolean del(int id) + { + return dao.del(id); + } + + @Override + public Statistics count(String stationName) + { + int a=0; + int b=0; + int c=0; + int d=0; + int e=0; + int f=0; + int g=0; + List list = dao.findByName(stationName); + for (WaterQuality waterQuality : list) + { + String level = waterQuality.getLevel(); + if(level.equals("Ⅰ")) + { + a++; + } + else if(level.equals("Ⅱ")) + { + b++; + } + else if(level.equals("Ⅲ")) + { + c++; + } + else if(level.equals("Ⅳ")) + { + d++; + } + else if(level.equals("Ⅴ")) + { + e++; + } + else if(level.equals("劣Ⅴ")) + { + f++; + } + else + { + g++; + } + + } + Statistics statistics=new Statistics(); + statistics.setA(a); + statistics.setB(b); + statistics.setC(c); + statistics.setD(d); + statistics.setE(e); + statistics.setF(f); + statistics.setG(g); + + return statistics; + } + + @Override + public WaterQuality findNewestRecord(String stationName) + { + return dao.findNewestRecord(stationName); + } + + @Override + public List findPollutedWater() { + return dao.findPollutedWater(); + } + + @Override + public List findByNameAndTime(String name, String startTime, String endTime,String level) { + return dao.findByNameAndTime(name,startTime,endTime,level); + } + + @Override + public List findByStationName(String name) + { + return dao.findByStationName(name); + } + + @Override + public List findWeekData() + { + return dao.findWeekData(); + } + + +} diff --git a/src/src_houduan/web/servlet/waterLevel/AddManyWaterLevelServlet.java b/src/src_houduan/web/servlet/waterLevel/AddManyWaterLevelServlet.java new file mode 100644 index 0000000..149177d --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/AddManyWaterLevelServlet.java @@ -0,0 +1,81 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterLevel; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URL; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-20 20:46 + */ +@WebServlet("/AddManyWaterLevelServlet") +public class AddManyWaterLevelServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + int i=0; + WaterLevelService service=new WaterLevelServiceImpl(); + + Document document = Jsoup.parse(new URL("http://www.hrc.gov.cn/swj/"), 5000); + Elements elements = document.select("[class=shuiqing_table] tr"); + + List list=new ArrayList<>(); + for (Element element : elements)//遍历所有行 + { + System.out.println(element.text()); + WaterLevel waterLevel=new WaterLevel(); + Elements tds = element.select("td"); + waterLevel.setRiverName(tds.get(0).text()); + waterLevel.setSiteName(tds.get(1).text()); + try + { + String str=tds.get(2).text()+":00"; + waterLevel.setCollectionDate(Timestamp.valueOf(str)); + waterLevel.setWaterLevel(Double.parseDouble(tds.get(3).text())); + String liuliang=tds.get(4).text(); + if(liuliang.length()!=0&&!liuliang.equals("")) + { + waterLevel.setFlow(Double.parseDouble(tds.get(4).text())); + } + waterLevel.setOver(Double.parseDouble(tds.get(5).text())); + } catch (Exception e) + { + System.out.println(e); + } + list.add(waterLevel); + + } + i = service.addManyLevel(list); + System.out.println(list); + ObjectMapper mapper=new ObjectMapper(); + ResultInfo info=new ResultInfo(); + info.setMsg("总共同步了"+i+"条数据"); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/AddWaterLevelDataServlet.java b/src/src_houduan/web/servlet/waterLevel/AddWaterLevelDataServlet.java new file mode 100644 index 0000000..096f035 --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/AddWaterLevelDataServlet.java @@ -0,0 +1,83 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterLevel; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Date; +import java.sql.Timestamp; + +@WebServlet("/AddWaterLevelDataServlet") +public class AddWaterLevelDataServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String riverName = request.getParameter("riverName"); + String siteName = request.getParameter("siteName"); + String collectionDate = request.getParameter("collectionDate"); + System.out.println(collectionDate); + String waterLevel = request.getParameter("waterLevel"); + String flow = request.getParameter("flow"); + String over = request.getParameter("over"); + + + WaterLevel waterLevelObj=new WaterLevel(); + + try + { + if(riverName!=null&&riverName.length()!=0) + {waterLevelObj.setRiverName(riverName);} + if (siteName!=null&&siteName.length()!=0) + {waterLevelObj.setSiteName(siteName);} + String date=""; + if(collectionDate!=null&&collectionDate.length()!=0) + { + date=collectionDate.replace("T"," ")+":00";//多出来一个T,必须去掉 + waterLevelObj.setCollectionDate(Timestamp.valueOf(date)); + } + if(waterLevel!=null&&waterLevel.length()!=0) + {waterLevelObj.setWaterLevel(Double.parseDouble(waterLevel));} + if(flow!=null&&flow.length()!=0) + {waterLevelObj.setFlow(Double.parseDouble(flow));} + if(over!=null&&over.length()!=0) + { waterLevelObj.setOver(Double.parseDouble(over));} + + } catch (Exception e) + { + System.out.println(e); + } + + WaterLevelService service=new WaterLevelServiceImpl(); + boolean b = service.addWaterLevelInfo(waterLevelObj); + ResultInfo info=new ResultInfo(); + if(b) + { + info.setMsg("添加成功!"); + } + else + { + info.setMsg("添加失败,请核对输入数据是否有误!"); + } + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/ConditionQueryByPageServlet.java b/src/src_houduan/web/servlet/waterLevel/ConditionQueryByPageServlet.java new file mode 100644 index 0000000..d08268b --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/ConditionQueryByPageServlet.java @@ -0,0 +1,62 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.PageBean; +import domain.WaterLevel; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +@WebServlet("/ConditionQueryByPageServlet") +public class ConditionQueryByPageServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + WaterLevelService service=new WaterLevelServiceImpl(); + Map parameterMap = request.getParameterMap(); + int totalCount = service.conditionalFindAllCount(parameterMap); //总的记录数 + + String currentPage = request.getParameter("currentPage2"); + String pageSize = request.getParameter("pageSize2"); + int intCurrentPage = 1; + int intPageSize = 5; + try { + intCurrentPage = Integer.parseInt(currentPage); + intPageSize = Integer.parseInt(pageSize); + } catch (NumberFormatException e) { + System.out.println(e); + } + int totalPage=totalCount%intPageSize==0?totalCount/intPageSize:(totalCount/intPageSize+1); + if(intCurrentPage<=0) + { + intCurrentPage=1; + } + if(intCurrentPage>totalPage) + { + intCurrentPage=totalPage; + + } + + PageBean bean = service.conditionalQueryByPage(intCurrentPage, intPageSize, parameterMap); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + System.out.println(bean); + mapper.writeValue(response.getOutputStream(),bean); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/CurrentWaterLevelServlet.java b/src/src_houduan/web/servlet/waterLevel/CurrentWaterLevelServlet.java new file mode 100644 index 0000000..a1d1021 --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/CurrentWaterLevelServlet.java @@ -0,0 +1,72 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterLevel; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URL; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-13 14:51 + */ +@WebServlet("/CurrentWaterLevelServlet") +public class CurrentWaterLevelServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + Document document = Jsoup.parse(new URL("http://www.hrc.gov.cn/swj/"), 5000); + Elements elements = document.select("[class=shuiqing_table] tr"); + + List list=new ArrayList<>(); + for (Element element : elements)//遍历所有行 + { + System.out.println(element.text()); + WaterLevel waterLevel=new WaterLevel(); + Elements tds = element.select("td"); + waterLevel.setRiverName(tds.get(0).text()); + waterLevel.setSiteName(tds.get(1).text()); + try + { + waterLevel.setCollectionDate(Timestamp.valueOf(tds.get(2).text()+":00")); + waterLevel.setWaterLevel(Double.parseDouble(tds.get(3).text())); + String liuliang=tds.get(4).text(); + if(liuliang.length()!=0&&!liuliang.equals(""))//流量比较特殊,可能淮河水文局网站上没有给出数据 + { + waterLevel.setFlow(Double.parseDouble(tds.get(4).text())); + } + waterLevel.setOver(Double.parseDouble(tds.get(5).text())); + } catch (Exception e) + { + System.out.println(e); + } + list.add(waterLevel); + + } + System.out.println(list); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),list); + + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/DeleteInfoServlet.java b/src/src_houduan/web/servlet/waterLevel/DeleteInfoServlet.java new file mode 100644 index 0000000..9a00177 --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/DeleteInfoServlet.java @@ -0,0 +1,46 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet("/DeleteInfoServlet") +public class DeleteInfoServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + String id = request.getParameter("id"); + WaterLevelService service=new WaterLevelServiceImpl(); + boolean b = service.deleteInfo(Integer.parseInt(id)); + + ResultInfo info=new ResultInfo(); + if(b) + { + info.setMsg("删除成功!"); + } + else + { + info.setMsg("删除失败!"); + } + + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/FindAllByPageServlet.java b/src/src_houduan/web/servlet/waterLevel/FindAllByPageServlet.java new file mode 100644 index 0000000..ec6ee8e --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/FindAllByPageServlet.java @@ -0,0 +1,63 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.PageBean; +import domain.WaterLevel; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +@WebServlet("/FindAllByPageServlet") +public class FindAllByPageServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + WaterLevelService service=new WaterLevelServiceImpl(); + int totalCount = service.findAllCount(); + + + String currentPage = request.getParameter("currentPage"); + String pageSize = request.getParameter("pageSize"); + + int intCurrentPage = 1; + int intPageSize = 5; + try { + intCurrentPage = Integer.parseInt(currentPage); + intPageSize = Integer.parseInt(pageSize); + } catch (NumberFormatException e) { + System.out.println(e); + } + if(intCurrentPage==0) + { + intCurrentPage = 1; + } + int totalPage=totalCount%intPageSize==0?totalCount/intPageSize:(totalCount/intPageSize+1); + if(intCurrentPage>totalPage) + { + intCurrentPage=totalPage; + } + + PageBean pageBean = service.findAllByPage(intCurrentPage, intPageSize); + System.out.println(pageBean); + + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),pageBean); + + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/FindBySiteNameServlet.java b/src/src_houduan/web/servlet/waterLevel/FindBySiteNameServlet.java new file mode 100644 index 0000000..573bd6d --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/FindBySiteNameServlet.java @@ -0,0 +1,41 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterLevel; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-02-06 12:43 + */ +@WebServlet("/FindBySiteNameServlet") +public class FindBySiteNameServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String siteName = request.getParameter("siteName"); + WaterLevelService service=new WaterLevelServiceImpl(); + List list = service.findBySiteName(siteName); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + mapper.writeValue(response.getOutputStream(),list); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterLevel/UpdateWaterLevelData.java b/src/src_houduan/web/servlet/waterLevel/UpdateWaterLevelData.java new file mode 100644 index 0000000..64000cb --- /dev/null +++ b/src/src_houduan/web/servlet/waterLevel/UpdateWaterLevelData.java @@ -0,0 +1,75 @@ +package web.servlet.waterLevel; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterLevel; +import service.WaterLevelService; +import service.impl.WaterLevelServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Date; +import java.sql.Timestamp; +import java.util.Map; + +@WebServlet("/UpdateWaterLevelData") +public class UpdateWaterLevelData extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String id = request.getParameter("id"); + String waterLevel = request.getParameter("shuiwei"); + String riverName = request.getParameter("riverName"); + String siteName = request.getParameter("siteName"); + String over = request.getParameter("chaoguo"); + String flow = request.getParameter("flow"); + String collectionDate = request.getParameter("caijiriqi"); + + + WaterLevel waterLevelObj=new WaterLevel(); + + try { + waterLevelObj.setId(Integer.parseInt(id)); + waterLevelObj.setWaterLevel(Double.parseDouble(waterLevel)); + waterLevelObj.setRiverName(riverName); + waterLevelObj.setSiteName(siteName); + waterLevelObj.setFlow(Double.parseDouble(flow)); + waterLevelObj.setOver(Double.parseDouble(over)); + waterLevelObj.setCollectionDate(Timestamp.valueOf(collectionDate+":00")); + + } catch (Exception e) { + System.out.println(e); + } + System.out.println(waterLevelObj); + + WaterLevelService service=new WaterLevelServiceImpl(); + boolean update = service.update(waterLevelObj); + + ResultInfo info=new ResultInfo(); + if(update) + { + info.setMsg("更新成功!"); + } + else + { + info.setMsg("更新失败!"); + } + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/AddOneWaterQualityServlet.java b/src/src_houduan/web/servlet/waterQuality/AddOneWaterQualityServlet.java new file mode 100644 index 0000000..e0c41a4 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/AddOneWaterQualityServlet.java @@ -0,0 +1,88 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Timestamp; + +/** + * @author laoyingyong + * @date: 2020-01-20 16:01 + */ +@WebServlet("/AddOneWaterQualityServlet") +public class AddOneWaterQualityServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + WaterQualityService service=new WaterQualityServiceImpl(); + String belongStation = request.getParameter("belongStation"); + String dateTime = request.getParameter("date"); + System.out.println(dateTime); + String pH = request.getParameter("ph"); + String oxygen = request.getParameter("oxygen"); + String nitrogen = request.getParameter("nitrogen"); + String permangan = request.getParameter("permangan"); + String orgacarbon = request.getParameter("orgacarbon"); + String level = request.getParameter("waterQuality"); + + WaterQuality waterQuality=new WaterQuality(); + try + { + if(belongStation!=null&&!belongStation.equals("")) + waterQuality.setBelongStation(belongStation); + if(dateTime!=null&&!dateTime.equals("")) + {waterQuality.setDateTime(Timestamp.valueOf(dateTime.replace("T"," ")+":00"));} + if(pH!=null&&!pH.equals("")) + {waterQuality.setpH(Double.parseDouble(pH));} + if(oxygen!=null&&!oxygen.equals("")) + {waterQuality.setdO(Double.parseDouble(oxygen));} + if(nitrogen!=null&&!nitrogen.equals("")) + {waterQuality.setnH4(Double.parseDouble(nitrogen));} + if(permangan!=null&&!permangan.equals("")) + {waterQuality.setcODMn(Double.parseDouble(permangan));} + if(orgacarbon!=null&&!orgacarbon.equals("")) + {waterQuality.settOC(Double.parseDouble(orgacarbon));} + if (level!=null&&!level.equals("")) + {waterQuality.setLevel(level);} + + } catch (Exception e) + { + System.out.println(e); + }finally + { + + boolean b = service.addOne(waterQuality); + ResultInfo info=new ResultInfo(); + if (b) + { + info.setMsg("添加成功!"); + } + else + { + info.setMsg("添加失败!"); + } + + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf8"); + mapper.writeValue(response.getOutputStream(),info); + + } + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/AddWaterQualityServlet.java b/src/src_houduan/web/servlet/waterQuality/AddWaterQualityServlet.java new file mode 100644 index 0000000..6a676f0 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/AddWaterQualityServlet.java @@ -0,0 +1,188 @@ +package web.servlet.waterQuality; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.sql.Timestamp; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-20 15:01 + */ +@WebServlet("/AddWaterQualityServlet") +public class AddWaterQualityServlet extends HttpServlet +{ + private List qualityList; + private static String [] siteArray={"沙窝","清河闸","罗庄","密云水库","后城", + "土门楼","万家码头","海河大闸","蓟运河防潮闸", + "于桥水库库中心","三岔口"}; + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + WaterQualityService service=new WaterQualityServiceImpl(); + + //参数字符串,如果拼接在请求链接之后,需要对中文进行 URLEncode 字符集 UTF-8 + String param = "AreaID=&RiverID=&MNName=&PageIndex=1&PageSize=60&action=getRealDatas"; + StringBuilder sb = new StringBuilder(); + InputStream is = null; + BufferedReader br = null; + PrintWriter out = null; + try + { + //接口地址 + String url = "https://szzdjc.cnemc.cn:8070/GJZ/Ajax/Publish.ashx"; + URL uri = new URL(url); + HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); + connection.setRequestMethod("POST"); + connection.setConnectTimeout(50000); + connection.setReadTimeout(12000); + connection.setRequestProperty("accept", "*/*"); + //发送参数 + connection.setDoOutput(true); + out = new PrintWriter(connection.getOutputStream()); + out.print(param); + out.flush(); + //接收结果 + is = connection.getInputStream(); + br = new BufferedReader(new InputStreamReader(is, "UTF-8")); + String line; + //缓冲逐行读取 + while ((line = br.readLine()) != null) + { + sb.append(line); + } + String backStr = sb.toString(); + String body = backStr; + System.out.println(backStr); + ScriptEngineManager sem = new ScriptEngineManager(); + + ScriptEngine engine = sem.getEngineByExtension("js"); + + String traseStr = null; + try { + traseStr = (String) engine.eval("unescape('" + body + "')"); + } catch (ScriptException e) { + e.printStackTrace(); + + } + traseStr = traseStr.replaceAll("
", "\r\n"); + traseStr = traseStr.replaceAll("<.*?>", ""); + String a= "["+traseStr+"]"; + System.out.println(a); + JSONArray jsonArray = JSONObject.parseArray(a); + JSONObject jsonObject = jsonArray.getJSONObject(0); + String jsonArray0 = jsonObject.getString("tbody"); + System.out.println(jsonArray0); + JSONArray jsonArray1 = JSONObject.parseArray(jsonArray0); + qualityList=new LinkedList<>(); + + for (int i = 0; i < jsonArray1.size(); i++) + { + WaterQuality waterQuality=new WaterQuality(); + JSONArray jsonArray2= (JSONArray) jsonArray1.get(i); + String siteName = jsonArray2.getString(2); + boolean b = Arrays.asList(siteArray).contains(siteName); + String dateTime = jsonArray2.getString(3); + String pH = jsonArray2.getString(6); + String aDo = jsonArray2.getString(7); + String nh4 = jsonArray2.getString(11); + String codMn = jsonArray2.getString(10); + String toc = jsonArray2.getString(12); + String level = jsonArray2.getString(4); + if (b) + { + System.out.print(siteName+"\t"); + System.out.print(dateTime+"\t"); + System.out.print(pH+"\t"); + System.out.print(aDo+"\t"); + System.out.print(nh4+"\t"); + System.out.print(codMn+"\t"); + System.out.print(toc+"\t"); + System.out.println(level); + + waterQuality.setBelongStation(siteName); + waterQuality.setDateTime(Timestamp.valueOf("2022-"+dateTime+":00")); + if(!pH.equals("--")) + waterQuality.setpH(Double.parseDouble(pH)); + if(!aDo.equals("--")) + waterQuality.setdO(Double.parseDouble(aDo)); + if(!nh4.equals("--")) + waterQuality.setnH4(Double.parseDouble(nh4)); + if(!codMn.equals("--")) + waterQuality.setcODMn(Double.parseDouble(codMn)); + if(!toc.equals("--")) + waterQuality.settOC(Double.parseDouble(toc)); + if(!level.equals("--")) + waterQuality.setLevel(level); + qualityList.add(waterQuality); + + } + + + } + + + + + + } catch (Exception e) + { + System.out.println(e); + } finally + { + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf8"); + System.out.println(qualityList); + int add = service.add(qualityList); + ResultInfo info=new ResultInfo(); + info.setMsg("总共同步了"+add+"条记录!"); + mapper.writeValue(response.getOutputStream(),info); + + //关闭流 + try { + if (is != null) + { + is.close(); + } + if (br != null) + { + br.close(); + } + if (out != null) + { + out.close(); + } + } catch (Exception ignored) + { + System.out.println(ignored); + } + + } + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} \ No newline at end of file diff --git a/src/src_houduan/web/servlet/waterQuality/DeleteWaterQualityInfoServlet.java b/src/src_houduan/web/servlet/waterQuality/DeleteWaterQualityInfoServlet.java new file mode 100644 index 0000000..c09df09 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/DeleteWaterQualityInfoServlet.java @@ -0,0 +1,57 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @author laoyingyong + * @date: 2020-01-29 23:22 + */ +@WebServlet("/DeleteWaterQualityInfoServlet") +public class DeleteWaterQualityInfoServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + String id = request.getParameter("id"); + WaterQualityService service=new WaterQualityServiceImpl(); + int i=0; + try + { + i = Integer.parseInt(id); + } catch (NumberFormatException e) + { + System.out.println(e); + } + boolean del = service.del(i); + ResultInfo info=new ResultInfo(); + if(del) + { + info.setMsg("删除成功!"); + + } + else + { + info.setMsg("删除失败!"); + } + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/FindLineServlet.java b/src/src_houduan/web/servlet/waterQuality/FindLineServlet.java new file mode 100644 index 0000000..b878918 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/FindLineServlet.java @@ -0,0 +1,41 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-02-04 20:19 + */ +@WebServlet("/FindLineServlet") +public class FindLineServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String stationName = request.getParameter("stationName");//根据请求参数的名称获取请求参数的值 + + WaterQualityService service=new WaterQualityServiceImpl(); + List list = service.findByStationName(stationName); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + mapper.writeValue(response.getOutputStream(),list); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/FindNewestServlet.java b/src/src_houduan/web/servlet/waterQuality/FindNewestServlet.java new file mode 100644 index 0000000..0149fcc --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/FindNewestServlet.java @@ -0,0 +1,41 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @author laoyingyong + * @date: 2020-01-31 17:44 + */ +@WebServlet("/FindNewestServlet") +public class FindNewestServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String stationName = request.getParameter("stationName"); + WaterQualityService service=new WaterQualityServiceImpl(); + WaterQuality newestRecord = service.findNewestRecord(stationName); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + mapper.writeValue(response.getOutputStream(),newestRecord); + + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/FindPollutedWaterServlet.java b/src/src_houduan/web/servlet/waterQuality/FindPollutedWaterServlet.java new file mode 100644 index 0000000..c1a08d8 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/FindPollutedWaterServlet.java @@ -0,0 +1,39 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-02-02 14:08 + */ +@WebServlet("/FindPollutedWaterServlet") +public class FindPollutedWaterServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + WaterQualityService service=new WaterQualityServiceImpl(); + List pollutedWater = service.findPollutedWater(); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + mapper.writeValue(response.getOutputStream(),pollutedWater); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/StatisticsWaterQualityServlet.java b/src/src_houduan/web/servlet/waterQuality/StatisticsWaterQualityServlet.java new file mode 100644 index 0000000..abcc608 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/StatisticsWaterQualityServlet.java @@ -0,0 +1,40 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.Statistics; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @author laoyingyong + * @date: 2020-01-30 13:03 + */ +@WebServlet("/StatisticsWaterQualityServlet") +public class StatisticsWaterQualityServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String stationName = request.getParameter("stationName"); + WaterQualityService service=new WaterQualityServiceImpl(); + Statistics count = service.count(stationName); + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),count); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/UpdateWaterQualityInfoServlet.java b/src/src_houduan/web/servlet/waterQuality/UpdateWaterQualityInfoServlet.java new file mode 100644 index 0000000..8c8874e --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/UpdateWaterQualityInfoServlet.java @@ -0,0 +1,78 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.ResultInfo; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.sql.Timestamp; + +/** + * @author laoyingyong + * @date: 2020-01-29 22:18 + */ +@WebServlet("/UpdateWaterQualityInfoServlet") +public class UpdateWaterQualityInfoServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String id = request.getParameter("id"); + String belongStation = request.getParameter("belongStation"); + String ph = request.getParameter("ph"); + String oxygen = request.getParameter("oxygen"); + String nitrogen = request.getParameter("nitrogen"); + String permangan = request.getParameter("permangan"); + String orgacarbon = request.getParameter("orgacarbon"); + String level = request.getParameter("phquality"); + String time = request.getParameter("time"); + WaterQualityService service=new WaterQualityServiceImpl(); + WaterQuality waterQuality=new WaterQuality(); + + try + { + + waterQuality.setId(Integer.parseInt(id)); + waterQuality.setBelongStation(belongStation); + waterQuality.setpH(Double.parseDouble(ph)); + waterQuality.setdO(Double.parseDouble(oxygen)); + waterQuality.setnH4(Double.parseDouble(nitrogen)); + waterQuality.setcODMn(Double.parseDouble(permangan)); + waterQuality.setLevel(level); + waterQuality.setDateTime(Timestamp.valueOf(time+":00")); + waterQuality.settOC(Double.parseDouble(orgacarbon)); + } catch (Exception e) + { + System.out.println(e); + } + + boolean update = service.update(waterQuality); + ResultInfo info=new ResultInfo(); + if(update) + { + info.setMsg("更新成功!"); + } + else + { + info.setMsg("更新失败!"); + } + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;chartset=utf-8"); + mapper.writeValue(response.getOutputStream(),info); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/ViewCurrentWaterQualityServlet.java b/src/src_houduan/web/servlet/waterQuality/ViewCurrentWaterQualityServlet.java new file mode 100644 index 0000000..5d7fa44 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/ViewCurrentWaterQualityServlet.java @@ -0,0 +1,177 @@ +package web.servlet.waterQuality; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterQuality; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.sql.Timestamp; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-19 15:20 + */ +@WebServlet("/ViewCurrentWaterQualityServlet") +public class ViewCurrentWaterQualityServlet extends HttpServlet +{ + private List qualityList; + private static String [] siteArray={"沙窝","清河闸","罗庄","密云水库","后城", + "土门楼","万家码头","海河大闸","蓟运河防潮闸", + "于桥水库库中心","三岔口"}; + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + //参数字符串,如果拼接在请求链接之后,需要对中文进行 URLEncode 字符集 UTF-8 + String param = "AreaID=&RiverID=&MNName=&PageIndex=1&PageSize=60&action=getRealDatas"; + StringBuilder sb = new StringBuilder(); + InputStream is = null; + BufferedReader br = null; + PrintWriter out = null; + try + { + //接口地址 + String url = "https://szzdjc.cnemc.cn:8070/GJZ/Ajax/Publish.ashx"; + URL uri = new URL(url); + HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); + connection.setRequestMethod("POST"); + connection.setConnectTimeout(50000); + connection.setReadTimeout(12000); + connection.setRequestProperty("accept", "*/*"); + //发送参数 + connection.setDoOutput(true); + out = new PrintWriter(connection.getOutputStream()); + out.print(param); + out.flush(); + //接收结果 + is = connection.getInputStream(); + br = new BufferedReader(new InputStreamReader(is, "UTF-8")); + String line; + //缓冲逐行读取 + while ((line = br.readLine()) != null) + { + sb.append(line); + } + String backStr = sb.toString(); + String body = backStr; + System.out.println(backStr); + ScriptEngineManager sem = new ScriptEngineManager(); + + ScriptEngine engine = sem.getEngineByExtension("js"); + + qualityList=new LinkedList<>(); + String traseStr = null; + try { + traseStr = (String) engine.eval("unescape('" + body + "')"); + } catch (ScriptException e) { + e.printStackTrace(); + + } + traseStr = traseStr.replaceAll("
", "\r\n"); + traseStr = traseStr.replaceAll("<.*?>", ""); + String a= "["+traseStr+"]"; + System.out.println(a); + JSONArray jsonArray = JSONObject.parseArray(a); + JSONObject jsonObject = jsonArray.getJSONObject(0); + String jsonArray0 = jsonObject.getString("tbody"); + System.out.println(jsonArray0); + JSONArray jsonArray1 = JSONObject.parseArray(jsonArray0); + + for (int i = 0; i < jsonArray1.size(); i++) + { + WaterQuality waterQuality=new WaterQuality(); + JSONArray jsonArray2= (JSONArray) jsonArray1.get(i); + String siteName = jsonArray2.getString(2); + boolean b = Arrays.asList(siteArray).contains(siteName); + String dateTime = jsonArray2.getString(3); + String pH = jsonArray2.getString(6); + String aDo = jsonArray2.getString(7); + String nh4 = jsonArray2.getString(11); + String codMn = jsonArray2.getString(10); + String toc = jsonArray2.getString(12); + String level = jsonArray2.getString(4); + if (b) + { + System.out.print(siteName+"\t"); + System.out.print(dateTime+"\t"); + System.out.print(pH+"\t"); + System.out.print(aDo+"\t"); + System.out.print(nh4+"\t"); + System.out.print(codMn+"\t"); + System.out.print(toc+"\t"); + System.out.println(level); + + waterQuality.setBelongStation(siteName); + if(!dateTime.equals("--")) + waterQuality.setDateTime(Timestamp.valueOf("2022-"+dateTime+":00")); + if(!pH.equals("--")) + waterQuality.setpH(Double.parseDouble(pH)); + if(!aDo.equals("--")) + waterQuality.setdO(Double.parseDouble(aDo)); + if(!nh4.equals("--")) + waterQuality.setnH4(Double.parseDouble(nh4)); + if(!codMn.equals("--")) + waterQuality.setcODMn(Double.parseDouble(codMn)); + if(!toc.equals("--")) + waterQuality.settOC(Double.parseDouble(toc)); + if(!level.equals("--")) + waterQuality.setLevel(level); + qualityList.add(waterQuality); + + } + + + } + + + } catch (Exception e) + { + System.out.println(e); + } finally + { + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf8"); + System.out.println(qualityList); + mapper.writeValue(response.getOutputStream(),qualityList); + + //关闭流 + try { + if (is != null) + { + is.close(); + } + if (br != null) + { + br.close(); + } + if (out != null) + { + out.close(); + } + } catch (Exception ignored) + { + System.out.println(ignored); + } + + } + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +} diff --git a/src/src_houduan/web/servlet/waterQuality/ViewWaterQulityInfoServlet.java b/src/src_houduan/web/servlet/waterQuality/ViewWaterQulityInfoServlet.java new file mode 100644 index 0000000..7476241 --- /dev/null +++ b/src/src_houduan/web/servlet/waterQuality/ViewWaterQulityInfoServlet.java @@ -0,0 +1,42 @@ +package web.servlet.waterQuality; + +import com.fasterxml.jackson.databind.ObjectMapper; +import domain.WaterQuality; +import service.WaterQualityService; +import service.impl.WaterQualityServiceImpl; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + * @author laoyingyong + * @date: 2020-01-29 18:25 + */ +@WebServlet("/ViewWaterQulityInfoServlet") +public class ViewWaterQulityInfoServlet extends HttpServlet +{ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + request.setCharacterEncoding("utf-8"); + String stationName = request.getParameter("stationName"); + WaterQualityService service=new WaterQualityServiceImpl(); + List list = service.findByName(stationName); + + ObjectMapper mapper=new ObjectMapper(); + response.setContentType("application/json;charset=utf-8"); + mapper.writeValue(response.getOutputStream(),list); + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + + this.doPost(request, response); + + } +}