StatisticsController.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666
  1. package com.yihu.wlyy.web.statistic;
  2. import com.yihu.wlyy.entity.statistics.PopulationBase;
  3. import com.yihu.wlyy.service.app.statistics.StatisticsAllService;
  4. import com.yihu.wlyy.service.app.statistics.StatisticsService;
  5. import com.yihu.wlyy.web.BaseController;
  6. import io.swagger.annotations.Api;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.json.JSONArray;
  9. import org.json.JSONObject;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.data.redis.core.StringRedisTemplate;
  12. import org.springframework.http.MediaType;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RequestMethod;
  16. import org.springframework.web.bind.annotation.RequestParam;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import java.util.*;
  19. /**
  20. * Created by lyr on 2016/08/16.
  21. */
  22. @Controller
  23. @RequestMapping(value = "/statistics", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  24. @Api(description = "统计")
  25. public class StatisticsController extends BaseController {
  26. @Autowired
  27. StatisticsService statisticsService;
  28. @Autowired
  29. StatisticsAllService statisticsAllService;
  30. /**
  31. * 获取统计时间
  32. *
  33. * @return
  34. */
  35. @RequestMapping(value = "/time")
  36. @ResponseBody
  37. public String getStatisticsTime() {
  38. try {
  39. return write(200, "查询成功", "data", statisticsService.getStatisticsTime());
  40. } catch (Exception e) {
  41. return error(-1, "查询失败");
  42. }
  43. }
  44. /**
  45. * 指标按间隔统计
  46. *
  47. * @param startDate 起始日期
  48. * @param endDate 结束时间
  49. * @param interval 时间间隔
  50. * @param area 区域或机构
  51. * @param level 级别
  52. * @param index 指标
  53. * @return
  54. */
  55. @RequestMapping(value = "/interval")
  56. @ResponseBody
  57. public String indexInterval(@RequestParam(required = true) String startDate,
  58. @RequestParam(required = true) String endDate,
  59. @RequestParam(required = true) int interval,
  60. @RequestParam(required = true) String area,
  61. @RequestParam(required = true) int level,
  62. @RequestParam(required = true) String index,
  63. @RequestParam(required = false) String level2_type) {
  64. String tag = "";
  65. try {
  66. String[] indexes = index.split(",");
  67. JSONObject result = new JSONObject();
  68. if (index != null) {
  69. for (String idx : indexes) {
  70. result.put("index_" + idx, statisticsService.getDateIncrementDetail(startDate, endDate, interval, area, level, idx, level2_type));
  71. }
  72. }
  73. return write(200, "查询成功!", "data", result);
  74. } catch (Exception e) {
  75. return error(-1, tag + "查询失败!");
  76. }
  77. }
  78. /**
  79. * 指标期间增长量
  80. *
  81. * @param startDate
  82. * @param endDate
  83. * @param area
  84. * @param level
  85. * @param index
  86. * @return
  87. */
  88. @RequestMapping("/increment")
  89. @ResponseBody
  90. public String getIndexIncrement(@RequestParam(required = true) String startDate,
  91. @RequestParam(required = true) String endDate,
  92. @RequestParam(required = true) String area,
  93. @RequestParam(required = true) int level,
  94. @RequestParam(required = true) String index) {
  95. try {
  96. String[] indexes = index.split(",");
  97. JSONObject result = new JSONObject();
  98. for (String idx : indexes) {
  99. result.put("index_" + idx, statisticsService.getIntervalIncrement(startDate, endDate, area, level, idx));
  100. }
  101. return write(200, "查询成功", "data", result);
  102. } catch (Exception e) {
  103. e.printStackTrace();
  104. return error(-1, "查询失败");
  105. }
  106. }
  107. /**
  108. * 指标截止日期累积量
  109. *
  110. * @param endDate 结束时间
  111. * @param area 父code
  112. * @param level 等级 1 团队,2 机构,3 区,4 市
  113. * @param index 指标代码
  114. * @param level2_type 指标代码 例如性别 1 男 2 女 不传就返回男和女的总和
  115. * @return
  116. */
  117. @RequestMapping("/total")
  118. @ResponseBody
  119. public String getIndexTotal(@RequestParam(required = true) String endDate,
  120. @RequestParam(required = true) String area,
  121. @RequestParam(required = true) int level,
  122. @RequestParam(required = true) String index,
  123. @RequestParam(required = false) String level2_type) {
  124. try {
  125. String[] indexes = index.split(",");
  126. JSONObject result = new JSONObject();
  127. for (String idx : indexes) {
  128. result.put("index_" + idx, statisticsService.getTotalAmount(endDate, area, level, idx, level2_type));
  129. }
  130. return write(200, "查询成功", "data", result);
  131. } catch (Exception e) {
  132. return error(-1, "查询失败");
  133. }
  134. }
  135. /**
  136. * 指标期间增长量
  137. *
  138. * @param startDate
  139. * @param endDate
  140. * @param area
  141. * @param level
  142. * @param index
  143. * @return
  144. */
  145. @RequestMapping("/lowlevel_increment")
  146. @ResponseBody
  147. public String getIndexLowLevelIncrement(@RequestParam(required = true) String startDate,
  148. @RequestParam(required = true) String endDate,
  149. @RequestParam(required = true) String area,
  150. @RequestParam(required = true) int level,
  151. @RequestParam(required = true) String index,
  152. @RequestParam(required = true) int sort,
  153. @RequestParam(required = false) String lowLevel) {
  154. try {
  155. String[] indexes = index.split(",");
  156. JSONObject result = new JSONObject();
  157. for (String idx : indexes) {
  158. result.put("index_" + idx, statisticsService.getLowLevelIncrementDetail(startDate, endDate, area, level, idx, sort, lowLevel));
  159. }
  160. return write(200, "查询成功", "data", result);
  161. } catch (Exception e) {
  162. e.printStackTrace();
  163. return error(-1, "查询失败");
  164. }
  165. }
  166. /**
  167. * 指标截止日期增量
  168. *
  169. * @param endDate 结束时间
  170. * @param area 父code
  171. * @param level 等级 1 团队,2 机构,3 区,4 市
  172. * @param index 指标代码
  173. * @param sort 排序 1倒叙 2是 正序
  174. * @param lowLevel
  175. * @param level2_type 指标代码 例如性别 1 男 2 女 不传就返回男和女的总和
  176. * @return
  177. */
  178. @RequestMapping("/lowlevel_total")
  179. @ResponseBody
  180. public String getIndexLowLevelTotal(@RequestParam(required = true) String endDate,
  181. @RequestParam(required = true) String area,
  182. @RequestParam(required = true) int level,
  183. @RequestParam(required = true) String index,
  184. @RequestParam(required = true) int sort,
  185. @RequestParam(required = false) String lowLevel,
  186. @RequestParam(required = false) String level2_type) {
  187. try {
  188. String[] indexes = index.split(",");
  189. JSONObject result = new JSONObject();
  190. for (String idx : indexes) {
  191. result.put("index_" + idx, statisticsService.getLowLevelTotalDetail(endDate, area, level, idx, sort, lowLevel, level2_type));
  192. }
  193. return write(200, "查询成功", "data", result);
  194. } catch (Exception e) {
  195. return error(-1, "查询失败");
  196. }
  197. }
  198. /**
  199. * 指标截止日期累积量
  200. * 根据2个ID合并指标
  201. *
  202. * @param endDate
  203. * @param area
  204. * @param level
  205. * @param index
  206. * @return
  207. */
  208. @RequestMapping("/lowlevel_total_mesh")
  209. @ResponseBody
  210. public String getIndexLowLevelTotalMesh(@RequestParam(required = true) String endDate, // 2007-10-02
  211. @RequestParam(required = true) String area,//区域 350205
  212. @RequestParam(required = true) int level,//等级
  213. @RequestParam(required = true) String index,//指标code
  214. @RequestParam(required = true) int sort,//1是倒叙 0是正序
  215. @RequestParam(required = false) String lowLevel) {
  216. try {
  217. String[] indexes = index.split(",");
  218. JSONObject result = new JSONObject();
  219. JSONArray returnJa = new JSONArray();
  220. List<JSONArray> jsonArrays = new ArrayList<>();
  221. JSONArray jsonArray1 = statisticsService.getLowLevelTotalDetail(endDate, area, level, indexes[0], sort, lowLevel, null);
  222. jsonArrays.add(jsonArray1);
  223. JSONArray jsonArray2 = statisticsService.getLowLevelIncrementDetail(endDate, endDate, area, level, indexes[1], sort, lowLevel);
  224. jsonArrays.add(jsonArray2);
  225. //遍历合并2个指标中key值一样的
  226. if (jsonArrays.get(1).length() == 0) {
  227. //如果只有一个指标的时候 另外一个指标默认是0
  228. for (int i = 0; i < jsonArrays.get(0).length(); i++) {
  229. //未回复咨询不存在的时候默认是0
  230. JSONObject map1 = jsonArrays.get(0).getJSONObject(i);
  231. String amount = map1.get("amount").toString() + ",0";
  232. map1.put("amount", amount);
  233. returnJa.put(map1);
  234. }
  235. } else {
  236. //如果是2个指标的时候,分别放入map中,以减少查询次数
  237. Map<String,JSONObject> index1=new HashMap<>();
  238. Map<String,JSONObject> index2=new HashMap<>();
  239. for (int i = 0; i < jsonArrays.get(0).length(); i++) {
  240. JSONObject map1 = jsonArrays.get(0).getJSONObject(i);
  241. index1.put(map1.get("code").toString(),map1);
  242. }
  243. for (int i = 0; i < jsonArrays.get(1).length(); i++) {
  244. JSONObject map1 = jsonArrays.get(1).getJSONObject(i);
  245. index2.put(map1.get("code").toString(),map1);
  246. }
  247. for(Map.Entry<String , JSONObject> one:index1.entrySet()){
  248. JSONObject map1 = one.getValue();
  249. JSONObject map2 = index2.get(one.getKey());
  250. String amount = map1.get("amount").toString() + "," + map2.get("amount").toString();
  251. map1.put("amount", amount);
  252. returnJa.put(map1);
  253. }
  254. }
  255. result.put("index_" + indexes[0], returnJa);
  256. return write(200, "查询成功", "data", result);
  257. } catch (
  258. Exception e
  259. )
  260. {
  261. e.printStackTrace();
  262. return error(-1, "查询失败");
  263. }
  264. }
  265. /**
  266. * 指标期间增长量
  267. *
  268. * @param startDate
  269. * @param endDate
  270. * @param area
  271. * @param level
  272. * @param index
  273. * @return
  274. */
  275. @RequestMapping("/leveltwo_increment")
  276. @ResponseBody
  277. public String getIndexLevelTwoIncrement(@RequestParam(required = false) String startDate,
  278. @RequestParam(required = true) String endDate,
  279. @RequestParam(required = true) String area,
  280. @RequestParam(required = true) int level,
  281. @RequestParam(required = true) String index) {
  282. try {
  283. String[] indexes = index.split(",");
  284. JSONObject result = new JSONObject();
  285. for (String idx : indexes) {
  286. result.put("index_" + idx, statisticsAllService.getIndexLevelTwototal(endDate, area, level, idx));
  287. }
  288. return write(200, "查询成功", "data", result);
  289. } catch (Exception e) {
  290. e.printStackTrace();
  291. return error(-1, "查询失败");
  292. }
  293. }
  294. /**
  295. * 获取签约率、签约完成率
  296. *
  297. * @param endDate 截止日期
  298. * @param area 区域
  299. * @param level 区域级别 4:城市 3:区 2:社区 1:团队
  300. * @return
  301. */
  302. @RequestMapping(value = "/sign_info")
  303. @ResponseBody
  304. public String getAreaSignInfo(@RequestParam(required = true) String endDate,
  305. @RequestParam(required = true) String area,
  306. @RequestParam(required = true) int level,
  307. @RequestParam(required = false) String lowCode) {
  308. try {
  309. JSONObject result = new JSONObject();
  310. if (StringUtils.isEmpty(lowCode)) {
  311. long sign = statisticsAllService.getIndexTotal(endDate, area, level, "13");
  312. long weiJf = statisticsAllService.getWeiJiaoFei(endDate, area, level);
  313. JSONObject signRate = statisticsAllService.getSignRate(endDate, area, level);
  314. JSONObject signTaskRate = statisticsAllService.getSignTaskRate(endDate, area, level);
  315. result.put("sign", sign);
  316. result.put("expenses", weiJf);
  317. result.put("signRate", signRate);
  318. result.put("signTaskRate", signTaskRate);
  319. } else {
  320. result = statisticsAllService.getGroupInfo(endDate, lowCode, area, level);
  321. }
  322. return write(200, "查询成功", "data", result);
  323. } catch (Exception e) {
  324. return error(-1, "查询失败");
  325. }
  326. }
  327. /**
  328. * 获取三级指标增量
  329. *
  330. * @param startDate
  331. * @param endDate
  332. * @param area
  333. * @param level
  334. * @return
  335. */
  336. @RequestMapping(value = "/sixfive_statistics")
  337. @ResponseBody
  338. public String getSixFiveStatistics(@RequestParam(required = false) String startDate,
  339. @RequestParam(required = true) String endDate,
  340. @RequestParam(required = true) String area, int level) {
  341. try {
  342. JSONArray result = statisticsAllService.getSixFiveStatistics(endDate, area, level);
  343. return write(200, "查询成功", "data", result);
  344. } catch (Exception e) {
  345. e.printStackTrace();
  346. return error(-1, "查询失败");
  347. }
  348. }
  349. /**
  350. * 指标按间隔统计
  351. *
  352. * @param startDate 起始日期
  353. * @param endDate 结束时间
  354. * @param interval 时间间隔
  355. * @param area 区域或机构
  356. * @param level 级别
  357. * @param index 指标
  358. * @return
  359. */
  360. @RequestMapping(value = "/interval_total")
  361. @ResponseBody
  362. public String indexIntervalTotal(@RequestParam(required = true) String startDate,
  363. @RequestParam(required = true) String endDate,
  364. @RequestParam(required = true) int interval,
  365. @RequestParam(required = true) String area,
  366. @RequestParam(required = true) int level,
  367. @RequestParam(required = true) String index,
  368. @RequestParam(required = false) String lowCode) {
  369. try {
  370. String[] indexes = index.split(",");
  371. JSONObject result = new JSONObject();
  372. if (index != null) {
  373. for (String idx : indexes) {
  374. result.put("index_" + idx, statisticsAllService.getDateTotal(startDate, endDate, interval, area, level, idx, lowCode));
  375. }
  376. }
  377. return write(200, "查询成功!", "data", result);
  378. } catch (Exception e) {
  379. return error(-1, "查询失败!");
  380. }
  381. }
  382. /**
  383. * 指标截止日期累积量
  384. *
  385. * @param date
  386. * @param area
  387. * @param level level1_type等级 1:团队 2社区机构 3区级 4市级
  388. * @param index quotoCode 18/19两率
  389. * @param sort 1降序排列-1升序排列
  390. * @return
  391. */
  392. @RequestMapping("/lowlevel_all")
  393. @ResponseBody
  394. public String getIndexLowLevelTotalSign(@RequestParam(required = true) String date,
  395. @RequestParam(required = true) String area,
  396. @RequestParam(required = true) int level,
  397. @RequestParam(required = true) String index,
  398. @RequestParam(required = true) int sort,
  399. @RequestParam(required = false) String lowLevel,
  400. @RequestParam(required = false) String lowCode) {
  401. try {
  402. String[] indexes = index.split(",");
  403. JSONObject result = new JSONObject();
  404. if (StringUtils.isNotEmpty(lowCode)) {
  405. // 指定level下特定查询级别
  406. result.put("index_" + index, statisticsAllService.getLevelTwoLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode));
  407. } else {
  408. // 未指定level下特定查询级别
  409. for (String idx : indexes) {
  410. if (idx.equals("18") || index.equals("19")) {
  411. result.put("index_" + idx, statisticsAllService.getLowLevelTotalSpecial(date, area, level, idx, sort, lowLevel));
  412. } else if (idx.equals("1") || index.equals("21")) {
  413. result.put("index_" + idx, statisticsAllService.getLowLevelTotal2(date, area, level, idx, sort, lowLevel));
  414. } else {
  415. result.put("index_" + idx, statisticsAllService.getLowLevelTotal(date, area, level, idx, sort, lowLevel));
  416. }
  417. }
  418. }
  419. return write(200, "查询成功", "data", result);
  420. } catch (Exception e) {
  421. e.printStackTrace();
  422. return error(-1, "查询失败");
  423. }
  424. }
  425. /**
  426. * 获取三师转签或高危人群
  427. *
  428. * @param endDate
  429. * @param area
  430. * @param level
  431. * @return
  432. */
  433. @RequestMapping(value = "/sszq_qwrq_info")
  434. @ResponseBody
  435. public String getSszqAndGwrq(@RequestParam(required = true) String endDate,
  436. @RequestParam(required = true) String area,
  437. @RequestParam(required = true) int level) {
  438. try {
  439. JSONObject result = new JSONObject();
  440. JSONObject sszq = statisticsAllService.getSszqAndGwrq(endDate, area, level, "18");
  441. JSONObject gwrq = statisticsAllService.getSszqAndGwrq(endDate, area, level, "19");
  442. result.put("sszq", sszq);
  443. result.put("gwrq", gwrq);
  444. return write(200, "查询成功", "data", result);
  445. } catch (Exception e) {
  446. return error(-1, "查询失败");
  447. }
  448. }
  449. /**
  450. * 二级指标到达量
  451. *
  452. * @param date
  453. * @param area
  454. * @param level
  455. * @param index
  456. * @return
  457. */
  458. @RequestMapping(value = "/leveltwo_all")
  459. @ResponseBody
  460. public String getIndexLevelTwoTotal(@RequestParam(required = true) String date,
  461. @RequestParam(required = true) String area,
  462. @RequestParam(required = true) int level,
  463. @RequestParam(required = true) String index) {
  464. try {
  465. String[] indexes = index.split(",");
  466. JSONObject result = new JSONObject();
  467. for (String idx : indexes) {
  468. result.put("index_" + idx, statisticsAllService.getIndexLevelTwototal(date, area, level, idx));
  469. }
  470. return write(200, "查询成功", "data", result);
  471. } catch (Exception e) {
  472. e.printStackTrace();
  473. return error(-1, "查询失败");
  474. }
  475. }
  476. /**
  477. * 指标截止日期到达量
  478. *
  479. * @param endDate
  480. * @param area
  481. * @param level
  482. * @param index
  483. * @return
  484. */
  485. @RequestMapping("/index_all")
  486. @ResponseBody
  487. public String getIndexAll(@RequestParam(required = true) String endDate,
  488. @RequestParam(required = true) String area,
  489. @RequestParam(required = true) int level,
  490. @RequestParam(required = true) String index) {
  491. try {
  492. String[] indexes = index.split(",");
  493. JSONObject result = new JSONObject();
  494. for (String idx : indexes) {
  495. result.put("index_" + idx, statisticsAllService.getIndexTotal(endDate, area, level, idx));
  496. }
  497. return write(200, "查询成功", "data", result);
  498. } catch (Exception e) {
  499. return error(-1, "查询失败");
  500. }
  501. }
  502. /**
  503. * 咨询统计
  504. * 咨询分析页面具体交互与业务分析内一致,即按市、区、社区、机构有不同展示,可一级级进入查看
  505. * ①回复及时率------医生首次回复24小时内比例
  506. * ②未回复数(数、率)----------当前未回复咨询数、以及相应比例
  507. * ③处理咨询回复时间分布---------全部咨询的首次回复咨询时间分布
  508. *
  509. * @param level 查询的等级,按市、区、机构
  510. * @param area 查询的等级对应Code
  511. * @return
  512. */
  513. @RequestMapping("/Consulting_Stat")
  514. @ResponseBody
  515. public String getConsultingStatistics(@RequestParam(required = true) Integer level,
  516. @RequestParam(required = true) String area) {
  517. try {
  518. return write(200, "查询成功", "data", statisticsService.getConsultingStatistics(level, area));
  519. } catch (Exception e) {
  520. return error(-1, "查询失败");
  521. }
  522. }
  523. /**
  524. * 咨询统计
  525. * 咨询分析页面具体交互与业务分析内一致,即按市、区、社区、机构有不同展示,可一级级进入查看
  526. * ①回复及时率------医生首次回复24小时内比例
  527. * ②未回复数(数、率)----------当前未回复咨询数、以及相应比例
  528. * ③处理咨询回复时间分布---------全部咨询的首次回复咨询时间分布
  529. *
  530. * @param level 查询的等级,按市、区、机构
  531. * @return
  532. */
  533. @RequestMapping("/Consulting_StatList")
  534. @ResponseBody
  535. public String getConsultingStatisticsList(@RequestParam(required = true) Integer level,
  536. @RequestParam(required = true) String area,
  537. @RequestParam(required = false) String lowlevel) {
  538. try {
  539. JSONObject data = statisticsService.getConsultingStatisticsList(level, area, lowlevel);
  540. if (data != null) {
  541. return write(200, "查询成功", "data", data);
  542. } else {
  543. return error(-1, "查询失败");
  544. }
  545. } catch (Exception e) {
  546. return error(-1, "查询失败");
  547. }
  548. }
  549. /**
  550. * 咨询统计
  551. * 咨询分析页面具体交互与业务分析内一致,即按市、区、社区、机构有不同展示,可一级级进入查看
  552. * ①回复及时率------医生首次回复24小时内比例
  553. * ②未回复数(数、率)----------当前未回复咨询数、以及相应比例
  554. * ③处理咨询回复时间分布---------全部咨询的首次回复咨询时间分布
  555. *
  556. * @param level 查询的等级,按市、区、机构
  557. * @return
  558. */
  559. @RequestMapping("/Consulting_Title")
  560. @ResponseBody
  561. public String getConsultingTitle(@RequestParam(required = true) Integer level,
  562. @RequestParam(required = true) String area) {
  563. try {
  564. JSONObject data = statisticsService.getConsultingTitle(level, area);
  565. if (data != null) {
  566. return write(200, "查询成功", "data", data);
  567. } else {
  568. return error(-1, "查询失败");
  569. }
  570. } catch (Exception e) {
  571. return error(-1, "查询失败");
  572. }
  573. }
  574. /**
  575. * 获取回复数时间分布数
  576. *
  577. * @param level
  578. * @param area
  579. * @return
  580. */
  581. @RequestMapping("/getCoutListByTime")
  582. @ResponseBody
  583. public String getCoutListByTime(@RequestParam(required = true) String level, @RequestParam(required = true) String area) {
  584. try {
  585. return write(200, "查询成功", "data", statisticsService.getCoutListByTime(level, area));
  586. } catch (Exception e) {
  587. return error(-1, "查询失败");
  588. }
  589. }
  590. /**
  591. * 获取绑定率
  592. * 1、选定绑定微信指标,下面排行内,在绑定微信数后新增:"绑定率:xx.22%"
  593. * 2、绑定率=绑定数/已签约数
  594. *
  595. * @return
  596. */
  597. @RequestMapping("/bindingRate_stat")
  598. @ResponseBody
  599. public String getBindingRate() {
  600. try {
  601. return write(200, "查询成功", "data", statisticsService.getBindingRate());
  602. } catch (Exception e) {
  603. return error(-1, "查询失败");
  604. }
  605. }
  606. }