1.Action层
/** * 查询申请单各个状态记录 * * @return */ @RequestMapping(value = "/statusRows", method = RequestMethod.GET) @ResponseBody public JSONObject statusRows() { JSONObject jsonObject = new JSONObject(); QuarantineState[] quarantineStates = QuarantineState.values(); List<Object> objectList = quarantineApplicationBiz.statusCounts(); if (CollectionUtils.isNotEmpty(objectList)) { for (int i = 0; i < quarantineStates.length; i++) { boolean flag = true; for (Object object : objectList) { JSONArray jsonArray = JSONArray.fromObject(object); String status = getJsonString(jsonArray, 0); String count = getJsonToIntegerString(jsonArray, 1); if (status.equals(String.valueOf(i))) { jsonObject.put(quarantineStates[i] + "Size", count); flag = false; break; } } if (flag) { jsonObject.put(quarantineStates[i] + "Size", 0); } } } JSONObject result = ResponseJSON.Ok("查询申请表成功", jsonObject); return result; }
//判断是否为空
private static String getJsonString(JSONArray ja, Integer index) { return "null".equals(ja.getString(index)) ? "" : ja.getString(index); } private static String getJsonToIntegerString(JSONArray ja, Integer index) { String money = "null".equals(ja.getString(index)) ? "" : ja.getString(index); return StringUtils.isEmpty(money) ? "0" : money; }2.Dao层
//原生sql,查询各个状态记录数 public List<Object> statusCounts() { String sql="select `status` ,count(*) from quarantine_application where status IS NOT NULL GROUP BY `status`"; return entityManager.createNativeQuery(sql).getResultList(); }//jpa的sql publicList<QuarantineApplication> status(Map<String, String> queryHash) { Stringsql="select count(*) from QuarantineApplication q group by status"; TypedQuery<QuarantineApplication>typedQuery = entityManager.createQuery(sql, QuarantineApplication.class); returntypedQuery.getResultList(); }