Bläddra i källkod

Merge remote-tracking branch 'origin/master' into master

yangyj 1 år sedan
förälder
incheckning
b6dcc8b019

+ 4 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchiveTaskPageVO.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 @Data
 public class ArchiveTaskPageVO implements Serializable {
@@ -38,4 +39,7 @@ public class ArchiveTaskPageVO implements Serializable {
     @ApiModelProperty(value = "电签状态")
     private String eVisaStatus;
 
+    @ApiModelProperty(value = "签字人员集合")
+    private List<Object> taskApproveUserNamesList;
+
 }

+ 21 - 12
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileTaskController.java

@@ -207,7 +207,6 @@ public class ArchiveFileTaskController extends BladeController {
                 params.add(dto.getProjectIdValue());
             }
         }
-
         if (ObjectUtil.isNotEmpty(dto.getBatchValue())) {
             sqlString.append(" AND batch = ?");
             params.add(dto.getBatchValue());
@@ -283,7 +282,7 @@ public class ArchiveFileTaskController extends BladeController {
             String resultIds = processInstanceIds.stream()
                     .map(id -> "'" + id + "'")
                     .collect(Collectors.joining(","));
-            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
         }
         Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
 
@@ -319,14 +318,26 @@ public class ArchiveFileTaskController extends BladeController {
                             vo.setEVisaStatus("废除成功");
                         }
 
-                        /*List<String> contentsList = new LinkedList<>();
-                        for (TaskParallel taskParallel : taskParallelList) {
-                            contentsList.add("【" + taskParallel.getTaskUserName() + "】msg:" + (ObjectUtil.isNotEmpty(taskParallel.getEVisaContent()) ? taskParallel.getEVisaContent() : "null") + " code:" + (ObjectUtil.isNotEmpty(taskParallel.getEVisaStatus()) ? taskParallel.getEVisaStatus() : "null "));
+                        //判断签字人的验证 2=绿色 3=黄色 999=红色 其他代表=灰色
+                        List<TaskParallel> statList = new ArrayList<>();
+                        for (TaskParallel taskPa : taskParallelList) {
+                            if (taskPa.getStatus() == 2 && ObjectUtil.isNotEmpty(taskPa.getEVisaStatus()) && taskPa.getEVisaStatus() == 1) {
+                                taskPa.setEVisaStatus(2);
+                            } else if (taskPa.getStatus() == 3 && taskPa.getTaskUser().equals(SecureUtil.getUserId().toString())) {
+                                taskPa.setEVisaStatus(3);
+                            } else if (taskPa.getStatus() == 999) {
+                                taskPa.setEVisaStatus(999);
+                            } else {
+                                taskPa.setEVisaStatus(1);
+                            }
+                            statList.add(taskPa);
+                        }
+                        if (statList.size() > 0) {
+                            List<Object> objectList = statList.stream()
+                                    .map(taskPa -> (Object) taskPa)
+                                    .collect(Collectors.toList());
+                            vo.setTaskApproveUserNamesList(objectList);
                         }
-                        if (contentsList.size() > 0) {
-                            vo.setEVisaStatus(StringUtils.join(contentsList, " 、"));
-                        }*/
-
                     }
                     return vo;
                 })
@@ -335,8 +346,7 @@ public class ArchiveFileTaskController extends BladeController {
         page.setTotal(totalCount);
 
         R<IPage<ArchiveTaskPageVO>> iPageR = R.data(page);
-
-        //待办推送 TODO 档案暂时不推送,推送时放开
+        //待办推送
         /*if (dto.getSelectedType().equals(1)) {
             if (ObjectUtil.isNotEmpty(iPageR.getData()) && ObjectUtil.isNotEmpty(iPageR.getData().getRecords()) && ObjectUtil.isNotEmpty(dto.getContractIdValue()) && ObjectUtil.isNotEmpty(dto.getProjectIdValue())) {
                 this.sendWebSocketArchiveMsg(new SendsWebSocketArchiveDTO(totalCount, 1, dto));
@@ -344,7 +354,6 @@ public class ArchiveFileTaskController extends BladeController {
                 this.sendWebSocketArchiveMsg(new SendsWebSocketArchiveDTO(0, 2, dto));
             }
         }*/
-
         return iPageR;
     }
 

