Przeglądaj źródła

企业微信同步改成前2天。
八爪鱼解决操作延期时企业名称为null的问题
项目工时阶段成本导出增加权限判断

seyason 3 lat temu
rodzic
commit
5bce41e1c1

+ 10 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserYearleaveSettingController.java

@@ -118,6 +118,16 @@ public class UserYearleaveSettingController {
         HashMap map = new HashMap();
         if (leaveCode == null) {
             List<LeaveType> typeList = leaveTypeMapper.selectList(new QueryWrapper<LeaveType>().eq("company_id", companyId));
+            if (typeList.size() == 0) {
+                //无数据,直接返回
+                map.put("leaveTypeList", typeList);
+                map.put("defaultLeaveType", new LeaveType());
+                map.put("total", 0L);
+                map.put("records", new ArrayList<>());
+                HttpRespMsg msg = new HttpRespMsg();
+                msg.data = map;
+                return msg;
+            }
             Optional<LeaveType> first = typeList.stream().filter(type -> type.getIsDefault() == 1).findFirst();
             LeaveType defaultType = null;
             if (first.isPresent()) {

+ 21 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -1752,12 +1752,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg getProjectStagesCost(Integer pageIndex, Integer pageSize, HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
-        Integer companyId = userMapper.selectById(token).getCompanyId();
+        User user = userMapper.selectById(token);
+        Integer companyId = user.getCompanyId();
         int startIndex = (pageIndex-1)*pageSize;
         int endIndex = pageSize*pageIndex;
         HttpRespMsg msg = new HttpRespMsg();
         Integer total = projectMapper.selectCount(new QueryWrapper<Project>().eq("company_id", companyId));
         List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, startIndex, endIndex);
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看阶段成本");
+        if (functionList.size() == 0) {
+            //去掉成本
+            record.forEach(re->{
+                re.getStageCostList().forEach(s->s.cost = 0.0);
+            });
+        }
         HashMap<String, Object> map = new HashMap<>();
         map.put("records", record);
         map.put("total", total);
@@ -1778,7 +1786,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Override
     public HttpRespMsg exportProjectStagesCost(HttpServletRequest request) {
         String token = request.getHeader("TOKEN");
-        Integer companyId = userMapper.selectById(token).getCompanyId();
+        User user = userMapper.selectById(token);
+        Integer companyId = user.getCompanyId();
         HttpRespMsg msg = new HttpRespMsg();
         List<ProjectWithStage> record = projectMapper.selectWithStage(companyId, null, null);
         //获取全部的列
@@ -1791,6 +1800,14 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         titleList.addAll(stageList);
         List<List<String>> dataList = new ArrayList<>();
         dataList.add(titleList);
+        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看阶段成本");
+        if (functionList.size() == 0) {
+            //去掉成本
+            record.forEach(re->{
+                re.getStageCostList().forEach(s->s.cost = 0.0);
+            });
+        }
+        DecimalFormat decimalFormat = new DecimalFormat("#0.0");
         //加完标题再增加数据行
         record.forEach(r->{
             List<String> data = new ArrayList<>();
@@ -1802,9 +1819,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 List<StageCost> stageCostList = r.stageCostList;
                 Optional<StageCost> first = stageCostList.stream().filter(s -> s.stageName.equals(curStage)).findFirst();
                 if (first.isPresent()) {
-                    data.add(first.get().workingTime+"");
+                    data.add(decimalFormat.format(first.get().workingTime)+(functionList.size() == 0?"":("h/¥"+decimalFormat.format(first.get().cost))));
                 } else {
-                    data.add("0");
+                    data.add("0h"+(functionList.size() == 0?"":"/¥0.0"));
                 }
             }
             dataList.add(data);

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -164,17 +164,18 @@ public class TimingTask {
 
 
 
-    //每天7点同步天的企业微信考勤考勤打卡记录
+    //每天7点同步前2天的企业微信考勤考勤打卡记录
     @Scheduled(cron = "0 0 7 ? * *")
     private void synCorpWXCardTime() {
         if (isDev) return;
         LocalDateTime yestoday = LocalDateTime.now().minusDays(1);
         yestoday = yestoday.withHour(0).withMinute(0).withSecond(0).withNano(0);
-
+        LocalDateTime yesBefore = yestoday.minusDays(1);
         List<TimeType> typeList = timeTypeMapper.selectList(new QueryWrapper<TimeType>().eq("sync_corpwx_time", 1));
         for (TimeType type : typeList) {
             Integer companyId = type.getCompanyId();
-            wxCorpInfoService.getUserCheckInDayData(companyId, null, yestoday, yestoday, false);
+            //改成同步前2天的,以防止有昨天补卡前天的情况
+            wxCorpInfoService.getUserCheckInDayData(companyId, null, yesBefore, yestoday, false);
         }
     }
 

+ 2 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/service/impl/CompanyServiceImpl.java

@@ -79,7 +79,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         company.setId(companyId);
         company.setExpirationDate(LocalDateTime.parse(date+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
         companyMapper.updateById(company);
-        saveLog("设置["+company.getCompanyName()+"]有效期为"+date);
+        String companyName = companyMapper.selectById(companyId).getCompanyName();
+        saveLog("设置["+companyName+"]有效期为"+date);
         return msg;
     }