Commit 9946c0da93b8e048f3c88b9b584a0cc935b6ebb4

Authored by 娄高锋
1 parent 476f506d

给安全系统,按驾驶员统计总公里

src/main/java/com/bsth/server_rs/bigdata/BigdataService.java
... ... @@ -1616,5 +1616,81 @@ public class BigdataService {
1616 1616 resMap.put("electricList", dlbList);
1617 1617 return resMap;
1618 1618 }
1619   -
  1619 +
  1620 + /**
  1621 + * 给安全系统,按驾驶员统计公里
  1622 + * @param starDate
  1623 + * @param endDate
  1624 + * @return
  1625 + * @throws ParseException
  1626 + */
  1627 + @GET
  1628 + @Path("/mileageByDriver/startDate/{startDate}/endDate/{endDate}")
  1629 + public List<Map<String, Object>> mileageByDriver(@PathParam("startDate") String starDate,
  1630 + @PathParam("endDate") String endDate) throws ParseException {
  1631 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  1632 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1633 + Date date1 = sdf.parse(starDate);
  1634 + Date date2 = sdf.parse(endDate);
  1635 +
  1636 + String yyxlSql="SELECT gsdm, gsname, fgsdm, fgsname, rq_str, xl_name, j_gh, j_name,"
  1637 + + " sjyylc, sjfyylc, ljyylc, ljfyylc"
  1638 + + " from calc_waybill"
  1639 + + " where rq between ? and ?";
  1640 + List<Map<String, Object>> calcList=jdbcTemplate.query(yyxlSql, new Object[]{date1, date2},
  1641 + new RowMapper<Map<String, Object>>(){
  1642 + @Override
  1643 + public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
  1644 + Map<String, Object> m=new HashMap<String,Object>();
  1645 + m.put("gsdm", rs.getString("gsdm"));
  1646 + m.put("gsname", rs.getString("gsname"));
  1647 + m.put("fgsdm", rs.getString("fgsdm"));
  1648 + m.put("fgsname", rs.getString("fgsname"));
  1649 + m.put("rq_str", rs.getString("rq_str"));
  1650 + m.put("xl_name", rs.getString("xl_name"));
  1651 + m.put("j_gh", rs.getString("j_gh"));
  1652 + m.put("j_name", rs.getString("j_name"));
  1653 + m.put("sjyylc", rs.getString("sjyylc"));
  1654 + m.put("sjfyylc", rs.getString("sjfyylc"));
  1655 + m.put("ljyylc", rs.getString("ljyylc"));
  1656 + m.put("ljfyylc", rs.getString("ljfyylc"));
  1657 + return m;
  1658 + }
  1659 + });
  1660 +
  1661 + Map<String, Map<String, Object>> keyMap = new HashMap<String, Map<String, Object>>();
  1662 + for(Map<String, Object> m : calcList){
  1663 + String rq_str = m.get("rq_str").toString();
  1664 + String gsdm = m.get("gsdm").toString();
  1665 + String fgsdm = m.get("fgsdm").toString();
  1666 + String gh = m.get("j_gh").toString();
  1667 + String name = m.get("j_name").toString();
  1668 + String key = rq_str + "/" + gsdm + "/" + fgsdm + "/" + gh + "/" + name;
  1669 + if(!keyMap.containsKey(key)){
  1670 + Map<String, Object> temp = new HashMap<String, Object>();
  1671 + temp.put("date", rq_str);
  1672 + temp.put("company", gsdm);
  1673 + temp.put("brancheCompany", fgsdm);
  1674 + temp.put("gh", gh);
  1675 + temp.put("name", name);
  1676 + temp.put("mileage", "0");
  1677 + keyMap.put(key, temp);
  1678 + }
  1679 + Map<String, Object> temp = keyMap.get(key);
  1680 + BigDecimal mileage = new BigDecimal(temp.get("mileage").toString());
  1681 + BigDecimal sjyylc = new BigDecimal(m.get("sjyylc").toString());
  1682 + BigDecimal sjfyylc = new BigDecimal(m.get("sjfyylc").toString());
  1683 + BigDecimal ljyylc = new BigDecimal(m.get("ljyylc").toString());
  1684 + BigDecimal ljfyylc = new BigDecimal(m.get("ljfyylc").toString());
  1685 + temp.put("mileage", mileage.add(sjyylc).add(sjfyylc).add(ljyylc).add(ljfyylc));
  1686 + }
  1687 +
  1688 + for(String key : keyMap.keySet()){
  1689 + Map<String, Object> m = keyMap.get(key);
  1690 + resList.add(m);
  1691 + }
  1692 +
  1693 + return resList;
  1694 + }
  1695 +
1620 1696 }
... ...