2023年5月18日 新增下一节课和当前节课查询

This commit is contained in:
bai 2023-05-18 00:28:09 +08:00
parent 46a9be435e
commit 7bada91cf3
2 changed files with 108 additions and 1 deletions

View File

@ -10,6 +10,11 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.google.common.collect.Maps;
import lombok.Data;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
@ -22,6 +27,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.kc.kcJieci.entity.KcJieci;
import org.jeecg.modules.kc.kcJieci.service.IKcJieciService;
import org.jeecg.modules.kc.ktgl.entity.KcKetangbiao;
import org.jeecg.modules.kc.ktgl.service.IKcKetangbiaoService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@ -52,7 +61,18 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
public class KcZhihuijiaoshiController extends JeecgController<KcZhihuijiaoshi, IKcZhihuijiaoshiService> {
@Autowired
private IKcZhihuijiaoshiService kcZhihuijiaoshiService;
@Autowired
private IKcJieciService kcJieciService;
@Autowired
private IKcKetangbiaoService kcKetangbiaoService;
@Data
public class JieciIntTime {
private Integer ksTime;
private Integer jsTime;
}
/**
* 分页列表查询
*
@ -72,6 +92,85 @@ public class KcZhihuijiaoshiController extends JeecgController<KcZhihuijiaoshi,
QueryWrapper<KcZhihuijiaoshi> queryWrapper = QueryGenerator.initQueryWrapper(kcZhihuijiaoshi, req.getParameterMap());
Page<KcZhihuijiaoshi> page = new Page<KcZhihuijiaoshi>(pageNo, pageSize);
IPage<KcZhihuijiaoshi> pageList = kcZhihuijiaoshiService.page(page, queryWrapper);
//查询今天的课
DateTime starTime = DateTime.now();
starTime = DateUtil.endOfDay(starTime);//校正为今天末尾
String nowTimeStr = starTime.toString("HHmmss");
int nowTimeNum = Integer.parseInt(nowTimeStr);
String nowStr = starTime.toString("yyyy-MM-dd");
QueryWrapper<KcKetangbiao> ktqw = new QueryWrapper<>();
ktqw.apply("sksj >= STR_TO_DATE('"+nowStr+"', '%Y-%m-%d')");
ktqw.apply("sksj < DATE_ADD(STR_TO_DATE('"+nowStr+"','%Y-%m-%d'),INTERVAL 1 DAY)");
List<KcKetangbiao> kcKetangbiaoList = kcKetangbiaoService.list(ktqw);
//下一节次映射表
Map<String,String> nextJcMap = Maps.newHashMap();
nextJcMap.put("01、02","03、04");
nextJcMap.put("03、04","05、06");
nextJcMap.put("05、06","07、08");
nextJcMap.put("07、08","09、10");
nextJcMap.put("09、10","11、12");
nextJcMap.put("11、12","01、02");
//查询节次时间
QueryWrapper<KcJieci> jcqw = new QueryWrapper<>();
jcqw.like("jieci","");
List<KcJieci> kcJieciList= kcJieciService.list(jcqw);
Map<String, JieciIntTime> kcJieciMap = Maps.newHashMap();
Map<String, JieciIntTime> nextKcJieciMap = Maps.newHashMap();
kcJieciList.forEach(x -> {
JieciIntTime jieciIntTime = new JieciIntTime();
jieciIntTime.setKsTime(Integer.parseInt(x.getHhks()));
jieciIntTime.setJsTime(Integer.parseInt(x.getHhjs()));
if(jieciIntTime.getKsTime() <= nowTimeNum && nowTimeNum <= jieciIntTime.getJsTime()){
//符合当前节
kcJieciMap.put(x.getJieci(), jieciIntTime);
}
});
//补充进下一节次里
kcJieciMap.forEach((k,v) -> {
if(nextJcMap.containsKey(k)){
String nextKey = nextJcMap.get(k);
if(kcJieciMap.containsKey(nextKey)){
nextKcJieciMap.put(nextKey,kcJieciMap.get(nextKey));
}
}
});
//根据节次信息包装进Map
Map<String, KcKetangbiao> kcKetangbiaoNowMap = Maps.newHashMap();
Map<String, KcKetangbiao> kcKetangbiaoNextMap = Maps.newHashMap();
kcKetangbiaoList.forEach(x -> {
//匹配是否在上课范围内
if(kcJieciMap.containsKey(x.getHh())){
kcKetangbiaoNowMap.put(x.getJsbh(),x);
}
if(nextKcJieciMap.containsKey(x.getHh())){
kcKetangbiaoNextMap.put(x.getJsbh(),x);
}
});
//计算哪节在时间范围内
//装填到数据里
pageList.getRecords().forEach(x -> {
//jsbh 教室编号
//sksj 上课时间
//hh 节次
//kcJieciMap.containsKey(x.getHh)
//nowTimeNum
if(kcKetangbiaoNowMap.containsKey(x.getJsbh())){
x.setNowIsClass(true);
}
if(kcKetangbiaoNextMap.containsKey(x.getJsbh())){
x.setNextIsClass(true);
}
});
return Result.OK(pageList);
}

View File

@ -125,4 +125,12 @@ public class KcZhihuijiaoshi implements Serializable {
@TableField(exist = false)
private java.lang.String ids;
/**当前节是否有课*/
@TableField(exist = false)
private java.lang.Boolean nowIsClass;
/**下一节是否有课*/
@TableField(exist = false)
private java.lang.Boolean nextIsClass;
}