Ver código fonte

工时管理列表展示自己创建和自己参与审核的信息

buzhanyi 11 meses atrás
pai
commit
094ef7813a

+ 8 - 8
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/controller/SubmitUserTaskController.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.ankaibei.workFlow.common.core.annotation.DisableDataFilter;
 import com.ankaibei.workFlow.common.core.object.CallResult;
 import com.ankaibei.workFlow.common.core.object.ResponseResult;
+import com.ankaibei.workFlow.common.core.object.TokenData;
 import com.ankaibei.workFlow.common.flow.constant.FlowApprovalType;
 import com.ankaibei.workFlow.common.flow.constant.FlowConstant;
 import com.ankaibei.workFlow.common.flow.constant.FlowTaskStatus;
@@ -29,6 +30,7 @@ import com.ankaibei.workFlow.common.online.model.OnlineTable;
 import com.ankaibei.workFlow.common.online.object.ColumnData;
 import com.ankaibei.workFlow.common.online.service.OnlineOperationService;
 import com.ankaibei.workFlow.common.online.util.OnlineOperationHelper;
+import com.ankaibei.workFlow.webadmin.ankaibei.entity.ManHourInfoEntity;
 import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum;
 import com.ankaibei.workFlow.webadmin.ankaibei.enums.CostEnum;
 import com.ankaibei.workFlow.webadmin.ankaibei.mapper.CommunicationMapper;
@@ -271,13 +273,9 @@ public class SubmitUserTaskController {
         }
     }
 
