From 85181f9d72dc9cd39cc8838e89378f328fd8a2f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=AE=8F=E6=96=8C?= <2164406372@qq.com> Date: Fri, 25 Jul 2025 15:04:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=89=88=E4=BF=A1=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=9A=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A4=9A=E9=80=89=E5=85=B7=E4=BD=93=E6=97=A5=E6=9C=9F=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SchedulingController.java | 1 - .../scheduling/entity/SchedulingData.java | 4 + .../service/impl/SchedulingServiceImpl.java | 89 ++++++++++++------- 3 files changed, 60 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java b/src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java index 67b90336..d5cd9991 100644 --- a/src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java +++ b/src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java @@ -68,7 +68,6 @@ public class SchedulingController { @PostMapping(value="/saveSchedulingHeader") @ResponseBody public R saveSchedulingHeader(@RequestBody SchedulingData data){ - System.out.println(data.toString()); R r = schedulingService.saveSchedulingHeader(data); return r; } diff --git a/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java b/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java index dce8274c..8a82cea6 100644 --- a/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java +++ b/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java @@ -35,5 +35,9 @@ public class SchedulingData { private Object checkbox2; @TableField(exist = false) private List peopleList; + @TableField(exist = false) + private String insertType; + @TableField(exist = false) + private List selectedDates; } diff --git a/src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java b/src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java index 9aba95a6..65fb8af7 100644 --- a/src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java @@ -83,41 +83,64 @@ public class SchedulingServiceImpl implements SchedulingService { } else { throw new RuntimeException("工厂和部门有误!"); } - Date startDate = data.getStartDate(); - Date endDate = data.getEndDate(); - String checkbox1 = Objects.toString(data.getCheckbox1()); - String checkbox2 = Objects.toString(data.getCheckbox2()); - Calendar cal = Calendar.getInstance(); - cal.setTime(startDate); - while (!cal.getTime().after(endDate)) { - int day = cal.get(Calendar.DAY_OF_WEEK); - if ((day == Calendar.SATURDAY && !"true".equals(checkbox1))){ + if ("true".equals(data.getInsertType())){ + Date startDate = data.getStartDate(); + Date endDate = data.getEndDate(); + String checkbox1 = Objects.toString(data.getCheckbox1()); + String checkbox2 = Objects.toString(data.getCheckbox2()); + Calendar cal = Calendar.getInstance(); + cal.setTime(startDate); + while (!cal.getTime().after(endDate)) { + int day = cal.get(Calendar.DAY_OF_WEEK); + if ((day == Calendar.SATURDAY && !"true".equals(checkbox1))){ + cal.add(Calendar.DATE, 1); + continue; + } + if ((day == Calendar.SUNDAY && !"true".equals(checkbox2))){ + cal.add(Calendar.DATE, 1); + continue; + } + data.setDate(cal.getTime()); + + try { + //新增主表信息 + schedulingMapper.saveSchedulingHeader(data); + }catch (Exception e){ + throw new RuntimeException("保存失败,请检查是否存在重复的班次编码和日期"); + } + //设置子表参数 + SchedulingRecordData schedulingRecordData = new SchedulingRecordData(); + schedulingRecordData.setHeadId(data.getId()); + schedulingRecordData.setIsHoliday("N"); + List peopleList = data.getPeopleList(); + for (int i = 0;i peopleList = data.getPeopleList(); - for (int i = 0;i selectedDates = data.getSelectedDates(); + selectedDates.forEach(date1 -> { + data.setDate(date1); + try { + //新增主表信息 + schedulingMapper.saveSchedulingHeader(data); + }catch (Exception e){ + throw new RuntimeException("保存失败,请检查是否存在重复的班次编码和日期"); + } + //设置子表参数 + SchedulingRecordData schedulingRecordData = new SchedulingRecordData(); + schedulingRecordData.setHeadId(data.getId()); + schedulingRecordData.setIsHoliday("N"); + List peopleList = data.getPeopleList(); + for (int i = 0;i