|
@@ -2,7 +2,10 @@ package com.management.platform.controller;
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.management.platform.entity.Department;
|
|
|
import com.management.platform.entity.HolidaySetting;
|
|
|
+import com.management.platform.entity.User;
|
|
|
+import com.management.platform.mapper.DepartmentMapper;
|
|
|
import com.management.platform.mapper.UserMapper;
|
|
|
import com.management.platform.service.HolidaySettingService;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
@@ -16,8 +19,11 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -37,11 +43,23 @@ public class HolidaySettingController {
|
|
|
private UserMapper userMapper;
|
|
|
@Resource
|
|
|
private HttpServletRequest request;
|
|
|
+ @Resource
|
|
|
+ private DepartmentMapper departmentMapper;
|
|
|
|
|
|
@RequestMapping("/holidaySetting")
|
|
|
public HttpRespMsg holidaySetting(HolidaySetting holidaySetting){
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ int count ;
|
|
|
+ if(holidaySetting.getId()==null){
|
|
|
+ count = holidaySettingService.count(new LambdaQueryWrapper<HolidaySetting>().eq(HolidaySetting::getCompanyId, companyId).eq(HolidaySetting::getHolidayDate, holidaySetting.getHolidayDate()));
|
|
|
+ }else {
|
|
|
+ count = holidaySettingService.count(new LambdaQueryWrapper<HolidaySetting>().eq(HolidaySetting::getCompanyId, companyId).ne(HolidaySetting::getId,holidaySetting.getId()).eq(HolidaySetting::getHolidayDate, holidaySetting.getHolidayDate()));
|
|
|
+ }
|
|
|
+ if(count>0){
|
|
|
+ msg.setError("当前日期已设置为特殊日期,请重新选择");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
holidaySetting.setCompanyId(companyId);
|
|
|
if(!holidaySettingService.saveOrUpdate(holidaySetting)){
|
|
|
msg.setError("验证失败");
|
|
@@ -53,7 +71,39 @@ public class HolidaySettingController {
|
|
|
public HttpRespMsg list(){
|
|
|
HttpRespMsg msg=new HttpRespMsg();
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ List<Department> departmentList = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
|
|
|
+ List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
|
List<HolidaySetting> holidaySettings = holidaySettingService.list(new LambdaQueryWrapper<HolidaySetting>().eq(HolidaySetting::getCompanyId, companyId));
|
|
|
+ holidaySettings.forEach(h->{
|
|
|
+ if(!StringUtils.isEmpty(h.getTargetUsers())){
|
|
|
+ String[] userSplit = h.getTargetUsers().split(",");
|
|
|
+ List<String> userNames=new ArrayList<>();
|
|
|
+ for (String userId : userSplit) {
|
|
|
+ Optional<User> first = userList.stream().filter(u -> u.getId().equals(userId)).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ userNames.add(first.get().getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(userNames.size()>0){
|
|
|
+ String collect = userNames.stream().collect(Collectors.joining(","));
|
|
|
+ h.setTargetUsersNames(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!StringUtils.isEmpty(h.getTargetDepts())){
|
|
|
+ String[] deptSplit = h.getTargetDepts().split(",");
|
|
|
+ List<String> deptNames=new ArrayList<>();
|
|
|
+ for (String deptId : deptSplit) {
|
|
|
+ Optional<Department> first = departmentList.stream().filter(d -> d.getDepartmentId().equals(Integer.valueOf(deptId))).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ deptNames.add(first.get().getDepartmentName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(deptNames.size()>0){
|
|
|
+ String collect = deptNames.stream().collect(Collectors.joining(","));
|
|
|
+ h.setTargetDeptsNames(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
msg.setData(holidaySettings);
|
|
|
return msg;
|
|
|
}
|