| | |
| | | package com.yssh.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.CountDownLatch; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | |
| | | import com.yssh.dao.QxshMapper; |
| | | import com.yssh.entity.*; |
| | | import com.yssh.utils.*; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | import com.yssh.dao.DictRecordMapper; |
| | | import com.yssh.dao.FeedbackMapper; |
| | | import com.yssh.dao.SuYuanMapper; |
| | | import com.yssh.entity.DictRecord; |
| | | import com.yssh.entity.DistanceSuYuan; |
| | | import com.yssh.entity.FeedbackDetail; |
| | | import com.yssh.entity.MonitorPointPosition; |
| | | import com.yssh.entity.SuYuan; |
| | | import com.yssh.entity.SuYuan2d; |
| | | import com.yssh.entity.SuYuan3d; |
| | | import com.yssh.entity.SuYuanMonitorData; |
| | | import com.yssh.service.IAsyncService; |
| | | import com.yssh.service.ICommonService; |
| | | import com.yssh.service.ISuYuanService; |
| | | import com.yssh.utils.CalculateUtils; |
| | | import com.yssh.utils.DateUtils; |
| | | import com.yssh.utils.StringUtils; |
| | | import com.yssh.utils.TableStrategy; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | @Service |
| | | public class SuYuanServiceImpl implements ISuYuanService { |
| | | |
| | | protected final Logger logger = LoggerFactory.getLogger(this.getClass()); |
| | | |
| | | @Autowired |
| | | |
| | | @Resource |
| | | private SuYuanMapper suYuanMapper; |
| | | |
| | | @Autowired |
| | | private IAsyncService asyncService; |
| | | |
| | | @Autowired |
| | | |
| | | @Resource |
| | | private IAsyncService asyncService; |
| | | |
| | | @Resource |
| | | private DictRecordMapper dictRecordMapper; |
| | | |
| | | @Autowired |
| | | |
| | | @Resource |
| | | private ICommonService commonService; |
| | | |
| | | @Autowired |
| | | |
| | | @Resource |
| | | private FeedbackMapper feedbackMapper; |
| | | |
| | | |
| | | @Resource |
| | | private QxshMapper qxshMapper; |
| | | |
| | | private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHH"); |
| | | |
| | | //@Transactional |
| | | @Override |
| | | //@Override |
| | | @Async("threadPoolTaskExecutor") |
| | | public void insertSuYuanDatas(List<SuYuan> lists, String time) throws Exception{ |
| | | public void insertSuYuanDatasAsync(List<SuYuan> lists, String time) throws Exception { |
| | | //插入数据 |
| | | List<List<SuYuan>> list = Lists.partition(lists, IAsyncService.BATCH_INSERT_NUMBER); |
| | | CountDownLatch countDownLatch = new CountDownLatch(list.size()); |
| | | for (List<SuYuan> corpReserveList : list) { |
| | | asyncService.executeAsync(TableStrategy.getTableStrategy(time), corpReserveList, suYuanMapper, countDownLatch); |
| | | } |
| | | countDownLatch.await(); |
| | | countDownLatch.await(); |
| | | logger.info(lists.size() + "条数据入库完成-----"); |
| | | } |
| | | |
| | | @Override |
| | | public Integer isTableExists(String tableName){ |
| | | public void insertSuYuanDatas(List<SuYuan> lists, String time) { |
| | | List<List<SuYuan>> subLists = Lists.partition(lists, IAsyncService.BATCH_INSERT_NUMBER); |
| | | for (List<SuYuan> sub : subLists) { |
| | | suYuanMapper.batchInsert(TableStrategy.getTableStrategy(time), sub); |
| | | } |
| | | |
| | | logger.info("------ " + time + ".csv," + lists.size() + " 条数据已入库 ------"); |
| | | } |
| | | |
| | | @Override |
| | | public Integer isTableExists(String tableName) { |
| | | return suYuanMapper.isTableExists(tableName); |
| | | } |
| | | |
| | |
| | | } |
| | | List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d); |
| | | AtomicInteger i = new AtomicInteger(0); |
| | | list.stream().forEach(s->{s.setName(checkPoint.getName());i.getAndIncrement();s.setVocsName(checkPoint.getName()+ "-" + i.longValue());}); |
| | | list.stream().forEach(s -> { |
| | | s.setName(checkPoint.getName()); |
| | | i.getAndIncrement(); |
| | | s.setVocsName(checkPoint.getName() + "-" + i.longValue()); |
| | | }); |
| | | if (StringUtils.isNotEmpty(list)) { |
| | | Collections.sort(list); |
| | | DistanceSuYuan max = list.get(0); |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate()); |
| | | feedbackMapper.insert(feedbackDetail); |
| | | result.put("feedbackId", feedbackDetail.getId()); |
| | |
| | | } |
| | | List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d); |
| | | AtomicInteger i = new AtomicInteger(0); |
| | | list.stream().forEach(s->{s.setName(checkPoint.getName());i.getAndIncrement();s.setVocsName(checkPoint.getName()+ "-" + i.longValue());}); |
| | | list.stream().forEach(s -> { |
| | | s.setName(checkPoint.getName()); |
| | | i.getAndIncrement(); |
| | | s.setVocsName(checkPoint.getName() + "-" + i.longValue()); |
| | | }); |
| | | if (StringUtils.isNotEmpty(list)) { |
| | | Collections.sort(list); |
| | | DistanceSuYuan max = list.get(0); |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate()); |
| | | feedbackMapper.insert(feedbackDetail); |
| | | result.put("feedbackId", feedbackDetail.getId()); |
| | |
| | | result.put("data", list); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map<String, Object> selectSuYuan300(String name, Date date) { |
| | | Map<String, Object> result = new HashMap<String, Object>(); |
| | |
| | | } |
| | | List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d); |
| | | AtomicInteger i = new AtomicInteger(0); |
| | | list.stream().forEach(s->{s.setName(checkPoint.getName());i.getAndIncrement();s.setVocsName(checkPoint.getName()+ "-" + i.longValue());}); |
| | | list.stream().forEach(s -> { |
| | | s.setName(checkPoint.getName()); |
| | | i.getAndIncrement(); |
| | | s.setVocsName(checkPoint.getName() + "-" + i.longValue()); |
| | | }); |
| | | if (StringUtils.isNotEmpty(list)) { |
| | | Collections.sort(list); |
| | | DistanceSuYuan max = list.get(0); |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate()); |
| | | feedbackMapper.insert(feedbackDetail); |
| | | result.put("feedbackId", feedbackDetail.getId()); |
| | |
| | | result.put("data", list); |
| | | return result; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Map<String, Object> selectSuYuan500(String name, Date date) { |
| | | Map<String, Object> result = new HashMap<String, Object>(); |
| | |
| | | } |
| | | List<DistanceSuYuan> list = suYuanMapper.getDistanceSuYuan(dictRecord.getTableName(), ids3d); |
| | | AtomicInteger i = new AtomicInteger(0); |
| | | list.stream().forEach(s->{s.setName(checkPoint.getName());i.getAndIncrement();s.setVocsName(checkPoint.getName()+ "-" + i.longValue());}); |
| | | list.stream().forEach(s -> { |
| | | s.setName(checkPoint.getName()); |
| | | i.getAndIncrement(); |
| | | s.setVocsName(checkPoint.getName() + "-" + i.longValue()); |
| | | }); |
| | | if (StringUtils.isNotEmpty(list)) { |
| | | Collections.sort(list); |
| | | DistanceSuYuan max = list.get(0); |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | FeedbackDetail feedbackDetail = new FeedbackDetail(null, dictRecord.getTableName(), |
| | | max.getName(), max.getId(), max.getVocsName(), max.getVocsValue(), null, null, null, DateUtils.getNowDate()); |
| | | feedbackMapper.insert(feedbackDetail); |
| | | result.put("feedbackId", feedbackDetail.getId()); |
| | |
| | | if (StringUtils.isNull(checkPoint)) { |
| | | return null; |
| | | } |
| | | List<DictRecord> recordList = dictRecordMapper.selectDictRecordList(new DictRecord()); |
| | | |
| | | /*List<DictRecord> recordList = dictRecordMapper.selectDictRecordList(new DictRecord()); |
| | | |
| | | List<String> tableNames = new ArrayList<String>(); |
| | | recordList.stream().forEach(s -> {tableNames.add(s.getTableName());}); |
| | | return suYuanMapper.getMonitorData(tableNames, checkPoint.getX() + "_" + checkPoint.getY() + "_" + checkPoint.getZ()); |
| | | for (DictRecord dr : recordList) { |
| | | if (suYuanMapper.isTableExists(dr.getTableName()) > 0) { |
| | | tableNames.add(dr.getTableName()); |
| | | } |
| | | } |
| | | |
| | | return suYuanMapper.getMonitorData(tableNames, checkPoint.getX() + "_" + checkPoint.getY() + "_" + checkPoint.getZ());*/ |
| | | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.HOUR_OF_DAY, 23); |
| | | String end = dateFormat.format(calendar.getTime()); |
| | | |
| | | calendar.set(Calendar.HOUR_OF_DAY, 0); |
| | | calendar.add(Calendar.DATE, -7); |
| | | String start = dateFormat.format(calendar.getTime()); |
| | | |
| | | return suYuanMapper.getNewMonitorData(checkPoint.getName(), start, end); |
| | | } |
| | | |
| | | @Override |
| | | public int updateVocsName(Date date, String id, String vocsName) { |
| | | String table = "su_yuan_" + dateFormat.format(date); // new Date() |
| | | if (isTableExists(table) == 0) { |
| | | return 0; |
| | | } |
| | | |
| | | //return suYuanMapper.updateVocsName(table, id, vocsName); |
| | | return 1; |
| | | } |
| | | |
| | | @Override |
| | | public List<Qxsh> queryQxsh(Date date) { |
| | | String time = dateFormat.format(date); |
| | | |
| | | return qxshMapper.selectByTime(time); |
| | | } |
| | | } |