lius
2023-07-12 650f5b86d2af51a0a3c7334703bdc2916a82a749
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java
@@ -1,19 +1,28 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.sf.saxon.expr.Component;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcVacationManagement;
import org.jeecg.modules.mdc.mapper.MdcVacationManagementMappper;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.service.IMdcVacationManagementService;
import org.jeecg.modules.mdc.util.DateUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
/**
@@ -34,7 +43,20 @@
    @Override
    public Boolean addVacation(MdcVacationManagement mdcVacationManagement) {
        return this.save(mdcVacationManagement);
        boolean result = false;
        String[] equipmentIds = mdcVacationManagement.getEquipmentIds().split(",");
        for (String equipmentId : equipmentIds) {
            MdcEquipment mdcEquipment = equipmentService.findEquipmentNameByEquipmentId(equipmentId);
            MdcVacationManagement vacationManagement = new MdcVacationManagement();
            BeanUtils.copyProperties(mdcVacationManagement, vacationManagement);
            vacationManagement.setEquipmentId(mdcEquipment.getEquipmentId());
            vacationManagement.setEquipmentName(mdcEquipment.getEquipmentName());
            boolean b = super.save(vacationManagement);
            if (b) {
                result = true;
            }
        }
        return result;
    }
    @Override
@@ -54,45 +76,73 @@
    @Override
    public IPage<MdcVacationManagement> pageList(String userId, Page page, HttpServletRequest req, MdcVacationManagement mdcVacationManagement) {
        //显示双休日
        Date vacationDate=mdcVacationManagement.getVacationDate();
        String type= mdcVacationManagement.getType();
        Calendar c=Calendar.getInstance();
        c.setTime(vacationDate);
        int day=c.get(Calendar.DAY_OF_WEEK)-1;
        System.out.println(day);
        if (day==6||day==7){
            System.out.println("双休日");
            mdcVacationManagement.setType("双休日");
        }
        //查询用户所拥有的设备信息
        List<String> equipmentIds=new ArrayList<>();
        if (StringUtils.isNotEmpty(mdcVacationManagement.getParentId()) && StringUtils.isEmpty(mdcVacationManagement.getEquipmentId())){
            if ("2".equals(mdcVacationManagement.getTypeTree())){
        List<String> equipmentIds = new ArrayList<>();
        if (StringUtils.isNotEmpty(mdcVacationManagement.getParentId()) && StringUtils.isEmpty(mdcVacationManagement.getEquipmentId())) {
            if ("2".equals(mdcVacationManagement.getTypeTree())) {
                //部门层级
                equipmentIds=equipmentService.getEquipmentIdsByDepart(userId,mdcVacationManagement.getParentId());
            }else {
                equipmentIds = equipmentService.getEquipmentIdsByDepart(userId, mdcVacationManagement.getParentId());
            } else {
                //产线层级
                equipmentIds=equipmentService.getEquipmentIdsProduction(userId,mdcVacationManagement.getParentId());
                equipmentIds = equipmentService.getEquipmentIdsProduction(userId, mdcVacationManagement.getParentId());
            }
        }else if (StringUtils.isNotEmpty(mdcVacationManagement.getEquipmentId())){
        } else if (StringUtils.isNotEmpty(mdcVacationManagement.getEquipmentId())) {
            //单台设备信息
            mdcVacationManagement.setMdcSectionIds(Collections.singletonList(mdcVacationManagement.getEquipmentId()));
        }else {
        } else {
            //查询用户所拥有的设备信息
            if ("2".equals(mdcVacationManagement.getTypeTree())){
            if ("2".equals(mdcVacationManagement.getTypeTree())) {
                //部门层级
                equipmentIds=equipmentService.getEquipmentIdsByDepart(userId,null);
            }else {
                equipmentIds=equipmentService.getEquipmentIdsProduction(userId,null);
                equipmentIds = equipmentService.getEquipmentIdsByDepart(userId, null);
            } else {
                equipmentIds = equipmentService.getEquipmentIdsProduction(userId, null);
            }
        }
        if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()){
        if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()) {
            mdcVacationManagement.setMdcSectionIds(equipmentIds);
        }
        if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()){
        if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()) {
            return null;
        }
        return this.baseMapper.pageList(page,mdcVacationManagement);
        return this.baseMapper.pageList(page, mdcVacationManagement);
    }
    /**
     * 生成双休日
     */
    @Override
    public void generateWeekDays() {
        MdcVacationManagement mdcVacationManagement = this.baseMapper.selectLastWeekDays();
        // 获取生成开始时间和结束时间
        LocalDate startDate;
        LocalDate endDate;
        if (mdcVacationManagement == null) {
            startDate = LocalDate.now();
            endDate = LocalDate.of(DateUtils.getYear(), DateUtils.getMonth(), DateUtils.getDayOfMonth());
        } else {
            LocalDate vacationDate = mdcVacationManagement.getVacationDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusMonths(1);
            startDate = vacationDate.with(TemporalAdjusters.firstDayOfMonth());
            endDate = vacationDate.with(TemporalAdjusters.lastDayOfMonth());
        }
        List<MdcVacationManagement> list = new ArrayList<>();
        // 获取开始时间和结束时间的中间双休日集合
        List<Date> dateList = DateUtils.getWeekDays(startDate, endDate);
        if (!dateList.isEmpty()) {
            // 获取所有设备
            List<MdcEquipment> equipmentList = equipmentService.list();
            for (Date date : dateList) {
                for (MdcEquipment mdcEquipment : equipmentList) {
                    MdcVacationManagement management = new MdcVacationManagement();
                    management.setEquipmentId(mdcEquipment.getEquipmentId());
                    management.setEquipmentName(mdcEquipment.getEquipmentName());
                    management.setVacationDate(date);
                    management.setVacationType("双休日");
                    management.setCreateBy("root");
                    list.add(management);
                }
            }
            super.saveBatch(list);
        }
    }
}