PrkPlceDao.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. package com.its.pis.dao.mapper.batch;
  2. import com.its.app.utils.Elapsed;
  3. import com.its.pis.dao.mapper.BatchDaoService;
  4. import com.its.pis.entity.TbPrkPlceStts;
  5. import com.its.pis.websocket.message.c2f.prk_plce_rl_time.PrkColctDeviceInfo;
  6. import com.its.pis.websocket.message.c2f.prk_plce_rl_time.RtArInfr;
  7. import com.its.pis.websocket.message.c2f.prk_plce_rl_time.RtFlrInfr;
  8. import com.its.pis.websocket.message.c2f.prk_plce_rl_time.RtPrvusePrkarInfo;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.apache.ibatis.session.ExecutorType;
  11. import org.apache.ibatis.session.SqlSession;
  12. import org.apache.ibatis.session.SqlSessionFactory;
  13. import org.springframework.stereotype.Repository;
  14. import java.util.ArrayList;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. @Slf4j
  18. @Repository
  19. public class PrkPlceDao extends BatchDaoService {
  20. public PrkPlceDao(SqlSessionFactory sqlSessionFactory) {
  21. super(sqlSessionFactory);
  22. this.serviceName = "PrkPlceDao";
  23. this.mapperName = "";//""com.its.pis.mapper.batchPrkPlceMapper.";
  24. }
  25. public List<HashMap<String, Object>> getSttsList(List<TbPrkPlceStts> req) {
  26. List<HashMap<String, Object>> lists = new ArrayList<>();
  27. req.forEach(obj -> {
  28. HashMap<String, Object> param = new HashMap<>();
  29. param.put("PRK_PLCE_NMBR", obj.getPRK_PLCE_NMBR());
  30. param.put("UPDT_DT", obj.getUPDT_DT());
  31. param.put("CMNC_STTS_CD", obj.getCMNC_STTS_CD());
  32. lists.add(param);
  33. });
  34. return lists;
  35. }
  36. public int updatePrkPlceStts(List<TbPrkPlceStts> req, boolean isHistory) {
  37. //log.info("{}.updatePrkPlceStts: START. {} EA. History {}", this.serviceName, req.size(), isHistory);
  38. Elapsed elapsed = new Elapsed();
  39. int total = 0;
  40. SqlSession sqlSession = null;
  41. try {
  42. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  43. this.mapper = this.mapperName + "batchUpdatePrkPlceStts";
  44. total += updateBatch(this.mapper, getSttsList(req));
  45. sqlSession.commit();
  46. } catch(Exception e) {
  47. log.error("updatePrkPlceStts: Exception, {}, {}", req, e.getMessage());
  48. }
  49. finally {
  50. if (sqlSession != null) {
  51. sqlSession.close();
  52. }
  53. }
  54. if (elapsed.milliSeconds() > 1000) {
  55. log.info("{}.updatePrkPlceStts: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  56. }
  57. return total;
  58. }
  59. public int insertPrkPlceSttsHs(List<TbPrkPlceStts> req) {
  60. //log.info("{}.insertPrkPlceSttsHs: START. {} EA.", this.serviceName, req.size());
  61. Elapsed elapsed = new Elapsed();
  62. int total = 0;
  63. SqlSession sqlSession = null;
  64. try {
  65. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  66. this.mapper = this.mapperName + "batchInsertPrkPlceSttsHs";
  67. total += insertBatch(this.mapper, getSttsList(req));
  68. sqlSession.commit();
  69. } catch(Exception e) {
  70. log.error("insertPrkPlceSttsHs: Exception, {}, {}", req, e.getMessage());
  71. }
  72. finally {
  73. if (sqlSession != null) {
  74. sqlSession.close();
  75. }
  76. }
  77. if (elapsed.milliSeconds() > 1000) {
  78. log.info("{}.insertPrkPlceSttsHs: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  79. }
  80. return total;
  81. }
  82. public int updateRlTimeFlr(String PRK_PLCE_NMBR, String DATA_COLCT_TIME, List<RtFlrInfr> reqList) {
  83. if (reqList == null || reqList.size() == 0) {
  84. log.info("{}.updateRlTimeFlr: Data Not Exist.", this.serviceName);
  85. return 0;
  86. }
  87. //log.info("{}.updateRlTimeFlr: START. {} EA.", this.serviceName, reqList.size());
  88. Elapsed elapsed = new Elapsed();
  89. int total = 0;
  90. SqlSession sqlSession = null;
  91. try {
  92. List<HashMap<String, Object>> lists = new ArrayList<>();
  93. reqList.forEach(obj -> {
  94. HashMap<String, Object> param = new HashMap<>();
  95. param.put("PRK_PLCE_NMBR", PRK_PLCE_NMBR);
  96. param.put("FLR_NO", obj.getFlr_no());
  97. param.put("FLR_PRK_CMPRT_CO", obj.getFlr_prk_cmprt_co());
  98. param.put("FLR_REMNDR_PRK_CMPRT_CO", obj.getFlr_remndr_prk_cmprt_co());
  99. param.put("DATA_COLCT_TIME", DATA_COLCT_TIME);
  100. lists.add(param);
  101. });
  102. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  103. this.mapper = this.mapperName + "batchUpdateRlTimeFlr";
  104. total += updateBatch(this.mapper, lists);
  105. sqlSession.commit();
  106. } catch(Exception e) {
  107. log.error("updateRlTimeFlr: Exception, {}, {}", reqList, e.getMessage());
  108. }
  109. finally {
  110. if (sqlSession != null) {
  111. sqlSession.close();
  112. }
  113. }
  114. if (elapsed.milliSeconds() > 1000) {
  115. log.info("{}.updateRlTimeFlr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  116. }
  117. return total;
  118. }
  119. public int updateRlTimeAr(String PRK_PLCE_NMBR, List<RtArInfr> reqList) {
  120. if (reqList == null || reqList.size() == 0) {
  121. log.info("{}.updateRlTimeAr: Data Not Exist.", this.serviceName);
  122. return 0;
  123. }
  124. //log.info("{}.updateRlTimeAr: START. {} EA.", this.serviceName, reqList.size());
  125. Elapsed elapsed = new Elapsed();
  126. int total = 0;
  127. SqlSession sqlSession = null;
  128. try {
  129. List<HashMap<String, Object>> lists = new ArrayList<>();
  130. reqList.forEach(obj -> {
  131. HashMap<String, Object> param = new HashMap<>();
  132. // TODO: 20240830: ArNo값이 NULL 로 들어온다.
  133. if (obj.getAr_no() == null || obj.getAr_no().isEmpty()) {
  134. log.warn("batchUpdateRlTimeAr: RtArInfr.ArNo is Empty: {}, {}", PRK_PLCE_NMBR, obj);
  135. obj.setAr_no("A");
  136. }
  137. if (obj.getFlr_no() == null || obj.getFlr_no().isEmpty()) {
  138. log.warn("batchUpdateRlTimeAr: RtArInfr.FlrNo is Empty: {}, {}", PRK_PLCE_NMBR, obj);
  139. obj.setFlr_no("1F");
  140. }
  141. param.put("PRK_PLCE_NMBR", PRK_PLCE_NMBR);
  142. param.put("FLR_NO", obj.getFlr_no());
  143. param.put("AR_NO", obj.getAr_no());
  144. param.put("AR_PRK_CMPRT_CO", obj.getAr_prk_cmprt_co());
  145. param.put("AR_REMNDR_PRK_CMPRT_CO", obj.getAr_remndr_prk_cmprt_co());
  146. lists.add(param);
  147. });
  148. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  149. this.mapper = this.mapperName + "batchUpdateRlTimeAr";
  150. total += updateBatch(this.mapper, lists);
  151. sqlSession.commit();
  152. } catch(Exception e) {
  153. log.error("updateRlTimeAr: Exception, {}, {}", reqList, e.getMessage());
  154. }
  155. finally {
  156. if (sqlSession != null) {
  157. sqlSession.close();
  158. }
  159. }
  160. if (elapsed.milliSeconds() > 1000) {
  161. log.info("{}.updateRlTimeAr: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  162. }
  163. return total;
  164. }
  165. public int updateRlTimePrv(String PRK_PLCE_NMBR, List<RtPrvusePrkarInfo> reqList) {
  166. if (reqList == null || reqList.size() == 0) {
  167. log.info("{}.updateRlTimePrv: Data Not Exist.", this.serviceName);
  168. return 0;
  169. }
  170. //log.info("{}.updateRlTimePrv: START. {} EA.", this.serviceName, reqList.size());
  171. Elapsed elapsed = new Elapsed();
  172. int total = 0;
  173. SqlSession sqlSession = null;
  174. try {
  175. List<HashMap<String, Object>> lists = new ArrayList<>();
  176. reqList.forEach(obj -> {
  177. HashMap<String, Object> param = new HashMap<>();
  178. param.put("PRK_PLCE_NMBR", PRK_PLCE_NMBR);
  179. param.put("VHCTY_AR_SE", obj.getVhcty_ar_se());
  180. param.put("VHCTY_AR_PRK_CMPRT_CO", obj.getVhcty_ar_prk_cmprt_co());
  181. param.put("VHCTY_AR_REMNDR_PRK_CMPRT_CO", obj.getVhcty_ar_remndr_prk_cmprt_co());
  182. lists.add(param);
  183. });
  184. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  185. this.mapper = this.mapperName + "batchUpdateRlTimePrv";
  186. total += updateBatch(this.mapper, lists);
  187. sqlSession.commit();
  188. } catch(Exception e) {
  189. log.error("updateRlTimePrv: Exception, {}, {}", reqList, e.getMessage());
  190. }
  191. finally {
  192. if (sqlSession != null) {
  193. sqlSession.close();
  194. }
  195. }
  196. if (elapsed.milliSeconds() > 1000) {
  197. log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  198. }
  199. return total;
  200. }
  201. public int updateRlTimeDev(String PRK_PLCE_NMBR, List<PrkColctDeviceInfo> reqList) {
  202. if (reqList == null || reqList.size() == 0) {
  203. log.info("{}.updateRlTimeDev: Data Not Exist.", this.serviceName);
  204. return 0;
  205. }
  206. //log.info("{}.updateRlTimeDev: START. {} EA.", this.serviceName, reqList.size());
  207. Elapsed elapsed = new Elapsed();
  208. int total = 0;
  209. SqlSession sqlSession = null;
  210. try {
  211. List<HashMap<String, Object>> lists = new ArrayList<>();
  212. reqList.forEach(obj -> {
  213. HashMap<String, Object> param = new HashMap<>();
  214. param.put("PRK_PLCE_NMBR", PRK_PLCE_NMBR);
  215. param.put("DEVICE_ID", obj.getDevice_id());
  216. param.put("DEVICE_TYPE", obj.getDevice_type());
  217. param.put("PRK_UNIT_ID", obj.getPrk_unit_id());
  218. param.put("TYPED_PARKING_LOTS", obj.getTyped_parking_lots());
  219. param.put("OCCUPATION", obj.getOccupation());
  220. param.put("CONNECTED", obj.getConnect());
  221. lists.add(param);
  222. });
  223. sqlSession = this.sqlSessionFactory.openSession(ExecutorType.BATCH, false);
  224. this.mapper = this.mapperName + "batchUpdateRlTimeDev";
  225. total += updateBatch(this.mapper, lists);
  226. sqlSession.commit();
  227. } catch(Exception e) {
  228. log.error("updateRlTimeDev: Exception, {}, {}", reqList, e.getMessage());
  229. }
  230. finally {
  231. if (sqlSession != null) {
  232. sqlSession.close();
  233. }
  234. }
  235. if (elapsed.milliSeconds() > 1000) {
  236. log.info("{}.updateRlTimePrv: ..END. {} EA. {} ms.", this.serviceName, total, elapsed.milliSeconds());
  237. }
  238. return total;
  239. }
  240. }