Browse Source

修改景昱
设置特殊节假日

Min 1 năm trước cách đây
mục cha
commit
2eacb3eec5

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -210,7 +210,7 @@ public class ReportController {
      * date 日期 格式yyyy-mm-dd
      */
     @RequestMapping("/getReportFillStatus")
-    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId) {
+    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId)throws Exception {
         return reportService.getReportFillStatus(startDate, endDate, userId, request);
     }
 

+ 5 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TimeTypeController.java

@@ -1,14 +1,14 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.TimeAutoExclude;
-import com.management.platform.entity.TimeType;
-import com.management.platform.entity.User;
-import com.management.platform.entity.WxCorpInfo;
+import com.management.platform.entity.*;
 import com.management.platform.mapper.TimeAutoExcludeMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
+import com.management.platform.service.DepartmentService;
+import com.management.platform.service.HolidaySettingService;
 import com.management.platform.service.TimeTypeService;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -56,7 +56,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg cancelReport(String userId, String reportIds, HttpServletRequest request);
 
-    HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request);
+    HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request)throws Exception;
 
     HttpRespMsg listByStateProfession(Integer state, Integer departmentId, Integer projectId, String date, HttpServletRequest request);
 

+ 43 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -13,6 +13,7 @@ import com.management.platform.service.*;
 import com.management.platform.util.*;
 import com.management.platform.webservice.po.*;
 import com.management.platform.webservice.po.SapPeriod;
+import lombok.SneakyThrows;
 import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
@@ -4123,11 +4124,49 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return msg;
     }
 
+    @SneakyThrows
     @Override
-    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request) {
+    public HttpRespMsg getReportFillStatus(String startDate, String endDate, String userId, HttpServletRequest request)throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
-        msg.data = reportMapper.getReportFillStatus(startDate, endDate, userId);
-
+        User user = userMapper.selectById(request.getHeader("token"));
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId()));
+        List<UserCustom> userCustomList = userCustomMapper.selectList(new LambdaQueryWrapper<UserCustom>().eq(UserCustom::getCompanyId, user.getCompanyId()));
+        List<UserFvTime> userFvTimeList = userFvTimeMapper.selectList(new LambdaQueryWrapper<UserFvTime>().between(UserFvTime::getWorkDate, startDate, endDate));
+        List<Map<String, Object>> reportFillStatus = reportMapper.getReportFillStatus(startDate, endDate, userId);
+        //针对景昱 5978 校验填报工时是否超过考勤
+        if(user.getCompanyId().equals(5978)){
+            for (Map<String, Object> map : reportFillStatus) {
+                map.put("exceedCardTime",0);
+                Optional<UserFvTime> first = userFvTimeList.stream().filter(u -> u.getWorkDate().isEqual(LocalDate.parse(String.valueOf(map.get("createDate")), df)) && u.getUserId().equals(userId)).findFirst();
+                if(first.isPresent()){
+                    if(first.get().getWorkHours()!=null){
+                        map.put("cardTime",first.get().getWorkHours());
+                        Optional<User> optional = userList.stream().filter(u -> u.getId().equals(userId)).findFirst();
+                        User targetUser = optional.get();
+                        List<String> customList = userCustomList.stream().map(UserCustom::getName).collect(Collectors.toList());
+                        if(customList.size()>0&&customList.contains("是否有加班费")){
+                            int index = customList.indexOf("是否有加班费");
+                            targetUser.getPlate1();
+                            String getter="getPlate"+(index+1);
+                            Class<User> aClass = User.class;
+                            Method method = aClass.getMethod(getter);
+                            String invoke = (String) method.invoke(targetUser);
+                            if(invoke.equals("有加班费")){
+                                if(!(Double.valueOf(String.valueOf(map.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
+                                    map.put("exceedCardTime",1);
+                                }
+                            }else if(invoke.equals("无加班费")){
+                                if((Double.valueOf(String.valueOf(map.get("workingTime")))<first.get().getWorkHours())){
+                                    map.put("exceedCardTime",1);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        msg.data =reportFillStatus;
         return msg;
     }
 
@@ -4417,7 +4456,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             Method method = aClass.getMethod(getter);
                             String invoke = (String) method.invoke(targetUser);
                             if(invoke.equals("有加班费")){
-                                if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(first.get().getWorkHours()))){
+                                if(!(Double.valueOf(String.valueOf(data.get("workingTime"))).equals(Double.valueOf(first.get().getWorkHours())))){
                                     map.put("exceedCardTime",1);
                                 }
                             }else if(invoke.equals("无加班费")){

+ 1 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -838,9 +838,8 @@
         group by p.id,u.id,tg.id
     </select>
     <select id="getReportFillStatus" resultType="java.util.Map">
-        SELECT DATE_FORMAT(r.create_date,'%Y-%m-%d') AS createDate, IF (MAX(r.state) = 1, MIN(r.state), MAX(r.state)) AS state,IF(ufv.work_hours &lt; r.working_time,1,0) AS exceedCardTime
+        SELECT DATE_FORMAT(r.create_date,'%Y-%m-%d') AS createDate, IF (MAX(r.state) = 1, MIN(r.state), MAX(r.state)) AS state,sum(r.working_time) as workingTime
         FROM report r
-        LEFT JOIN user_fv_time ufv ON ufv.work_date=r.create_date AND ufv.user_id=r.creator_id
         WHERE r.create_date BETWEEN #{startDate} AND #{endDate} AND r.creator_id = #{userId} GROUP BY r.create_date
     </select>
     <select id="getUserDailyWorkTime" resultType="java.util.Map">