package com.szpg.task; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.szpg.db.dao.PgAssetInSpectionDao; import com.szpg.db.dao.impl.PgAssetInSpectionImpl; import com.szpg.db.data.PgAssetInSpection; import com.szpg.db.data.PgAssetJson; import com.szpg.util.HttpRequest; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; public class ReadAssetInSpectionTask implements Runnable{ final String tableName="V_ASSET_INSPECTION_RECORD"; final String url="http://10.10.2.31:9056/GLYW/api/Common/LoadIndexData"; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void run(){ PgAssetInSpectionDao pgAssetInSpectionDao=new PgAssetInSpectionImpl(); String startTime=pgAssetInSpectionDao.findLastRecordTime();//上次同步数据最后记录时间 String endTime= dateFormat.format(new Date());//当前时间 if(startTime==null) startTime=getYestodayStr(); StringBuilder sb = new StringBuilder(); sb.append("tableName = ").append(tableName); sb.append("&page=-1"); sb.append("&strWhere=采集时间"); sb.append("&between '").append(startTime); sb.append("' and '").append(endTime); sb.append("' order by 采集时间"); String jsonStr = HttpRequest.sendPostByHttp(url, sb.toString()); insertDB(pgAssetInSpectionDao,jsonStr); } public void insertDB(PgAssetInSpectionDao pgAssetInSpectionDao,String jsonStr) { List<PgAssetInSpection> pgAssetInSpectionList= getAssetByJsonString(jsonStr); pgAssetInSpectionDao.addAssetInSpectionRecord(pgAssetInSpectionList); } private List<PgAssetInSpection> getAssetByJsonString(String jsonStr){ PgAssetJson pgAssetJson = JSON.parseObject(jsonStr, new TypeReference<PgAssetJson>() {}); List<PgAssetInSpection> pgAssetInSpectionList=pgAssetJson.getRows(); return pgAssetInSpectionList; } public String getYestodayStr() { Date dt = new Date(); String yesToday = ""; Date dtt = (Date) dt.clone(); Calendar calendar = Calendar.getInstance(); calendar.setTime(dtt); calendar.add(Calendar.DAY_OF_MONTH, -1); yesToday = dateFormat.format(calendar.getTime()); return yesToday; } }