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 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 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 setPublic( String schSchoolYearId) { // »ñÈ¡µ±Ç°»ú¹¹ËùÓÐѧÄê String hql = "from SchSchoolYear where deleteFlag is false and orgId = ? order by endTime desc"; List schoolYearList = find(hql, CollectionUtils.newList(ClientUtils.getOrgId()), SchSchoolYear.class); // ±à¼­Ò³Ãæ¹ýÂ˵±Ç°Ñ§Äê List schoolYearLst = new ArrayList(); 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); } }