DatacollectDao.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. package com.yihu.hos.datacollect.dao;
  2. import com.yihu.hos.datacollect.model.DtoJobDataset;
  3. import com.yihu.hos.datacollect.model.RsJobDataset;
  4. import com.yihu.hos.resource.model.RsDatasourceDataset;
  5. import com.yihu.hos.web.framework.constant.DateConvert;
  6. import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
  7. import com.yihu.hos.web.framework.model.DataGridResult;
  8. import com.yihu.hos.web.framework.model.SimpleChartItem;
  9. import org.springframework.stereotype.Repository;
  10. import org.springframework.util.StringUtils;
  11. import java.util.Date;
  12. import java.util.GregorianCalendar;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * Created by hzp on 2016/1/11.
  17. */
  18. @Repository("DatacollectDao")
  19. public class DatacollectDao extends SQLGeneralDAO {
  20. public static final String BEAN_ID = "DatacollectDao";
  21. /**
  22. * 通过机构代码获取版本号
  23. */
  24. public String getVersionByQLC(String orgCode) throws Exception
  25. {
  26. try{
  27. String sql = "select version from adapter_scheme_version v "+
  28. " left join system_organization o on o.qlc_adapter_version=v.id "+
  29. " where o.qlc_org_code ='"+orgCode+"'";
  30. return super.scalarBySql(sql, String.class);
  31. }
  32. catch (Exception e)
  33. {
  34. e.printStackTrace();
  35. return "";
  36. }
  37. }
  38. /**
  39. * 根据JobId获取Cron表达式
  40. */
  41. public String getCronByJobId(String jobId)
  42. {
  43. try{
  44. String sql = "select CRON_EXPRESSION from qrtz_cron_triggers where TRIGGER_NAME='"+jobId+"'";
  45. return super.scalarBySql(sql, String.class);
  46. }
  47. catch (Exception e)
  48. {
  49. return "";
  50. }
  51. }
  52. /**
  53. * 获取任务列表
  54. * @return
  55. */
  56. public DataGridResult getJobList(Map<String, Object> conditionMap, Integer page, Integer pageSize) throws Exception
  57. {
  58. StringBuilder sb = new StringBuilder();
  59. sb.append("from RsJobConfig t where 1=1 ");
  60. if (!StringUtils.isEmpty(conditionMap.get("jobName")))
  61. {
  62. sb.append(" and t.jobName like '%" + conditionMap.get("jobName") + "%'");
  63. }
  64. return getDataGridResult(sb.toString(),page,pageSize);
  65. }
  66. /**
  67. * 获取任务数据集
  68. * @return
  69. * @throws Exception
  70. */
  71. public List<RsJobDataset> getJobDataset(String jobId) throws Exception
  72. {
  73. String sql = "select * from rs_job_dataset where job_id='"+jobId+"'";
  74. return super.queryListBySql(sql, RsJobDataset.class);
  75. }
  76. /**
  77. * 获取版本名称
  78. */
  79. public String getSchemeAndVersion(String schemeVersionId) throws Exception
  80. {
  81. String sql = "select IFNULL( (select CONCAT_WS(' -- ',s.name,v.name) from adapter_scheme_version v " +
  82. "left join adapter_scheme s on s.id = v.scheme_id " +
  83. "where v.version='"+schemeVersionId+"'),'')";
  84. return super.scalarBySql(sql, String.class);
  85. }
  86. /**
  87. * 修改任务状态
  88. */
  89. public void validJob(String id,String valid) throws Exception
  90. {
  91. String sql = "update rs_job_config set valid='"+valid+"' where Id='"+id+"'";
  92. super.execute(sql);
  93. }
  94. /**
  95. * 删除任务关联数据集
  96. */
  97. public void deleteJobDatasetByJobId(String jobId) throws Exception
  98. {
  99. List<RsJobDataset> list = (List<RsJobDataset>) super.hibernateTemplate.find("from RsJobDataset s where s.jobId=? ", jobId);
  100. //判断是否存在数据
  101. if(list!=null && list.size()>0)
  102. {
  103. for(RsJobDataset obj :list)
  104. {
  105. super.deleteEntity(obj);
  106. }
  107. }
  108. }
  109. /**
  110. * 通过版本获取配置的数据集--数据源
  111. * @throws Exception
  112. */
  113. public List<RsDatasourceDataset> getDatasourceDataset(String stdVersion) throws Exception
  114. {
  115. String sql = "select * from rs_datasource_dataset where std_version='"+stdVersion+"'";
  116. return super.queryListBySql(sql, RsDatasourceDataset.class);
  117. }
  118. /**
  119. * 删除数据集数据源关联
  120. */
  121. public void deleteDatasourceDatasetById(String id) throws Exception
  122. {
  123. String sql = "delete from rs_datasource_dataset where id='"+id+"'";
  124. super.execute(sql);
  125. }
  126. /**
  127. * 通过任务ID获取相关数据集
  128. */
  129. public List<DtoJobDataset> getDatacollectDataset(String jobId) throws Exception
  130. {
  131. //通过jobId获取机构版本号
  132. String sqlVersion ="select a.adapter_std_version\n" +
  133. "from rs_job_config c,(SELECT s.adapter_std_version,v.version from adapter_scheme s,adapter_scheme_version v where s.id=v.scheme_id) a\n" +
  134. "where a.version = c.scheme_version\n" +
  135. "and c.id='"+jobId+"'";
  136. String version = super.scalarBySql(sqlVersion,String.class);
  137. String sql = "select d.*,\n" +
  138. "t.datasource_id,t.datasource_name,t.config,t.type,t.org_code\n" +
  139. "from rs_job_dataset d\n" +
  140. "LEFT JOIN (select s.dataset_id,s.datasource_id,ss.name as datasource_name,ss.config,ss.type,ss.org_code \n" +
  141. "\tfrom rs_datasource_dataset s,(select ds.id,ds.name,ds.config,ds.type,o.code as org_code from system_datasource ds,system_organization o where ds.org_id=o.id) ss where s.datasource_id=ss.id and s.Std_version='"+version+"') t \n" +
  142. "on d.job_dataset_id = t.dataset_id \n" +
  143. "where d.job_id='"+jobId+"'\n" +
  144. "order by d.sort";
  145. return super.queryListBySql(sql,DtoJobDataset.class);
  146. }
  147. /**
  148. * 获取任务详细日志列表
  149. */
  150. public DataGridResult getJobLogDetail(Map<String, Object> conditionMap, Integer page, Integer pageSize) throws Exception
  151. {
  152. StringBuilder sb = new StringBuilder();
  153. sb.append("from RsJobLogDetail where 1=1 ");
  154. if (!StringUtils.isEmpty(conditionMap.get("jobId"))) {
  155. sb.append(" and job_id ='"+conditionMap.get("jobId")+"'");
  156. }
  157. if (!StringUtils.isEmpty(conditionMap.get("jobDatasetId"))) {
  158. sb.append(" and job_dataset_id ='"+conditionMap.get("jobDatasetId")+"'");
  159. }
  160. if (!StringUtils.isEmpty(conditionMap.get("jobStatus"))) {
  161. sb.append(" and jobStatus ='"+conditionMap.get("jobStatus")+"'");
  162. }
  163. if (!StringUtils.isEmpty(conditionMap.get("jobTimeFrom"))) {
  164. Date time = DateConvert.toDate(conditionMap.get("jobTimeFrom").toString());
  165. time.setHours(0);
  166. time.setMinutes(0);
  167. time.setSeconds(0);
  168. sb.append(" and startTime >= '"+DateConvert.toString(time)+"'");
  169. }
  170. if (!StringUtils.isEmpty(conditionMap.get("jobTimeTo"))) {
  171. Date time = DateConvert.toDate(conditionMap.get("jobTimeTo").toString());
  172. time.setHours(0);
  173. time.setMinutes(0);
  174. time.setSeconds(0);
  175. GregorianCalendar gc=new GregorianCalendar();
  176. gc.setTime(time);
  177. gc.add(5, 1);
  178. sb.append(" and startTime < '"+DateConvert.toString(gc.getTime())+"'");
  179. }
  180. sb.append("order by startTime desc");
  181. return getDataGridResult(sb.toString(),page,pageSize);
  182. }
  183. /**
  184. * 获取任务日志列表
  185. */
  186. public DataGridResult getJobLog(Map<String, Object> conditionMap, Integer page, Integer pageSize) throws Exception
  187. {
  188. StringBuilder sb = new StringBuilder();
  189. sb.append("from RsJobLog where 1=1 ");
  190. if (!StringUtils.isEmpty(conditionMap.get("jobId"))) {
  191. sb.append(" and jobId ='"+conditionMap.get("jobId")+"'");
  192. }
  193. sb.append("order by jobStartTime desc");
  194. return getDataGridResult(sb.toString(),page,pageSize);
  195. }
  196. /**
  197. * 获取采集日志统计
  198. */
  199. public List<Map<String, Object>> getJobLogCount(String logId) throws Exception
  200. {
  201. String sql ="select d.job_log_id,sum(d.Job_dataset_rows) as count,\n" +
  202. "sum(case d.job_status\n" +
  203. " when '1' THEN\n" +
  204. " d.Job_dataset_rows\n" +
  205. " ELSE\n" +
  206. " 0\n" +
  207. " END) as success,\n" +
  208. "sum(case d.job_status\n" +
  209. " when '3' THEN\n" +
  210. " d.Job_dataset_rows\n" +
  211. " ELSE\n" +
  212. " 0\n" +
  213. " END) as repeat_num\n" +
  214. "from rs_job_log_detail d\n";
  215. if(logId!=null && logId.length()>0)
  216. {
  217. sql += "where d.job_log_id ='"+logId+"'\n";
  218. }
  219. sql+="group by d.job_log_id ";
  220. return super.queryListBySql(sql);
  221. }
  222. /**
  223. * 任务详细根据数据集分组
  224. */
  225. public List<SimpleChartItem> getJobLogDataset(String logId) throws Exception
  226. {
  227. String sql ="select d.job_dataset_name as x,sum(d.Job_dataset_rows) as y1,\n" +
  228. " sum(case d.job_status\n" +
  229. " when '1' THEN\n" +
  230. " d.Job_dataset_rows\n" +
  231. " ELSE\n" +
  232. " 0\n" +
  233. " END) as y2,\n" +
  234. " sum(case d.job_status\n" +
  235. " when '3' THEN\n" +
  236. " d.Job_dataset_rows\n" +
  237. " ELSE\n" +
  238. " 0\n" +
  239. " END) as y3\n" +
  240. " from rs_job_log_detail d\n" +
  241. "where d.job_log_id = '"+logId+"'\n" +
  242. "GROUP BY d.Job_dataset_name";
  243. return super.queryListBySql(sql,SimpleChartItem.class);
  244. }
  245. }