Browse Source

提交相关代码

Lijy 4 months ago
parent
commit
1efc0443ba
18 changed files with 231 additions and 54 deletions
  1. 5 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java
  2. 2 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CustomService.java
  3. 55 3
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CustomServiceImpl.java
  4. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectApprovalController.java
  5. 4 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  6. 56 23
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskFilesController.java
  7. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectApproval.java
  8. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Task.java
  9. 7 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskFiles.java
  10. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/bo/QueryTaskChargePage.java
  11. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/TaskChargePageVO.java
  12. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskService.java
  13. 2 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java
  14. 42 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  15. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  16. 18 18
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
  17. 1 0
      fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json
  18. 26 2
      fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

+ 5 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java

@@ -85,6 +85,11 @@ public class CustomController {
         return customService.pinCutom(custom,request);
     }
 
+    @RequestMapping("getPrivilegedCustom")
+    public HttpRespMsg getPrivilegedCustom(HttpServletRequest request) {
+        return customService.getPrivilegedCustom(request);
+    }
+
     @RequestMapping("getAllCustom")
     public HttpRespMsg getAllCustom(HttpServletRequest request) {
         return customService.getAllCustom(request);

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CustomService.java

@@ -66,4 +66,6 @@ public interface CustomService extends IService<Custom> {
     HttpRespMsg pinCutom(Custom custom, HttpServletRequest request);
 
     HttpRespMsg undoPin(Custom custom, HttpServletRequest request);
+
+    HttpRespMsg getPrivilegedCustom(HttpServletRequest request);
 }

+ 55 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CustomServiceImpl.java

@@ -544,10 +544,34 @@ public class CustomServiceImpl extends ServiceImpl<CustomMapper, Custom> impleme
 
     @Override
     public HttpRespMsg getAllCustom(HttpServletRequest request) {
-        User user = userMapper.selectById(request.getHeader("token"));
-        Integer companyId = user.getCompanyId();
+//        User user = userMapper.selectById(request.getHeader("token"));
+//        Integer companyId = user.getCompanyId();
+//        HttpRespMsg msg = new HttpRespMsg();
+//        msg.setData(customMapper.selectList(new QueryWrapper<Custom>().eq("company_id", companyId)));
+//        return msg;
         HttpRespMsg msg = new HttpRespMsg();
-        msg.setData(customMapper.selectList(new QueryWrapper<Custom>().eq("company_id", companyId)));
+        User user = userMapper.selectById(request.getHeader("Token"));
+        boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部客户");
+        boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门客户");
+        List<Custom> list = new ArrayList<>();
+        Custom custom = new Custom();
+        custom.setCompanyId(user.getCompanyId());
+        custom.setIsDelete(0);
+        custom.setUserId(user.getId());
+        if (isAll) {
+            //查看全部客户
+            list = customMapper.getList(custom);
+//            i = customMapper.getTotal(custom);
+        } else if (isNotAll) {
+            //查看负责部门线索 找出所处部门下所有的负责人
+            list = customMapper.getList1(custom);
+//            i = customMapper.getTotal1(custom);
+        } else {
+            // 查看负责人为 自己 和 null的数据
+            list = customMapper.getList2(custom);
+//            i = customMapper.getTotal2(custom);
+        }
+        msg.data = list;
         return msg;
     }
 
@@ -931,6 +955,34 @@ public class CustomServiceImpl extends ServiceImpl<CustomMapper, Custom> impleme
         return respMsg;
     }
 
