ScheduleRealInfoServiceImpl.java 2.27 KB
package com.bsth.service.realcontrol.impl;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bsth.common.ResponseCode;
import com.bsth.entity.realcontrol.ScheduleRealInfo;
import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.realcontrol.ScheduleBuffer;
import com.bsth.service.realcontrol.ScheduleRealInfoService;
import com.google.common.base.Splitter;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;

@Service
public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInfo, Long> implements ScheduleRealInfoService{

	@Autowired
	ScheduleRealInfoRepository scheduleRealInfoRepository;
	
	Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public Map<String, Collection<ScheduleRealInfo>> findByLines(String lines) {
		List<String> lineList = Lists.newArrayList(Splitter.on(',').trimResults().omitEmptyStrings().split(lines));
		List<ScheduleRealInfo> list = scheduleRealInfoRepository.findByLines(lineList);
		
		//按线路编码分组
		Multimap<String, ScheduleRealInfo> mMap = ArrayListMultimap.create();
		
		for(ScheduleRealInfo item : list){
			mMap.put(item.getXlBm(), item);
		}
		
		return mMap.asMap();
	}

	@Override
	public Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj) {
		Map<String, Object> map = new HashMap<>();
		try{
			
			ScheduleRealInfo schedule = ScheduleBuffer.pkSchedulMap.get(id);
			schedule.setDfsj(dfsj);
			String newRem = schedule.getRemarks();
			if(null == newRem)
				newRem = "";
			newRem += "[待发调整] " + remarks +";";
			schedule.setRemarks(newRem);
			//持久化到数据库
			ScheduleBuffer.persistentList.add(schedule);
			
			map.put("status", ResponseCode.SUCCESS);
			map.put("dfsj", dfsj);
			map.put("remarks", newRem);
		}catch(Exception e){
			logger.error("", e);
			map.put("status", ResponseCode.ERROR);
		}
		return map;
	}
}