From f84d9e69907cb678150eaa6393fd74cf042fcca4 Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期四, 28 九月 2023 14:39:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into develop --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java | 101 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 99 insertions(+), 2 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java index f064d96..33fb1af 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcVacationManagementServiceImpl.java @@ -4,14 +4,24 @@ 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.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.entity.MdcStandardProcessDuration; 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.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; @@ -40,7 +50,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 @@ -96,7 +119,7 @@ */ @Override public void generateWeekDays() { - MdcVacationManagement mdcVacationManagement = this.baseMapper.selectOne(new LambdaQueryWrapper<MdcVacationManagement>().eq(MdcVacationManagement::getType, "鍙屼紤鏃�").orderByDesc(MdcVacationManagement::getVacationDate).last("limit 1")); + MdcVacationManagement mdcVacationManagement = this.baseMapper.selectLastWeekDays(); // 鑾峰彇鐢熸垚寮�濮嬫椂闂村拰缁撴潫鏃堕棿 LocalDate startDate; LocalDate endDate; @@ -108,7 +131,81 @@ 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); + } + + } + + @Override + public ModelAndView exportXls(String userId, MdcVacationManagement mdcVacationManagement) { + LambdaQueryWrapper<MdcVacationManagement> queryWrapper = new LambdaQueryWrapper<>(); + //鏌ヨ鐢ㄦ埛鎵�鎷ユ湁鐨勮澶囦俊鎭� + 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.getEquipmentIdsProduction(userId, mdcVacationManagement.getParentId()); + } + } else if (StringUtils.isNotEmpty(mdcVacationManagement.getEquipmentId())) { + //鍗曞彴璁惧淇℃伅 + mdcVacationManagement.setMdcSectionIds(Collections.singletonList(mdcVacationManagement.getEquipmentId())); + } else { + //鏌ヨ鐢ㄦ埛鎵�鎷ユ湁鐨勮澶囦俊鎭� + if ("2".equals(mdcVacationManagement.getTypeTree())) { + //閮ㄩ棬灞傜骇 + equipmentIds = equipmentService.getEquipmentIdsByDepart(userId, null); + } else { + equipmentIds = equipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()) { + mdcVacationManagement.setMdcSectionIds(equipmentIds); + } + if (mdcVacationManagement.getMdcSectionIds() == null || mdcVacationManagement.getMdcSectionIds().isEmpty()) { + return null; + } else { + queryWrapper.in(MdcVacationManagement::getEquipmentId, mdcVacationManagement.getMdcSectionIds()); + } + if (StringUtils.isNotEmpty(mdcVacationManagement.getEquipmentId())) { + queryWrapper.like(MdcVacationManagement::getEquipmentId, mdcVacationManagement.getEquipmentId()); + } + if (StringUtils.isNotEmpty(mdcVacationManagement.getEquipmentName())) { + queryWrapper.like(MdcVacationManagement::getEquipmentName, mdcVacationManagement.getEquipmentName()); + } + if (StringUtils.isNotEmpty(mdcVacationManagement.getStartTime()) && StringUtils.isNotEmpty(mdcVacationManagement.getEndTime())) { + queryWrapper.between(MdcVacationManagement::getVacationDate, mdcVacationManagement.getStartTime(), mdcVacationManagement.getEndTime()); + } + queryWrapper.orderByAsc(MdcVacationManagement::getVacationDate); + // Step.2 AutoPoi 瀵煎嚭Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + List<MdcVacationManagement> mdcStandardProcessDurations = this.baseMapper.selectList(queryWrapper); + // 瀵煎嚭鏂囦欢鍚嶇О + mv.addObject(NormalExcelConstants.FILE_NAME, "鍋囨湡绠$悊鍒楄〃"); + mv.addObject(NormalExcelConstants.CLASS, MdcVacationManagement.class); + //鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("鍋囨湡绠$悊鍒楄〃鏁版嵁", "瀵煎嚭浜�:" + user.getRealname(), "鍋囨湡绠$悊")); + mv.addObject(NormalExcelConstants.DATA_LIST, mdcStandardProcessDurations); + return mv; } } -- Gitblit v1.9.3