diff --git a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/controller/baseManage/TheRapyRecuperationBaseManagerController.java b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/controller/baseManage/TheRapyRecuperationBaseManagerController.java index 8a40952..f4d332e 100644 --- a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/controller/baseManage/TheRapyRecuperationBaseManagerController.java +++ b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/controller/baseManage/TheRapyRecuperationBaseManagerController.java @@ -300,8 +300,9 @@ public class TheRapyRecuperationBaseManagerController { listMap.forEach((k, v) -> { SysHoliday sysHoliday = v.get(0); Date date = DateUtil.parse(sysHoliday.getDay()); - Date previousDay = DateUtil.offsetDay(date, -1); - holidays.add(DateUtil.formatDate(previousDay)); + /*Date previousDay = DateUtil.offsetDay(date, -1); + holidays.add(DateUtil.formatDate(previousDay));*/ + holidays.add(DateUtil.formatDate(date)); }); List weeks = management.getWeekCheckIn(); @@ -325,10 +326,10 @@ public class TheRapyRecuperationBaseManagerController { while (!currentDate.isAfter(endDate)) { // 检查是否为节假日 String currentDateString = currentDate.format(formatter); - /*if (holidays.contains(currentDateString) && lot.getFilterHolidays()) { + if (holidays.contains(currentDateString)) { currentDate = currentDate.plusDays(1); continue; - }*/ + } // 检查是否为需要排除的周几 int dayOfWeek = currentDate.getDayOfWeek().getValue() % 7; // 1是周一,7是周日 if (Lang.isNotEmpty(weeks) && !weeks.contains(dayOfWeek)) { diff --git a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLine.java b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLine.java index abefbe3..9b339eb 100644 --- a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLine.java +++ b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLine.java @@ -119,6 +119,11 @@ public class TheRapyRecuperationLine extends BaseModel { @Comment("成团人数包括家属") private Integer estimatedFamilyNumbers; + @Column + @ColDefine(type = ColType.INT) + @Comment("最多报名人数") + private Integer maxGroupSize; + @Column @ColDefine(type = ColType.VARCHAR, width = 100) @Comment("缩略图") diff --git a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLineUnionSelect.java b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLineUnionSelect.java index 5808a1a..2f60416 100644 --- a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLineUnionSelect.java +++ b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/model/TheRapyRecuperationLineUnionSelect.java @@ -167,4 +167,9 @@ public class TheRapyRecuperationLineUnionSelect extends BaseModel { @Comment("校工会审核id") private String schoolAuditId; + @Column + @ColDefine(type = ColType.INT) + @Comment("最多报名人数") + private Integer maxGroupSize; + } diff --git a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/service/impl/TheRapyRecuperationEnrollServiceImpl.java b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/service/impl/TheRapyRecuperationEnrollServiceImpl.java index 10e5dde..d54d76a 100644 --- a/src/main/java/io/v/nutz/zhgh/therapyRecuperation/service/impl/TheRapyRecuperationEnrollServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/therapyRecuperation/service/impl/TheRapyRecuperationEnrollServiceImpl.java @@ -540,7 +540,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl validSignCountMap = validSignCount(enrollInfo, config, lineUnionSelect.getMaxGroupSize(), StrUtil.isBlank(enrollInfo.getId()) ? "add" : "edit"); + if (validSignCountMap.containsKey(false)) { + return validSignCountMap; + } + TheRapyRecuperationType trrt = regionTypeLineMap.get(lineInfo.getRegionalNature()); if (StrUtil.isBlank(enrollInfo.getId()) && StrUtil.isNotBlank(enrollInfo.getTakePartInLineId())) { //获取标段中的最大费用 @@ -704,6 +710,39 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl validSignCount(TheRapyRecuperationEnroll enrollInfo, TheRapyRecuperationConfig config, int maxGroupSize, String type) { + int hasSignNumber = 0;//已经报名的人数 + int currentSignNumber = 1;//当前报名人数,1表示自己,下面的if是加家属人数 + Cnd cnd = Cnd.where("takePartInLineId", "=", enrollInfo.getTakePartInLineId()) + .and("stateId", "in", Lang.array(TheRapyRecuperationState.UNIT, TheRapyRecuperationState.LINEUNIT, TheRapyRecuperationState.SCHOOL, TheRapyRecuperationState.PASS)) + .and("isNormal", "=", true); + //如果是修改,排除自己的报名记录 + if ("edit".equals(type)) { + SqlExpressionGroup group = new SqlExpressionGroup(); + group.or("loginName", "!=", ShiroUtil.getPlatformLoginname()); + cnd.and(group); + } + List enrolls = dao().query(TheRapyRecuperationEnroll.class, cnd); + + //1表示在配置页面的家属配置的是数量,2是家属的List + if (config.getFamilyInfo() == 1) { + currentSignNumber += enrollInfo.getFamilyNumber() != null ? enrollInfo.getFamilyNumber() : 0; + int sum = enrolls.stream().mapToInt(TheRapyRecuperationEnroll::getFamilyNumber).sum(); + hasSignNumber = enrolls.size() + sum; + } else { + currentSignNumber += enrollInfo.getCompanionList() != null ? enrollInfo.getCompanionList().size() : 0; + List list = enrolls.stream().map(TheRapyRecuperationEnroll::getId).collect(Collectors.toList()); + List companions = dao().query(TheRapyRecuperationEnrollCompanion.class, Cnd.where("trreId", "=", list)); + hasSignNumber = enrolls.size() + companions.size(); + } + //省外报名限制,不包含家属 + if ((hasSignNumber + currentSignNumber) > maxGroupSize) { + return Map.of(false, "报名人数已满"); + } else { + return Map.of(true, ""); + } + } + public Map validSignTime(TheRapyRecuperationEnroll currentEnroll) { TheRapyRecuperationConfig config = dao().fetch(TheRapyRecuperationConfig.class, Cnd.NEW()); DateTime signUpStartTime = null; @@ -731,7 +770,7 @@ public class TheRapyRecuperationEnrollServiceImpl extends ViServiceImpl 查看 编辑 - 删除 + + @@ -341,6 +346,16 @@ layout("/layouts/platform.html"){ + + + + + @@ -575,6 +590,7 @@ layout("/layouts/platform.html"){ trafficTools: [{required: false, message: '请输入交通工具', trigger: ['change', 'blur']}], estimatedCost: [{required: false, message: '请输入预计费用', trigger: ['change', 'blur']}], estimatedFamilyNumbers: [{required: false, message: '请输入成团人数包括家属', trigger: ['change', 'blur']}], + maxGroupSize: [{required: true, message: '请输入最多报名人数', trigger: ['change', 'blur']}], lotId: [{required: true, message: '请选择标段时间', trigger: ['change', 'blur']}], openChoose: [{required: true, message: '请选择开放选择', trigger: ['change', 'blur']}], travelAgencyPlace: [{required: true, message: '请选择旅行社地点', trigger: ['change', 'blur']}], diff --git a/src/main/resources/views/platform/theRapyRecuperation/process/lineUnionSelect.html b/src/main/resources/views/platform/theRapyRecuperation/process/lineUnionSelect.html index 547dfeb..6c41d1c 100644 --- a/src/main/resources/views/platform/theRapyRecuperation/process/lineUnionSelect.html +++ b/src/main/resources/views/platform/theRapyRecuperation/process/lineUnionSelect.html @@ -412,6 +412,20 @@ layout("/layouts/platform.html"){ + + + + + +