-    public void updateAndTakeTask(
-            SubmitUserTaskVo subVo,
-            Task task,
-            FlowTaskComment flowTaskComment,
-            OnlineTable masterTable,
-            String masterDataId,
-            String datasourceId) {
+    public void updateAndTakeTask(SubmitUserTaskVo subVo, Task task, FlowTaskComment flowTaskComment, OnlineTable masterTable,
+                                  String masterDataId, String datasourceId) {
+        String userId = TokenData.takeFromRequest().getUserId();
         int flowStatus = FlowTaskStatus.APPROVING;
         if (flowTaskComment.getApprovalType().equals(FlowApprovalType.REFUSE)) {
             flowStatus = FlowTaskStatus.REFUSED;
@@ -310,7 +308,9 @@ public class SubmitUserTaskController {
             case PROJECTADD:
                 projectInfoMapper.updateProjectFlowStatus(flowStatus + "", subVo.getApplyDataId());
             case MANHOUR:
-                manHourMapper.updateManHourFlowStatus(flowStatus + "", subVo.getApplyDataId());
+                ManHourInfoEntity byId = manHourMapper.getById(subVo.getApplyDataId());
+                String ratifyUser = byId.getRatifyUser() + userId + ",";
+                manHourMapper.updateManHourFlowStatus(flowStatus + "", ratifyUser, subVo.getApplyDataId());
             case PROJECTTASKADD:
                 taskInfoMapper.updateTaskFlowStatus(flowStatus + "", subVo.getApplyDataId());
             case COMMUNICATION:

+ 14 - 2
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/entity/ManHourInfoEntity.java

@@ -46,8 +46,10 @@ public class ManHourInfoEntity {
      * 结束日期
      */
     private Date endDate;
-
-
+    /**
+     * 审批人
+     */
+    private String ratifyUser;
     /**
      * 进入流程后获取到的流程实例的id
      */
@@ -207,6 +209,16 @@ public class ManHourInfoEntity {
         this.endDate = endDate;
     }
 
+    @Basic
+    @Column(name = "ratify_user")
+    public String getRatifyUser() {
+        return ratifyUser;
+    }
+
+    public void setRatifyUser(String ratifyUser) {
+        this.ratifyUser = ratifyUser;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

+ 15 - 6
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/ManHourMapper.java

@@ -22,15 +22,24 @@ public interface ManHourMapper extends JpaRepository<ManHourInfoEntity, Integer>
 
 
     @Query(value = "SELECT man.man_id manId,man.project_user projrctUser,man.project_name " +
-            "projectName,man.man_hour manHour,man.create_date create_date,man.flow_task_status flowTaskStatus,man.process_instance_id processInstanceId ,man.process_definition_id processDefinitionId " +
-            "from man_hour_info man WHERE  1=1 and if( ?1 !='', man.flow_task_status = ?1 , 1=1) and if( ?2 !='', man.create_date >=?2 , 1=1)  and if( ?3 !='', man.end_date <=?3 , 1=1)  order by man.create_date desc "
-            , countQuery = "SELECT count(1) from man_hour_info man WHERE  1=1 and if( ?1 !='', man.flow_task_status = ?1 , 1=1) and if( ?2 !='', man.create_date >=?2 , 1=1)  and if( ?3 !='', man.end_date <=?3 , 1=1)"
+            "projectName,man.man_hour manHour,man.create_date createDate,man.flow_task_status flowTaskStatus, " +
+            "man.process_instance_id processInstanceId ,man.process_definition_id processDefinitionId " +
+            "from man_hour_info man WHERE " +
+            "if( ?1 !='', (man.create_user = ?1 or man.ratify_user like %?1% ) , 1=1) and " +
+            "if( ?2 !='', man.flow_task_status = ?2 , 1=1) and " +
+            "if( ?3 !='', man.create_date >=?3 , 1=1) and " +
+            "if( ?4 !='', man.end_date <=?4 , 1=1)  order by man.create_date desc"
+            , countQuery = "SELECT count(1) from man_hour_info man WHERE  1=1 and " +
+            "if( ?1 !='', (man.create_user = ?1 or man.ratify_user like %?1% ) , 1=1) and " +
+            "if( ?2 !='', man.flow_task_status = ?2 , 1=1) and " +
+            "if( ?3 !='', man.create_date >=?3 , 1=1) and " +
+            "if( ?4 !='', man.end_date <=?4 , 1=1)   "
             , nativeQuery = true)
-    Page<Map<String, String>> findManHourAll(Integer flowTaskStatus, Date createDate, String endDate, Pageable page);
+    Page<Map<String, String>> findManHourAll(String userId, Integer flowTaskStatus, Date createDate, String endDate, Pageable page);
 
     @Transactional
     @Modifying
-    @Query(value = "update man_hour_info SET flow_task_status = ?1 WHERE man_id = ?2", nativeQuery = true)
-    void updateManHourFlowStatus(String flowTaskStatus, Integer manId);
+    @Query(value = "update man_hour_info SET flow_task_status = ?1 ,ratify_user=?2 WHERE man_id = ?3", nativeQuery = true)
+    void updateManHourFlowStatus(String flowTaskStatus, String ratifyUser, Integer manId);
 
 }

+ 10 - 7
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/TaskInfoMapper.java

@@ -27,14 +27,17 @@ public interface TaskInfoMapper extends JpaRepository<TaskInfoEntity, Integer>,
      * @param page
      * @return
      */
-    @Query(value = "SELECT t.task_id taskId,t.target_task targetTask,t.task_priority taskPriority,t.task_participant taskParticipant," +
-            "t.start_time startTime,t.end_time endTime,t.task_status taskStatus,t.task_creator taskCreator,t.task_index taskIndex," +
-            "t.task_standard taskStandard,t.task_statements taskStatements,t.project_id projectId,t.process_instance_id processInstanceId," +
-            "t.flow_task_status flowTaskStatus,t.process_definition_id processDefinitionId  from task_info t WHERE " +
-            "if( ?1 !='', t.task_participant LIKE %?1% , 1=1) AND " +
-            "if( ?2 !='', t.target_task = ?2 , 1=1) AND " +
+    @Query(value = " SELECT t.task_id taskId,t.target_task targetTask,t.task_priority taskPriority,t.task_participant taskParticipant," +
+            " t.start_time startTime,t.end_time endTime,t.task_status taskStatus,t.task_creator taskCreator,t.task_index taskIndex," +
+            " t.task_standard taskStandard,t.task_statements taskStatements,t.project_id projectId,t.process_instance_id processInstanceId," +
+            " t.flow_task_status flowTaskStatus,t.process_definition_id processDefinitionId  from task_info t WHERE " +
+            " if( ?1 !='', (t.task_participant LIKE %?1% or t.task_creator= ?1 ), 1=1) AND " +
+            " if( ?2 !='', t.target_task = ?2 , 1=1) AND " +
             " if( ?3 !='', t.task_status = ?3 , 1=1) and is_delete='1' order by t.create_date desc ",
-            countQuery = "select count(1)from task_info t WHERE if( ?1 !='', t.task_participant = ?1 , 1=1) AND if( ?2 !='', t.target_task = ?2 , 1=1) AND if( ?3 !='', t.task_status = ?3 , 1=1)", nativeQuery = true)
+            countQuery = "select count(1)from task_info t WHERE " +
+                    " if( ?1 !='', (t.task_participant LIKE %?1% or t.task_creator= ?1 ), 1=1) AND " +
+                    " if( ?2 !='', t.target_task = ?2 , 1=1) AND " +
+                    " if( ?3 !='', t.task_status = ?3 , 1=1) and is_delete='1'", nativeQuery = true)
     Page<Map<String, String>> findTaskInfo(String userId, String targetTask, String taskStatus, Pageable page);
 
     /**

+ 20 - 14
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/ManHourServiceImpl.java

@@ -56,22 +56,34 @@ public class ManHourServiceImpl implements ManHourService {
 
     @Override
     public ResMsg findManHourAll(Integer pageIndex, Integer pageSize, ManHourInfoEntity manHourInfoEntity) {
+        //拿到用户的ID,只查询与本人有关的工时
+        String userId = TokenData.takeFromRequest().getUserId();
         Pageable page = PageRequest.of(pageIndex - 1, pageSize);
         String endDate = null;
         if (manHourInfoEntity.getEndDate() != null) {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
             endDate = dateFormat.format(manHourInfoEntity.getEndDate()) + " 23:59:59";
         }
-
-        Page<Map<String, String>> manHourAll = manHourMapper.findManHourAll(manHourInfoEntity.getFlowTaskStatus(), manHourInfoEntity.getCreateDate(), endDate, page);
+        Page<Map<String, String>> manHourAll = manHourMapper.findManHourAll(userId, manHourInfoEntity.getFlowTaskStatus(), manHourInfoEntity.getCreateDate(), endDate, page);
+        //匹配工时信息和项目信息
+        List<ManHourJobInfo> jobInfos = manHourJobMapper.findAll();
+        List<ProjectInfoEntity> projectInfos = projectInfoMapper.findAll();
         return new ResMsg(CodeEnum.OK, ResMsg.getMap(manHourAll.map(map -> {
             Map<Object, Object> map1 = new HashMap<>(map);
             String projectId = map.get("projectName");
             map1.put("manHour", map.get("manHour") + "天");
-            List<ManHourJobInfo> byManIdIs = manHourJobMapper.findManHourJobInfosByManIdIs(Integer.valueOf(map1.get("manId").toString()));
-            map1.put("manHourJob", byManIdIs);
-            Optional<ProjectInfoEntity> byId = projectInfoMapper.findById(Integer.valueOf(projectId));
-            map1.put("projectName", byId.orElse(null) != null ? byId.orElse(null).getProjectName() : null);
+            for (ManHourJobInfo jobInfo : jobInfos) {
+                if (jobInfo.getManId().equals(Integer.valueOf(map1.get("manId").toString()))) {
+                    map1.put("manHourJob", jobInfo);
+                    break;
+                }
+            }
+            for (ProjectInfoEntity projectInfo : projectInfos) {
+                if (Integer.valueOf(projectId).equals(projectInfo.getProjectId())) {
+                    map1.put("projectName", projectInfo.getProjectName());
+                    break;
+                }
+            }
             return map1;
         }).getContent(), manHourAll.getTotalElements()));
     }
@@ -110,7 +122,7 @@ public class ManHourServiceImpl implements ManHourService {
         stringObjectHashMap.put("create_date", manHourInfoEntity.getCreateDate());
         stringObjectHashMap.put("create_user", manHourInfoEntity.getCreateUser());
         ManHourInfoEntity save = manHourMapper.save(manHourInfoEntity);
-        stringObjectHashMap.put("man_id",save.getManId());
+        stringObjectHashMap.put("man_id", save.getManId());
         JSONObject masterData = (JSONObject) JSONObject.toJSON(stringObjectHashMap);
         Map<String, String> map = flowTaskStart.startAndTakeUserTaskSS(processDefinitionKey, flowTaskCommentDto, null, masterData, null, null).getData();
         manHourInfoEntity.setProcessInstanceId(map.get("processInstanceId"));
@@ -145,15 +157,9 @@ public class ManHourServiceImpl implements ManHourService {
     public ResMsg findManHourByID(Integer manId) {
         Optional<ManHourInfoEntity> byId = manHourMapper.findById(manId);
         List<ManHourJobInfo> byManIdIs = manHourJobMapper.findManHourJobInfosByManIdIs(manId);
-        //ObjectMapper objectMapper = new ObjectMapper();
-        //String json = new String();
-        //try {
-        //    json = objectMapper.writeValueAsString(byManIdIs);
-        //} catch (JsonProcessingException e) {
-        //    e.printStackTrace();
-        //}
         byId.get().setManHourJob(byManIdIs);
         return new ResMsg(CodeEnum.OK, byId);
     }
 
+
 }

+ 1 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/TaskInfoServiceImpl.java

@@ -62,7 +62,7 @@ public class TaskInfoServiceImpl implements TaskInfoService {
 
     @Override
     public ResMsg findTaskInfo(Integer pageIndex, Integer pageSize, TaskInfoEntity taskInfoEntity) {
-        //拿到用户的ID,根据用户
+        //拿到用户的ID,只查询与本人有关的任务
         String userId = TokenData.takeFromRequest().getUserId();
         //System.out.println("tokenData:===" + tokenData.toString());
         Pageable page = PageRequest.of(pageIndex - 1, pageSize);

+ 5 - 0
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/vo/ManHourInfoVo.java

@@ -47,6 +47,11 @@ public class ManHourInfoVo extends BaseVo {
      * 项目id
      */
     private String projectId;
+    /**
+     * 审批人
+     */
+    private String ratifyUser;
+
     /**
      * 进入流程后获取到的流程实例的id
      */