diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java index 93c208b5..41fcb07f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordPageReqVO.java @@ -109,6 +109,6 @@ public class RecordRecordPageReqVO extends PageParam { @Schema(description = "是否查询历史数据") private Integer isQueryHistory; // 1-查询,0-不查询 - private String ew; + private String appraisalFlag; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java index c4e07e0a..59b966a3 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/controller/admin/recordrecord/vo/RecordRecordRespVO.java @@ -176,6 +176,7 @@ public class RecordRecordRespVO { private String flowInstanceId; @Schema(description = "文件提交业务状态") + @Dict(dicCode = "flow_status") private String applyBusinessStatus; } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java index 3961c639..e59d7fd0 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.java @@ -91,6 +91,14 @@ public interface RecordRecordMapper extends BaseMapperX { @Param("userId") Long userId, @Param("userDepts") List userDepts); + /** + * 通过 idPath 模糊查询 关联的文件记录 + * @param pathList + * @return + */ + List selectRecordByIdPathLike(@Param("reqVO") RecordRecordPageReqVO reqVO, + @Param("pathList") List pathList); + // TODO // List selectViewApplyRecordList(@Param("pageReqVO") RecordRecordPageReqVO pageReqVO); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java index 54dc13fb..0d291607 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordapply/RecordApplyServiceImpl.java @@ -56,6 +56,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.IntStream; +import static cn.hutool.json.XMLTokener.entity; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*; @@ -118,7 +119,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn updateReqVO.setBusinessType(businessType); // 删除明细-->重新添加 int i = recordApplyDetailService.deleteRecordApplyDetailByApplyId(recordApplyDO.getId()); - if (i>0){ + if (i > 0) { createApplyDetailData(updateReqVO, recordApplyDO); } @@ -163,7 +164,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn if (businessType.equals(RecordConstants.BusinessType.DISTRIBUTION)) recordApplyDetailDOS = recordApplyDetailService.selectDistributionDetailAndRecordList(id); else - recordApplyDetailDOS=recordApplyDetailService.selectDetailAndRecordList(id); + recordApplyDetailDOS = recordApplyDetailService.selectDetailAndRecordList(id); if (!recordApplyDetailDOS.isEmpty()) recordApplyDO.setDetailList(recordApplyDetailDOS); return recordApplyDO; } @@ -186,7 +187,8 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordApply.setApplyUserName(nickName); Long visitDeptId = loginUser.getVisitDeptId(); // 获取当前用户所在的部门 - if (ObjectUtils.isEmpty(visitDeptId)) throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(),"获取当前部门信息失败"); + if (ObjectUtils.isEmpty(visitDeptId)) + throw exception0(RECORD_APPLY_NOT_EXISTS.getCode(), "获取当前部门信息失败"); recordApply.setApplyDepartmentId(visitDeptId); recordApply.setApplyDepartmentName(loginUser.getVisitDeptName()); @@ -212,10 +214,10 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn // TODO RecordApplyDO recordApply = createApply(param); - return createApplyDetailData(param,recordApply); + return createApplyDetailData(param, recordApply); } - public CommonResult createApplyDetailData(RecordApplySaveReqVO param,RecordApplyDO recordApply){ + public CommonResult createApplyDetailData(RecordApplySaveReqVO param, RecordApplyDO recordApply) { List detailSaveReqVOList = new ArrayList<>(); String businessType = param.getBusinessType(); if (ObjectUtils.isEmpty(businessType)) @@ -536,14 +538,30 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn recordRecordService.updateRecordRecordById(recordDO); return true; } else { - // 把状态改为0 - recordDO.setRecordStatus(0); // 未生效 - recordRecordService.updateRecordRecordById(recordDO); + // 判断是否到生效日期 + RecordRecordDO effectiveRecordRecordDO = isEffective(recordDO); + recordRecordService.updateRecordRecordById(effectiveRecordRecordDO); } } return false; } + // 判断文件记录生效状态 + public RecordRecordDO isEffective(RecordRecordDO recordDO) { + LocalDateTime effectiveDate = recordDO.getEffectiveDate(); + if (effectiveDate == null) { // 没有生效日期,立即生效 + recordDO.setRecordStatus(1); + } else { + LocalDateTime now = LocalDateTime.now(); + if (now.isAfter(effectiveDate) || now.isEqual(effectiveDate)) { + recordDO.setRecordStatus(1); // 已生效 + } else { + recordDO.setRecordStatus(3); // 待生效 + } + } + return recordDO; + } + public void updateReviewFlag(Long applyId) { // Long[] recordIdS = param.getRecordIdS(); List recordApplyDetailDOS = recordApplyDetailService.selectAllList(applyId); @@ -699,7 +717,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn .findFirst() .orElse(null); - log.info("firstActivityFlag:{}",firstActivityFlag); + log.info("firstActivityFlag:{}", firstActivityFlag); if ("1".equals(firstActivityFlag)) { // 执行到申请人节点,待处理 if (PROCESS_STATUS.equals("1")) { @@ -802,14 +820,15 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn entity.setRecordStatus(3); // 待生效 } } else { - entity.setRecordStatus(1); // 默认已生效 + entity.setRecordStatus(1); // 默认已生效 } + RecordRecordDO effectiveRecordRecordDO = isEffective(entity); // 修改状态 - recordApplyFlowStatus(entity); + recordApplyFlowStatus(effectiveRecordRecordDO); } // 评审通过,处理修改修改的文件,走更改申请流程 - public void reviewCallHandle(List recordApplyDetailDOS){ + public void reviewCallHandle(List recordApplyDetailDOS) { List detailDOList = new ArrayList<>(); // 1条申请----> 多条明细记录 ----> 多条文件记录 for (RecordApplyDetailDO applyDetailDO : recordApplyDetailDOS) { @@ -861,7 +880,7 @@ public class RecordApplyServiceImpl implements RecordApplyService, BMPCallbackIn permissionDO.setTargetId(String.valueOf(applyDetailDO.getTargetId())); // 用户Id permissionDO.setTargetType(RecordConstants.TargetType.USER); permissionDO.setTargetName(loginUserNickname); - } else if (targetType.equals(RecordConstants.TargetType.DEPT)){ // 部门 + } else if (targetType.equals(RecordConstants.TargetType.DEPT)) { // 部门 permissionDO.setTargetId(String.valueOf(applyDetailDO.getTargetId())); // 部门Id permissionDO.setTargetType(RecordConstants.TargetType.DEPT); permissionDO.setTargetName(visitDeptName); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java index 716fe279..8a0c7a00 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryService.java @@ -73,4 +73,5 @@ public interface RecordCategoryService { List getReviewRecordList(); + List selectCategoryAppraisalList(String appraisalFlag); } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java index 78e0b793..417521ed 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordcategory/RecordCategoryServiceImpl.java @@ -186,6 +186,13 @@ public class RecordCategoryServiceImpl implements RecordCategoryService { return BeanUtils.toBean(recordCategories, RecordCategoryRespVO.class); } + @Override + public List selectCategoryAppraisalList(String appraisalFlag) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.like(RecordCategoryDO::getCustomConfig,"%" + appraisalFlag + "%"); + return recordCategoryMapper.selectList(queryWrapper); + } + @Transactional(rollbackFor = Exception.class) @Override public void updateRecordCategory(RecordCategorySaveReqVO updateReqVO) { diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java index 4032126f..a3ef6561 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/record/service/recordrecord/RecordRecordServiceImpl.java @@ -138,7 +138,26 @@ public class RecordRecordServiceImpl implements RecordRecordService { @Override public List getRecordList(RecordRecordPageReqVO pageReqVO) { + String appraisalFlag = pageReqVO.getAppraisalFlag(); Long categoryId = pageReqVO.getCategoryId(); + if (appraisalFlag.equals("1")) { // 评审获取所有需要参加评审的列表 + // 查询所有 根分类上 appraisalFlag 为 1 的数据 + String appraisal = "\"appraisalFlag\":" + 1 + ","; + + List recordCategoryDOS = recordCategoryService.selectCategoryAppraisalList(appraisal); + // 获取所有 分类id + List categoryIdPath = new ArrayList<>(); + recordCategoryDOS.forEach(item -> { + Long id = item.getId(); + String idPath = "/0//" + id +"//"; // 根分类的路径 + categoryIdPath.add(idPath); + }); + if (ObjectUtils.isEmpty(categoryIdPath)) return new ArrayList<>(); + // 查询 分类下面所有的记录 + List recordRecordDOS = recordRecordMapper.selectRecordByIdPathLike(pageReqVO, categoryIdPath); + return BeanUtils.toBean(recordRecordDOS, RecordRecordRespVO.class); + + } RecordCategoryDO recordCategoryDO = validateRecordCategoryExists(categoryId); if (categoryId == null) CommonResult.error(RECORD_CATEGORY_NOT_EXISTS); @@ -146,24 +165,24 @@ public class RecordRecordServiceImpl implements RecordRecordService { if (ObjectUtils.isEmpty(recordCategoryDO)) return new ArrayList<>(); String idPath = recordCategoryDO.getIdPath(); + if (ObjectUtils.isEmpty(idPath)) return new ArrayList<>(); Long rootCategoryId = getRootCategoryId(idPath); // 判断是否有权限 // 判断是否有当前分类的父分类权限 (可编辑,可查看,管理员--> 任意条件) List recordPermissionDOS = recordPermissionService.selectPermissionList(rootCategoryId, null); - List recordRecordList = new ArrayList<>(); + List recordRecordList ; if (recordPermissionDOS.isEmpty()) return new ArrayList<>(); - Long parentId = getRootCategoryId(idPath); String businessType = pageReqVO.getBusinessType(); if (ObjectUtils.isEmpty(businessType)) return new ArrayList<>(); switch (businessType) { case RecordConstants.BusinessType.REVIEW: // 评审 // TODO - boolean b = getRecordReviewList(parentId); + boolean b = getRecordReviewList(rootCategoryId); if (!b) return new ArrayList<>(); // 查询评审---记录列表 break; @@ -333,8 +352,34 @@ public class RecordRecordServiceImpl implements RecordRecordService { // 校验分类存在 if (ObjectUtils.isEmpty(recordCategoryDO)) return new PageResult().setTotal(0L); String idPath = recordCategoryDO.getIdPath(); + if (ObjectUtils.isEmpty(idPath)) return new PageResult().setTotal(0L); Long parentId = getRootCategoryId(idPath); +// String businessType = pageReqVO.getBusinessType(); +// if (ObjectUtils.isEmpty(businessType)) return new PageResult().setTotal(0L); +// List recordRecordList; +// switch (businessType) { +// case RecordConstants.BusinessType.REVIEW: // 评审 +// // TODO +// boolean b = getRecordReviewList(parentId); +// if (!b) return new PageResult().setTotal(0L); +// // 查询评审---记录列表 +// break; +// case RecordConstants.BusinessType.DISTRIBUTION, +// RecordConstants.BusinessType.RECORD_UPDATE, +// RecordConstants.BusinessType.INVALID: // 修改 +// //TODO +//// List recordRecordDOS = this.selectViewApplyRecordList(pageReqVO); +//// return new PageResult().setList(recordRecordDOS).setTotal((long) recordRecordDOS.size()); +// break; +// case RecordConstants.BusinessType.VIEW_APPLY: // 查看申请,默认查看所有 +// pageReqVO.setBusinessType(null);// +// // 参数 categoryId +// // TODO +// PageResult iPage = recordRecordMapper.selectPage(pageReqVO); +// PageResult result = new PageResult<>(iPage.getList(), iPage.getTotal()); +// return result; +// } // 判断是否有当前分类的父分类权限 (可编辑,可查看,管理员--> 任意条件) List recordPermissionDOS = recordPermissionService.selectPermissionList(parentId, null); @@ -350,7 +395,7 @@ public class RecordRecordServiceImpl implements RecordRecordService { } // 设置默认查询最新版 - pageReqVO.setCurrentFlag(1); +// pageReqVO.setCurrentFlag(1); // 多表关联分页查询(关联 RecordApply 获取文件提交信息) IPage iPage = recordRecordMapper.selectRecordWithApplyPage(page, pageReqVO); diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml index 590ba88a..cbf43c01 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/record/dal/mapper/RecordRecordMapper.xml @@ -1,18 +1,13 @@ - + - - + SELECT + , (SELECT tra.ID FROM t_rcd_apl_dtl trad INNER JOIN t_rcd_apl tra ON trad.APL_ID = tra.ID AND tra.BSN_TP = '文件提交' @@ -102,46 +109,79 @@ - + SELECT DISTINCT + FROM T_RCD_RCD trr - LEFT JOIN T_RCD_PERM trp ON trp.SRC_ID = trr.ID + LEFT JOIN T_RCD_PERM trp ON trp.SRC_ID = trr.ID WHERE - trr.deleted = 0 - AND trp.SRC_TP = '记录' - AND trp.PERM = '可查看' - AND trr.CTGR_ID = #{pageReqVO.categoryId} - - AND trr.CD = #{pageReqVO.code} - - - AND trr.NAME LIKE CONCAT('%', #{pageReqVO.name}, '%') - + trr.deleted = 0 + AND trp.SRC_TP = '记录' + AND trp.PERM = '可查看' + AND trr.CTGR_ID = #{pageReqVO.categoryId} + + AND trr.CD = #{pageReqVO.code} + + + AND trr.NAME LIKE CONCAT('%', #{pageReqVO.name}, '%') + + AND ( + ( trp.tgt_id = #{userId} AND trp.tgt_tp = '用户') + OR + (trp.tgt_tp = '部门' AND trp.tgt_id IN + + #{deptId} + + ) + ) + + + \ No newline at end of file