From 7bada91cf3e67aa8fefcd7d58ea56e8d9dea2470 Mon Sep 17 00:00:00 2001 From: bai <1643359946@qq.com> Date: Thu, 18 May 2023 00:28:09 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B45=E6=9C=8818=E6=97=A5=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=B8=8B=E4=B8=80=E8=8A=82=E8=AF=BE=E5=92=8C=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E8=8A=82=E8=AF=BE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/KcZhihuijiaoshiController.java | 101 +++++++++++++++++- .../kc/jiaoshi/entity/KcZhihuijiaoshi.java | 8 ++ 2 files changed, 108 insertions(+), 1 deletion(-) diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java index 9b595ba4..d06cc99b 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/controller/KcZhihuijiaoshiController.java @@ -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 { @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 queryWrapper = QueryGenerator.initQueryWrapper(kcZhihuijiaoshi, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage 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 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 kcKetangbiaoList = kcKetangbiaoService.list(ktqw); + + //下一节次映射表 + Map 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 jcqw = new QueryWrapper<>(); + jcqw.like("jieci","、"); + List kcJieciList= kcJieciService.list(jcqw); + Map kcJieciMap = Maps.newHashMap(); + Map 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 kcKetangbiaoNowMap = Maps.newHashMap(); + Map 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); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshi.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshi.java index 65a725f0..670109d6 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshi.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/entity/KcZhihuijiaoshi.java @@ -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; + }