| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package com.uas.eis.task;
- import com.uas.eis.config.PNSConfig;
- import com.uas.eis.dao.BaseDao;
- import com.uas.eis.entity.PNSSendData;
- import com.uas.eis.entity.PNSSendResp;
- import com.uas.eis.utils.FlexJsonUtil;
- import com.uas.eis.utils.HttpUtil;
- import com.uas.eis.utils.StringUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.dao.EmptyResultDataAccessException;
- import org.springframework.http.HttpStatus;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @Component
- public class PnsDataSyncTask {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- private int pageSize = 100;
- @Autowired
- private PNSConfig pnsConfig;
- @Autowired
- private BaseDao baseDao;
- @Scheduled(cron = "0 0/1 * * * ?")
- public void UploadSaleData(){
- logger.info("Sale Upload Start---");
- List<PNSSendData> saleUploads = getSaleDataUpload();
- if(saleUploads.size() < 1 ) {
- return;
- }
- //分页上传
- int a = saleUploads.size() / pageSize;
- int b = saleUploads.size() % pageSize;
- int pages = a + (b>0?1:0);
- HashMap<String, String> reqHeader = new HashMap<>();
- reqHeader.put("fromsys","ISP");
- Map<String, String> pageReq = new HashMap<>();
- pageReq.put("if_name","ISPP-PSI-UPLOAD");
- pageReq.put("if_key" , pnsConfig.getIf_key());
- pageReq.put("total_page", String.valueOf(pages));
- pageReq.put("total_data_count", String.valueOf(saleUploads.size()));
- logger.info("Sale Upload totalSize {}", pages);
- for(int i = 0 ; i < pages; i++) {
- pageReq.put("current_page", String.valueOf(i+1));
- if((i+1)*pageSize > saleUploads.size()) {
- pageReq.put("current_data_count", String.valueOf(b));
- pageReq.put("detail", FlexJsonUtil.toJsonArrayDeep(saleUploads.subList(i*pageSize, i*pageSize+b)));
- }else {
- pageReq.put("current_data_count", String.valueOf(pageSize));
- pageReq.put("detail", FlexJsonUtil.toJsonArrayDeep(saleUploads.subList(i*pageSize, (i+1)*pageSize)));
- }
- logger.info("{}",pageReq);
- try {
- HttpUtil.Response response = HttpUtil.sendPostRequest(pnsConfig.getRoute(), reqHeader, pageReq, false);
- logger.info("{}",response.getResponseText());
- if (response.getStatusCode() == HttpStatus.OK.value()) {
- String data = response.getResponseText();
- if (StringUtil.hasText(data)) {
- PNSSendResp resp = FlexJsonUtil.fromJson(data, PNSSendResp.class);
- if(resp.getSuccess()) {
- logger.info("Sale Upload success Size {}", i);
- pageReq.put("if_batch_no",resp.getIf_batch_no());
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public List<PNSSendData> getSaleDataUpload() {
- try {
- List<PNSSendData> sendSales = baseDao
- .getJdbcTemplate()
- .query("SELECT * FROM PNS_SENDDATADETAIL WHERE MAIN_ID=1 AND UPLOAD=0 ", new BeanPropertyRowMapper<PNSSendData>(PNSSendData.class));
- int num = 0;
- for(PNSSendData sendSale : sendSales) {
- num ++;
- if(num > pageSize) {
- num = 1;
- }
- sendSale.setRow_number(num); //分页处理序号问题
- sendSale.setCust_id(pnsConfig.getCust_id());
- sendSale.setYmonth("2022-11");
- }
- baseDao.execute("UPDATE PNS_SENDDATADETAIL SET UPLOAD=1");
- return sendSales;
- } catch (EmptyResultDataAccessException e) {
- return null;
- }
- };
- }
|