|  | @@ -1,9 +1,6 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.OperatingReportCloudDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.OrganCourseTypeOriginalCostDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 | 
	
		
			
				|  |  | -import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.OperatingReportCloud;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 | 
	
	
		
			
				|  | @@ -37,6 +34,8 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 | 
	
		
			
				|  |  |  	private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private StudentPaymentOrderDao studentPaymentOrderDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	public BaseDAO<Integer, OperatingReportCloud> getDAO() {
 | 
	
	
		
			
				|  | @@ -63,6 +62,10 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 | 
	
		
			
				|  |  |  		}else {
 | 
	
		
			
				|  |  |  			amount = studentPaymentOrderDao.get(orderId).getActualAmount();
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		if(calender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_STUDENT){
 | 
	
		
			
				|  |  | +			this.saveMonthOperating(calender,amount);
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		//找出非当月结算的缴费项目预算,如果为空则创建。如果已结算则创建当月结转的云教练预收、否则修改云教练预算
 | 
	
		
			
				|  |  |  		//获取云教练信息
 | 
	
		
			
				|  |  |  		OperatingReportCloud reportCloud = operatingReportCloudDao.findByCalenderId(calender.getId());
 | 
	
	
		
			
				|  | @@ -74,18 +77,7 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 | 
	
		
			
				|  |  |  			operatingReportCloudDao.insert(reportCloud);
 | 
	
		
			
				|  |  |  		}else {
 | 
	
		
			
				|  |  |  			if(reportCloud.getSettlementFlag()){
 | 
	
		
			
				|  |  | -				OperatingReportCloud currentReportCloud = operatingReportCloudDao.findByCurrentCalenderId(calender.getId());
 | 
	
		
			
				|  |  | -				if(Objects.isNull(currentReportCloud)){
 | 
	
		
			
				|  |  | -					currentReportCloud = new OperatingReportCloud();
 | 
	
		
			
				|  |  | -					currentReportCloud.setCalenderId(calender.getId());
 | 
	
		
			
				|  |  | -					currentReportCloud.setCloudPrice(amount);
 | 
	
		
			
				|  |  | -					currentReportCloud.setOrganId(calender.getOrganId());
 | 
	
		
			
				|  |  | -					currentReportCloud.setMonthFlag(true);
 | 
	
		
			
				|  |  | -					operatingReportCloudDao.insert(currentReportCloud);
 | 
	
		
			
				|  |  | -				}else {
 | 
	
		
			
				|  |  | -					currentReportCloud.setCloudPrice(currentReportCloud.getCloudPrice().add(amount));
 | 
	
		
			
				|  |  | -					operatingReportCloudDao.update(currentReportCloud);
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | +				this.saveMonthOperating(calender,amount);
 | 
	
		
			
				|  |  |  			}else {
 | 
	
		
			
				|  |  |  				reportCloud.setCloudPrice(reportCloud.getCloudPrice().add(amount));
 | 
	
		
			
				|  |  |  				reportCloud.setUpdateTime(new Date());
 | 
	
	
		
			
				|  | @@ -94,9 +86,29 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	private void saveMonthOperating(MusicGroupPaymentCalender calender,BigDecimal amount){
 | 
	
		
			
				|  |  | +		OperatingReportCloud currentReportCloud = operatingReportCloudDao.findByCurrentCalenderId(calender.getId());
 | 
	
		
			
				|  |  | +		if(Objects.isNull(currentReportCloud)){
 | 
	
		
			
				|  |  | +			currentReportCloud = new OperatingReportCloud();
 | 
	
		
			
				|  |  | +			currentReportCloud.setCalenderId(calender.getId());
 | 
	
		
			
				|  |  | +			currentReportCloud.setCloudPrice(amount);
 | 
	
		
			
				|  |  | +			currentReportCloud.setOrganId(calender.getOrganId());
 | 
	
		
			
				|  |  | +			currentReportCloud.setMonthFlag(true);
 | 
	
		
			
				|  |  | +			operatingReportCloudDao.insert(currentReportCloud);
 | 
	
		
			
				|  |  | +		}else {
 | 
	
		
			
				|  |  | +			currentReportCloud.setCloudPrice(currentReportCloud.getCloudPrice().add(amount));
 | 
	
		
			
				|  |  | +			operatingReportCloudDao.update(currentReportCloud);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |  	public void updateSet(Long calenderId,List<Long> scheduleIdList) {
 | 
	
		
			
				|  |  | +		//如果是进行中加学员,全部算在当月云教练结转。不用摊到课程
 | 
	
		
			
				|  |  | +		MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(calenderId);
 | 
	
		
			
				|  |  | +		if(calender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_STUDENT){
 | 
	
		
			
				|  |  | +			return;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		OperatingReportCloud reportCloud = operatingReportCloudDao.findByCalenderId(calenderId);
 | 
	
		
			
				|  |  |  		if(Objects.isNull(reportCloud)){
 | 
	
		
			
				|  |  |  			throw new BizException("操作失败,请联系管理员");
 | 
	
	
		
			
				|  | @@ -121,6 +133,9 @@ public class OperatingReportCloudServiceImpl extends BaseServiceImpl<Integer, Op
 | 
	
		
			
				|  |  |  			reportCloud.setCalenderId(musicGroupPaymentCalender.getId());
 | 
	
		
			
				|  |  |  			reportCloud.setCloudPrice(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |  			reportCloud.setOrganId(musicGroupPaymentCalender.getOrganId());
 | 
	
		
			
				|  |  | +			if(musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.ADD_STUDENT){
 | 
	
		
			
				|  |  | +				reportCloud.setMonthFlag(true);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  			operatingReportCloudDao.insert(reportCloud);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 |