diff --git a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java index 8431cc5..b2c17c6 100644 --- a/src/main/java/cn/palmte/work/service/ProjectEstimateService.java +++ b/src/main/java/cn/palmte/work/service/ProjectEstimateService.java @@ -8,8 +8,10 @@ import cn.palmte.work.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import top.jfunc.common.db.utils.Pagination; import top.jfunc.common.utils.CollectionUtil; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -35,6 +37,10 @@ public class ProjectEstimateService { private ProjectRepository projectRepository; @Autowired private SysConfigService sysConfigService; + @Autowired + private Pagination pagination; + @Autowired + private ProjectVisibleRepository projectVisibleRepository; public void clearEstimate(Project project){ List incomes = projectEstimateIncomeRepository.findAllByProjectIdEquals(project.getId()); @@ -277,6 +283,27 @@ public class ProjectEstimateService { }else { //第一次或者重新发起一个流程实例【第一次或者以前的审批都已经过了】 projectInstanceService.startEstimateProcessInstance(projectInDb, admin); + int type = projectInDb.getType(); + List userIds = new ArrayList<>(); + if (type == 1) { + String sql = "select sur.user_id from sys_role sr left join sys_user_role sur on sr.id = sur.role_id where sr.is_deleted = 0 and sur.is_deleted = 0 and sr.level in (1,2,3,4,5,6)"; + userIds = pagination.find(sql, SysUserRole.class); + } else if (type == 2) { + String sql = "select sur.user_id from sys_role sr left join sys_user_role sur on sr.id = sur.role_id where sr.is_deleted = 0 and sur.is_deleted = 0 and sr.level in (1,2,3,5,6)"; + userIds = pagination.find(sql, SysUserRole.class); + } else if (type == 3) { + String sql = "select sur.user_id from sys_role sr left join sys_user_role sur on sr.id = sur.role_id where sr.is_deleted = 0 and sur.is_deleted = 0 and sr.level in (1,2,3,6)"; + userIds = pagination.find(sql, SysUserRole.class); + } + List pvs = new ArrayList<>(); + for (SysUserRole sysUserRole : userIds) { + ProjectVisible pv = new ProjectVisible(); + pv.setProjectId(projectInDb.getId()); + pv.setType(2); + pv.setTid(sysUserRole.getUserId()); + pvs.add(pv); + } + projectVisibleRepository.save(pvs); } } diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 5d5803d..0fb1e48 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -278,7 +278,7 @@ onclick="location.href='${base}/project/detail?id=${list.id}'">查看 --> - <#if list.approveStatusEstimate == 0 || list.approveStatusBudget == 0 || list.approveStatusSettle == 0 || list.approveStatusFinal == 0> + <#if (list.creatorId==adminId && list.approveStatusEstimate == 0) || (list.creatorId==adminId && list.approveStatusBudget == 0) || (admin.getRoleLevel() = 6 && list.approveStatusSettle == 0) || ((admin.getRoleLevel() = 2 || admin.getRoleLevel() = 6) && list.approveStatusFinal == 0)>