+ 13 - 4
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -283,9 +283,18 @@ public class EVisaTaskCheckController {
 
             //首先找到对应流程下的审批人组
             List<FixedFlowLink> flowLink = this.fixedFlowLinkService.selectFixedFlowLink(next.getId().toString());
+            List<Long> ids = flowLink.stream().map(l -> l.getFixedFlowLinkUser()).collect(Collectors.toList());
 
             //获取这些人资料合同段下的权限
             List<JSONObject> userRoleList = this.saveUserInfoByProjectClient.queryUserContractRole(flowLink.stream().map(FixedFlowLink::getFixedFlowLinkUser).distinct().collect(Collectors.toList()), node.getContractId()+"");
+            if (userRoleList == null || userRoleList.size() <= 0) {
+                //查看当前项目下是否有监理合同段关联此合同段
+                String sql = "SELECT id from m_contract_info mci WHERE contract_type = 2 and id in (SELECT contract_id_jlyz  FROM m_contract_relation_jlyz WHERE contract_id_sg = " + node.getContractId() + ")";
+                ContractInfo contractInfo = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractInfo.class)).stream().findAny().orElse(null);
+                if (contractInfo != null) {
+                    userRoleList = this.saveUserInfoByProjectClient.queryUserContractRole(ids, contractInfo.getId()+"");
+                }
+            }
             if (userRoleList == null) {
                 next.setDisabled(true);
             } else {
@@ -377,10 +386,10 @@ public class EVisaTaskCheckController {
             List<JSONObject> userRoleList = this.saveUserInfoByProjectClient.queryUserContractRole(flowLink.stream().map(FixedFlowLink::getFixedFlowLinkUser).distinct().collect(Collectors.toList()),infoList.get(0).getContractId()+"" );
             if (userRoleList == null || userRoleList.size() <= 0) {
                 //查看当前项目下是否有监理合同段关联此合同段
-                Long contractId = jdbcTemplate.queryForObject("SELECT id from m_contract_info mci WHERE contract_type = 2 \n" +
-                        "and id in (SELECT contract_id_jlyz  FROM m_contract_relation_jlyz WHERE contract_id_sg = " + infoList.get(0).getContractId()+")",Long.class);
-                if (contractId != null) {
-                    userRoleList = this.saveUserInfoByProjectClient.queryUserContractRole(ids, contractId+"");
+                String sql = "SELECT id from m_contract_info mci WHERE contract_type = 2 and id in (SELECT contract_id_jlyz  FROM m_contract_relation_jlyz WHERE contract_id_sg = " + infoList.get(0).getContractId() + ")";
+                ContractInfo contractInfo = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractInfo.class)).stream().findAny().orElse(null);
+                if (contractInfo != null) {
+                    userRoleList = this.saveUserInfoByProjectClient.queryUserContractRole(ids, contractInfo.getId()+"");
                 }
             }
             if (userRoleList == null) {

+ 7 - 19
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -1134,8 +1134,6 @@ public class TaskController extends BladeController {
                 params.add(dto.getProjectIdValue());
             }
         }
-
-
         if (ObjectUtil.isNotEmpty(dto.getBatchValue())) {
             sqlString.append(" AND batch = ?");
             params.add(dto.getBatchValue());
@@ -1223,7 +1221,7 @@ public class TaskController extends BladeController {
             String resultIds = processInstanceIds.stream()
                     .map(id -> "'" + id + "'")
                     .collect(Collectors.joining(","));
-            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content,parallel_process_instance_id ,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user,task_user_name,e_visa_status,e_visa_content,parallel_process_instance_id,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
         }
 
         Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
@@ -1263,31 +1261,21 @@ public class TaskController extends BladeController {
                             vo.setEVisaStatus("废除成功");
                         }
 
-                        //判断签字人的验证 2 代表绿色  3 黄色 999 红色  其他代表 灰色
+                        //判断签字人的验证 2=绿色 3=黄色 999=红色 其他代表=灰色
                         List<TaskParallel> statList = new ArrayList<>();
-                        for(TaskParallel taskPa : taskParallelList){
-                            if(taskPa.getStatus()==2 && taskPa.getEVisaStatus()==1){
+                        for (TaskParallel taskPa : taskParallelList) {
+                            if (taskPa.getStatus() == 2 && ObjectUtil.isNotEmpty(taskPa.getEVisaStatus()) && taskPa.getEVisaStatus() == 1) {
                                 taskPa.setEVisaStatus(2);
-                            }else if(taskPa.getStatus()==3 && taskPa.getTaskUser().equals(SecureUtil.getUserId().toString())){
+                            } else if (taskPa.getStatus() == 3 && taskPa.getTaskUser().equals(SecureUtil.getUserId().toString())) {
                                 taskPa.setEVisaStatus(3);
-                            }else if(taskPa.getStatus()==999){
+                            } else if (taskPa.getStatus() == 999) {
                                 taskPa.setEVisaStatus(999);
-                            }else{
+                            } else {
                                 taskPa.setEVisaStatus(1);
                             }
                             statList.add(taskPa);
                         }
-
                         vo.setTaskApproveUserNamesList(statList);
-
-                        /*List<String> contentsList = new LinkedList<>();
-                        for (TaskParallel taskParallel : taskParallelList) {
-                            contentsList.add("【" + taskParallel.getTaskUserName() + "】msg:" + (ObjectUtil.isNotEmpty(taskParallel.getEVisaContent()) ? taskParallel.getEVisaContent() : "null") + " code:" + (ObjectUtil.isNotEmpty(taskParallel.getEVisaStatus()) ? taskParallel.getEVisaStatus() : "null "));
-                        }
-                        if (contentsList.size() > 0) {
-                            vo.setEVisaStatus(StringUtils.join(contentsList, " 、"));
-                        }*/
-
                     }
                     return vo;
                 })

+ 34 - 20
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -567,16 +567,16 @@
         SET
             node_name =
                 CASE
-                    WHEN node_name LIKE '%_PL_%' OR node_name LIKE '%__%'
-                        THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '__')))
-                    ELSE #{wbsTreePrivate.nodeName}
-                    END,
+                    WHEN node_name LIKE '%_PL_%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '_PL_')))
+                    WHEN node_name LIKE '%__%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '__')))
+                ELSE #{wbsTreePrivate.nodeName}
+                END,
             full_name =
                 CASE
