DatacollectDao.java 9.9 KB

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