From e89b44aed4f73cb67fb7c94a2f41eb706d488044 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 03 六月 2024 18:24:27 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 246 +++++++++++++++++++++++++++++++------------------ 1 files changed, 156 insertions(+), 90 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 19b432d..77940c7 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; @@ -30,8 +31,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 +48,7 @@ * @date 2023/12/28 14:09 */ @Service +@Slf4j public class ApproveServiceImpl implements ApproveService { @Autowired @@ -580,7 +584,6 @@ waitModel.setApproveList(copyList); approveDateVO.getApproveList().add(waitModel); } - return approveDateVO; } @@ -874,7 +877,19 @@ 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()); @@ -882,9 +897,6 @@ 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); //鏈骇鎵�鏈� 寰呭鎵硅褰� List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class, new MPJLambdaWrapper<Approve>() @@ -894,7 +906,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); @@ -910,17 +932,39 @@ .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::getReaded,Constants.ONE) + .set(Notices::getParam2,approve.getStatus()) + .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::getParam2,approve.getStatus()) + .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()))); dealBusinessBean = true; - }else if((approve.getApproveType().equals(Constants.ZERO) || approve.getApproveType().equals(Constants.TWO)) &&approve.getIsEndCheck()!=Constants.ONE){ //鎴栫 / 鍗曚汉瀹� 闈炵粓瀹� 鍒欏紑鍚笅涓�姝ヤ笟鍔℃祦绋� @@ -938,122 +982,144 @@ .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); } - - 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)){ - // 甯傚唴澶栫敤杞︾敵璇� - if(dealBusinessBean){ - //TODO 鍙戦�佸鎵归�氳繃娑堟伅 - carUseBookMapper.updateById(carUseBook); - }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){ + //1銆佷慨鏀硅嚜宸辩殑鏁版嵁璁板綍 + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getReaded,Constants.ONE) + .set(dealBusinessBean,Notices::getParam2,approve.getStatus()) + .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(dealBusinessBean,Notices::getParam2,approve.getStatus()) + .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.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.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(),"鏈煡璇㈠埌鐢ㄨ溅璁板綍"); } @@ -1068,7 +1134,7 @@ } carUseBook.setDriverId(carDriver.getId()); } - + carUseBookMapper.updateById(carUseBook); }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){ //TODO 鐗╂祦杞﹂绾� -- Gitblit v1.9.3