-                    WHEN full_name LIKE '%_PL_%' OR full_name LIKE '%__%'
-                        THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '__')))
+                    WHEN full_name LIKE '%_PL_%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '_PL_')))
+                    WHEN full_name LIKE '%__%' THEN CONCAT(#{wbsTreePrivate.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '__')))
                     ELSE #{wbsTreePrivate.nodeName}
-                    END,
+                END,
             table_type = #{wbsTreePrivate.tableType},
             table_owner = #{wbsTreePrivate.tableOwner}
             <if test="wbsTreePrivate.sort != null and wbsTreePrivate.sort != ''">
@@ -595,29 +595,43 @@
             <set>
                 node_name =
                     CASE
-                        WHEN node_name LIKE '%_PL_%' OR node_name LIKE '%__%'
-                        THEN CONCAT(
+                        WHEN node_name LIKE '%_PL_%'
+                            THEN CONCAT(
+                            <if test="item.nodeName != null and item.nodeName != ''">
+                                #{item.nodeName}
+                            </if>,
+                            SUBSTRING(node_name FROM INSTR(node_name, '_PL_'))
+                            )
+                        WHEN node_name LIKE '%__%'
+                            THEN CONCAT(
                             <if test="item.nodeName != null and item.nodeName != ''">
                                 #{item.nodeName}
                             </if>,
                             SUBSTRING(node_name FROM INSTR(node_name, '__'))
-                        )
-                    ELSE
+                            )
+                        ELSE
                         <if test="item.nodeName != null and item.nodeName != ''">
                             #{item.nodeName}
                         </if>
                     END,
                 full_name =
                     CASE
-                        WHEN full_name LIKE '%_PL_%' OR full_name LIKE '%__%'
-                        THEN CONCAT(
-                        <if test="item.nodeName != null">
-                            #{item.nodeName}
-                        </if>,
-                        SUBSTRING(full_name FROM INSTR(full_name, '__'))
-                        )
-                    ELSE
-                        <if test="item.nodeName != null">
+                        WHEN full_name LIKE '%_PL_%'
+                            THEN CONCAT(
+                            <if test="item.nodeName != null and item.nodeName != ''">
+                                #{item.nodeName}
+                            </if>,
+                            SUBSTRING(full_name FROM INSTR(full_name, '_PL_'))
+                            )
+                        WHEN full_name LIKE '%__%'
+                            THEN CONCAT(
+                            <if test="item.nodeName != null and item.nodeName != ''">
+                                #{item.nodeName}
+                            </if>,
+                            SUBSTRING(full_name FROM INSTR(full_name, '__'))
+                            )
+                        ELSE
+                        <if test="item.nodeName != null and item.nodeName != ''">
                             #{item.nodeName}
                         </if>
                     END,

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -364,14 +364,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                                 .eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getPKeyId())
                         );
                         if (update) {
-                            //直接修改合同段下所有类似的表(根据full_name=node_name模糊搜索)
+                            //直接修改合同段下所有类似的表(根据c-node_name = p-node_name模糊搜索)
                             for (Long contractInfoId : contractInfoIds) {
                                 List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
                                         .select(WbsTreeContract::getPKeyId)
                                         .eq(WbsTreeContract::getStatus, 1)
                                         .eq(WbsTreeContract::getProjectId, projectId)
                                         .eq(WbsTreeContract::getContractId, contractInfoId)
-                                        .like(WbsTreeContract::getFullName, wbsTreePrivateNameMap.get(wbsTreePrivate.getPKeyId())));
+                                        .like(WbsTreeContract::getNodeName, wbsTreePrivateNameMap.get(wbsTreePrivate.getPKeyId())));
                                 //批量修改
                                 if (wbsTreeContracts.size() > 0) {
                                     List<Long> pKeyIdsContracts = wbsTreeContracts.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());