From 17b08893d162b96aa58c2652fb54c92ddb9103e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=AE=8F=E6=96=8C?= <2164406372@qq.com> Date: Mon, 21 Jul 2025 11:41:48 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=BB=B4=E4=BF=AE=E5=8F=8D=E9=A6=88=EF=BC=9A?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD=EF=BC=9A=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=A2=9E=E5=8A=A0=E6=8E=92=E7=8F=AD=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=202.=E5=A2=9E=E5=8A=A0=E7=8F=AD=E6=AC=A1=E3=80=81?= =?UTF-8?q?=E6=8E=92=E7=8F=AD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/modules/pms/data/EamAdminData.java | 21 +++ .../controller/SchedulingController.java | 98 +++++++++++ .../scheduling/entity/ClassesData.java | 15 ++ .../scheduling/entity/SchedulingData.java | 39 +++++ .../entity/SchedulingRecordData.java | 14 ++ .../scheduling/mapper/SchedulingMapper.java | 37 +++++ .../scheduling/service/SchedulingService.java | 29 ++++ .../service/impl/SchedulingServiceImpl.java | 157 ++++++++++++++++++ src/main/resources/mapper/pms/EamMapper.xml | 16 ++ .../mapper/scheduling/SchedulingMapper.xml | 85 ++++++++++ 10 files changed, 511 insertions(+) create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/entity/ClassesData.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingRecordData.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/mapper/SchedulingMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/service/SchedulingService.java create mode 100644 src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java create mode 100644 src/main/resources/mapper/scheduling/SchedulingMapper.xml diff --git a/src/main/java/com/xujie/sys/modules/pms/data/EamAdminData.java b/src/main/java/com/xujie/sys/modules/pms/data/EamAdminData.java index fd222e64..0c183fd1 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/EamAdminData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/EamAdminData.java @@ -29,6 +29,27 @@ public class EamAdminData extends QueryPage { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") private Date updateDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date date; + private String classesCode; + + public String getClassesCode() { + return classesCode; + } + + public void setClassesCode(String classesCode) { + this.classesCode = classesCode; + } + + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + // 更新人 private String updateBy; /** 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 new file mode 100644 index 00000000..f978eab6 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/controller/SchedulingController.java @@ -0,0 +1,98 @@ +package com.xujie.sys.modules.scheduling.controller; + +import com.xujie.sys.common.utils.R; +import com.xujie.sys.modules.scheduling.entity.ClassesData; +import com.xujie.sys.modules.scheduling.entity.SchedulingData; +import com.xujie.sys.modules.scheduling.entity.SchedulingRecordData; +import com.xujie.sys.modules.scheduling.service.SchedulingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/scheduling/Scheduling1") +public class SchedulingController { + @Autowired + SchedulingService schedulingService; + + /** + * @Description TODO + * @Title eamFamilySave + * @param data + * @author rq + * @date 2023/1/29 15:13 + * @return Object + * @throw + */ + @PostMapping(value="/saveClassesData") + @ResponseBody + public R saveClassesData(@RequestBody ClassesData data){ + System.out.println(data.toString()); + R r = schedulingService.saveClassesData(data); + return r; + } + + @PostMapping(value="/getSchedulingDataList") + @ResponseBody + public R getSchedulingDataList(@RequestBody ClassesData data){ + System.out.println(data.toString()); + List list = schedulingService.getSchedulingDataList(data); + return R.ok().put("rows", list); + } + + @PostMapping(value="/delScheduling") + @ResponseBody + public R delScheduling(@RequestBody ClassesData data){ + System.out.println(data.toString()); + int i = schedulingService.delScheduling(data); + return R.ok(); + } + + + @PostMapping(value="/getClassesList") + @ResponseBody + public R getClassesList(){ + List list = schedulingService.getClassesList(); + return R.ok().put("rows",list); + } + + + @PostMapping(value="/querySchedulingList") + @ResponseBody + public R querySchedulingList(@RequestBody SchedulingData data){ + List list = schedulingService.querySchedulingList(data); + return R.ok().put("rows",list); + } + + @PostMapping(value="/saveSchedulingHeader") + @ResponseBody + public R saveSchedulingHeader(@RequestBody SchedulingData data){ + System.out.println(data.toString()); + R r = schedulingService.saveSchedulingHeader(data); + return r; + } + + + @PostMapping(value="/querySaveSchedulingRecord") + @ResponseBody + public R querySaveSchedulingRecord(@RequestBody SchedulingData data){ + List list = schedulingService.querySaveSchedulingRecord(data); + return R.ok().put("rows", list); + } + + @PostMapping(value="/deleteSchedulingRecord") + @ResponseBody + public R deleteSchedulingRecord(@RequestBody SchedulingRecordData data){ + R r = schedulingService.deleteSchedulingRecord(data); + return r; + } + + + @PostMapping(value="/editSaveSchedulingRecord") + @ResponseBody + public R editSaveSchedulingRecord(@RequestBody SchedulingRecordData data){ + R r = schedulingService.editSaveSchedulingRecord(data); + return r; + } +} diff --git a/src/main/java/com/xujie/sys/modules/scheduling/entity/ClassesData.java b/src/main/java/com/xujie/sys/modules/scheduling/entity/ClassesData.java new file mode 100644 index 00000000..a916abbc --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/entity/ClassesData.java @@ -0,0 +1,15 @@ +package com.xujie.sys.modules.scheduling.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +@Data +public class ClassesData { + private String code; + private String description; + private String site; + private String bu; + private String buNo; + @TableField(exist = false) + private Integer id; +} 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 new file mode 100644 index 00000000..dce8274c --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingData.java @@ -0,0 +1,39 @@ +package com.xujie.sys.modules.scheduling.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xujie.sys.modules.pms.data.EamAdminData; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +@Data +public class SchedulingData { + private Integer id; + private String classesCode; + private String classesDescription; + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date date; + @TableField(exist = false) + private String bu; + private String site; + private String buNo; + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startDate; + @TableField(exist = false) + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endDate; + @TableField(exist = false) + private Object checkbox1; + @TableField(exist = false) + private Object checkbox2; + @TableField(exist = false) + private List peopleList; + +} diff --git a/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingRecordData.java b/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingRecordData.java new file mode 100644 index 00000000..b6ca4afd --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/entity/SchedulingRecordData.java @@ -0,0 +1,14 @@ +package com.xujie.sys.modules.scheduling.entity; + +import lombok.Data; + +@Data +public class SchedulingRecordData { + private Integer id; + private String adminId; + private String adminName; + private Integer headId; + private String isHoliday; + private Integer editId; + +} diff --git a/src/main/java/com/xujie/sys/modules/scheduling/mapper/SchedulingMapper.java b/src/main/java/com/xujie/sys/modules/scheduling/mapper/SchedulingMapper.java new file mode 100644 index 00000000..262fc1f7 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/mapper/SchedulingMapper.java @@ -0,0 +1,37 @@ +package com.xujie.sys.modules.scheduling.mapper; + +import com.xujie.sys.modules.scheduling.entity.ClassesData; +import com.xujie.sys.modules.scheduling.entity.SchedulingData; +import com.xujie.sys.modules.scheduling.entity.SchedulingRecordData; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface SchedulingMapper { + int insertClassesData(ClassesData data); + + List getSchedulingDataList(ClassesData data); + + int delScheduling(ClassesData data); + + int updateClassesData(ClassesData data); + + int getSchedulingDataCount(ClassesData data); + + List getClassesList(); + + List querySchedulingList(SchedulingData data); + + void saveSchedulingHeader(SchedulingData data); + + void saveSchedulingRecord(SchedulingRecordData schedulingRecordData); + + List querySaveSchedulingRecord(SchedulingData data); + + int deleteSchedulingRecord(SchedulingRecordData data); + + int editSaveSchedulingRecord(SchedulingRecordData data); +} diff --git a/src/main/java/com/xujie/sys/modules/scheduling/service/SchedulingService.java b/src/main/java/com/xujie/sys/modules/scheduling/service/SchedulingService.java new file mode 100644 index 00000000..1c6c6155 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/service/SchedulingService.java @@ -0,0 +1,29 @@ +package com.xujie.sys.modules.scheduling.service; + +import com.xujie.sys.common.utils.R; +import com.xujie.sys.modules.scheduling.entity.ClassesData; +import com.xujie.sys.modules.scheduling.entity.SchedulingData; +import com.xujie.sys.modules.scheduling.entity.SchedulingRecordData; + +import java.util.List; + +public interface SchedulingService { + R saveClassesData(ClassesData data); + + List getSchedulingDataList(ClassesData data); + + int delScheduling(ClassesData data); + + List getClassesList(); + + List querySchedulingList(SchedulingData data); + + R saveSchedulingHeader(SchedulingData data); + + List querySaveSchedulingRecord(SchedulingData data); + + R deleteSchedulingRecord(SchedulingRecordData data); + + R editSaveSchedulingRecord(SchedulingRecordData data); + +} 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 new file mode 100644 index 00000000..fdd90270 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/scheduling/service/impl/SchedulingServiceImpl.java @@ -0,0 +1,157 @@ +package com.xujie.sys.modules.scheduling.service.impl; + +import com.xujie.sys.common.utils.R; +import com.xujie.sys.modules.pms.data.EamAdminData; +import com.xujie.sys.modules.scheduling.entity.ClassesData; +import com.xujie.sys.modules.scheduling.entity.SchedulingData; +import com.xujie.sys.modules.scheduling.entity.SchedulingRecordData; +import com.xujie.sys.modules.scheduling.mapper.SchedulingMapper; +import com.xujie.sys.modules.scheduling.service.SchedulingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +@Service +public class SchedulingServiceImpl implements SchedulingService { + @Autowired + SchedulingMapper schedulingMapper; + @Override + public R saveClassesData(ClassesData data) { + if (!data.getBu().isEmpty()){ + String[] split = data.getBu().split("_"); + data.setSite(split[0]); + data.setBuNo(split[1]); + } + //判断请求 新增||更新 + if (data.getId()>0){ + int i = schedulingMapper.updateClassesData(data); + return R.ok(); + }else { + int count = schedulingMapper.getSchedulingDataCount(data); + if (count > 0) { + return R.error("该班次编码已存在,请勿重复添加"); + } + int i = schedulingMapper.insertClassesData(data); + return R.ok(); + } + + } + + @Override + public List getSchedulingDataList(ClassesData data) { + if (!data.getBu().isEmpty()){ + String[] split = data.getBu().split("_"); + data.setSite(split[0]); + data.setBuNo(split[1]); + } + List list = schedulingMapper.getSchedulingDataList(data); + return list; + } + + @Override + public int delScheduling(ClassesData data) { + int i = schedulingMapper.delScheduling(data); + return i; + } + + @Override + public List getClassesList() { + List list = schedulingMapper.getClassesList(); + return list; + } + + @Override + public List querySchedulingList(SchedulingData data) { + if (!Objects.isNull(data.getBu())&&!data.getBu().equals("")){ + data.setSite(data.getBu().split("_")[0]); + data.setBuNo(data.getBu().split("_")[1]); + } + + List list = schedulingMapper.querySchedulingList(data); + return list; + } + + @Override + @Transactional + public R saveSchedulingHeader(SchedulingData data) { + // 获得 site 和 bu + if (data.getBu().split("_").length >= 2 ) { + data.setSite(data.getBu().split("_")[0]); + data.setBuNo(data.getBu().split("_")[1]); + } 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))){ + System.out.println("进入周六判断"); + cal.add(Calendar.DATE, 1); + continue; + } + if ((day == Calendar.SUNDAY && !"true".equals(checkbox2))){ + System.out.println("进入周日判断"); + cal.add(Calendar.DATE, 1); + continue; + } + data.setDate(cal.getTime()); + + try { + //新增主表信息 + schedulingMapper.saveSchedulingHeader(data); + }catch (Exception e){ + System.out.println("进入catch逻辑"); + return R.error("保存失败,请检查是否存在重复的班次编码和日期"); + } + //设置子表参数 + SchedulingRecordData schedulingRecordData = new SchedulingRecordData(); + schedulingRecordData.setHeadId(data.getId()); + schedulingRecordData.setIsHoliday("N"); + List peopleList = data.getPeopleList(); + for (int i = 0;i querySaveSchedulingRecord(SchedulingData data) { + List list = schedulingMapper.querySaveSchedulingRecord(data); + return list; + } + + @Override + public R deleteSchedulingRecord(SchedulingRecordData data) { + int i = schedulingMapper.deleteSchedulingRecord(data); + return R.ok().put("msg", "删除成功"); + } + + @Override + public R editSaveSchedulingRecord(SchedulingRecordData data) { + if (data.getEditId()>0){ + int i = schedulingMapper.editSaveSchedulingRecord(data); + }else { + SchedulingRecordData schedulingRecordData = new SchedulingRecordData(); + schedulingRecordData.setHeadId(data.getHeadId()); + schedulingRecordData.setAdminId(data.getAdminId()); + schedulingRecordData.setAdminName(data.getAdminName()); + schedulingRecordData.setIsHoliday(data.getIsHoliday()); + schedulingMapper.saveSchedulingRecord(schedulingRecordData); + } + return R.ok(); + } + + +} diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index 498acec8..7c57d321 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -3634,6 +3634,22 @@ AND d.role_id = #{roleId} + + AND a.username IN ( + SELECT tpm_scheduling_record.admin_id + FROM tpm_scheduling + join tpm_scheduling_record on tpm_scheduling.id = tpm_scheduling_record.head_id + WHERE tpm_scheduling.date= #{date} and tpm_scheduling_record.isHoliday = 'N' + ) + + + AND a.username IN ( + SELECT tpm_scheduling_record.admin_id + FROM tpm_scheduling + join tpm_scheduling_record on tpm_scheduling.id = tpm_scheduling_record.head_id + WHERE tpm_scheduling.classes_code = #{classesCode} and tpm_scheduling_record.isHoliday = 'N' + ) + order by load_rate desc diff --git a/src/main/resources/mapper/scheduling/SchedulingMapper.xml b/src/main/resources/mapper/scheduling/SchedulingMapper.xml new file mode 100644 index 00000000..14f9e4c4 --- /dev/null +++ b/src/main/resources/mapper/scheduling/SchedulingMapper.xml @@ -0,0 +1,85 @@ + + + + + + + insert into tpm_classes(code,description,site,bu_no) + values (#{code}, #{description}, #{site}, #{buNo}) + + + insert into tpm_scheduling(site, bu_no,date,classes_code) + values (#{site},#{buNo},#{date},#{classesCode}) + + + insert into tpm_scheduling_record(admin_id,admin_name,head_id,isHoliday) + values (#{adminId}, #{adminName}, #{headId},#{isHoliday}) + + + update tpm_classes set description = #{description} + where code = #{code} and site = #{site} and bu_no = #{buNo} + + + update tpm_scheduling_record set isHoliday = #{isHoliday} + where id = #{id} + + + delete from tpm_classes + where code = #{code} and site = #{site} and bu_no = #{buNo} + + + delete from tpm_scheduling_record + where id = #{id} + + + + + + + \ No newline at end of file