package com.qxueyou.scc.school.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.impl.CommonAppService;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.TraceUtils;
|
import com.qxueyou.scc.school.model.SchSchoolYear;
|
import com.qxueyou.scc.school.service.ISchoolYearService;
|
|
@Service
|
public class SchoolYearService extends CommonAppService implements ISchoolYearService {
|
|
@Override
|
public Result insertSchoolYear(SchSchoolYear schSchoolYear) {
|
|
// ÑéÖ¤
|
Result resultFlag = judgeTime(schSchoolYear);
|
if(StringUtils.isNotBlank(resultFlag.getMsg())){
|
return resultFlag;
|
}
|
|
SchSchoolYear schoolYear = null;
|
if(StringUtils.isNotBlank(schSchoolYear.getSchoolYearId())){// ÐÞ¸Ä
|
|
schoolYear = read(SchSchoolYear.class, schSchoolYear.getSchoolYearId());
|
TraceUtils.setUpdateTrace(schoolYear);
|
schoolYear.setOrgId(ClientUtils.getOrgId());
|
schoolYear.setStartTime(schSchoolYear.getStartTime());
|
schoolYear.setEndTime(schSchoolYear.getEndTime());
|
schoolYear.setName(schSchoolYear.getName());
|
this.save(schoolYear);
|
|
}else{ // ÐÂÔö
|
schoolYear = new SchSchoolYear();
|
TraceUtils.setCreateTrace(schoolYear);
|
schoolYear.setOrgId(ClientUtils.getOrgId());
|
schoolYear.setStartTime(schSchoolYear.getStartTime());
|
schoolYear.setEndTime(schSchoolYear.getEndTime());
|
schoolYear.setName(schSchoolYear.getName());
|
this.save(schoolYear);
|
}
|
|
return new Result(true);
|
}
|
|
/**
|
* ÅжÏÑ¡ÔñµÄʱ¼ä²»Äܰüº¬ÒÑÌí¼ÓѧÄêµÄ¿ªÊ¼Ê±¼äÖÁ½áÊøÊ±¼ä
|
* time
|
* @return
|
*/
|
public Result judgeTime( SchSchoolYear schSchoolYear) {
|
// ·µ»Ø½á¹û
|
Result resultFlag = new Result(true);
|
List<SchSchoolYear> schoolYearLst = setPublic(schSchoolYear.getSchoolYearId());
|
|
// ÑéÖ¤
|
for (int i = 0; i < schoolYearLst.size(); i++) {
|
boolean flagStart = schoolYearLst.get(i).getStartTime().before(schSchoolYear.getStartTime());
|
boolean flagend = schoolYearLst.get(i).getEndTime().before(schSchoolYear.getEndTime());
|
|
if(flagStart == false && flagend == true){ // Ñ¡ÔñµÄʱ¼ä°üº¬¿ªÊ¼Ê±¼äºÍ½áÊøÊ±¼ä
|
resultFlag = new Result(true,"Ñ¡ÔñµÄѧÄêʱ¼ä²»Äܰüº¬ÒÑÌí¼ÓµÄѧÄêʱ¼ä");
|
break;
|
}
|
}
|
|
return resultFlag;
|
}
|
|
/**
|
* ¿ªÊ¼Ê±¼äµÄ»Øµ÷º¯Êý
|
* schSchoolYear £ºstartTime
|
* @return
|
*/
|
@Override
|
public Result startCallback( SchSchoolYear schSchoolYear) {
|
|
return callback(schSchoolYear.getStartTime(),schSchoolYear.getSchoolYearId());
|
}
|
|
/**
|
* ½áÊøÊ±¼äµÄ»Øµ÷º¯Êý
|
* schSchoolYear £ºendTime
|
* @return
|
*/
|
@Override
|
public Result endCallback( SchSchoolYear schSchoolYear) {
|
|
return callback(schSchoolYear.getEndTime(),schSchoolYear.getSchoolYearId());
|
}
|
|
/**
|
* ÅжÏÑ¡ÔñµÄʱ¼ä²»ÄÜÔÚÒÑÌí¼ÓѧÄêµÄ¿ªÊ¼Ê±¼äºÍ½áÊøÊ±¼äÖ®¼ä
|
* time
|
* @return
|
*/
|
public Result callback( Date time,String schSchoolYearId) {
|
|
// ·µ»Ø½á¹û
|
Result resultFlag = new Result(true);
|
List<SchSchoolYear> schoolYearLst = setPublic(schSchoolYearId);
|
|
if(schoolYearLst.isEmpty()){
|
return resultFlag;
|
}
|
|
for (int i = 0; i < schoolYearLst.size(); i++) {
|
boolean flagStart = schoolYearLst.get(i).getStartTime().before(time);
|
boolean flagend = schoolYearLst.get(i).getEndTime().before(time);
|
|
if(flagStart == true && flagend == false){ // Ñ¡ÔñµÄʱ¼äÔÚ¿ªÊ¼Ê±¼äÖ®ºó½áÊøÊ±¼ä֮ǰ
|
resultFlag = new Result(true,"µ±Ç°»ú¹¹ÒÑÉèÖøÃʱ¼äµÄѧÄê");
|
break;
|
}
|
}
|
|
return resultFlag;
|
}
|
|
public List<SchSchoolYear> setPublic( String schSchoolYearId) {
|
|
// »ñÈ¡µ±Ç°»ú¹¹ËùÓÐѧÄê
|
String hql = "from SchSchoolYear where deleteFlag is false and orgId = ? order by endTime desc";
|
List<SchSchoolYear> schoolYearList = find(hql, CollectionUtils.newList(ClientUtils.getOrgId()), SchSchoolYear.class);
|
|
// ±à¼Ò³Ãæ¹ýÂ˵±Ç°Ñ§Äê
|
List<SchSchoolYear> schoolYearLst = new ArrayList<SchSchoolYear>();
|
if(StringUtils.isNotBlank(schSchoolYearId)){
|
for (SchSchoolYear schoolYear : schoolYearList) {
|
if(!schoolYear.getSchoolYearId().equals(schSchoolYearId)){
|
schoolYearLst.add(schoolYear);
|
}
|
}
|
return schoolYearLst;
|
}else{
|
return schoolYearList;
|
}
|
}
|
|
@Override
|
public Result deleteSchoolYear(String[] yearIds) {
|
|
String hql = "update SchSchoolYear set deleteFlag = true where schoolYearId = ? ";
|
return bulkUpdateInLoop(hql, yearIds);
|
|
}
|
}
|