TestPullDataCsv.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. package io.renren.modules.test;
  2. import com.opencsv.CSVReader;
  3. import io.renren.modules.aspen.entity.TDashboarddayelecEntity;
  4. import io.renren.modules.aspen.service.TDashboarddayelecService;
  5. import io.renren.modules.sys.controller.AbstractController;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.scheduling.annotation.EnableScheduling;
  9. import org.springframework.scheduling.annotation.Scheduled;
  10. import org.springframework.stereotype.Component;
  11. import java.io.FileReader;
  12. import java.io.IOException;
  13. import java.math.BigDecimal;
  14. import java.util.Calendar;
  15. import java.util.Date;
  16. /**
  17. * 电厂大屏抓取数据测试类(.csv文件)
  18. *
  19. * @author Wang Zi Wen
  20. * @email wangggziwen@163.com
  21. * @date 2022/04/15 11:09:02
  22. */
  23. @Component
  24. @Configuration //1.主要用于标记配置类,兼备Component的效果。
  25. @EnableScheduling // 2.开启定时任务
  26. public class TestPullDataCsv extends AbstractController {
  27. @Autowired
  28. private TDashboarddayelecService tDashboarddayelecService;
  29. public static void main(String[] args) {
  30. // TestPullDataCsv testPullDataCsv = new TestPullDataCsv();
  31. // testPullDataCsv.getCsvData();
  32. }
  33. // @Scheduled(cron = "9,19,29,39,49,59 * * * * ?" )
  34. public void getCsvData(){
  35. logger.info("实时获取数据");
  36. // String csvFile = "D://ssyFile/物料.csv";
  37. String csvFile = "D://elecdashboardaspen/elecDashboardData1.csv";
  38. TDashboarddayelecEntity tDashboarddayelecEntity = new TDashboarddayelecEntity();
  39. CSVReader reader = null;
  40. try {
  41. reader = new CSVReader(new FileReader(csvFile));
  42. String[] line;
  43. //定义行数
  44. int i = 0;
  45. while ((line = reader.readNext()) != null) {
  46. i++;
  47. if (i == 2) {
  48. logger.info("第" + i + "行");
  49. for (int j = 2; j < 7; j++) {
  50. logger.info("读数:" + line[j]);
  51. if (line[j].equals("")) {
  52. line[j] = "0.0";
  53. }else {
  54. if (!Character.isDigit(line[j].charAt(0))) {
  55. line[j] = "0.0";
  56. }else {
  57. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  58. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  59. line[j] = String.valueOf(f);
  60. }
  61. }
  62. logger.info(line[j]);
  63. }
  64. tDashboarddayelecEntity.setGtg1Lv(line[2]);
  65. tDashboarddayelecEntity.setGtg2Lv(line[3]);
  66. tDashboarddayelecEntity.setGtg3Lv(line[4]);
  67. tDashboarddayelecEntity.setStg1Lv(line[5]);
  68. tDashboarddayelecEntity.setMwhLv(line[6]);
  69. }
  70. if (i == 3) {
  71. logger.info("第" + i + "行");
  72. for (int j = 0; j < 6; j++) {
  73. logger.info("读数:" + line[j]);
  74. if (line[j].equals("")) {
  75. line[j] = "0.0";
  76. }else {
  77. if (!Character.isDigit(line[j].charAt(0))) {
  78. line[j] = "0.0";
  79. }else {
  80. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  81. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  82. line[j] = String.valueOf(f);
  83. }
  84. }
  85. logger.info(line[j]);
  86. }
  87. tDashboarddayelecEntity.setGtg1Wr(line[2]);
  88. tDashboarddayelecEntity.setGtg2Wr(line[3]);
  89. tDashboarddayelecEntity.setGtg3Wr(line[4]);
  90. tDashboarddayelecEntity.setStg1Wr(line[5]);
  91. }
  92. if (i == 4) {
  93. logger.info("第" + i + "行");
  94. for (int j = 0; j < 6; j++) {
  95. logger.info("读数:" + line[j]);
  96. if (line[j].equals("")) {
  97. line[j] = "0.0";
  98. }else {
  99. if (!Character.isDigit(line[j].charAt(0))) {
  100. line[j] = "0.0";
  101. }else {
  102. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  103. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  104. line[j] = String.valueOf(f);
  105. }
  106. }
  107. logger.info(line[j]);
  108. }
  109. tDashboarddayelecEntity.setMwhWr(line[6]);
  110. }
  111. if (i == 6) {
  112. logger.info("第" + i + "行");
  113. for (int j = 2; j < 7; j++) {
  114. logger.info("读数:" + line[j]);
  115. if (line[j].equals("")) {
  116. line[j] = "0";
  117. }else {
  118. if (!Character.isDigit(line[j].charAt(0))) {
  119. line[j] = "0";
  120. }else {
  121. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  122. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  123. line[j] = String.valueOf(f);
  124. }
  125. }
  126. logger.info(line[j]);
  127. }
  128. tDashboarddayelecEntity.setHhp(line[2]);
  129. tDashboarddayelecEntity.setHp(line[3]);
  130. tDashboarddayelecEntity.setLp(line[4]);
  131. tDashboarddayelecEntity.setMp(line[5]);
  132. tDashboarddayelecEntity.setTotalConsumption(line[6]);
  133. }
  134. if (i == 9) {
  135. logger.info("第" + i + "行");
  136. for (int j = 2; j < 6; j++) {
  137. logger.info("读数:" + line[j]);
  138. if (line[j].equals("")) {
  139. line[j] = "0.0";
  140. }else {
  141. if (!Character.isDigit(line[j].charAt(0))) {
  142. line[j] = "0.0";
  143. }else {
  144. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  145. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  146. line[j] = String.valueOf(f);
  147. }
  148. }
  149. logger.info(line[j]);
  150. }
  151. // Integer HhpNum=new Integer(line[2]).intValue();
  152. // Integer HpNum=new Integer(line[3]).intValue();
  153. // Integer LpNum=new Integer(line[4]).intValue();
  154. // Integer MpNum=new Integer(line[5]).intValue();
  155. tDashboarddayelecEntity.setHhpNum(line[2]);
  156. tDashboarddayelecEntity.setHpNum(line[3]);
  157. tDashboarddayelecEntity.setLpNum(line[4]);
  158. tDashboarddayelecEntity.setMpNum(line[5]);
  159. }
  160. if (i == 10) {
  161. logger.info("第" + i + "行");
  162. for (int j = 2; j < 6; j++) {
  163. logger.info("读数:" + line[j]);
  164. if (line[j].equals("")) {
  165. line[j] = "0";
  166. }else {
  167. if (!Character.isDigit(line[j].charAt(0))) {
  168. line[j] = "0";
  169. }else {
  170. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  171. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  172. line[j] = String.valueOf(f);
  173. }
  174. }
  175. logger.info(line[j]);
  176. }
  177. tDashboarddayelecEntity.setHhpTemp(line[2]);
  178. tDashboarddayelecEntity.setHpTemp(line[3]);
  179. tDashboarddayelecEntity.setLpTemp(line[4]);
  180. tDashboarddayelecEntity.setMpTemp(line[5]);
  181. }
  182. /* SS */
  183. if (i == 13) {
  184. logger.info("第" + i + "行");
  185. for(int j=2;j<5;j++){
  186. if (line[j].equals("")) {
  187. line[j] = "0.0";
  188. }else {
  189. if (!Character.isDigit(line[j].charAt(0))) {
  190. line[j] = "0.0";
  191. }else {
  192. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  193. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  194. line[j] = String.valueOf(f);
  195. }
  196. }
  197. logger.info(line[j]);
  198. }
  199. tDashboarddayelecEntity.setShihua(line[2]);
  200. tDashboarddayelecEntity.setShiyou(line[3]);
  201. tDashboarddayelecEntity.setShunshiliang(line[4]);
  202. }
  203. if (i == 18) {
  204. logger.info("第" + i + "行");
  205. for(int j=2;j<6;j++){
  206. if (line[j].equals("")) {
  207. line[j] = "0.0";
  208. }else {
  209. if (!Character.isDigit(line[j].charAt(0))) {
  210. line[j] = "0.0";
  211. }else {
  212. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  213. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  214. line[j] = String.valueOf(f);
  215. }
  216. }
  217. logger.info(line[j]);
  218. }
  219. tDashboarddayelecEntity.setYpg(line[2]);
  220. tDashboarddayelecEntity.setDaodianliang(line[3]);
  221. tDashboarddayelecEntity.setEveLec(line[4]);
  222. tDashboarddayelecEntity.setFenggucha(rounding(line[5]));
  223. }
  224. if (i == 20) {
  225. logger.info("第" + i + "行");
  226. for(int j=2;j<4;j++){
  227. if (line[j].equals("")) {
  228. line[j] = "0.0";
  229. }else {
  230. if (!Character.isDigit(line[j].charAt(0))) {
  231. line[j] = "0.0";
  232. }else {
  233. BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
  234. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  235. line[j] = String.valueOf(f);
  236. }
  237. }
  238. logger.info(line[j]);
  239. }
  240. tDashboarddayelecEntity.setBycElec(line[2]);
  241. tDashboarddayelecEntity.setBocElec(line[3]);
  242. }
  243. }
  244. tDashboarddayelecEntity.setCreatedate(new Date());
  245. tDashboarddayelecEntity.setDataDate(new Date());
  246. Calendar now = Calendar.getInstance();
  247. tDashboarddayelecEntity.setDateDay(String.valueOf(now.get(Calendar.DAY_OF_MONTH)));
  248. logger.info("dashboardData:" + tDashboarddayelecEntity);
  249. tDashboarddayelecService.save(tDashboarddayelecEntity);
  250. } catch (IOException e) {
  251. e.printStackTrace();
  252. }
  253. }
  254. public String rounding(String lineNum) {
  255. try {
  256. logger.info("读数:" + lineNum);
  257. if (lineNum.equals("")) {
  258. lineNum = "0.0";
  259. }else {
  260. if (!Character.isDigit(lineNum.charAt(0))) {
  261. if ("-".equals(lineNum.substring(0,1))){
  262. BigDecimal b = new BigDecimal(Double.parseDouble(lineNum));
  263. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  264. lineNum = String.valueOf(f);
  265. }else {
  266. lineNum = "0.0";
  267. }
  268. }else {
  269. BigDecimal b = new BigDecimal(Double.parseDouble(lineNum));
  270. double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  271. lineNum = String.valueOf(f);
  272. }
  273. }
  274. logger.info(lineNum);
  275. return lineNum;
  276. }catch (Exception e) {
  277. logger.error(String.valueOf(e));
  278. return "0.0";
  279. }
  280. }
  281. }