From deec8d86a5eee2fc9ec18f6749076ea20b9edc66 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期二, 17 十月 2023 17:42:29 +0800
Subject: [PATCH] 保养问题修改
---
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java | 136 ++++++++++++++++----------------------------
1 files changed, 50 insertions(+), 86 deletions(-)
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
index a99d97b..db49109 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
@@ -16,16 +15,11 @@
import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo;
import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.time.temporal.ChronoUnit;
import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* @Description: 璁惧宸ヤ綔鏃ュ巻琛�
@@ -50,17 +44,17 @@
List<String> equipmentIds = new ArrayList<>();
if (StringUtils.isNotEmpty(mdcDeviceCalendarQueryVo.getParentId()) && StringUtils.isEmpty(mdcDeviceCalendarQueryVo.getEquipmentId())) {
if ("2".equals(mdcDeviceCalendarQueryVo.getTypeTree())) {
- //閮ㄩ棬灞傜骇
+ // 閮ㄩ棬灞傜骇
equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcDeviceCalendarQueryVo.getParentId());
} else {
- //浜х嚎灞傜骇
+ // 浜х嚎灞傜骇
equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcDeviceCalendarQueryVo.getParentId());
}
} else if (StringUtils.isNotEmpty(mdcDeviceCalendarQueryVo.getEquipmentId())) {
- //鍗曞彴璁惧淇℃伅
+ // 鍗曞彴璁惧淇℃伅
mdcDeviceCalendarQueryVo.setEquipmentIdList(Collections.singletonList(mdcDeviceCalendarQueryVo.getEquipmentId()));
} else {
- //鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+ // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
if ("2".equals(mdcDeviceCalendarQueryVo.getTypeTree())) {
//閮ㄩ棬灞傜骇
equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
@@ -73,99 +67,69 @@
mdcDeviceCalendarQueryVo.setEquipmentIdList(equipmentIds);
}
+ if (mdcDeviceCalendarQueryVo.getEquipmentIdList() == null || mdcDeviceCalendarQueryVo.getEquipmentIdList().isEmpty()) {
+ return null;
+ }
+
return this.baseMapper.pageList(pageData, mdcDeviceCalendarQueryVo);
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean saveCalendar(EquipmentCalendarVo calendarVo) {
String[] equipmentIdList = calendarVo.getEquipmentId().split(",");
- //鐢熸晥鏃堕棿
- LocalDate takeEffectDate = calendarVo.getTakeEffectDate();
- //澶辨晥鏃堕棿
- LocalDate invalidDate = calendarVo.getInvalidDate();
- //澶勭悊鏄熸湡
- Map<String, String> map = new HashMap<>();
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getMonShiftId())) {
- map.put("1", calendarVo.getMonShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getTueShiftId())) {
- map.put("2", calendarVo.getTueShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getWedShiftId())) {
- map.put("3", calendarVo.getWedShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getThuShiftId())) {
- map.put("4", calendarVo.getThuShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getFriShiftId())) {
- map.put("5", calendarVo.getFriShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getSatShiftId())) {
- map.put("6", calendarVo.getSatShiftId());
- }
- if (org.apache.commons.lang.StringUtils.isNotBlank(calendarVo.getSunShiftId())) {
- map.put("7", calendarVo.getSunShiftId());
- }
- if (map.isEmpty()) {
- return false;
- }
+ List<String> dateList = calendarVo.getDateList();
+ List<MdcShiftSub> mdcShiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper<MdcShiftSub>().eq(MdcShiftSub::getShiftId, calendarVo.getShiftId()).eq(MdcShiftSub::getShiftSubStatus, "1"));
List<MdcDeviceCalendar> calendarList = new ArrayList<>();
- map.forEach((key, value) -> {
- List<MdcShiftSub> mdcShiftSubList = mdcShiftSubService.list(new LambdaQueryWrapper
- <MdcShiftSub>().eq(MdcShiftSub::getShiftId, value).eq(MdcShiftSub::getShiftSubStatus, "1"));
- List<LocalDate> meetDayOfWeekLocalDates = getMeetDayOfWeekLocalDates(takeEffectDate, invalidDate, key);
- if (!meetDayOfWeekLocalDates.isEmpty()) {
- List<String> dates = meetDayOfWeekLocalDates.stream().map(localDate -> localDate.format(DateTimeFormatter.BASIC_ISO_DATE)).collect(Collectors.toList());
- LambdaUpdateChainWrapper<MdcDeviceCalendar> lambdaUpdate = this.lambdaUpdate();
- lambdaUpdate.in(MdcDeviceCalendar::getEffectiveDate, dates).in(MdcDeviceCalendar::getEqumentId, Arrays.asList(equipmentIdList));
- lambdaUpdate.remove();
- List<MdcDeviceCalendar> calendars = handleMdcDeviceCalendar(dates, equipmentIdList, mdcShiftSubList, key);
- calendarList.addAll(calendars);
+ for (String equipmentId : equipmentIdList) {
+ for (String date : dateList) {
+ for (MdcShiftSub mdcShiftSub : mdcShiftSubList) {
+ this.baseMapper.delete(new LambdaQueryWrapper<MdcDeviceCalendar>().eq(MdcDeviceCalendar::getEquipmentId, equipmentId).eq(MdcDeviceCalendar::getEffectiveDate, date));
+ MdcDeviceCalendar mdcDeviceCalendar = new MdcDeviceCalendar();
+ mdcDeviceCalendar.setEffectiveDate(date);
+ mdcDeviceCalendar.setEquipmentId(equipmentId);
+ mdcDeviceCalendar.setShiftId(mdcShiftSub.getShiftId());
+ mdcDeviceCalendar.setShiftSubId(mdcShiftSub.getId());
+ calendarList.add(mdcDeviceCalendar);
+ }
}
- });
+ }
this.saveBatch(calendarList);
return true;
}
/**
- * 鑾峰彇涓�娈垫椂闂磋寖鍥村唴绗﹀悎鏄熸湡鍑犵殑鏃ユ湡闆嗗悎
+ * 鏌ヨ鐝埗鏁版嵁
*
- * @param startDate 寮�濮嬫椂闂�
- * @param endDate 缁撴潫鏃堕棿
- * @param workDate 鍛ㄥ嚑 1,2,3,4
+ * @param equipmentId
+ * @param stringDates
+ * @return
*/
- public static List<LocalDate> getMeetDayOfWeekLocalDates(LocalDate startDate, LocalDate endDate, String workDate) {
+ @Override
+ public List<MdcDeviceCalendarVo> listByEquipmentAndDate(String equipmentId, List<String> stringDates) {
+ List<MdcDeviceCalendarVo> result = new ArrayList<>();
+ try {
+ //鏌ヨ榛樿鐝埗
+ List<MdcDeviceCalendarVo> acquiesceShift = this.baseMapper.findAcquiesceShift();
- List<DayOfWeek> dayOfWeeks = Stream.of(workDate.split(","))
- .map(Integer::valueOf)
- .map(DayOfWeek::of)
- .collect(Collectors.toList());
-
- long distance = ChronoUnit.DAYS.between(startDate, endDate);
-
- return Stream.iterate(startDate, d -> d.plusDays(1))
- .limit(distance + 1)
- .filter(localDate -> dayOfWeeks.contains(localDate.getDayOfWeek()))
- .collect(Collectors.toList());
- }
-
- public List<MdcDeviceCalendar> handleMdcDeviceCalendar(List<String> dates, String[] equipment, List<MdcShiftSub> mdcShiftSubList, String weekNumber) {
- List<MdcDeviceCalendar> ds = new ArrayList<>();
- for (String date : dates) {
- for (String equipmentId : equipment) {
- for (MdcShiftSub temp : mdcShiftSubList) {
- MdcDeviceCalendar mdcDeviceCalendar = new MdcDeviceCalendar();
- if (org.apache.commons.lang.StringUtils.isNotEmpty(equipmentId)) {
- mdcDeviceCalendar.setEqumentId(equipmentId);
- }
- mdcDeviceCalendar.setShiftId(temp.getShiftId());
- mdcDeviceCalendar.setShiftSubId(temp.getId());
- mdcDeviceCalendar.setEffectiveDate(date);
- mdcDeviceCalendar.setWeekNumber(weekNumber);
- ds.add(mdcDeviceCalendar);
+ for (String stringDate : stringDates) {
+ List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDate(equipmentId, stringDate);
+ if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) {
+ result.addAll(mdcDeviceCalendarVos);
+ } else {
+ acquiesceShift.forEach(mdcDeviceCalendarVo -> {
+ mdcDeviceCalendarVo.setEquipmentId(equipmentId);
+ mdcDeviceCalendarVo.setEffectiveDate(stringDate);
+ });
+ // 璁剧疆榛樿鐝埗
+ result.addAll(acquiesceShift);
}
}
+ } catch (Exception e) {
+ e.printStackTrace();
}
- return ds;
+
+ return result;
}
+
}
--
Gitblit v1.9.3