qushaowei
2023-11-13 ffe9c08011d25c39880d107a5f3de249d309c1b4
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDeviceCalendarServiceImpl.java
@@ -6,11 +6,14 @@
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.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcShiftSub;
import org.jeecg.modules.mdc.entity.MdcVacationManagement;
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.IMdcVacationManagementService;
import org.jeecg.modules.mdc.vo.EquipmentCalendarVo;
import org.jeecg.modules.mdc.vo.MdcDeviceCalendarQueryVo;
import org.jeecg.modules.mdc.vo.MdcDeviceCalendarVo;
@@ -20,6 +23,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 +41,9 @@
    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    private IMdcShiftSubService mdcShiftSubService;
    @Resource
    private IMdcVacationManagementService mdcVacationManagementService;
    /**
     * 分页列表查询
@@ -178,4 +185,39 @@
        return new BigDecimal(shiftCount).multiply(new BigDecimal("8")).multiply(new BigDecimal("60"));
    }
    /**
     * 自动生成设备工作日历
     */
    @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);
        }
    }
}