diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/ProofingInformationController.java b/src/main/java/com/xujie/sys/modules/pms/controller/ProofingInformationController.java index 50341a13..1b101ef9 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/ProofingInformationController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/ProofingInformationController.java @@ -198,7 +198,12 @@ public class ProofingInformationController { @PostMapping(value = "/searchProjectUploadsDocumentList") @ResponseBody public R searchProjectUploadsDocumentList(@RequestBody ProofDocumentData data) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + data.setUsername(currentUser.getUsername()); + if (data.getSite() == null || data.getSite().trim().isEmpty()) { + data.setSite(currentUser.getSite()); + } PageUtils page = proofingInformationService.getPendingUploads(userId, data); List list = loadUploadFilterList(); return R.ok().put("page", page).put("list", list); @@ -207,16 +212,27 @@ public class ProofingInformationController { @PostMapping(value = "/searchAllProjectUploadsDocumentList") @ResponseBody public R searchAllProjectUploadsDocumentList(@RequestBody ProofDocumentData data) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + data.setUsername(currentUser.getUsername()); + if (data.getSite() == null || data.getSite().trim().isEmpty()) { + data.setSite(currentUser.getSite()); + } PageUtils page = proofingInformationService.getAllUploads(userId, data); List list = loadUploadFilterList(); - return R.ok().put("page", page).put("list", list); + List pjmUserList = loadPjmUserList(data == null ? null : data.getSite()); + return R.ok().put("page", page).put("list", list).put("pjmUserList", pjmUserList); } @PostMapping(value = "/searchProjectOverUploadsDocumentList") @ResponseBody public R searchProjectOverUploadsDocumentList(@RequestBody ProofDocumentData data) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + data.setUsername(currentUser.getUsername()); + if (data.getSite() == null || data.getSite().trim().isEmpty()) { + data.setSite(currentUser.getSite()); + } PageUtils page = proofingInformationService.getOverdueUploads(userId,data); List list = loadUploadFilterList(); return R.ok().put("page", page).put("list", list); @@ -226,7 +242,9 @@ public class ProofingInformationController { @PostMapping(value = "/queryProjectUploadsDocumentList") @ResponseBody public R queryProjectUploadsDocumentList(@RequestBody QuerySavedVo querySavedVo) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + querySavedVo.setUserName(currentUser.getUsername()); if (querySavedVo.getQuerySavedDetailList() != null && !querySavedVo.getQuerySavedDetailList().isEmpty()) { String sql = queryCriteriaConstructorDefault.lastConditionalStatement(querySavedVo); querySavedVo.setSql(sql); @@ -241,7 +259,9 @@ public class ProofingInformationController { @PostMapping(value = "/queryAllProjectUploadsDocumentList") @ResponseBody public R queryAllProjectUploadsDocumentList(@RequestBody QuerySavedVo querySavedVo) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + querySavedVo.setUserName(currentUser.getUsername()); if (querySavedVo.getQuerySavedDetailList() != null && !querySavedVo.getQuerySavedDetailList().isEmpty()) { String sql = queryCriteriaConstructorDefault.lastConditionalStatement(querySavedVo); querySavedVo.setSql(sql); @@ -250,13 +270,16 @@ public class ProofingInformationController { PageUtils page = proofingInformationService.queryAllUploads(pages,querySavedVo,userId); List list = loadUploadFilterList(); - return R.ok().put("page", page).put("list", list); + List pjmUserList = loadPjmUserList(null); + return R.ok().put("page", page).put("list", list).put("pjmUserList", pjmUserList); } @PostMapping(value = "/queryProjectOverUploadsDocumentList") @ResponseBody public R queryProjectOverUploadsDocumentList(@RequestBody QuerySavedVo querySavedVo) { - String userId = String.valueOf(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId()); + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + String userId = String.valueOf(currentUser.getUserId()); + querySavedVo.setUserName(currentUser.getUsername()); if (querySavedVo.getQuerySavedDetailList() != null && !querySavedVo.getQuerySavedDetailList().isEmpty()) { String sql = queryCriteriaConstructorDefault.lastConditionalStatement(querySavedVo); querySavedVo.setSql(sql); @@ -274,6 +297,23 @@ public class ProofingInformationController { return proofingInformationService.getAllUploadsList(); } + /** + * 待上传页面「全部」视图权限依赖 access_role.role_no=R002(PjM)人员名单,统一在后端返回给前端复用。 + */ + private List loadPjmUserList(String preferredSite) { + String site = preferredSite; + if (site == null || site.trim().isEmpty()) { + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + site = currentUser == null ? null : currentUser.getSite(); + } + if (site == null || site.trim().isEmpty()) { + return new ArrayList<>(); + } + ProofDocumentData queryData = new ProofDocumentData(); + queryData.setSite(site.trim()); + return proofingInformationService.queryPlmUserList(queryData); + } + @PostMapping(value = "/searchConfirmProgressList") @ResponseBody public R searchConfirmProgressList(@RequestBody ProjectProductionValidationDocumentData inData) { diff --git a/src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java b/src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java index 32092cc5..9aa2da10 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/ProofDocumentData.java @@ -79,6 +79,9 @@ public class ProofDocumentData extends ProofingInformationData { @TableField(exist = false) private Integer userId; + @TableField(exist = false) + private String username; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @TableField(exist = false) diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java index c98a77ad..b8b58fd8 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/ProofingInformationServiceImpl.java @@ -518,13 +518,23 @@ public class ProofingInformationServiceImpl implements ProofingInformationServic return proofingInformationMapper.getAllConfirmationsList(userId, inData); } + @Override + public List queryPlmUserList(ProofDocumentData inData) { + if (inData == null || inData.getSite() == null || inData.getSite().trim().isEmpty()) { + return Collections.emptyList(); + } + return proofingInformationMapper.queryPlmUser(inData); + } + @Override public PageUtils queryAllProofing(String userId, ProofDocumentData inData) { - List plmUserList = proofingInformationMapper.queryPlmUser(inData); + List plmUserList = queryPlmUserList(inData); // 拿到plmUserList中的userId List userIdList = new ArrayList<>(); for (ProofDocumentData proofDocumentData : plmUserList) { - userIdList.add(proofDocumentData.getUserId().toString()); + if (proofDocumentData.getUserId() != null) { + userIdList.add(proofDocumentData.getUserId().toString()); + } } // 判断userId是否在userIdList中 if (userIdList.contains(userId)) { diff --git a/src/main/java/com/xujie/sys/modules/pms/service/ProofingInformationService.java b/src/main/java/com/xujie/sys/modules/pms/service/ProofingInformationService.java index 0bde35c4..ce746d75 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/ProofingInformationService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/ProofingInformationService.java @@ -78,6 +78,8 @@ public interface ProofingInformationService extends IService queryPlmUserList(ProofDocumentData inData); + List getUploadedFlagByPart(ProofingInformationData data); List getCopyDocumentFileList(ProofDocumentData data); diff --git a/src/main/java/com/xujie/sys/modules/sift/adapter/EamProjectUploadsCountAdapter.java b/src/main/java/com/xujie/sys/modules/sift/adapter/EamProjectUploadsCountAdapter.java index 1dcc0793..344b0753 100644 --- a/src/main/java/com/xujie/sys/modules/sift/adapter/EamProjectUploadsCountAdapter.java +++ b/src/main/java/com/xujie/sys/modules/sift/adapter/EamProjectUploadsCountAdapter.java @@ -32,6 +32,10 @@ public class EamProjectUploadsCountAdapter extends AbstractMenuUrlQueryAdapter { if (querySavedVo.getQuerySavedDetailList() != null && !querySavedVo.getQuerySavedDetailList().isEmpty()) { querySavedVo.setSql(queryCriteriaConstructorDefault.lastConditionalStatement(querySavedVo)); } + // 兼容历史查询记录只存 userId 的场景,确保后端可按 AccessBu(username) 做授权 BU 过滤。 + if (!StringUtils.hasText(querySavedVo.getUserName()) && StringUtils.hasText(querySavedVo.getUserId())) { + querySavedVo.setUserName(querySavedVo.getUserId()); + } String userId = StringUtils.hasText(querySavedVo.getUserId()) ? querySavedVo.getUserId() : querySavedVo.getUserName(); Page page = new Page<>(1, 1); String menuName = getMenuName(querySavedVo.getMenuId()); diff --git a/src/main/resources/mapper/pms/ProofingInformationMapper.xml b/src/main/resources/mapper/pms/ProofingInformationMapper.xml index fe71624c..96a183d6 100644 --- a/src/main/resources/mapper/pms/ProofingInformationMapper.xml +++ b/src/main/resources/mapper/pms/ProofingInformationMapper.xml @@ -271,6 +271,11 @@ SELECT * FROM view_plm_toupload_list_byUser status != '草稿' AND RelatedPerson = #{userId} + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{query.username} + ) AND ( project_no like '%' + #{query.projectNo} + '%' @@ -398,6 +403,11 @@ WHERE status != '草稿' AND Request_date < GETDATE() AND RelatedPerson = #{userId} + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{query.username} + ) ]]> status != '草稿' + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{query.username} + ) AND ( project_no like '%' + #{query.projectNo} + '%' @@ -682,6 +697,11 @@ SELECT * FROM view_plm_toupload_list_byUser status != '草稿' AND RelatedPerson = #{user.userId} + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{params.userName} + ) ${params.sql} @@ -694,6 +714,11 @@ WHERE status != '草稿' AND Request_date < GETDATE() AND RelatedPerson = #{user.userId} + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{params.userName} + ) ]]> status != '草稿' + AND (site + '-' + bu_no) IN ( + SELECT (site + '-' + bu_no) + FROM AccessBu + WHERE username = #{params.userName} + ) ${params.sql}