From 7b3b1cb76452258c3b554b6364ef5d50ed34542c Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 31 五月 2024 11:40:14 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 134 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 131 insertions(+), 3 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java index 19b9c4b..b1a219e 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.doumee.service.system.NoticesService; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; @@ -227,7 +228,7 @@ /** * 鍒涘缓瀹℃壒娴佺▼ - * @param tempType 妯℃澘绫诲瀷 0闈炴柦宸ヤ汉鍛樿瀹㈢敵璇� 1闈炴柦宸ヤ汉鍛樿瀹㈢敵璇� 2璁垮鎶ュ 3鍏溅甯傚唴鐢ㄨ溅 4鍏溅瀹ゅ鐢ㄨ溅 5甯傚叕鍙哥墿娴佽溅棰勭害 + * @param tempType 妯℃澘绫诲瀷 0闈炴柦宸ヤ汉鍛樿瀹㈢敵璇� 1鏂藉伐浜哄憳璁垮鐢宠 2璁垮鎶ュ 3鍏溅甯傚唴鐢ㄨ溅 4鍏溅瀹ゅ鐢ㄨ溅 5甯傚叕鍙哥墿娴佽溅棰勭害 * @param businessId 涓氬姟涓婚敭 鏍规嵁 tempType * @param createMemberId 鎻愪氦娴佺▼浜哄憳 */ @@ -241,7 +242,7 @@ .last(" limit 1 ") ); if(Objects.isNull(approveTempl)){ - throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌閰嶇疆妯℃澘"); + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌瀹℃壒娴侀厤缃ā鏉�"); } //鏌ヨ閰嶇疆娴佺▼ List<ApproveParam> approveParamAllList = approveParamMapper.selectList(new QueryWrapper<ApproveParam>() @@ -294,8 +295,13 @@ for (int i = 0; i < approveParamList.size(); i++) { ApproveParam approveParam = approveParamList.get(i); List<Integer> ids = this.getApproveUserIds(approveParam,createMember); + //鐢熸垚寰呭姙 notices 琛ㄦ暟鎹� + if(i==0){ + + } for (Integer memberId:ids) { Approve approve = new Approve(); + approve.setRemark(approveParam.getRemark()); approve.setCreateDate(new Date()); approve.setIsdeleted(Constants.ZERO); approve.setTemplatId(approveTempl.getId()); @@ -305,6 +311,7 @@ approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO); approve.setObjId(businessId); approve.setLevel(i+1); + approve.setObjType(approveTempl.getType()); approve.setApproveType(approveParam.getApproveType()); approve.setDriverParam(approveParam.getDriverParam()); approve.setAddrParam(approveParam.getAddrParam()); @@ -434,6 +441,96 @@ return auditCompany; } + public ApproveDataVO arrangeApprovedDataNew(Integer businessId, Integer businessType, Integer memberId){ + ApproveDataVO approveDateVO = new ApproveDataVO(); + approveDateVO.setApproveList(new ArrayList<>()); + approveDateVO.setCanBeApproved(Constants.ZERO); + List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class, + new MPJLambdaWrapper<Approve>(). + selectAll(Approve.class) + .eq(Approve::getIsdeleted,Constants.ZERO) + .eq(Approve::getObjId,businessId) + .eq(Approve::getObjType,businessType) + .orderByAsc(Approve::getLevel) + ); + + //鏌ユ壘鍏ㄩ儴levelList + List<Approve> levelList = getLevelListFromResult(approveGroupList); + //閬嶅巻level鏌ヨ姣忎竴绾у埆涓氬姟鏁版嵁 + for(Approve level:levelList){ + List<Approve> tlist = getLevelInfoFromList(level,approveGroupList); + approveDateVO.getApproveList().addAll(tlist); + if(tlist.size() ==0 + ||Constants.equalsInteger(Constants.approveStatus.unPass, tlist.get(0).getStatus()) + ||Constants.equalsInteger(Constants.approveStatus.cancel, tlist.get(0).getStatus())){ + break; + } + } + return approveDateVO; + } + + private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) { + List<Approve> list = new ArrayList<>(); + if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){ + //濡傛灉鏄崟浜哄鎵� + list.add(level); + return list; + } + //鏌ユ壘鍏ㄩ儴宸插鐞嗙殑闆嗗悎 + List<Approve> passList = new ArrayList<>();//宸插悓鎰忕殑璁板綍闆� + Approve refuseModel = new Approve();//宸叉嫆缁濈殑璁板綍 + List<Approve> waitList = new ArrayList<>(); //鏌ヨ鍏ㄩ儴鏈鐞嗙殑闆嗗悎 + List<Approve> otherPassList = new ArrayList<>();//浠栦汉宸插鐞嗙殑璁板綍闆� + dealGroupListBiz(level,passList,refuseModel,waitList,otherPassList); + if(refuseModel !=null){ + //瀛樺湪鎷掔粷鐨勶紝鍙渶瑕佽繑鍥炰竴鏉″鐞嗘暟鎹紝鍚庣画涓嶉渶瑕佸洖鏄� + list.add(refuseModel); + return list; + } + list.addAll(sortByCreateTime(passList)); + if(Constants.equalsInteger(level.getApproveType(),Constants.ONE)){ + //濡傛灉鏄細绛� + if(waitList.size()>0){ + Approve waitModel = new Approve(); + waitModel.setApproveType(Constants.ONE); + waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"澶勭悊涓�"); + waitModel.setStatus(Constants.ONE); + waitModel.setApproveList(waitList); + list.add(waitModel); + } + }else { + //濡傛灉鏄垨绛� + if(otherPassList.size()>0){ + Approve waitModel = new Approve(); + waitModel.setApproveType(Constants.ONE); + waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"锛堟妱閫佹垨绛惧鎵逛汉锛�"); + waitModel.setStatus(Constants.ONE); + waitModel.setApproveList(otherPassList); + list.add(waitModel); + } + } + + + return list; + + } + + private void dealGroupListBiz(Approve level, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { + + //TODO----------rk + } + + private List<Approve> sortByCreateTime(List<Approve> passList) { + //TODO----------rk + + return passList; + } + + + private List<Approve> getLevelListFromResult(List<Approve> approveGroupList) { + //TODO----------rk + return null; + } /** * 鏁寸悊 瀹℃壒鏁版嵁 @@ -463,6 +560,7 @@ .selectAll(Approve.class) .selectAs(Member::getName,Approve::getMemberName) .selectAs(Member::getPhone,Approve::getMemberPhone) + .selectAs(Member::getFaceImg,Approve::getFaceImg) .selectAs(Company::getName,Approve::getCompanyName) .leftJoin(Member.class,Member::getId,Approve::getChekorId) .leftJoin(Company.class,Company::getId,Member::getCompanyId) @@ -474,14 +572,26 @@ .orderByAsc(Approve::getLevel) .orderByAsc(Approve::getId) ); + + + String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + for (Approve approve:approveAllList ) { + if(StringUtils.isNotBlank(approve.getFaceImg())){ + approve.setFaceImg(path + approve.getFaceImg()); + } + } + if(CollectionUtils.isEmpty(approveAllList)){ return approveDateVO; } - List<Approve> approveList = approveAllList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList()); + List<Approve> approveList = approveAllList.stream().filter(i->Constants.equalsInteger(i.getType(),(Constants.ZERO))) + .collect(Collectors.toList()); if(CollectionUtils.isEmpty(approveList)){ return approveDateVO; } approveDateVO.setCanBeApproved(this.canBeApproved(approveList,memberId)); + approveDateVO.setDriverParam(this.canDriverParam(approveList,memberId)); //鏍规嵁瀹℃壒绾у埆 澶勭悊鏁版嵁 for (Approve approve:approveGroupList) { approve.setApproveList( @@ -510,6 +620,24 @@ return Constants.ZERO; } + public Integer canDriverParam(List<Approve> approveList,Integer memberId){ + //鑾峰彇鎵�鏈夊緟瀹℃壒鐨勬暟鎹� + List<Approve> waitApprovedList = approveList.stream().filter(i->i.getType().equals(Constants.ZERO)&&i.getStatus().equals(Constants.ZERO)).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(waitApprovedList)){ + //涓嬩釜瀹℃壒娴佺▼绛夌骇 + Integer nextApprovedLevel = waitApprovedList.get(Constants.ZERO).getLevel(); + //涓嬩釜瀹℃壒娴佺▼鐨� 鎵�鏈夋暟鎹� + List<Approve> nextApprovedList = waitApprovedList.stream().filter(i->i.getStatus().equals(Constants.ZERO)&&i.getLevel().equals(nextApprovedLevel)).collect(Collectors.toList()); + //涓嬩釜瀹℃壒娴佺▼鍐� 濡傛灉瀛樺湪褰撳墠 鐢ㄦ埛鐨勬姄绱� 鍒欏彲浠ヨ繘琛屽鎵� + List<Approve> auditApproveList = nextApprovedList.stream().filter(i->i.getChekorId().equals(memberId)).collect(Collectors.toList()); + if(auditApproveList.size() >0){ + Approve auditApprove = auditApproveList.get(Constants.ZERO); + return auditApprove.getDriverParam(); + } + } + return Constants.ZERO; + } + -- Gitblit v1.9.3