Kaynağa Gözat

183任务查询接口

cr 4 gün önce
ebeveyn
işleme
5e9287e1c7

+ 48 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/APIController.java

@@ -13,6 +13,7 @@ import org.springblade.business.entity.Task;
 import org.springblade.business.entity.TaskParallel;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
@@ -28,6 +29,7 @@ import org.springblade.meter.mapper.MeterApproveOpinionMapper;
 import org.springblade.meter.mapper.MiddleMeterApplyTaskMapper;
 import org.springblade.meter.mapper.StartPayMeterFormTaskMapper;
 import org.springblade.meter.vo.ApiTaskPageVo;
+import org.springblade.system.entity.Role;
 import org.springblade.system.user.entity.User;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -66,6 +68,26 @@ public class APIController {
 //        if (ObjectUtil.isEmpty(dto.getProjectId()) || ObjectUtil.isEmpty(dto.getContractId())) {
 //            throw new ServiceException("未获取到当前项目或合同段信息");
 //        }
+        Boolean isYZ=false;
+        BladeUser user = SecureUtil.getUser();
+        String roleId = user.getRoleId();
+        String sqlRole="select * from blade_role where id="+roleId;
+        List<Role> query1 = jdbcTemplate.query(sqlRole, new BeanPropertyRowMapper<>(Role.class));
+        if(!query1.isEmpty()){
+            Role role = query1.get(0);
+            Long parentId = role.getParentId();
+            if(parentId==1537246243393589249L){
+                isYZ=true;
+            }
+        }
+        if (roleId.equals("1537246243393589249")){
+            isYZ=true;
+        }
+        if(!isYZ){
+          if (ObjectUtil.isEmpty(dto.getProjectId()) || ObjectUtil.isEmpty(dto.getContractId())) {
+             throw new ServiceException("未获取到当前项目或合同段信息");
+         }
+        }
         if(dto.getCurrent()==null){
             dto.setCurrent(1);
         }
@@ -94,6 +116,10 @@ public class APIController {
                 ids.add(Long.parseLong(dto.getContractId())); //把本身合同段也加入查询
                 sqlString.append(" AND contract_id in(").append(StringUtils.join(ids, ",")).append(")");
             }
+        }else {
+            if(isYZ){
+                sqlString.append(" AND project_id in ('1750070685257990145','1795277868551389185') ");
+            }
         }
         if (ObjectUtil.isNotEmpty(dto.getStatusValue())) {
             if(dto.getStatusValue() .equals(4) ){//----先查询出所有待审批的 然后根据条件进行过滤出任务已经到当前登陆人的任务为可审批
@@ -135,6 +161,28 @@ public class APIController {
                 params.add(SecureUtil.getUserId());
             }
             sqlString.append(")");
+        }else {
+            if(isYZ){
+                sqlString.append(" AND (");
+                /*如果是待办页面,且 任务状态下拉框 选择的是 待审批或可审批状态 的任务,那么才查询数据*/
+                if (ObjectUtil.isNotEmpty(dto.getStatusValue()) && (dto.getStatusValue().equals(1) || dto.getStatusValue().equals(4))) {
+                    sqlString.append("EXISTS (SELECT 1 FROM u_task_parallel WHERE u_task.process_instance_id = u_task_parallel.process_instance_id AND u_task_parallel.status = ? AND u_task_parallel.task_user = ?)");
+                    params.add(1);
+                    params.add(SecureUtil.getUserId());
+
+                    /*如果是待办页面,且 任务状态下拉框 选择的不是 待审批状态 的任务,那么直接返回null*/
+                } else if (ObjectUtil.isNotEmpty(dto.getStatusValue()) && !dto.getStatusValue().equals(1)) {
+                    return null;
+
+                    /*如果是待办页面,没选择 任务状态下拉框,那么就默认查询 待审批状态 任务*/
+                } else if (ObjectUtil.isEmpty(dto.getStatusValue())) {
+                    sqlString.append("EXISTS (SELECT 1 FROM u_task_parallel WHERE u_task.process_instance_id = u_task_parallel.process_instance_id AND u_task_parallel.status = ? AND u_task_parallel.task_user = ?)");
+                    params.add(1);
+                    params.add(SecureUtil.getUserId());
+                    sqlString.append(" AND status = 1");
+                }
+                sqlString.append(")");
+            }
         }
 
         /*总数量*/