Commit 9946c0da93b8e048f3c88b9b584a0cc935b6ebb4
1 parent
476f506d
给安全系统,按驾驶员统计总公里
Showing
1 changed file
with
77 additions
and
1 deletions
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 | } | ... | ... |