From c659ff50dfce120d02fa906a33f7b4ab20ffddc2 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 11 十一月 2024 11:37:21 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 76 insertions(+), 32 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 5d3eec2..ac17d84 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 @@ -5,12 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; -import org.jeecg.modules.mdc.entity.MdcDeviceCalendar; -import org.jeecg.modules.mdc.entity.MdcShiftSub; +import org.jeecg.modules.mdc.entity.*; import org.jeecg.modules.mdc.mapper.MdcDeviceCalendarMapper; -import org.jeecg.modules.mdc.service.IMdcDeviceCalendarService; -import org.jeecg.modules.mdc.service.IMdcEquipmentService; -import org.jeecg.modules.mdc.service.IMdcShiftSubService; +import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.vo.EquipmentCalendarVo; import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo; import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo; @@ -20,6 +17,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -37,6 +35,12 @@ private IMdcEquipmentService mdcEquipmentService; @Resource private IMdcShiftSubService mdcShiftSubService; + + @Resource + private IMdcVacationManagementService mdcVacationManagementService; + + @Resource + private IMdcEquipmentOvertimeService mdcEquipmentOvertimeService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -110,44 +114,29 @@ */ @Override public List<MdcDeviceCalendarVo> listByEquipmentAndDate(String equipmentId, List<String> stringDates) { - List<MdcDeviceCalendarVo> result = new ArrayList<>(); try { - //鏌ヨ榛樿鐝埗 -// List<MdcDeviceCalendarVo> acquiesceShift = this.baseMapper.findAcquiesceShift(); - - 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); -// } + List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDates(equipmentId, stringDates); + if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) { + return mdcDeviceCalendarVos; + } else { + return null; } } catch (Exception e) { - e.printStackTrace(); + return null; } - - return result; } /** * 璁$畻瀹為檯鐝骇澶╂暟 * - * @param shiftSubId * @param equipmentId * @param validDate * @return */ @Override - public BigDecimal computeActualWorkDayCount(String shiftSubId, String equipmentId, String validDate) { + public BigDecimal computeActualWorkDayCount(String equipmentId, String validDate) { validDate = validDate.replaceAll("-", ""); - List<String> validDateList = this.baseMapper.computeActualWorkDayCount(shiftSubId, equipmentId, validDate); + List<String> validDateList = this.baseMapper.computeActualWorkDayCount(equipmentId, validDate); return new BigDecimal(validDateList.size()); } @@ -167,15 +156,70 @@ /** * 璁$畻鐝鏃堕棿 * - * @param shiftSubId * @param equipmentId * @param validDate * @return */ @Override - public BigDecimal computeShiftTimeCount(String shiftSubId, String equipmentId, String validDate) { - Integer shiftCount = this.baseMapper.computeShiftTimeCount(shiftSubId, equipmentId, validDate); - return new BigDecimal(shiftCount).multiply(new BigDecimal("8")).multiply(new BigDecimal("60")); + public BigDecimal computeShiftTimeCount(String equipmentId, String validDate) { + validDate = validDate.replaceAll("-", ""); + Integer shiftCount = this.baseMapper.computeShiftTimeCount(equipmentId, validDate); + return new BigDecimal(shiftCount); + } + + /** + * 鑷姩鐢熸垚璁惧宸ヤ綔鏃ュ巻 + */ + @Override + public void generateDeviceCalendar() { + // 鏆傚畾姣忓ぉ鏅氫笂11鐐规墽琛� + //鏌ヨ榛樿鐝埗 + List<MdcDeviceCalendarVo> acquiesceShift = this.baseMapper.findAcquiesceShift(); + // 鑾峰彇鏄庢棩鏃ユ湡 + String localDate = LocalDate.now().plusDays(1).toString(); + // 鑾峰彇璁惧鍒楄〃 + List<MdcEquipment> equipmentList = mdcEquipmentService.list(); + List<MdcDeviceCalendar> result = new ArrayList<>(); + for (MdcEquipment mdcEquipment : equipmentList) { + List<MdcDeviceCalendar> list = super.list(new LambdaQueryWrapper<MdcDeviceCalendar>().eq(MdcDeviceCalendar::getEquipmentId, mdcEquipment.getEquipmentId()).eq(MdcDeviceCalendar::getEffectiveDate, localDate.replaceAll("-", ""))); + if (list == null || list.isEmpty()) { + List<MdcVacationManagement> vacationManagementList = mdcVacationManagementService.list(new LambdaQueryWrapper<MdcVacationManagement>().eq(MdcVacationManagement::getEquipmentId, mdcEquipment.getEquipmentId()).eq(MdcVacationManagement::getVacationDate, localDate)); + if (vacationManagementList == null || vacationManagementList.isEmpty()) { + String effectiveDate = localDate.replaceAll("-", ""); + for (MdcDeviceCalendarVo mdcDeviceCalendarVo : acquiesceShift) { + MdcDeviceCalendar mdcDeviceCalendar = new MdcDeviceCalendar(); + mdcDeviceCalendar.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcDeviceCalendar.setEffectiveDate(effectiveDate); + mdcDeviceCalendar.setShiftId(mdcDeviceCalendarVo.getShiftId()); + mdcDeviceCalendar.setShiftSubId(mdcDeviceCalendarVo.getShiftSubId()); + result.add(mdcDeviceCalendar); + } + } + } + } + if (!result.isEmpty()) { + super.saveBatch(result); + } + } + + @Override + public MdcDeviceCalendar getFirstData(String equipmentId) { + return this.baseMapper.getFirstData(equipmentId); + } + + @Override + public List<MdcDeviceCalendarVo> listByEquipmentIdAndDate(String equipmentId, String date) { + List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = this.baseMapper.listByEquipmentAndDate(equipmentId, date); + if (mdcDeviceCalendarVos != null && !mdcDeviceCalendarVos.isEmpty()) { + for (MdcDeviceCalendarVo mdcDeviceCalendarVo : mdcDeviceCalendarVos) { + List<MdcEquipmentOvertime> list = mdcEquipmentOvertimeService.list(new LambdaQueryWrapper<MdcEquipmentOvertime>().eq(MdcEquipmentOvertime::getEquipmentId, mdcDeviceCalendarVo.getEquipmentId()).eq(MdcEquipmentOvertime::getTheDate, mdcDeviceCalendarVo.getEndDate())); + if (list != null && !list.isEmpty()) { + mdcDeviceCalendarVo.setOvertimeStartTime(list.get(0).getStartTime()); + mdcDeviceCalendarVo.setOvertimeEndTime(list.get(0).getEndTime()); + } + } + } + return mdcDeviceCalendarVos; } } -- Gitblit v1.9.3