From 43db8d016dc5079da163c02a6e7d63185c78b3af Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 28 六月 2024 09:46:05 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 457 +++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 335 insertions(+), 122 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 72e088c..ecb91fd 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 @@ -1,6 +1,7 @@ package com.doumee.service.business.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.api.R; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -17,6 +18,7 @@ import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.ApproveDataVO; +import com.doumee.dao.system.dto.NoticesDTO; import com.doumee.dao.system.join.NoticesJoinMapper; import com.doumee.dao.system.model.Notices; import com.doumee.dao.system.model.SystemUser; @@ -30,8 +32,10 @@ import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.models.auth.In; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.xpath.operations.Bool; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,6 +49,7 @@ * @date 2023/12/28 14:09 */ @Service +@Slf4j public class ApproveServiceImpl implements ApproveService { @Autowired @@ -232,16 +237,92 @@ /** * 鍐呴儴浜哄憳H5椤甸潰棣栭〉 * @param memberId + * @param isDetail 鏄惁鏌ヨ璇︾粏 1鏄紱0鍚� * @return */ @Override - public InternalHomeVO getHomeData(Integer memberId){ + public InternalHomeVO getHomeDataH5(Integer memberId,Integer isDetail){ InternalHomeVO internalHomeVO = new InternalHomeVO(); internalHomeVO.setHomeImg(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.HOME_IMAGE).getCode()); - internalHomeVO.setTaskNum(approveMapper.selectCount(new QueryWrapper<Approve>().lambda().eq(Approve::getChekorId,memberId).eq(Approve::getStatus,Constants.ZERO))); + //浠诲姟鏁版嵁 + List<Notices> noticesList = noticesJoinMapper. + selectList(new QueryWrapper<Notices>().lambda() + .eq(Notices::getUserId,memberId).orderByDesc(Notices::getCreateDate)); + internalHomeVO.setTaskNum(noticesList.size()); + if(Constants.equalsInteger(Constants.ONE,isDetail)){ + if(CollectionUtils.isNotEmpty(noticesList)){ + //寰呮垜澶勭悊鐨勬暟鎹� + internalHomeVO.setNoticeWaitNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),memberId) + &&Constants.equalsInteger(i.getStatus(),Constants.ZERO) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO) + ).count() + ); + internalHomeVO.setNoticeDealNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),memberId) + &&Constants.equalsInteger(i.getStatus(),Constants.ONE) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO) + ).count() + ); + + internalHomeVO.setNoticeCreateNum( + noticesJoinMapper.selectCount(new QueryWrapper<Notices>().lambda().eq(Notices::getParam3,memberId)) + ); + + internalHomeVO.setNoticeCopyNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),memberId) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE) + ).count() + ); + } + } + return internalHomeVO; } + + @Override + public InternalHomeVO getHomeDataPC(NoticesDTO noticesDTO){ + InternalHomeVO internalHomeVO = new InternalHomeVO(); + internalHomeVO.setHomeImg(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.HOME_IMAGE).getCode()); + //浠诲姟鏁版嵁 + List<Notices> noticesList = noticesJoinMapper. + selectList(new QueryWrapper<Notices>().lambda() + .ge(noticesDTO.getStartDate() != null, Notices::getCreateDate, Utils.Date.getStart(noticesDTO.getStartDate() )) + .le(noticesDTO.getEndDate() != null, Notices::getCreateDate, Utils.Date.getEnd(noticesDTO.getEndDate() )) + .eq(noticesDTO.getType() != null, Notices::getType, noticesDTO.getType()) + .eq(Notices::getUserId,noticesDTO.getMemberId()) + .orderByDesc(Notices::getCreateDate) + ); + internalHomeVO.setTaskNum(noticesList.size()); + if(CollectionUtils.isNotEmpty(noticesList)){ + //寰呮垜澶勭悊鐨勬暟鎹� + internalHomeVO.setNoticeWaitNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId()) + &&Constants.equalsInteger(i.getStatus(),Constants.ZERO) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO) + ).count() + ); + internalHomeVO.setNoticeDealNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId()) + &&Constants.equalsInteger(i.getStatus(),Constants.ONE) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ZERO) + ).count() + ); + + internalHomeVO.setNoticeCreateNum( + noticesJoinMapper.selectCount(new QueryWrapper<Notices>().lambda().eq(Notices::getParam3,noticesDTO.getMemberId())) + ); + + internalHomeVO.setNoticeCopyNum( + noticesList.stream().filter(i->Constants.equalsInteger(i.getUserId(),noticesDTO.getMemberId()) + &&Constants.equalsInteger(i.getSendacopy(),Constants.ONE) + ).count() + ); + } + + return internalHomeVO; + } /** * 鍒涘缓瀹℃壒娴佺▼ @@ -308,6 +389,27 @@ * @param approveList */ public void organizeApproveData(ApproveTempl approveTempl,List<ApproveParam> approveParamList,Member createMember,Integer businessId,List<Approve> approveList){ + + //鍒涘缓榛樿浜轰俊鎭� + Approve createUserApprove = new Approve(); + createUserApprove.setRemark("鍙戣捣鐢宠"); + createUserApprove.setCreateDate(new Date()); + createUserApprove.setIsdeleted(Constants.ZERO); + createUserApprove.setTemplatId(approveTempl.getId()); + createUserApprove.setChekorId(createMember.getId()); + createUserApprove.setStatus(Constants.approveStatus.pass); + createUserApprove.setTitle("鍙戣捣鐢宠"); + createUserApprove.setStatusInfo(""); + createUserApprove.setIsEndCheck(Constants.ZERO); + createUserApprove.setObjId(businessId); + createUserApprove.setLevel(-1); + createUserApprove.setObjType(approveTempl.getType()); + createUserApprove.setApproveType(Constants.TWO); + createUserApprove.setDriverParam(Constants.ZERO); + createUserApprove.setAddrParam(Constants.ZERO); + createUserApprove.setType(Constants.ZERO); + approveList.add(createUserApprove); + //瀹℃壒涓氬姟鏁版嵁 for (int i = 0; i < approveParamList.size(); i++) { ApproveParam approveParam = approveParamList.get(i); @@ -321,6 +423,24 @@ if(i==0){ if(jsonMap.isEmpty()){ title = this.createNoticesData(noticeType,businessId,title,jsonMap); + } + if(j==0){ + //榛樿鐢熸垚涓�鏉� 鐢宠浜虹殑鏁版嵁 鏍囪鍒犻櫎鐘舵�佺敤浜庡鐞嗗埌 浠诲姟涓績锛堟垜鍙戣捣锛変娇鐢� + Notices notices = new Notices(); + notices.setCreateDate(new Date()); + notices.setIsdeleted(Constants.ONE); + notices.setObjId(businessId); + notices.setObjType(noticeType); + notices.setType(noticeType); + notices.setTitle(title); + notices.setParam1(JSONObject.toJSONString(jsonMap)); + notices.setStatus(Constants.ZERO); + notices.setReaded(Constants.ZERO); + notices.setSendacopy(Constants.ZERO); + notices.setParam2("0"); + notices.setParam3(createMember.getId().toString()); + notices.setInfo("澶勭悊涓�"); + noticesJoinMapper.insert(notices); } Notices notices = new Notices(); notices.setCreateDate(new Date()); @@ -336,6 +456,7 @@ notices.setReaded(Constants.ZERO); notices.setSendacopy(Constants.ZERO); notices.setParam2("0"); + notices.setParam3(""); notices.setInfo("寰呭鐞�"); noticesJoinMapper.insert(notices); } @@ -550,6 +671,7 @@ .leftJoin(Member.class,Member::getId,Approve::getChekorId) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .eq(Approve::getIsdeleted,Constants.ZERO) + .ne(Approve::getStatus,Constants.approveStatus.cancel) .eq(Approve::getObjId,businessId) .eq(Approve::getObjType,businessType) .orderByAsc(Approve::getLevel) @@ -559,13 +681,15 @@ List<Approve> levelList = getLevelListFromResult(approveGroupList,approveDateVO,memberId); List<Approve> copyList = getAllCopyList(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; + if(levelList!=null){ + 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; + } } } @@ -574,12 +698,11 @@ Approve waitModel = new Approve(); waitModel.setApproveType(Constants.ONE); waitModel.setTitle("鎶勯�佷汉"); - waitModel.setStatus(Constants.ONE); + waitModel.setStatus(copyList.get(Constants.ZERO).getStatus()); waitModel.setType(Constants.ONE); waitModel.setApproveList(copyList); approveDateVO.getApproveList().add(waitModel); } - return approveDateVO; } @@ -604,8 +727,8 @@ Approve refuseModel = new Approve();//宸叉嫆缁濈殑璁板綍 List<Approve> waitList = new ArrayList<>(); //鏌ヨ鍏ㄩ儴鏈鐞嗙殑闆嗗悎 List<Approve> otherPassList = new ArrayList<>();//浠栦汉宸插鐞嗙殑璁板綍闆� - List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList()); - dealGroupListBiz(level,levelApprove,approveGroupList,passList,refuseModel,waitList,otherPassList); + int appType = Constants.formatIntegerNum(level.getApproveType());//褰撳墠瀹℃壒绫诲瀷 + dealGroupListBiz(level,approveGroupList,passList,refuseModel,waitList,otherPassList); if(Objects.nonNull(refuseModel) && Objects.nonNull(refuseModel.getId())){ //瀛樺湪鎷掔粷鐨勶紝鍙渶瑕佽繑鍥炰竴鏉″鐞嗘暟鎹紝鍚庣画涓嶉渶瑕佸洖鏄� refuseModel.setApproveType(Constants.ZERO); @@ -613,11 +736,12 @@ return list; } list.addAll(sortByCreateTime(passList)); - if(Constants.equalsInteger(level.getApproveType(),Constants.ONE)){ + if(Constants.equalsInteger(appType,Constants.ONE)){ //濡傛灉鏄細绛� if(waitList.size()>1){ Approve waitModel = new Approve(); waitModel.setApproveType(Constants.ONE); + waitModel.setType(Constants.ZERO); waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")); waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO); waitModel.setStatusInfo("澶勭悊涓�"); @@ -625,11 +749,15 @@ ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){ waitModel.setMemberName(waitList.size() +"浜轰細绛�"); } + if(CollectionUtils.isNotEmpty(waitList)){ + waitModel.setCreateDate(waitList.get(Constants.ZERO).getCreateDate()); + } waitModel.setApproveList(waitList); list.add(waitModel); }else if(waitList.size()>0){ Approve approve = waitList.get(Constants.ZERO); approve.setApproveType(Constants.ZERO); + approve.setType(Constants.ZERO); list.add(approve); } }else { @@ -638,8 +766,10 @@ waitModel.setApproveType(Constants.ONE); if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){ waitModel.setStatus(Constants.approveStatus.pass); + waitModel.setType(Constants.ONE); waitModel.setTitle("瀹℃壒浜猴紙鎶勯�佹垨绛惧鎵逛汉锛�"); }else{ + waitModel.setType(Constants.ZERO); waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉"); waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO); } @@ -648,6 +778,9 @@ //濡傛灉鏄垨绛� if(passList.size()>0){ approveList.addAll(otherPassList); + } + if(CollectionUtils.isNotEmpty(approveList)){ + waitModel.setCreateDate(approveList.get(Constants.ZERO).getCreateDate()); } waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�"); waitModel.setApproveList(approveList); @@ -669,10 +802,15 @@ } - private void dealGroupListBiz(Approve level, List<Approve> levelApprove,List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { + private void dealGroupListBiz(Approve level, List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) { //鏌ヨ鏄惁瀛樺湪鎷掔粷鏁版嵁 + List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList()); for (Approve approve:levelApprove) { + if(!Constants.equalsInteger(level.getLevel(),approve.getLevel())){ + continue; + } if(Constants.equalsInteger(Constants.approveStatus.pass,approve.getStatus())){ + approve.setApproveType(Constants.ZERO); passList.add(approve); }else if(Constants.equalsInteger(Constants.approveStatus.otherDeal,approve.getStatus())){ otherPassList.add(approve); @@ -703,7 +841,8 @@ if(Constants.equalsInteger(approve.getType(),Constants.ONE)){ continue; } - if(Constants.equalsInteger(approve.getChekorId(),memberId)){ + if(Constants.equalsInteger(approve.getChekorId(),memberId) + &&Constants.equalsInteger(approve.getStatus(), Constants.ONE)){ approveDataVO.setCanBeApproved(Constants.ONE); approveDataVO.setDriverParam(approve.getDriverParam()); } @@ -711,11 +850,9 @@ approveList.add(approve); } } - if(CollectionUtils.isEmpty(approveList)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒淇℃伅锛氱骇鍒暟鎹紓甯�"); + // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒淇℃伅锛氱骇鍒暟鎹紓甯�"); } - return approveList; } @@ -769,8 +906,6 @@ .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 ) { @@ -856,6 +991,9 @@ .lambda() .eq(Approve::getObjId,approveDTO.getObjId()) .eq(Approve::getObjType,approveDTO.getObjType()) + .eq(Approve::getChekorId,approveDTO.getLoginUserInfo().getMemberId()) + .eq(Approve::getType,Constants.ZERO) + .eq(Approve::getStatus,Constants.approveStatus.auditIng) .last(" limit 1") ); if(Objects.isNull(approve)){ @@ -864,17 +1002,26 @@ if(!approve.getStatus().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒璁板綍鐘舵�侀敊璇�!"); } - + //鏍规嵁瀹℃壒璁板綍鏌ヨ 褰撳墠澶勭悊鏁版嵁瀵瑰簲鐨� 閫氱煡璁板綍 + Integer noticeType = Constants.approveTypeToNoticeType(approve.getObjType()); + Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda() + .eq(Notices::getObjId,approve.getObjId()) + .eq(Notices::getObjType,noticeType) + .eq(Notices::getUserId,approve.getChekorId()) + .eq(Notices::getSendacopy,Constants.ZERO) + .eq(Notices::getIsdeleted,Constants.ZERO) + ); + if(Objects.isNull(notices)){ + log.info("鏈煡璇㈠埌閫氱煡璁板綍"); + return; + } //澶勭悊瀹℃壒淇℃伅 approve.setStatus(approveDTO.getStatus()); approve.setCheckInfo(approveDTO.getCheckInfo()); approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString()); - approve.setCheckorName(approve.getLoginUserInfo().getRealname()); + approve.setCheckorName(approveDTO.getLoginUserInfo().getRealname()); approve.setCheckDate(new Date()); - approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"瀹℃壒閫氳繃":approveDTO.getCheckInfo()); - Visits visits = new Visits(); - CarUseBook carUseBook = new CarUseBook(); - this.dealBusinessData(approveDTO,approve,visits,carUseBook); + approve.setStatusInfo(approveDTO.getStatus()==Constants.TWO?"宸插悓鎰�":approveDTO.getCheckInfo()); //鏈骇鎵�鏈� 寰呭鎵硅褰� List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class, new MPJLambdaWrapper<Approve>() @@ -884,7 +1031,17 @@ .eq(Approve::getObjType,approveDTO.getObjType()) .eq(Approve::getLevel,approve.getLevel()) .eq(Approve::getStatus,Constants.ONE) + .eq(Approve::getType,Constants.ZERO) .ne(Approve::getId,approve.getId()) + ); + //涓氬姟鏁版嵁涓嬮厤缃殑鎵�鏈夋妱閫佽褰� + List<Approve> approveCopyList = approveJoinMapper.selectJoinList(Approve.class, + new MPJLambdaWrapper<Approve>() + .selectAll(Approve.class) + .eq(Approve::getIsdeleted,Constants.ZERO) + .eq(Approve::getObjId,approveDTO.getObjId()) + .eq(Approve::getObjType,approveDTO.getObjType()) + .eq(Approve::getType,Constants.ONE) ); //澶勭悊鏈瀹℃壒鐨勪笟鍔℃暟鎹� approveMapper.updateById(approve); @@ -900,25 +1057,54 @@ .eq(Approve::getObjId,approve.getObjId()) .eq(Approve::getObjType,approve.getObjType()) .ne(Approve::getId,approve.getId())); + //澶勭悊鎵�鏈塏otice閫氱煡涓哄凡澶勭悊 + if(approve.getApproveType().equals(Constants.ZERO)){ + //淇敼鑷繁鐨勯�氱煡璁板綍 + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId()) + .set(Notices::getReaded,Constants.ONE) + .set(Notices::getParam2,Constants.TWO) + .set(Notices::getStatus,Constants.ONE) + .eq(Notices::getId,notices.getId()) + ); + //淇敼 鏈鐞嗙殑 閫氱煡鏁版嵁 涓烘妱閫� + if (!Constants.equalsInteger(approve.getApproveType(),Constants.TWO)){ + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getSendacopy,Constants.ONE) + .set(Notices::getStatus,Constants.ONE) + .set(Notices::getParam2,Constants.TWO) + .eq(Notices::getObjId,notices.getObjId()) + .eq(Notices::getObjType,notices.getObjType()) + .eq(Notices::getReaded,Constants.ZERO) + .ne(Notices::getId,notices.getId()) + ); + } + } + return; }else{ //澶勭悊鍏朵粬涓氬姟鏁版嵁 - if((approve.getApproveType().equals(Constants.ZERO) - || approve.getApproveType().equals(Constants.TWO)) &&approve.getIsEndCheck()==Constants.ONE){ + if((Constants.equalsInteger(approve.getApproveType(),Constants.ZERO) + || Constants.equalsInteger( approve.getApproveType(),Constants.TWO)) && Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE)){ //鎴栫 / 鍗曚汉瀹� 涓� 缁堝 - approveJoinMapper.update(null,new UpdateWrapper<Approve>() - .lambda() - .set(Approve::getStatus,Constants.approveStatus.otherDeal) - .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList()))); + if(CollectionUtils.isNotEmpty(approveList)){ + approveJoinMapper.update(null,new UpdateWrapper<Approve>() + .lambda() + .set(Approve::getStatus,Constants.approveStatus.otherDeal) + .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList()))); + } dealBusinessBean = true; - }else if((approve.getApproveType().equals(Constants.ZERO) || approve.getApproveType().equals(Constants.TWO)) &&approve.getIsEndCheck()!=Constants.ONE){ //鎴栫 / 鍗曚汉瀹� 闈炵粓瀹� 鍒欏紑鍚笅涓�姝ヤ笟鍔℃祦绋� /**澶勭悊鏈骇鏁版嵁**/ - approveJoinMapper.update(null,new UpdateWrapper<Approve>() - .lambda() - .set(Approve::getStatus,Constants.approveStatus.otherDeal) - .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList()))); + if(CollectionUtils.isNotEmpty(approveList)){ + approveJoinMapper.update(null,new UpdateWrapper<Approve>() + .lambda() + .set(Approve::getStatus,Constants.approveStatus.otherDeal) + .in(Approve::getId,approveList.stream().map(m->m.getId()).collect(Collectors.toList()))); + } /**寮�鍚笅涓�绾у埆鐨勬暟鎹负寰呭鏍�**/ approveJoinMapper.update(null,new UpdateWrapper<Approve>() .lambda() @@ -928,123 +1114,150 @@ .eq(Approve::getObjType,approve.getObjType()) .eq(Approve::getLevel,(approve.getLevel()+1)) ); - //TODO 鏇存柊娑堟伅鏁版嵁 鍙戦�佷笅涓�绾ф暟鎹秷鎭� - }else if(approve.getApproveType().equals(Constants.ONE)&&approve.getIsEndCheck()==Constants.ONE){ - //浼氱 涓旂粓瀹� - if(approveList.size()==Constants.ZERO){ + }else if(approve.getApproveType().equals(Constants.ONE)){ + //浼氱 涓旂粓瀹� + //鏃犱粬浜哄鎵圭殑鎯呭喌 鍒欎慨鏀规暟鎹姸鎬� + if(Constants.equalsInteger(approveList.size(),Constants.ZERO)&&Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE)){ dealBusinessBean = true; } } + this.passNextNotices(dealBusinessBean,notices,approve,approveList,approveCopyList,approveDTO); } - - if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit) - ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit) - ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){ - // 璁垮 涓夌被涓氬姟鏁版嵁 - visitsMapper.updateById(visits); - if(dealBusinessBean){ - //TODO 鍙戦�佸鎵归�氳繃娑堟伅 - - }else if(approveDTO.getStatus().equals(Constants.THREE)){ - //TODO 瀹℃壒鏈�氳繃閫氱煡 - - } - }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals( - Constants.approveObjectType.unCityUseCar)){ - // 甯傚唴澶栫敤杞︾敵璇� - carUseBookMapper.updateById(carUseBook); - if(dealBusinessBean){ - //TODO 鍙戦�佸鎵归�氳繃娑堟伅 - - }else if(approveDTO.getStatus().equals(Constants.THREE)){ - //TODO 瀹℃壒鏈�氳繃閫氱煡 - - } - }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){ - //TODO 鐗╂祦杞﹂绾� - + //澶勭悊涓氬姟鏁版嵁 + if(dealBusinessBean){ + this.dealBusinessData(approveDTO,approve); } } - public void passNextNotices(Boolean dealBusinessBean,Approve approve){ - //鏍规嵁瀹℃壒璁板綍鏌ヨ 閫氱煡璁板綍 - Integer noticeType = Constants.approveTypeToNoticeType(approve.getObjType()); - Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda() - .eq(Notices::getObjId,approve.getObjId()) - .eq(Notices::getObjType,noticeType) - .eq(Notices::getUserId,approve.getChekorId()) - .eq(Notices::getSendacopy,Constants.ZERO) - .eq(Notices::getIsdeleted,Constants.ZERO) + /** + * 澶勭悊寰呭姙淇℃伅 + * @param dealBusinessBean 鏄惁闇�瑕佽繘琛屾洿鏂颁笟鍔℃暟鎹姸鎬� + * @param approve 瀹℃壒璁板綍 + * @param approveList 鍚岀骇寰呭鎵规暟鎹� + */ + public void passNextNotices(Boolean dealBusinessBean,Notices notices,Approve approve,List<Approve> approveList,List<Approve> copyList,ApproveDTO approveDTO){ + //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍 + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getReaded,Constants.ONE) + .set(Notices::getStatus,Constants.ONE) + .set(dealBusinessBean,Notices::getParam2,Constants.ONE) + .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId()) + .eq(Notices::getId,notices.getId()) ); - if(Objects.isNull(notices)){ - return; - } - - if(Constants.equalsInteger(approve.getApproveType(),Constants.ZERO)){ //鎴栫 - //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍 - //2銆佹洿鏂颁粬浜虹殑鍚岀骇璁板綍 涓烘妱閫� - + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getReaded,Constants.ONE) + .set(Notices::getSendacopy,Constants.ONE) + .set(Notices::getStatus,Constants.ONE) + .set(Notices::getParam4,approveDTO.getLoginUserInfo().getMemberId()) + .set(dealBusinessBean,Notices::getParam2,Constants.ONE) + .eq(Notices::getObjId,notices.getObjId()) + .eq(Notices::getObjType,notices.getObjType()) + .ne(Notices::getId,notices.getId()) + ); //3銆佸鏋滀笉鏄粓瀹$敓鎴愪笅涓�绾х殑鏁版嵁璁板綍 - - + if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)&&!dealBusinessBean){ + this.saveNextNotice(notices,approve); + } }else if(Constants.equalsInteger(approve.getApproveType(),Constants.ONE)){ //浼氱 - //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍 - - //2銆佹牴鎹槸鍚︿负鏈�鍚庝竴浣嶅鎵逛汉 濡傛灉涓嶆槸 鍒欑粨鏉� - - //3銆� 濡傛灉鏄渶鍚庝竴浣嶅鎵逛汉 涓斾笉鏄粓瀹″紑鍚笅涓�绾ф暟鎹� - + //2銆佸鏋滄槸鏈�鍚庝竴浣嶅鎵逛汉 涓斾笉鏄粓瀹″紑鍚笅涓�绾ф暟鎹� + if(Constants.equalsInteger(Constants.ZERO,approveList.size())){ + if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){ + this.saveNextNotice(notices,approve); + } + } }else{ //鍗曚汉绛� - //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍 - //2銆� 鏄惁鏄粓瀹� 寮�鍚笅涓�绾ф暟鎹� + if(Constants.equalsInteger(approve.getIsEndCheck(),Constants.ZERO)){ + this.saveNextNotice(notices,approve); + } + } + //缁堝涓氬姟 涓� 澶勭悊鏁版嵁 杩涜鎶勯�佸彂閫� + if (Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE) && dealBusinessBean) { + if(CollectionUtils.isNotEmpty(copyList)){ + Notices copyNotices = new Notices(); + for (Approve copyApprove:copyList) { + if(Objects.isNull(copyNotices)){ + BeanUtils.copyProperties(notices,copyNotices); + notices.setId(null); + notices.setCreateDate(new Date()); + notices.setEditDate(new Date()); + notices.setParam2("2"); + notices.setParam3(""); + notices.setUserId(copyApprove.getChekorId()); + notices.setStatus(Constants.ZERO); + notices.setSendacopy(Constants.ONE); + notices.setReaded(Constants.ZERO); + noticesJoinMapper.insert(notices); + }else{ + notices.setId(null); + notices.setUserId(copyApprove.getChekorId()); + noticesJoinMapper.insert(notices); + } + } + } } - //涓氬姟閫氳繃 淇敼瀹℃壒瀵瑰簲娑堟伅璁板綍 - if(Constants.equalsInteger(approve.getStatus(),Constants.approveStatus.pass)){ - - } - // - - //缁堝涓氬姟 鍙戦�佹妱閫� - if (Constants.equalsInteger(approve.getIsEndCheck(),Constants.ONE)) { - - - - } - - - - - - - } - public void dealBusinessData(ApproveDTO approveDTO,Approve approve,Visits visits,CarUseBook carUseBook){ + + public void saveNextNotice(Notices notices,Approve approve){ + List<Approve> nextApproveList = approveJoinMapper.selectList(new QueryWrapper<Approve>() + .lambda() + .eq(Approve::getObjId,approve.getObjId()) + .eq(Approve::getObjType,approve.getObjType()) + .eq(Approve::getType,Constants.ZERO) + .eq(Approve::getLevel,(approve.getLevel() + Constants.ONE)) + ); + if(CollectionUtils.isNotEmpty(nextApproveList)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀹℃壒娴佹暟鎹紓甯�"); + } + Notices newNotices = new Notices(); + for (Approve nextDealApprove:nextApproveList) { + if(Objects.isNull(newNotices)){ + BeanUtils.copyProperties(notices,newNotices); + notices.setId(null); + notices.setCreateDate(new Date()); + notices.setParam2("0"); + notices.setParam3(""); + notices.setEditDate(new Date()); + notices.setUserId(nextDealApprove.getChekorId()); + notices.setStatus(Constants.ZERO); + notices.setSendacopy(Constants.ZERO); + notices.setReaded(Constants.ZERO); + noticesJoinMapper.insert(notices); + }else{ + notices.setId(null); + notices.setUserId(nextDealApprove.getChekorId()); + noticesJoinMapper.insert(notices); + } + } + } + + public void dealBusinessData(ApproveDTO approveDTO,Approve approve){ if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit) ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit) ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){ // 璁垮 涓夌被涓氬姟鏁版嵁 - visits = visitsMapper.selectById(approveDTO.getObjId()); + Visits visits = visitsMapper.selectById(approveDTO.getObjId()); if(Objects.isNull(visits)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鐢宠璁板綍"); } visits.setStatus(approveDTO.getStatus()); visits.setEditDate(new Date()); visits.setEditor(approveDTO.getLoginUserInfo().getMemberId()); - - + visitsMapper.updateById(visits); }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals( Constants.approveObjectType.unCityUseCar)){ // 甯傚唴澶栫敤杞︾敵璇� - carUseBook = carUseBookMapper.selectById(approveDTO.getObjId()); + CarUseBook carUseBook = carUseBookMapper.selectById(approveDTO.getObjId()); if(Objects.isNull(carUseBook)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鐢ㄨ溅璁板綍"); } @@ -1052,14 +1265,14 @@ carUseBook.setEditDate(new Date()); carUseBook.setEditor(approveDTO.getLoginUserInfo().getMemberId()); //濡傛灉閰嶇疆淇敼鍙告満 涓� 鍏ュ弬浜嗘洿鎹㈠悗鍙告満淇℃伅 - if(approveDTO.getStatus()==Constants.TWO&&approve.getDriverParam().equals(Constants.ONE)){ + if(approveDTO.getStatus()==Constants.TWO&&Constants.equalsInteger(approve.getDriverParam(),Constants.ONE)){ CarDriver carDriver = carDriverMapper.selectById(approveDTO.getDriverId()); if(Objects.isNull(carDriver)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鍙告満淇℃伅"); } carUseBook.setDriverId(carDriver.getId()); } - + carUseBookMapper.updateById(carUseBook); }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){ //TODO 鐗╂祦杞﹂绾� -- Gitblit v1.9.3