package com.szpg.task; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.szpg.db.dao.PgConRemoveDao; import com.szpg.db.dao.impl.PgConRemoveDaoImp; import com.szpg.db.data.PgConRemoveMsg; import com.szpg.db.data.PgConRemoveMsgJson; import com.szpg.util.HttpRequest; import org.apache.log4j.Logger; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; public class ReadConRemoveTask implements Runnable { private org.apache.log4j.Logger logger = Logger.getLogger(this.getClass().getName()); final String tableName="ASSET_INSPECTION_PLAN1";// final String url="http://10.10.2.31:9056/GLYW/api/Common/LoadIndexData"; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); @Override public void run(){ PgConRemoveDao pgConRemoveDao=new PgConRemoveDaoImp(); try { String endTime = dateFormat.format(new Date());//当前时间 String startTime = pgConRemoveDao.findLastRecordTime();//上次同步数据最后记录时间 if (startTime == null) { Date dt = new Date();; startTime = getStartDateStr(dt, -1);; } else { Date dtStart = dateFormat.parse(startTime); startTime=getStartDateStr(dtStart,1);; } StringBuilder sb = new StringBuilder(); sb.append("tableName=").append(tableName); sb.append("&page=-1"); sb.append("&strWhere= LOG_DATE");; sb.append(" between '").append(startTime); sb.append("' and '").append(endTime); sb.append("'"); logger.info("开始请求施工消点数据"); String jsonStr = HttpRequest.sendPostByHttp(url, sb.toString()); if (jsonStr.equals("")) logger.error("施工消点数据请求失败"); else { insertDB(pgConRemoveDao, jsonStr); logger.error("施工消点数据存储成功"); } } catch(Exception ex) { ex.printStackTrace(); } } public void insertDB(PgConRemoveDao pgConRemoveDao,String jsonStr) { List<PgConRemoveMsg> pgConRemoveMsgList= getAssetByJsonString(jsonStr); logger.info("同步施工消点数据条数:"+ String.valueOf(pgConRemoveMsgList.size())); pgConRemoveDao.addConRemove(pgConRemoveMsgList); } private List<PgConRemoveMsg> getAssetByJsonString(String jsonStr){ try { String jsonString=String.valueOf(JSON.parse(jsonStr)); PgConRemoveMsgJson pgConRemoveMsgJson = JSONObject.parseObject(jsonString, new TypeReference<PgConRemoveMsgJson>() {}); List<PgConRemoveMsg> pgConRemoveMsgList = pgConRemoveMsgJson.getRows(); return pgConRemoveMsgList; } catch(Exception ex){ logger.error(ex.getMessage()); return null; } } public String getStartDateStr(Date dt,int d) { String yesToday = ""; Date dtt = (Date) dt.clone(); Calendar calendar = Calendar.getInstance(); calendar.setTime(dtt); calendar.add(Calendar.DAY_OF_MONTH, d);; yesToday = dateFormat.format(calendar.getTime()); return yesToday; } }