Pārlūkot izejas kodu

设置特殊节假日

Min 1 gadu atpakaļ
vecāks
revīzija
d7b58d58be

+ 50 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/HolidaySettingController.java

@@ -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;
     }

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/HolidaySetting.java

@@ -54,6 +54,12 @@ public class HolidaySetting extends Model<HolidaySetting> {
     @TableField("target_depts")
     private String targetDepts;
 
+    @TableField(exist = false)
+    private String targetUsersNames;
+
+    @TableField(exist = false)
+    private String targetDeptsNames;
+
 
     @Override
     protected Serializable pkVal() {