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.SchSchoolDay;
|
import com.qxueyou.scc.school.model.SchSchoolDayItem;
|
import com.qxueyou.scc.school.service.ISchoolDayService;
|
|
@Service
|
public class SchoolDayService extends CommonAppService implements ISchoolDayService {
|
|
@Override
|
public Result insertSchoolDay(SchSchoolDay schSchoolDay) {
|
|
if(StringUtils.isNotBlank(schSchoolDay.getSchoolDayId())){
|
TraceUtils.setUpdateTrace(schSchoolDay);
|
}else{
|
TraceUtils.setCreateTrace(schSchoolDay);
|
}
|
|
schSchoolDay.setOrgId(ClientUtils.getOrgId());
|
this.save(schSchoolDay);
|
|
return new Result(true);
|
}
|
|
@Override
|
public Result deleteSchoolDay(String[] schoolDayIds) {
|
|
String hql = "update SchSchoolDay set deleteFlag = true where schoolDayId = ? ";
|
return bulkUpdateInLoop(hql, schoolDayIds);
|
|
}
|
|
@Override
|
public Result insertSchoolDayItem(SchSchoolDayItem schSchoolDayItem) {
|
|
// ÑéÖ¤
|
Result resultFlag = judgeTime(schSchoolDayItem);
|
if(StringUtils.isNotBlank(resultFlag.getMsg())){
|
return resultFlag;
|
}
|
|
if(StringUtils.isNotBlank(schSchoolDayItem.getDayItemId())){
|
SchSchoolDayItem dayItem = read(SchSchoolDayItem.class, schSchoolDayItem.getDayItemId());
|
dayItem.setDayOrder(schSchoolDayItem.getDayOrder());
|
dayItem.setEndTime(schSchoolDayItem.getEndTime());
|
dayItem.setName(schSchoolDayItem.getName());
|
dayItem.setSchoolDayId(schSchoolDayItem.getSchoolDayId());
|
dayItem.setStartTime(schSchoolDayItem.getStartTime());
|
TraceUtils.setUpdateTrace(dayItem);
|
save(dayItem);
|
}else{
|
TraceUtils.setCreateTrace(schSchoolDayItem);
|
this.save(schSchoolDayItem);
|
}
|
|
return new Result(true);
|
}
|
|
/**
|
* ÅжÏÑ¡ÔñµÄʱ¼ä²»Äܰüº¬ÒÑÌí¼ÓѧÄêµÄ¿ªÊ¼Ê±¼äÖÁ½áÊøÊ±¼ä
|
* time
|
* @return
|
*/
|
public Result judgeTime( SchSchoolDayItem schSchoolDayItem) {
|
// ·µ»Ø½á¹û
|
Result resultFlag = new Result(true);
|
List<SchSchoolDayItem> dayItemLst = setPublic(schSchoolDayItem.getDayItemId(),schSchoolDayItem.getSchoolDayId());
|
|
// ÑéÖ¤
|
for (int i = 0; i < dayItemLst.size(); i++) {
|
boolean flagStart = dayItemLst.get(i).getStartTime().before(schSchoolDayItem.getStartTime());
|
boolean flagend = dayItemLst.get(i).getEndTime().before(schSchoolDayItem.getEndTime());
|
|
if(flagStart == false && flagend == true){ // Ñ¡ÔñµÄʱ¼ä°üº¬¿ªÊ¼Ê±¼äºÍ½áÊøÊ±¼ä
|
resultFlag = new Result(true,"Ñ¡ÔñµÄ×÷Ϣʱ¼ä²»Äܰüº¬ÒÑÌí¼ÓµÄ×÷Ϣʱ¼ä");
|
break;
|
}
|
}
|
|
return resultFlag;
|
}
|
|
/**
|
* ¿ªÊ¼Ê±¼äµÄ»Øµ÷º¯Êý
|
* schSchoolYear £ºstartTime
|
* @return
|
*/
|
@Override
|
public Result startCallback( SchSchoolDayItem schoolDayItem) {
|
|
return callback(schoolDayItem.getStartTime(),schoolDayItem.getDayItemId(),schoolDayItem.getSchoolDayId());
|
}
|
|
/**
|
* ½áÊøÊ±¼äµÄ»Øµ÷º¯Êý
|
* schSchoolYear £ºendTime
|
* @return
|
*/
|
@Override
|
public Result endCallback(SchSchoolDayItem schoolDayItem) {
|
|
return callback(schoolDayItem.getEndTime(),schoolDayItem.getDayItemId(),schoolDayItem.getSchoolDayId());
|
}
|
|
/**
|
* ÅжÏÑ¡ÔñµÄʱ¼ä²»ÄÜÔÚÒÑÌí¼ÓѧÄêµÄ¿ªÊ¼Ê±¼äºÍ½áÊøÊ±¼äÖ®¼ä
|
* time
|
* @return
|
*/
|
public Result callback( Date time,String dayItemId,String schoolDayId) {
|
|
// ·µ»Ø½á¹û
|
Result resultFlag = new Result(true);
|
List<SchSchoolDayItem> dayItemLst = setPublic(dayItemId,schoolDayId);
|
|
if(dayItemLst.isEmpty()){
|
return resultFlag;
|
}
|
|
for (int i = 0; i < dayItemLst.size(); i++) {
|
boolean flagStart = dayItemLst.get(i).getStartTime().before(time);
|
boolean flagEnd = dayItemLst.get(i).getEndTime().before(time);
|
|
if(flagStart == true && flagEnd == false){ // Ñ¡ÔñµÄʱ¼äÔÚ¿ªÊ¼Ê±¼äÖ®ºó½áÊøÊ±¼ä֮ǰ
|
resultFlag = new Result(true,"ÒѾÉèÖùýµ±Ç°µÄ×÷Ϣʱ¼ä");
|
break;
|
}
|
}
|
|
return resultFlag;
|
}
|
|
public List<SchSchoolDayItem> setPublic(String dayItemId,String schoolDayId) {
|
|
// »ñÈ¡µ±Ç°×÷Ϣʱ¼äµÄËùÓÐÃ÷ϸ
|
String hql = "from SchSchoolDayItem where deleteFlag is false and schoolDayId = ? order by endTime desc";
|
List<SchSchoolDayItem> dayItemList = find(hql, CollectionUtils.newList(schoolDayId), SchSchoolDayItem.class);
|
|
// ±à¼Ò³Ãæ¹ýÂ˵±Ç°Ñ§Äê
|
List<SchSchoolDayItem> dayItemLst = new ArrayList<SchSchoolDayItem>();
|
if(StringUtils.isNotBlank(dayItemId)){
|
for (SchSchoolDayItem dayItem : dayItemList) {
|
if(!dayItem.getDayItemId().equals(dayItemId)){
|
dayItemLst.add(dayItem);
|
}
|
}
|
return dayItemLst;
|
}else{
|
return dayItemList;
|
}
|
}
|
|
@Override
|
public Result deleteSchoolDayItem(String[] dayItemIds) {
|
String hql = "update SchSchoolDayItem set deleteFlag = true where dayItemId = ? ";
|
return bulkUpdateInLoop(hql, dayItemIds);
|
}
|
|
|
}
|