import com.alibaba.fastjson.JSONObject;
/**
* 通过时间范围查询职位统计结果
* @param startMonth
* @param endMonth
* @return
*/
@Override
public String queryPositionByMonthOfYear(String startMonth, String endMonth) {
int sumNewPosn =0;
int sumCurrPosn =0;
int dailyAverage =0;
Map<String, Object> resultMap=null;
JSONObject jo =null;
JSONObject jod =null;
String endMonthTmp=null;
String sql="";
List<Map<String,Object>> lis = null;
try {
int tmp = Integer.valueOf(endMonth.split("-")[1])+1;
endMonthTmp=Integer.valueOf(endMonth.split("-")[0])+"-"+tmp;
sql = "select left(statistic_time,7) time ,sum(new_position) newPosition ,sum(curr_position) nowRecruitPosition from t_cal_positions " +
"where statistic_time > '"+startMonth+"' and statistic_time <'"+endMonthTmp+"' group by left(statistic_time,7)";
LogUtil.print("sql: "+sql);
Query query = em.createNativeQuery(sql);
query.unwrap(org.hibernate.SQLQuery.class)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> rows = query.getResultList();
if(null!=rows && rows.size()>0){
resultMap = new HashMap<String, Object>();
lis= new ArrayList<Map<String,Object>>();
for (Map<String, Object> map : rows) {
if(map.get("time").equals(endMonth)){
// int daynum = DateUtil.getDayOfMonth(Integer.valueOf(endMonth.split("-")[0]),Integer.valueOf(endMonth.split("-")[1]));
dailyAverage=Integer.valueOf(String.valueOf(map.get("nowRecruitPosition")))/DateUtil.getDateOfMonth();
}
lis.add(map);
}
jo = new JSONObject();
jod = new JSONObject();
jod.put("dailyAverage",dailyAverage);
jod.put("list",lis);
jo.put("code", EnumHttpStatusType.success.getCode());
jo.put("msg",EnumHttpStatusType.success.getStatus());
jo.put("data",jod);
return jo.toString();
}
} catch (Exception e) {
LogUtil.print("sql: "+sql);
e.printStackTrace();
LogUtil.error("通过时间查询当月在招职位统计结果,错误信息:", e.getMessage(), e);
jo = new JSONObject();
jod = new JSONObject();
jod.put("dailyAverage",dailyAverage);
if(lis!=null && lis.size()>0){
jo.put("data", lis);
}else{
jo.put("data", "");
}
jo.put("code", EnumHttpStatusType.success.getCode());
jo.put("msg",EnumHttpStatusType.success.getStatus());
jo.put("data",jod);
return jo.toString();
}
return null;
}
JSONObject 中 put 键值,键自己可定义,值可以为list,map,字符串,JSONObject 等格式,最后toString后返回。
注意controller中定义返回格式为json便于前端解析:
@CrossOrigin //跨域 如web访问 service @PostMapping(value = "/getPositionByMonthOfYear", produces = {"application/json;charset=UTF-8"})