Forráskód Böngészése

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

zhouyy 2 hónapja
szülő
commit
c74cdb231e

+ 31 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TaskController.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.management.platform.entity.*;
 import com.management.platform.entity.dto.TaskDto;
+import com.management.platform.mapper.TaskExecutorMapper;
+import com.management.platform.mapper.TaskMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.mapper.WxCorpInfoMapper;
 import com.management.platform.service.InformationService;
@@ -129,6 +131,35 @@ public class TaskController {
         return taskService.getTaskDetail(id,request);
     }
 
+
+/*    @RequestMapping("sendMsg")
+    public HttpRespMsg sendMsg(){
+        String token = request.getHeader("Token");
+        User user = userMapper.selectById(token);
+        List<WxCorpInfo> wxCorpInfos = wxCorpInfoMapper.selectList(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
+        for (WxCorpInfo wxCorpInfo : wxCorpInfos) {
+            LocalDate now = LocalDate.now();
+            List<Task> taskList = taskMapper.selectList(new QueryWrapper<Task>().eq("company_id", wxCorpInfo.getCompanyId()).ne("status",2).and(wrapper -> wrapper.eq("end_date", now).or().eq("end_date", now.plusDays(1))));
+            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", wxCorpInfo.getCompanyId()));
+            List<Integer> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList());
+            taskIds.add(-1);
+            List<TaskExecutor> taskExecutorList = taskExecutorMapper.selectList(new QueryWrapper<TaskExecutor>().in("task_id", taskIds));
+            for (Task task : taskList) {
+                List<String> list = taskExecutorList.stream().filter(tl -> tl.getTaskId().equals(task.getId())).map(TaskExecutor::getExecutorId).distinct().collect(Collectors.toList());
+                String corpUserid = userList.stream().filter(ul -> list.contains(ul.getId())).map(User::getCorpwxUserid).distinct().collect(Collectors.joining(","));
+                StringBuilder stringBuilder=new StringBuilder();
+                stringBuilder.append("您负责的任务["+task.getTaskName()+"]");
+                if(task.getEndDate().isEqual(now)){
+                    stringBuilder.append("今天");
+                }else if(task.getEndDate().isEqual(now.plusDays(1))){
+                    stringBuilder.append("一天后");
+                }
+                stringBuilder.append("截止,请抓紧时间完成!");
+                wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,corpUserid,stringBuilder.toString(),"task",null);
+            }
+        }
+        return new HttpRespMsg();
+    }*/
     /**
      * 定时修改过期的任务状态
      */

+ 43 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/task/TimingTask.java

@@ -101,6 +101,20 @@ public class TimingTask {
     @Resource
     private ProjectMapper projectMapper;
 
+    @Resource
+    private WxCorpInfoMapper wxCorpInfoMapper;
+
+    @Resource
+    private TaskMapper taskMapper;
+
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private TaskExecutorMapper taskExecutorMapper;
+
+    @Resource
+    private WxCorpInfoService wxCorpInfoService;
+
 
     private static final List<Integer> VALID_TOKEN_CHARS = new ArrayList<>();
     static {
@@ -128,4 +142,33 @@ public class TimingTask {
         }
     }
 
+    //每天8点45分 任务到期提醒
+    @Scheduled(cron = "0 45 8 ? * *")
+    private void taskDue() {
+        if (isDev) return;
+//        List<WxCorpInfo> wxCorpInfos = wxCorpInfoMapper.selectList(new QueryWrapper<WxCorpInfo>().eq("company_id", 5770));
+        List<WxCorpInfo> wxCorpInfos = wxCorpInfoMapper.selectList(null);
+        for (WxCorpInfo wxCorpInfo : wxCorpInfos) {
+            LocalDate now = LocalDate.now();
+            List<Task> taskList = taskMapper.selectList(new QueryWrapper<Task>().eq("company_id", wxCorpInfo.getCompanyId()).eq("status",0).and(wrapper -> wrapper.eq("end_date", now).or().eq("end_date", now.plusDays(1))));
+            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", wxCorpInfo.getCompanyId()));
+            List<Integer> taskIds = taskList.stream().map(Task::getId).distinct().collect(Collectors.toList());
+            taskIds.add(-1);
+            List<TaskExecutor> taskExecutorList = taskExecutorMapper.selectList(new QueryWrapper<TaskExecutor>().in("task_id", taskIds));
+            for (Task task : taskList) {
+                List<String> list = taskExecutorList.stream().filter(tl -> tl.getTaskId().equals(task.getId())).map(TaskExecutor::getExecutorId).distinct().collect(Collectors.toList());
+                String corpUserid = userList.stream().filter(ul -> list.contains(ul.getId())).map(User::getCorpwxUserid).distinct().collect(Collectors.joining(","));
+                StringBuilder stringBuilder=new StringBuilder();
+                stringBuilder.append("您负责的任务["+task.getTaskName()+"]");
+                if(task.getEndDate().isEqual(now)){
+                    stringBuilder.append("今天");
+                }else if(task.getEndDate().isEqual(now.plusDays(1))){
+                    stringBuilder.append("一天后");
+                }
+                stringBuilder.append("截止,请抓紧时间完成!");
+                wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,corpUserid,stringBuilder.toString(),"task",null);
+            }
+        }
+    }
+
 }

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

