From 6a80d0d2b393e36034c8ffef92fcaf06a1f0c552 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 16 八月 2024 09:23:03 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 204 insertions(+), 3 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java index d1cc8d5..a155825 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java @@ -1,20 +1,44 @@ package com.doumee.service.business.impl; +import cn.emay.sdk.util.StringUtil; +import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.ApproveTemplMapper; +import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.PlatformBooksMapper; -import com.doumee.dao.business.model.PlatformBooks; +import com.doumee.dao.business.PlatformReasonMapper; +import com.doumee.dao.business.join.ApproveJoinMapper; +import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.ApproveDataVO; +import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO; +import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO; +import com.doumee.dao.web.reqeust.RevokeDTO; +import com.doumee.service.business.ApproveService; import com.doumee.service.business.PlatformBooksService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.bcel.Const; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; +import java.util.Objects; /** * 鏈堝彴鍏ュ洯棰勭害淇℃伅琛⊿ervice瀹炵幇 @@ -27,8 +51,29 @@ @Autowired private PlatformBooksMapper platformBooksMapper; + @Autowired + private ApproveTemplMapper approveTemplMapper; + + @Autowired + private PlatformReasonMapper platformReasonMapper; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private ApproveService approveService; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private ApproveJoinMapper approveJoinMapper; + + @Override public Integer create(PlatformBooks platformBooks) { + + platformBooksMapper.insert(platformBooks); return platformBooks.getId(); } @@ -83,7 +128,7 @@ QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks); return platformBooksMapper.selectList(wrapper); } - + @Override public PageData<PlatformBooks> findPage(PageWrap<PlatformBooks> pageWrap) { IPage<PlatformBooks> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -111,7 +156,8 @@ .eq(pageWrap.getModel().getDriverId() != null, PlatformBooks::getDriverId, pageWrap.getModel().getDriverId()) .eq(pageWrap.getModel().getDriverName() != null, PlatformBooks::getDriverName, pageWrap.getModel().getDriverName()) .eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum()) - .eq(pageWrap.getModel().getDrivierPhone() != null, PlatformBooks::getDrivierPhone, pageWrap.getModel().getDrivierPhone()) + .eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone()) + .ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate()) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { @@ -128,4 +174,159 @@ QueryWrapper<PlatformBooks> wrapper = new QueryWrapper<>(platformBooks); return platformBooksMapper.selectCount(wrapper); } + + + @Override + public BigDecimal checkNum(PlatformBooksCheckNumDTO platformBooksCheckNumDTO){ + if(Objects.isNull(platformBooksCheckNumDTO) + || Objects.isNull(platformBooksCheckNumDTO.getTotalNum()) + || Objects.isNull(platformBooksCheckNumDTO.getReasonId()) + || Objects.isNull(platformBooksCheckNumDTO.getArriveDate())){ + return BigDecimal.ZERO; + } + //鏌ヨ姣忔棩閰嶇疆鐨勬�婚绾﹂噺 + PlatformReason platformReason = platformReasonMapper.selectById(platformBooksCheckNumDTO.getReasonId()); + if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍏ュ洯鍘熷洜淇℃伅寮傚父,璇峰埛鏂伴噸璇�"); + } + List<PlatformBooks> platformBooksList = platformBooksMapper.selectList(new QueryWrapper<PlatformBooks>().lambda() + .eq(PlatformBooks::getReasonId,platformBooksCheckNumDTO.getReasonId()) + .ne(PlatformBooks::getStatus,Constants.THREE) + .like(PlatformBooks::getCreateDate, DateUtil.getDate(platformBooksCheckNumDTO.getArriveDate(),"yyyy-MM-dd")) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformBooksList)){ + BigDecimal countNum = platformBooksList.stream().map(m->m.getTotalNum()).reduce(BigDecimal.ZERO,BigDecimal::add); + if(countNum.compareTo(platformReason.getLimitNum())>=Constants.ZERO){ + return BigDecimal.ZERO; + } + return platformReason.getLimitNum().subtract(countNum); + } + return platformReason.getLimitNum(); + } + + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public Integer apply(PlatformBooksApplyDTO platformBooksApplyDTO){ + if(Objects.isNull(platformBooksApplyDTO) + || StringUtils.isBlank(platformBooksApplyDTO.getContractNum()) + || Objects.isNull(platformBooksApplyDTO.getArriveDate()) + || Objects.isNull(platformBooksApplyDTO.getInType()) + || Objects.isNull(platformBooksApplyDTO.getTotalNum()) + || StringUtils.isBlank(platformBooksApplyDTO.getCarCodeFront()) + || StringUtils.isBlank(platformBooksApplyDTO.getCarCodeBack()) + || Objects.isNull(platformBooksApplyDTO.getDriverId()) + || StringUtils.isBlank(platformBooksApplyDTO.getDriverPhone()) + || StringUtils.isBlank(platformBooksApplyDTO.getDriverName()) + || StringUtils.isBlank(platformBooksApplyDTO.getTransportImg()) + || Objects.isNull(platformBooksApplyDTO.getReasonId()) + || StringUtils.isBlank(platformBooksApplyDTO.getInReason()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + PlatformReason platformReason = platformReasonMapper.selectById(platformBooksApplyDTO.getReasonId()); + if(Objects.isNull(platformReason)|| Constants.equalsInteger(platformReason.getIsdeleted(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍏ュ洯鍘熷洜淇℃伅寮傚父,璇峰埛鏂伴噸璇�"); + } + ApproveTempl approveTempl = approveTemplMapper.selectOne(new QueryWrapper<ApproveTempl>().lambda() + .eq(ApproveTempl::getIsdeleted,Constants.ZERO) + .eq(ApproveTempl::getObjId,platformReason.getId()) + .last(" limit 1") + ); + if(Objects.isNull(approveTempl)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈厤缃鎵规祦,璇疯仈绯荤鐞嗗憳"); + } + + if(Constants.equalsInteger(platformBooksApplyDTO.getUserId(),platformBooksApplyDTO.getDriverId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浜哄憳淇℃伅鍖归厤閿欒"); + } + if(Objects.nonNull(platformReason.getLimitNum())&&platformReason.getLimitNum().compareTo(platformBooksApplyDTO.getTotalNum())>0){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭鍏ュ洯鐢宠绾胯川閲�"); + } + PlatformBooks platformBooks = new PlatformBooks(); + BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks); + platformBooks.setCreateDate(new Date()); + platformBooks.setIsdeleted(Constants.ZERO); + platformBooks.setStatus(Constants.ZERO); + platformBooks.setDriverId(platformBooksApplyDTO.getUserId()); + platformBooksMapper.insert(platformBooks); + + //鍒涘缓瀹℃壒娴佷俊鎭� + approveService.createApproveFlow(5,platformBooks.getId(),platformBooks.getDriverId()); + return platformBooks.getId(); + } + + + @Override + public PlatformBooks getDetail(Integer id,Integer memberId){ + PlatformBooks model = platformBooksMapper.selectById(id); + if(Objects.isNull(model)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌棰勭害璁板綍"); + } + ApproveDataVO approveDataVO = approveService.arrangeApprovedData(id, + 5, + memberId); + model.setApproveDateVO(approveDataVO); + List<Approve> approveList = approveDataVO.getApproveList(); + if(Constants.equalsInteger(model.getStatus(),Constants.FOUR)){ + String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + Member member = memberMapper.selectById(model.getDriverId()); + + Approve approve = new Approve(); + approve.setApproveType(Constants.ZERO); + approve.setCreateDate(model.getCancelTime()); + approve.setTitle("鎾ら攢浜�"); + approve.setStatusInfo("宸叉挙閿�"); + approve.setStatus(Constants.FOUR); + approve.setType(Constants.ZERO); + if(member!=null) { + approve.setMemberName(member.getName()); + if (StringUtils.isNotBlank(member.getFaceImg())) { + approve.setFaceImg(path + member.getFaceImg()); + } + } + approve.setCheckInfo(model.getCancelInfo()); + approve.setCheckDate(model.getCancelTime()); + approveList.add(approve); + } + return model; + } + + + + @Override + public void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo){ + if(Objects.isNull(revokeDTO) + || Objects.isNull(revokeDTO.getId()) + || StringUtils.isBlank(revokeDTO.getInfo()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + PlatformBooks model = platformBooksMapper.selectById(revokeDTO.getId()); + if(Objects.isNull(model)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌棰勭害璁板綍"); + } + if(!(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + model.setCancelUser(loginUserInfo.getId()); + model.setCancelInfo(revokeDTO.getInfo()); + model.setCancelTime(new Date()); + model.setStatus(Constants.FOUR); + platformBooksMapper.updateById(model); + //澶勭悊瀹℃壒璁板綍 + approveJoinMapper.update(null,new UpdateWrapper<Approve>() + .lambda() + .set(Approve::getIsdeleted,Constants.ONE) + .set(Approve::getStatus,Constants.FOUR) + .set(Approve::getCheckInfo,"鐗╂祦杞﹂绾︾敵璇峰彇娑�") + .in(Approve::getStatus,Constants.ZERO,Constants.ONE) + .eq(Approve::getObjType,Constants.approveObjectType.logisticsCarUse) + .eq(Approve::getObjId,revokeDTO.getId()) + ); + } + + + } -- Gitblit v1.9.3