PnsDataSyncTask.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.uas.eis.task;
  2. import com.uas.eis.config.PNSConfig;
  3. import com.uas.eis.dao.BaseDao;
  4. import com.uas.eis.entity.PNSSendData;
  5. import com.uas.eis.entity.PNSSendResp;
  6. import com.uas.eis.utils.FlexJsonUtil;
  7. import com.uas.eis.utils.HttpUtil;
  8. import com.uas.eis.utils.StringUtil;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.dao.EmptyResultDataAccessException;
  13. import org.springframework.http.HttpStatus;
  14. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  15. import org.springframework.scheduling.annotation.Scheduled;
  16. import org.springframework.stereotype.Component;
  17. import java.util.ArrayList;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. @Component
  22. public class PnsDataSyncTask {
  23. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  24. private int pageSize = 100;
  25. @Autowired
  26. private PNSConfig pnsConfig;
  27. @Autowired
  28. private BaseDao baseDao;
  29. @Scheduled(cron = "0 0/1 * * * ?")
  30. public void UploadSaleData(){
  31. logger.info("Sale Upload Start---");
  32. List<PNSSendData> saleUploads = getSaleDataUpload();
  33. if(saleUploads.size() < 1 ) {
  34. return;
  35. }
  36. //分页上传
  37. int a = saleUploads.size() / pageSize;
  38. int b = saleUploads.size() % pageSize;
  39. int pages = a + (b>0?1:0);
  40. HashMap<String, String> reqHeader = new HashMap<>();
  41. reqHeader.put("fromsys","ISP");
  42. Map<String, String> pageReq = new HashMap<>();
  43. pageReq.put("if_name","ISPP-PSI-UPLOAD");
  44. pageReq.put("if_key" , pnsConfig.getIf_key());
  45. pageReq.put("total_page", String.valueOf(pages));
  46. pageReq.put("total_data_count", String.valueOf(saleUploads.size()));
  47. logger.info("Sale Upload totalSize {}", pages);
  48. for(int i = 0 ; i < pages; i++) {
  49. pageReq.put("current_page", String.valueOf(i+1));
  50. if((i+1)*pageSize > saleUploads.size()) {
  51. pageReq.put("current_data_count", String.valueOf(b));
  52. pageReq.put("detail", FlexJsonUtil.toJsonArrayDeep(saleUploads.subList(i*pageSize, i*pageSize+b)));
  53. }else {
  54. pageReq.put("current_data_count", String.valueOf(pageSize));
  55. pageReq.put("detail", FlexJsonUtil.toJsonArrayDeep(saleUploads.subList(i*pageSize, (i+1)*pageSize)));
  56. }
  57. logger.info("{}",pageReq);
  58. try {
  59. HttpUtil.Response response = HttpUtil.sendPostRequest(pnsConfig.getRoute(), reqHeader, pageReq, false);
  60. logger.info("{}",response.getResponseText());
  61. if (response.getStatusCode() == HttpStatus.OK.value()) {
  62. String data = response.getResponseText();
  63. if (StringUtil.hasText(data)) {
  64. PNSSendResp resp = FlexJsonUtil.fromJson(data, PNSSendResp.class);
  65. if(resp.getSuccess()) {
  66. logger.info("Sale Upload success Size {}", i);
  67. pageReq.put("if_batch_no",resp.getIf_batch_no());
  68. }
  69. }
  70. }
  71. } catch (Exception e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. }
  76. public List<PNSSendData> getSaleDataUpload() {
  77. try {
  78. List<PNSSendData> sendSales = baseDao
  79. .getJdbcTemplate()
  80. .query("SELECT * FROM PNS_SENDDATADETAIL WHERE MAIN_ID=1 AND UPLOAD=0 ", new BeanPropertyRowMapper<PNSSendData>(PNSSendData.class));
  81. int num = 0;
  82. for(PNSSendData sendSale : sendSales) {
  83. num ++;
  84. if(num > pageSize) {
  85. num = 1;
  86. }
  87. sendSale.setRow_number(num); //分页处理序号问题
  88. sendSale.setCust_id(pnsConfig.getCust_id());
  89. sendSale.setYmonth("2022-11");
  90. }
  91. baseDao.execute("UPDATE PNS_SENDDATADETAIL SET UPLOAD=1");
  92. return sendSales;
  93. } catch (EmptyResultDataAccessException e) {
  94. return null;
  95. }
  96. };
  97. }