/** 查询项目信息 */ public void synProjectInfo(Connection conn, SfUserDTO user) { int totalCount = 0; int errorCount = 0; long resumeTime = 0; SynLogDTO logDTO = null; SynLogUtil logUtil = new SynLogUtil(); long start = System.currentTimeMillis(); try { logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg("同步MIS项目信息开始"); logUtil.synLog(logDTO, conn); InquiryProjectInfoSrv projectInfoSrv = new InquiryProjectInfoSrv(); projectInfoSrv.execute(); SrvReturnMessage srvMessage = projectInfoSrv.getReturnMessage(); if (srvMessage.getErrorFlag().equalsIgnoreCase("Y")) { DTOSet ds = projectInfoSrv.getDs(); SrvProjectInfoDAO srvProjectInfoDAO = new SrvProjectInfoDAO(user, null, conn); for (int i = 0; i < ds.getSize(); i++) { SrvProjectInfoDTO dto = (SrvProjectInfoDTO) ds.getDTO(i); srvProjectInfoDAO.setDTOParameter(dto); try { if (SynUpdateDateUtils.getBetweenDays( SynUpdateDateUtils.getLastUpdateDate(SrvType.SRV_PA_PROJECT, conn), (dto.getLastUpdateDate().toString())) > 0) { if (srvProjectInfoDAO.isProjecdtExists(dto.getSegment1())) { srvProjectInfoDAO.updateData(); } else { srvProjectInfoDAO.createData(); } totalCount++; } } catch (Throwable e) { Logger.logError(e); logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg(e.toString()); logUtil.synLog(logDTO, conn); errorCount++; } } if (errorCount == 0) { // 错误数为0时才能更新同步类型日志记录,否则可能造成数据遗漏 SynUpdateDateUtils.createLastUpdateDate(SrvType.SRV_PA_PROJECT, conn); SynUpdateDateUtils.updateLastUpdateDate(SrvType.SRV_PA_PROJECT, conn); } } resumeTime = System.currentTimeMillis() - start; logDTO = new SynLogDTO(); logDTO.setSynType(SrvType.SRV_PA_PROJECT); logDTO.setCreatedBy(user.getUserId()); logDTO.setSynMsg( "同步MIS项目信息结束!成功" + totalCount + ",失败" + errorCount + ",耗时" + resumeTime + "毫秒"); logUtil.synLog(logDTO, conn); } catch (Throwable e) { Logger.logError(e); } }