ChildTaskPlanServiceImpl.java 2.01 KB
package com.bsth.service.realcontrol.impl;

import java.util.Map;

import javax.transaction.Transactional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bsth.data.BasicData;
import com.bsth.data.match.Arrival2Schedule;
import com.bsth.data.schedule.DayOfSchedule;
import com.bsth.entity.realcontrol.ChildTaskPlan;
import com.bsth.entity.realcontrol.ScheduleRealInfo;
import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.realcontrol.ChildTaskPlanService;

@Service
public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Long> implements ChildTaskPlanService{

	/*@Autowired
	ScheduleRealInfoServiceImpl scheduleRealInfoService;*/
	
	@Autowired
	ChildTaskPlanRepository childTaskPlanRepository;
	
	@Autowired
	DayOfSchedule dayOfSchedule;
	
	@Autowired
	Arrival2Schedule arrival2Schedule;
	
	@Transactional
	@Override
	public Map<String, Object> save(ChildTaskPlan t) {
		Map<String, Object> rs;
		//保存起终点名称
		Map<String, String> map = BasicData.stationCode2NameMap;
		
		t.setStartStationName(map.get(t.getStartStation()));
		t.setEndStationName(map.get(t.getEndStation()));
		//先持久化子任务
		rs = super.save(t);
		//再关联主任务
		ScheduleRealInfo sch = dayOfSchedule.get(t.getSchedule().getId());
		sch.getcTasks().add(t);
		dayOfSchedule.save(sch);
		
		rs.put("t", sch);
		
		if(sch.getZdsjActual() == null)
			arrival2Schedule.removeExpect(sch.getClZbh());
		return rs;
	}

	@Override
	public Map<String, Object> delete(Long id) {
		Map<String, Object> rs;
		
		ChildTaskPlan cPlan = childTaskPlanRepository.findOne(id);
		//解除和主任务关联
		ScheduleRealInfo sch = dayOfSchedule.get(cPlan.getSchedule().getId());
		sch.getcTasks().remove(cPlan);
		//删除子任务
		rs = super.delete(id);
		dayOfSchedule.save(sch);
		
		rs.put("t", sch);
		return rs;
	}
}