+    @Override
+    public HttpRespMsg getPrivilegedCustom(HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("Token"));
+        boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部客户");
+        boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门客户");
+        List<Custom> list = new ArrayList<>();
+        Custom custom = new Custom();
+        custom.setCompanyId(user.getCompanyId());
+        custom.setIsDelete(0);
+        custom.setUserId(user.getId());
+        if (isAll) {
+            //查看全部客户
+            list = customMapper.getList(custom);
+//            i = customMapper.getTotal(custom);
+        } else if (isNotAll) {
+            //查看负责部门线索 找出所处部门下所有的负责人
+            list = customMapper.getList1(custom);
+//            i = customMapper.getTotal1(custom);
+        } else {
+            // 查看负责人为 自己 和 null的数据
+            list = customMapper.getList2(custom);
+//            i = customMapper.getTotal2(custom);
+        }
+        msg.data = list;
+        return msg;
+    }
+
 
     private Custom setNull(Custom clue) {
         if (clue.getPlate1() == "") {

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

@@ -90,6 +90,7 @@ public class ProjectApprovalController {
         List<ProjectCategory> categoryList = projectCategoryService.list(new LambdaQueryWrapper<ProjectCategory>().eq(ProjectCategory::getCompanyId, companyId));
         //编辑重新提交修改状态为待审核
         projectApproval.setStatus(0);
+        projectApproval.setRejectInfo("");
         if(projectApproval.getId()==null){
             projectApproval.setCompanyId(companyId);
             projectApproval.setCreateDate(LocalDate.now());

+ 4 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -150,7 +150,7 @@ public class TaskController {
      * @return
      */
     @PostMapping("/auditFile")
-    public HttpRespMsg auditFile(@RequestParam("taskId")String taskId
+    public HttpRespMsg auditFile(@RequestParam("taskId")Integer taskId
             ,@RequestParam("projectId")String projectId
             ,@RequestParam("auditStatus")Integer auditStatus
             ,@RequestParam(value = "reason",required = false)String reason
@@ -1376,6 +1376,7 @@ public class TaskController {
                 }
                 if(1 == task.getFinalChargeStatus()){
                     task.setFinalChargeStatusText("审核通过");
+                    task.setFileChargeStatus(1);
                 } else if (0 == task.getFinalChargeStatus()) {
                     String name = "";
                     String statusText = "";
@@ -1384,9 +1385,9 @@ public class TaskController {
                     name = userIdNameMap.getOrDefault(tmpUserId,"");
                     switch (finalStatus)
                     {
-                        case 0:  statusText = "待审核";break;
+                        case 0:  statusText = "待审核"; task.setFileChargeStatus(0);break;
                         case 1:  statusText = "通过";break;
-                        case 2:  statusText = "驳回";break;
+                        case 2:  statusText = "驳回"; task.setFileChargeStatus(2);break;
                     }
                     task.setFinalChargeStatusText(statusText+"("+name+")");
                 }

+ 56 - 23
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskFilesController.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.CompanyDingdingService;
 import com.management.platform.service.ProjectDocumentService;
 import com.management.platform.service.WxCorpInfoService;
 import com.management.platform.task.SFTPAsyncUploader;
@@ -13,6 +14,7 @@ import com.management.platform.util.DocumentTypeUtil;
 import com.management.platform.util.FileUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.StringUtils;
@@ -27,7 +29,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.time.LocalDateTime;
-import java.util.HashMap;
 import java.util.List;
 import java.util.UUID;
 
@@ -71,6 +72,9 @@ public class TaskFilesController {
     @Resource
     private WxCorpInfoMapper wxCorpInfoMapper;
 
+    @Resource
+    private CompanyDingdingService companyDingdingService;
+
     /**
      * 获取该项目下的所有有效的文件列表
      * @param keyword
@@ -273,7 +277,13 @@ public class TaskFilesController {
 
     @RequestMapping(value="delete")
     public HttpRespMsg delFile(@RequestParam Integer id,HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
         TaskFiles taskFiles = taskFilesMapper.selectById(id);
+        User user = userMapper.selectById(request.getHeader("Token"));
+        if(!taskFiles.getCreatorId().equals(user.getId())){
+            msg.setError("您非文件上传人,无法删除");
+            return msg;
+        }
         if (taskFiles.getDocumentId() == null) {
             //仅当前任务上传的,需要把文件删掉
             File dir = new File(uploadPath);
@@ -285,7 +295,7 @@ public class TaskFilesController {
         taskFilesMapper.deleteById(id);
 
         //判断文件阶段做回退处理
-        User user = userMapper.selectById(request.getHeader("Token"));
+
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
         if(1 == timeType.getTaskFileCharge()){
             this.resetTaskChargeStatus(taskFiles.getTaskId());
@@ -312,7 +322,7 @@ public class TaskFilesController {
 //            wxCorpInfoService.sendWXCorpMsg(info,tmpUser.getCorpwxUserid(),content+",请及时审核",null, WxCorpInfoServiceImpl.TEXT_CARD_MSG_TASK_FILE_UPDATE);
 //        }
 
-        HttpRespMsg msg = new HttpRespMsg();
+
         msg.data=MessageUtils.message("file.deleteSuc");
         return msg;
     }
@@ -341,35 +351,58 @@ public class TaskFilesController {
     public HttpRespMsg getTaskFiles(Integer taskId,HttpServletRequest request) {
         User user = userMapper.selectById(request.getHeader("Token"));
         Task task = taskMapper.selectById(taskId);
-        HashMap<String,Object> map = new HashMap<>();
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+        String fileChargeStatusText = "";
+        int fileChargeStatus = 0;
         if(1 == timeType.getTaskFileCharge()){
-            if(1 == task.getFinalChargeStatus()){
-                map.put("fileChargeStatusText","审核通过");
-            } else if (0 == task.getFinalChargeStatus()) {
-                String name = "";
-                String statusText = "";
-                int finalStatus = 1==task.getChargeStage()?task.getChargeOneStatus():task.getChargeTwoStatus();
-                String userId = 1==task.getChargeStage()?task.getChargeOneId():task.getChargeTwoId();
-                User chargeUser = userMapper.selectById(userId);
-                if(null != chargeUser){
-                    name = chargeUser.getName();
-                }
-                switch (finalStatus)
-                {
-                    case 0:  statusText = "待审核";break;
-                    case 1:  statusText = "通过";break;
-                    case 2:  statusText = "驳回";break;
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(task.getChargeOneId())
+                    &&org.apache.commons.lang3.StringUtils.isNotBlank(task.getChargeTwoId())){
+                if(1 == task.getFinalChargeStatus()){
+                    fileChargeStatusText = "审核通过";
+                    fileChargeStatus = 1;
+                } else if (0 == task.getFinalChargeStatus()) {
+                    String name = "";
+                    String statusText = "";
+                    String userWxId = "";
+                    int finalStatus = 1==task.getChargeStage()?task.getChargeOneStatus():task.getChargeTwoStatus();
+                    String userId = 1==task.getChargeStage()?task.getChargeOneId():task.getChargeTwoId();
+                    User chargeUser = userMapper.selectById(userId);
+                    if(null != chargeUser){
+                        if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                            userWxId = chargeUser.getCorpwxRealUserid();
+                        }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                            userWxId = chargeUser.getDingdingUserid();
+                        }
+                        name = chargeUser.getName();
+                    }
+                    switch (finalStatus)
+                    {
+                        case 0:  statusText = "待审核";fileChargeStatus = 0;break;
+                        case 1:  statusText = "通过";break;
+                        case 2:  statusText = "驳回";fileChargeStatus = 2;break;
+                    }
+                    if(org.apache.commons.lang3.StringUtils.isBlank(userWxId)){
+                        fileChargeStatusText = statusText+"("+name+")";
+                    }else{
+                        fileChargeStatusText = statusText+"("+("$userName=" + userWxId + "$")+")";
+                    }
+
                 }
-                map.put("fileChargeStatusText",statusText+"("+name+")");
             }
         }
         List<TaskFiles> list = taskFilesMapper.selectList(new LambdaQueryWrapper<TaskFiles>()
                 .eq(TaskFiles::getTaskId,taskId)
         );
-        map.put("fileList",list);
+        if(CollectionUtils.isNotEmpty(list)){
+            for (TaskFiles taskFiles : list) {
+                taskFiles.setFileChargeStatusText(fileChargeStatusText);
+                taskFiles.setFileChargeStatus(fileChargeStatus);
+            }
+        }
         HttpRespMsg msg = new HttpRespMsg();
-        msg.data = map;
+        msg.data = list;
         return msg;
     }
 

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectApproval.java

@@ -277,6 +277,9 @@ public class ProjectApproval extends Model<ProjectApproval> {
     @TableField(exist = false)
     private Boolean isCheckedUser;
 
+    @TableField(exist = false)
+    private String auditStr;
+
 
     @Override
     protected Serializable pkVal() {

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Task.java

@@ -300,6 +300,9 @@ public class Task extends Model<Task> {
     @TableField(exist = false)
     private List<User> userList;
 
+    @TableField(exist = false)
+    /**0 待审核 1通过 2驳回*/
+    private int fileChargeStatus;
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskFiles.java

@@ -71,6 +71,13 @@ public class TaskFiles extends Model<TaskFiles> {
     @TableField("document_id")
     private Integer documentId;
 
+    @TableField(exist = false)
+    private String fileChargeStatusText;
+
+    /**0 待审核 1通过 2驳回*/
+    @TableField(exist = false)
+    private Integer fileChargeStatus;
+
 
     @Override
     protected Serializable pkVal() {

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/bo/QueryTaskChargePage.java

@@ -6,7 +6,8 @@ import lombok.Data;
 public class QueryTaskChargePage {
     private Integer deptId;
     private Integer projectId;
-    private Integer taskId;
+//    private Integer taskId;
+    private String taskName;
     private Integer pageIndex = 1;
     private Integer pageSize;
     private String userId;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/TaskChargePageVO.java

@@ -21,4 +21,6 @@ public class TaskChargePageVO {
     private String finalChargeName;
     private String executorId;
     private List<TaskExecutor> executorList;
+    private int fileChargeStatus;
+    private Integer groupId;
 }

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

@@ -55,7 +55,7 @@ public interface TaskService extends IService<Task> {
 
     HttpRespMsg getTaskByUserId(String startDate, String endDate, String userId, Integer pageIndex, Integer pageSize);
 
-    HttpRespMsg auditFile(String taskId, String projectId, Integer auditStatus, String reason, HttpServletRequest request);
+    HttpRespMsg auditFile(Integer taskId, String projectId, Integer auditStatus, String reason, HttpServletRequest request);
 
     HttpRespMsg getFileRejectReason(String taskId, HttpServletRequest request);
 

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

@@ -171,6 +171,8 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                 }else {
                     r.setIsFirstCheckUser(false);
                 }
+                Optional<User> userOptional = userList.stream().filter(u -> u.getId().equals(first1.get().getUserId())).findFirst();
+                userOptional.ifPresent(value -> r.setAuditStr(value.getName()));
             }else r.setIsFirstCheckUser(false);
 
             if (first2.isPresent()){

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

@@ -36,6 +36,7 @@ import java.io.*;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -96,6 +97,9 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
     @Resource
     private TaskExecutorMapper taskExecutorMapper;
 
+    @Resource
+    private TaskCommentMapper taskCommentMapper;
+
     @Override
     public HttpRespMsg getExecutorPanel(Integer projectId) {
         HttpRespMsg msg = new HttpRespMsg();
@@ -779,7 +783,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
 
     @Override
     @Transactional
-    public HttpRespMsg auditFile(String taskId, String projectId, Integer auditStatus, String reason, HttpServletRequest request) {
+    public HttpRespMsg auditFile(Integer taskId, String projectId, Integer auditStatus, String reason, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
         //获取该任务的文件审核阶段
@@ -803,6 +807,17 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         .eq(Task::getId,taskId)
                 );
             }
+            //添加动态消息
+            String content = user.getName()+"审核通过了任务:"+task.getName();
+            TaskComment comment =  new TaskComment();
+            comment.setTaskId(taskId);
+            comment.setUserId(user.getId());
+            comment.setContent(content);
+            comment.setCreateTime(LocalDateTime.now());
+            comment.setUserColor(user.getColor());
+            comment.setUserName(user.getName());
+            taskCommentMapper.insert(comment);
+
         } else if (2 == auditStatus) {
             //驳回
             WxCorpInfo info = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
@@ -842,7 +857,15 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                     }
                 }
             }
-
+            String content = user.getName()+"审核驳回了任务:"+task.getName();
+            TaskComment comment =  new TaskComment();
+            comment.setTaskId(taskId);
+            comment.setUserId(user.getId());
+            comment.setContent(content);
+            comment.setCreateTime(LocalDateTime.now());
+            comment.setUserColor(user.getColor());
+            comment.setUserName(user.getName());
+            taskCommentMapper.insert(comment);
         }
 
         return msg;
@@ -881,6 +904,11 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         }
 
         List<TaskChargePageVO> taskChargePage = taskMapper.getTaskChargePage(queryBO, branchDepartment);
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+        List<User> users = userMapper.selectList(new QueryWrapper<User>().eq("company_id",user.getCompanyId()));
+        Map<String, User> companyUserMap = users.stream().collect(Collectors.toMap(User::getId, t -> t));
+
         if(CollectionUtils.isNotEmpty(taskChargePage)){
             List<Integer> collect = taskChargePage.stream()
                     .map(TaskChargePageVO::getTaskId).distinct().collect(Collectors.toList());
@@ -891,6 +919,18 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                 List<TaskExecutor> executorList = taskExecutorList.stream()
                         .filter(te -> te.getTaskId().equals(t.getTaskId())&&te.getExecutorId()!=null).collect(Collectors.toList());
                 t.setExecutorList(executorList);
+                String userWxId = "";
+                User tmpUser = companyUserMap.get(t.getFinalChargeId());
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    userWxId = tmpUser.getCorpwxRealUserid();
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    userWxId = tmpUser.getDingdingUserid();
+                }
+                if(StringUtils.isNotBlank(userWxId)){
+                    t.setFinalChargeName("$userName=" + userWxId + "$");
+                }
+                int finalStatus = 1==t.getChargeStage()?t.getChargeOneStatus():t.getChargeTwoStatus();
+                t.setFileChargeStatus(finalStatus);
             });
         }
 

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -15,7 +15,7 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:17089/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://47.101.180.183:17089/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     password: P011430@Huoshi*
     hikari:

+ 18 - 18
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -414,7 +414,7 @@
         from
             (
                 select tf.task_id,tf.creator_id,task.name as taskName,task.charge_stage
-                     ,task.charge_one_id,task.charge_one_status,task.executor_id
+                     ,task.charge_one_id,task.charge_one_status,task.executor_id,task.group_id
                      ,task.charge_two_id,task.charge_two_status,p.id as projectId,p.project_name,
                     case task.charge_stage
                         when 1 then task.charge_one_id
@@ -427,14 +427,14 @@
                 <where>
                     task.task_status = 0 and task.final_charge_status = 0
                     and case task.charge_stage
-                    when 1 then p.incharger_id = task.charge_one_id
-                    when 2 then p.incharger_id = task.charge_two_id
+                    when 1 then (p.incharger_id = task.charge_one_id and task.charge_one_status != 2)
+                    when 2 then (p.incharger_id = task.charge_two_id and task.charge_two_status != 2)
                     end
                     <if test="queryBO.projectId != null">
                         and tf.project_id = #{queryBO.projectId}
                     </if>
-                    <if test="queryBO.taskId != null">
-                        and tf.task_id = #{queryBO.taskId}
+                    <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                        and task.name like concat('%',#{queryBO.taskName},'%')
                     </if>
                     <if test="deptIds!=null and deptIds.size()>0">
                         and p.dept_id in
@@ -452,7 +452,7 @@
         from
             (
                 select tf.task_id,tf.creator_id,task.name as taskName,task.charge_stage
-                     ,task.charge_one_id,task.charge_one_status,task.executor_id
+                     ,task.charge_one_id,task.charge_one_status,task.executor_id,task.group_id
                      ,task.charge_two_id,task.charge_two_status,project.id as projectId,project.project_name,
                     case task.charge_stage
                         when 1 then task.charge_one_id
@@ -467,14 +467,14 @@
                 <where>
                     task.task_status = 0 and task.final_charge_status = 0
                     and case task.charge_stage
-                    when 1 then d.manager_id = task.charge_one_id
-                    when 2 then d.manager_id = task.charge_two_id
+                    when 1 then (d.manager_id = task.charge_one_id and task.charge_one_status != 2)
+                    when 2 then (d.manager_id = task.charge_two_id and task.charge_two_status != 2)
                     end
                     <if test="queryBO.projectId != null">
                         and tf.project_id = #{queryBO.projectId}
                     </if>
-                    <if test="queryBO.taskId != null">
-                        and tf.task_id = #{queryBO.taskId}
+                    <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                        and task.name like concat('%',#{queryBO.taskName},'%')
                     </if>
                     <if test="deptIds!=null and deptIds.size()>0">
                         and project.dept_id in
@@ -512,14 +512,14 @@
         <where>
             task.task_status = 0 and task.final_charge_status = 0
             and case task.charge_stage
-            when 1 then p.incharger_id = task.charge_one_id
-            when 2 then p.incharger_id = task.charge_two_id
+            when 1 then (p.incharger_id = task.charge_one_id and task.charge_one_status != 2)
+            when 2 then (p.incharger_id = task.charge_two_id and task.charge_two_status != 2)
             end
             <if test="queryBO.projectId != null">
                 and tf.project_id = #{queryBO.projectId}
             </if>
-            <if test="queryBO.taskId != null">
-                and tf.task_id = #{queryBO.taskId}
+            <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                and task.task_name like concat('%',#{queryBO.taskName},'%')
             </if>
             <if test="deptIds!=null and deptIds.size()>0">
                 and p.dept_id in
@@ -552,14 +552,14 @@
         <where>
             task.task_status = 0 and task.final_charge_status = 0
             and case task.charge_stage
-            when 1 then d.manager_id = task.charge_one_id
-            when 2 then d.manager_id = task.charge_two_id
+            when 1 then (d.manager_id = task.charge_one_id and task.charge_one_status != 2)
+            when 2 then (d.manager_id = task.charge_two_id and task.charge_two_status != 2)
             end
             <if test="queryBO.projectId != null">
                 and tf.project_id = #{queryBO.projectId}
             </if>
-            <if test="queryBO.taskId != null">
-                and tf.task_id = #{queryBO.taskId}
+            <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                and task.task_name like concat('%',#{queryBO.taskName},'%')
             </if>
             <if test="deptIds!=null and deptIds.size()>0">
                 and project.dept_id in

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -693,6 +693,7 @@
   "find": "查找",
   "ticketnumber": "票据编号",
   "dismissreason": "驳回原因",
+  "auditStr": "待审核人",
   "cha-kan": "查看",
   "detailsofReimbursementvoucher": "报销凭证详情",
   "nodocuments": "暂无单据",

+ 26 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -88,9 +88,10 @@
                             </template>
                         </el-table-column>
                         <el-table-column prop="rejectInfo" :label="$t('dismissreason')" min-width="250" ></el-table-column>
+                        <el-table-column prop="auditStr" :label="$t('auditStr')" min-width="100" ></el-table-column>
                         <el-table-column :label="$t('operation')" :width="300" align="left" fixed="right">
                             <template slot-scope="scope">
-                                <el-button size="mini" type="primary" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck)&&scope.row.status!=1" :disabled="scope.row.status!==-1&& scope.row.status!==2 "  @click="handleAdd(scope.$index, scope.row)">{{'编辑'}}</el-button>
+                                <el-button size="mini" type="primary" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck)&&scope.row.status!=1" :disabled="(scope.row.status!==-1&& scope.row.status!==2) || user.id!== scope.row.creatorId"    @click="handleAdd(scope.$index, scope.row)">{{'编辑'}}</el-button>
                                 <el-button size="mini" type="success" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="check(scope.row,1)" >{{'通过'}}</el-button>
                                 <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="showDenyDialog(scope.row,2)">{{'驳回'}}</el-button>
                                 <!-- <el-button size="mini" v-if="(permissions.projectApprovalEdit ||permissions.projectApprovalCheck) && scope.row.status==-1" @click="check(scope.row,3)">{{'撤销'}}</el-button> -->
@@ -274,7 +275,7 @@
                         <div slot="footer" class="dialog-footer;">
                             <el-button @click.native="deletePro(1, addForm)" v-if="(permissions.projectApprovalEdit) && addForm.id" style="float:left">{{ $t('btn.delete') }}</el-button>
                             <el-button @click.native="addFormVisible = false">{{ $t('btn.cancel') }}</el-button>
-                            <el-button type="primary" :disabled="addForm.status != -1" @click="tempSave" :loading="addLoading">{{ $t('btn.temporaryStorage') }}</el-button>
+                            <el-button type="primary" :disabled="addForm.status != -1 && addForm.status != 2 " @click="tempSave" :loading="addLoading">{{ $t('btn.temporaryStorage') }}</el-button>
                             <el-button type="primary" @click="submitInsert" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
                         </div>
                     </el-dialog>
@@ -599,6 +600,17 @@ methods: {
     submitInsert() {
         this.$refs.form1.validate(valid => {
             if (valid) {
+                // 在提交前检查审核人
+                for (let i = 0; i < this.pointList.length; i++) {
+                    // 在提交前检查审核人
+                    if (this.pointList[i].userId === "") {
+                        this.$message({
+                            message: "审核人不能为空", // 提示信息
+                            type: "warning" // 提示类型
+                        });
+                        return; // 终止后续操作
+                    }
+                }
                 this.addLoading = true;
                 let targetData = {};
                 targetData.projectName= this.addForm.name
@@ -710,6 +722,18 @@ methods: {
     tempSave() {
         this.$refs.form1.validate(valid => {
             if (valid) {
+                // 在提交前检查审核人
+                for (let i = 0; i < this.pointList.length; i++) {
+                    // 在提交前检查审核人
+                    if (this.pointList[i].userId === "") {
+                        this.$message({
+                            message: "审核人不能为空", // 提示信息
+                            type: "warning" // 提示类型
+                        });
+                        return; // 终止后续操作
+                    }
+                }
+
                 this.addLoading = true;
                 let targetData = {};
                 targetData.projectName= this.addForm.name