@@ -3408,8 +3408,8 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         //发送驳回通知消息
         User reporter = userMapper.selectById(fillUserId);
         String corpwxUserid = reporter.getCorpwxUserid();
-        //这些日报的原审核状态,状态为已通过则需要判断新字段,1则发消息,0则不发消息[日报状态都一致]
-        if(1 == oneReport.getState() && 1 == timeType.getReportChargeMsg()){
+        //这些日报的原审核状态,待审核的驳回或者 状态为已通过则需要判断新字段,1则发消息,0则不发消息[日报状态都一致]
+        if(oneReport.getState() != 1 || 1 == timeType.getReportChargeMsg()){
             //先判断钉钉
             if (reporter.getDingdingUserid() != null) {
                 projectMapper.selectById(oneReport.getProjectId()).getProjectName();

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 6 - 3
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue


+ 3 - 1
fhKeeper/formulahousekeeper/timesheet/src/permissions.js

@@ -155,7 +155,8 @@ const StringUtil = {
         equipmentCostManagement: false,
 
         // 任务
-        tasksReviewTaskFile: false
+        tasksReviewTaskFile: false,
+        viewFilesReviewedByOthers: false
         
     }
     // console.log(arr);
@@ -297,6 +298,7 @@ const StringUtil = {
         arr[i] == '奖金明细' ? obj.financialBonusDetails = true : ''
 
         arr[i] == '审核任务文件' ? obj.tasksReviewTaskFile = true : ''
+        arr[i] == '查看他人审核文件' ? obj.viewFilesReviewedByOthers = true : ''
     }
     return obj
   }

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/leave/list.vue

@@ -317,7 +317,7 @@
                 </el-table-column>
                 <el-table-column label="相关凭证" min-width="200">
                   <template slot-scope="scope">
-                    <el-button type="primary" size="mini" v-if="scope.row.fileUrlsList.length && scope.row.fileUrlsList[0].name" @click="clickToViewTheImage(scope.row.fileUrlsList)">点击查看</el-button>
+                    <el-button type="primary" size="mini" v-if="scope.row.fileUrlsList && scope.row.fileUrlsList.length && scope.row.fileUrlsList[0].name" @click="clickToViewTheImage(scope.row.fileUrlsList)">点击查看</el-button>
                   </template>
                 </el-table-column>
                 <el-table-column :label="$t('operation')" min-width="180" fixed="right" v-if="isAuditList && !isSyncData">

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -72,7 +72,7 @@
                     </div>
                 </el-form-item>
 
-                <el-form-item v-if="idx == 3">
+                <el-form-item v-if="idx == 3 && permissions.viewFilesReviewedByOthers">
                     <el-radio-group v-model="documentRadios" size="small" @input="documentRadioInput">
                         <el-radio-button label="待我审核"></el-radio-button>
                         <el-radio-button label="待他人审核"></el-radio-button>
@@ -1382,6 +1382,7 @@ import { getThemeColor } from '@/utils/commonMethod.js'
                             return {
                                 ...item,
                                 executorList: [{ executorName: item.creatorName }],
+                                id: item.taskId
                             }
                         })
                         // this.tablesTwoKey++