server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -426,12 +426,26 @@ } public interface approveObjectType{ int unConstructionVisit = 0;//éæ½å·¥äººå访客ç³è¯· int constructionVisit = 1;//工人å访客ç³è¯· int visitReporting = 2;//访客æ¥å¤ int cityUseCar = 3;//å¸å ç¨è½¦ int unCityUseCar = 4;//å¸å¤ç¨è½¦ int logisticsCarUse = 5;//ç©æµè½¦é¢çº¦ } public interface approveStatus{ int wait = 0;//å¾ å®¡æ¹ int auditIng = 1;//审æ¹ä¸ int pass = 2;//审æ¹éè¿ int unPass = 3;//å®¡æ¹æªéè¿ int otherDeal = 4;//ä»äººå·²å¤ç int cancel = 5;//已忶 int otherUnPass = 6;//ä»äººæç» } /** server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/CarUseBookController.java
@@ -73,10 +73,10 @@ ExcelExporter.build(CarUseBook.class).export(carUseBookService.findPage(pageWrap).getRecords(), "车è¾_ç¨è½¦ç³è¯·ä¿¡æ¯è¡¨", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:carusebook:query") public ApiResponse findById(@PathVariable Integer id) { return ApiResponse.success(carUseBookService.findById(id)); } // @ApiOperation("æ ¹æ®IDæ¥è¯¢") // @GetMapping("/{id}") // @RequiresPermissions("business:carusebook:query") // public ApiResponse findById(@PathVariable Integer id) { // return ApiResponse.success(carUseBookService.findById(id)); // } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveCloudController.java
@@ -8,6 +8,7 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.dto.ApproveDTO; import com.doumee.dao.business.model.Approve; import com.doumee.service.business.ApproveService; import io.swagger.annotations.Api; @@ -88,4 +89,14 @@ public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(approveService.findById(id)); } @ApiOperation("审æ¹ä¿¡æ¯æäº¤") @PostMapping("/approved") @CloudRequiredPermission("business:approve:create") public ApiResponse approved (@RequestBody ApproveDTO approveDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { approveDTO.setLoginUserInfo(getLoginUser(token)); approveService.approved(approveDTO); return ApiResponse.success("æä½æå"); } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java
@@ -85,7 +85,7 @@ @GetMapping("/{id}") @CloudRequiredPermission("business:carusebook:query") public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(carUseBookService.findById(id)); return ApiResponse.success(carUseBookService.findById(id,getLoginUser(token).getMemberId())); } @ApiOperation("æ¥è¯¢è½¦è¾é¢çº¦è®°å½") server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/InternalWebController.java
@@ -75,15 +75,15 @@ return ApiResponse.success(visitsService.taskCenter(pageWrap)); } @ApiOperation("访客记å½è¯¦æ ") @GetMapping("/visitDetail") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "è®°å½ä¸»é®", required = true) }) public ApiResponse<VisitDetailVO> visitDetail (@RequestParam Integer id) { return ApiResponse.success(visitsService.getVisitDetail(id)); } // @ApiOperation("访客记å½è¯¦æ ") // @GetMapping("/visitDetail") // @ApiImplicitParams({ // @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "ç¨æ·tokenå¼", required = true), // @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "è®°å½ä¸»é®", required = true) // }) // public ApiResponse<VisitDetailVO> visitDetail (@RequestParam Integer id) { // return ApiResponse.success(visitsService.getVisitDetail(id)); // } @ApiOperation(value = "人åå页",notes = "å¯æè®¿å é¨äººå") server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/VisitorWebController.java
@@ -76,8 +76,8 @@ @ApiOperation(value = "访客记å½è¯¦æ ", notes = "访客记å½è¯¦æ ") @GetMapping("/detail") public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id) { return ApiResponse.success("æ¥è¯¢æå", visitsService.getVisitDetail(id)); public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success("æ¥è¯¢æå", visitsService.getVisitDetail(id,getLoginUser(token).getMemberId())); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/ApproveDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package com.doumee.dao.business.dto; import com.doumee.core.model.LoginUserInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/5/20 14:54 */ @Data @ApiModel("审æ¹è¯·æ±ç±»") public class ApproveDTO { @ApiModelProperty(value = "å ³èä¸å¡ä¸»é®") private Integer objId; @ApiModelProperty(value = "å ³èä¸å¡ç±»åï¼0éæ½å·¥äººå访客ç³è¯· 1éæ½å·¥äººå访客ç³è¯· 2访客æ¥å¤ 3å ¬è½¦å¸å ç¨è½¦ 4å ¬è½¦å®¤å¤ç¨è½¦ 5å¸å ¬å¸ç©æµè½¦é¢çº¦") private Integer objType; @ApiModelProperty(value = "2审æ¹éè¿ 3å®¡æ¹æªéè¿") private Integer status; @ApiModelProperty(value = "审æ¹å¤æ³¨") private String checkInfo; @ApiModelProperty(value = "叿ºä¿¡æ¯ å ³ècar_driver") private Integer driverId; @ApiModelProperty(value = "æä½äºº",hidden = true) private LoginUserInfo loginUserInfo; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Approve.java
@@ -11,6 +11,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.util.List; /** * 审æ¹ä¿¡æ¯è®°å½è¡¨ @@ -69,8 +70,8 @@ @ExcelColumn(name="ERP审æ¹ç¼ç ") private String erpId; @ApiModelProperty(value = "审æ¹ç¶æ 0å¾ èªå·±å®¡æ¹å®¡æ¹ 1å¾ èªå·±å®¡æ¹ 2审æ¹éè¿ 3å®¡æ¹æªéè¿ 4ä»äººå·²å¤ç ", example = "1") @ExcelColumn(name="审æ¹ç¶æ 0å¾ èªå·±å®¡æ¹å®¡æ¹ 1å¾ èªå·±å®¡æ¹ 2审æ¹éè¿ 3å®¡æ¹æªéè¿ 4ä»äººå·²å¤ç") @ApiModelProperty(value = "审æ¹ç¶æ 0å¾ å®¡æ¹ 1审æ¹ä¸ 2审æ¹éè¿ 3å®¡æ¹æªéè¿ 4已忶 5ä»äººæç¾ 6ä»äººæç»", example = "1") @ExcelColumn(name="审æ¹ç¶æ 0å¾ å®¡æ¹ 1审æ¹ä¸ 2审æ¹éè¿ 3å®¡æ¹æªéè¿ 4已忶 5ä»äººæç¾ 6ä»äººæç»") private Integer status; @ApiModelProperty(value = "ç¶æä¿¡æ¯") @@ -141,4 +142,9 @@ @TableField(exist = false) private String companyName; @ApiModelProperty(value = "å¾ å®¡æ¹è®°å½", example = "1") @TableField(exist = false) private List<Approve> approveList; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.model.LoginUserModel; import com.doumee.dao.business.vo.ApproveDataVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -170,7 +171,7 @@ @ApiModelProperty(value = "ç³è¯·äººçµè¯") @TableField(exist = false) private String memberMobile; @ApiModelProperty(value = "审æ¹è®°å½") @ApiModelProperty(value = "审æ¹ä¿¡æ¯æ°æ®") @TableField(exist = false) private List<Approve> approveList; private ApproveDataVO approveDateVO; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ApproveDataVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ package com.doumee.dao.business.vo; import com.doumee.dao.business.model.Approve; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/5/23 14:56 */ @Data public class ApproveDataVO { @ApiModelProperty(value = "审æ¹è®°å½") private List<Approve> approveList; @ApiModelProperty(value = "æ¯å¦å¯ä»¥å®¡æ¹ 0=ä¸å¯ä»¥ï¼1=å¯ä»¥") private Integer canBeApproved; @ApiModelProperty(value = "æéè®°å½") private List<Approve> copyList; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
@@ -1,7 +1,9 @@ package com.doumee.dao.web.response; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.dao.business.model.Visits; import com.doumee.dao.business.vo.ApproveDataVO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -65,6 +67,9 @@ @ApiModelProperty(value = "访客äºç»´ç ") private String qrcode; @ApiModelProperty(value = "审æ¹ä¿¡æ¯æ°æ®") @TableField(exist = false) private ApproveDataVO approveDateVO; server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ApproveService.java
@@ -2,7 +2,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.dto.ApproveDTO; import com.doumee.dao.business.model.Approve; import com.doumee.dao.business.vo.ApproveDataVO; import com.doumee.dao.web.response.InternalHomeVO; import java.util.List; @@ -106,4 +108,8 @@ InternalHomeVO getHomeData(Integer memberId); void createApproveFlow(Integer tempType,Integer businessId,Integer createMemberId); ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId); void approved(ApproveDTO approveDTO); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarUseBookService.java
@@ -62,9 +62,10 @@ * 䏻鮿¥è¯¢ * * @param id ä¸»é® * @param memberId * @return CarUseBook */ CarUseBook findById(Integer id); CarUseBook findById(Integer id,Integer memberId); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -120,7 +120,7 @@ * @param id * @return */ VisitDetailVO getVisitDetail(Integer id); VisitDetailVO getVisitDetail(Integer id,Integer memberId); /** * å é¨äººå ä»»å¡ä¸å¿ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -9,8 +9,10 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; import com.doumee.dao.business.dto.ApproveDTO; import com.doumee.dao.business.join.ApproveJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.business.vo.ApproveDataVO; import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.response.InternalHomeVO; import com.doumee.service.business.ApproveService; @@ -18,11 +20,13 @@ 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.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.xpath.operations.Bool; 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.util.*; import java.util.stream.Collectors; @@ -37,6 +41,9 @@ @Autowired private ApproveMapper approveMapper; @Autowired private ApproveJoinMapper approveJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -58,6 +65,9 @@ @Autowired private CarDriverMapper carDriverMapper; @Autowired private VisitsMapper visitsMapper; @Override public Integer create(Approve approve) { @@ -258,12 +268,12 @@ this.organizeApproveData(approveTempl,approveParamList,createMember,businessId,approveList); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(approveList)){ if(CollectionUtils.isEmpty(approveList)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"å®¡æ¹æµé ç½®é误"); } //å¤çæéæ°æ® if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(approveCopyList)){ if(CollectionUtils.isNotEmpty(approveCopyList)){ this.organizeApproveCopyData(approveTempl,approveParamList,businessId,approveList); } approveMapper.insertBatchSomeColumn(approveList); @@ -290,8 +300,8 @@ approve.setIsdeleted(Constants.ZERO); approve.setTemplatId(approveTempl.getId()); approve.setChekorId(memberId); approve.setStatus(Constants.ZERO); approve.setStatusInfo("å¾ å®¡æ¹"); approve.setStatus(i==0?Constants.ONE:Constants.ZERO); approve.setStatusInfo(i==0?"审æ¹ä¸":"å¾ å®¡æ¹"); approve.setIsEndCheck((i+1) == approveParamList.size()?Constants.ONE:Constants.ZERO); approve.setObjId(businessId); approve.setLevel(i+1); @@ -315,7 +325,7 @@ .eq(Member::getWorkStatus,Constants.ZERO) .in(Member::getId,approveParam.getObjIds().split(","))); List<Integer> userIds = new ArrayList<>(); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)){ if(CollectionUtils.isNotEmpty(memberList)){ userIds.addAll(memberList.stream().map(m->m.getId()).collect(Collectors.toList())); } //å ¬å¡ç¨è½¦ é»è®¤å å ¥ 叿ºæé @@ -331,7 +341,7 @@ userIds.add(carDriver.getMemberId()); } if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(userIds)){ if(CollectionUtils.isNotEmpty(userIds)){ for (Integer memberId:userIds) { Approve approve = new Approve(); approve.setCreateDate(new Date()); @@ -425,4 +435,253 @@ } /** * æ´ç å®¡æ¹æ°æ® * @param businessId * @param businessType * @return */ @Override public ApproveDataVO arrangeApprovedData(Integer businessId, Integer businessType, Integer memberId){ ApproveDataVO approveDateVO = new ApproveDataVO(); approveDateVO.setCanBeApproved(Constants.ZERO); List<Approve> approveGroupList = approveJoinMapper.selectJoinList(Approve.class, new MPJLambdaWrapper<Approve>(). select(Approve::getLevel,Approve::getType) .eq(Approve::getIsdeleted,Constants.ZERO) .eq(Approve::getObjId,businessId) .isNotNull(Approve::getLevel) .eq(Approve::getObjType,businessType) .groupBy(Approve::getLevel,Approve::getType) ); if(CollectionUtils.isEmpty(approveGroupList)){ return approveDateVO; } //ææç审æ¹è®°å½ List<Approve> approveAllList = approveJoinMapper.selectJoinList(Approve.class, new MPJLambdaWrapper<Approve>() .selectAll(Approve.class) .selectAs(Member::getName,Approve::getMemberName) .selectAs(Member::getPhone,Approve::getMemberPhone) .selectAs(Company::getName,Approve::getCompanyName) .leftJoin(Member.class,Member::getId,Approve::getChekorId) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .leftJoin(SystemUser.class,SystemUser::getMemberId,Member::getId) .eq(Approve::getIsdeleted,Constants.ZERO) .eq(Approve::getObjId,businessId) .eq(Approve::getObjType,businessType) .orderByAsc(Approve::getType) .orderByAsc(Approve::getLevel) .orderByAsc(Approve::getId) ); if(CollectionUtils.isEmpty(approveAllList)){ return approveDateVO; } List<Approve> approveList = approveAllList.stream().filter(i->i.getType().equals(Constants.ZERO)).collect(Collectors.toList()); if(CollectionUtils.isEmpty(approveList)){ return approveDateVO; } approveDateVO.setCanBeApproved(this.canBeApproved(approveList,memberId)); //æ ¹æ®å®¡æ¹çº§å« å¤çæ°æ® for (Approve approve:approveGroupList) { approve.setApproveList( approveList.stream().filter(i->Objects.nonNull(i.getLevel())&&i.getLevel().equals(approve.getLevel())).collect(Collectors.toList()) ); } approveDateVO.setApproveList(approveGroupList); approveDateVO.setCopyList(approveAllList.stream().filter(i->i.getType().equals(Constants.ONE)).collect(Collectors.toList())); return approveDateVO; } public Integer canBeApproved(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()); //ä¸ä¸ªå®¡æ¹æµç¨å 妿åå¨å½å ç¨æ·çæç´§ åå¯ä»¥è¿è¡å®¡æ¹ if(nextApprovedList.stream().filter(i->i.getChekorId().equals(memberId)).collect(Collectors.toList()).size()>0){ return Constants.ONE; } } return Constants.ZERO; } @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void approved(ApproveDTO approveDTO){ if(Objects.isNull(approveDTO) || Objects.isNull(approveDTO.getObjId()) || Objects.isNull(approveDTO.getObjType()) || Objects.isNull(approveDTO.getStatus()) || Objects.isNull(approveDTO.getLoginUserInfo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(approveDTO.getStatus().equals(Constants.THREE)&&StringUtils.isBlank(approveDTO.getCheckInfo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请è¾å ¥æç»è¯´æ"); } Approve approve = approveMapper.selectOne(new QueryWrapper<Approve>() .lambda() .eq(Approve::getObjId,approveDTO.getObjId()) .eq(Approve::getObjType,approveDTO.getObjType()) .last(" limit 1") ); if(Objects.isNull(approve)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°å®¡æ¹æ°æ®"); } if(!approve.getStatus().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"审æ¹è®°å½ç¶æé误!"); } //å¤ç审æ¹ä¿¡æ¯ approve.setStatus(approveDTO.getStatus()); approve.setCheckInfo(approveDTO.getCheckInfo()); approve.setCheorId(approveDTO.getLoginUserInfo().getMemberId().toString()); approve.setCheckorName(approve.getLoginUserInfo().getRealname()); 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>() .selectAll(Approve.class) .eq(Approve::getIsdeleted,Constants.ZERO) .eq(Approve::getObjId,approveDTO.getObjId()) .eq(Approve::getObjType,approveDTO.getObjType()) .eq(Approve::getLevel,approve.getLevel()) .eq(Approve::getStatus,Constants.ONE) .ne(Approve::getId,approve.getId()) ); //å¤çæ¬æ¬¡å®¡æ¹çä¸å¡æ°æ® approveMapper.updateById(approve); //æ¯å¦å¤ç ä¸å¡æ°æ® Boolean dealBusinessBean = false; //审æ¹é©³åæ åµ if(approveDTO.getStatus().equals(Constants.THREE)){ //ä¿®æ¹å ¶ä»ææå¾ 审æ¹å审æ¹ä¸è®°å½æ°æ® approveJoinMapper.update(null,new UpdateWrapper<Approve>() .lambda() .set(Approve::getStatus,Constants.approveStatus.otherUnPass) .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait) .eq(Approve::getObjId,approve.getObjId()) .eq(Approve::getObjType,approve.getObjType()) .ne(Approve::getId,approve.getId())); }else{ //å¤çå ¶ä»ä¸å¡æ°æ® if(approve.getApproveType().equals(Constants.ZERO)&&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.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()))); /**å¼å¯ä¸ä¸çº§å«çæ°æ®ä¸ºå¾ å®¡æ ¸**/ approveJoinMapper.update(null,new UpdateWrapper<Approve>() .lambda() .set(Approve::getStatus,Constants.approveStatus.auditIng) .eq(Approve::getStatus,Constants.approveStatus.wait) .eq(Approve::getObjId,approve.getObjId()) .eq(Approve::getObjType,approve.getObjType()) .eq(Approve::getLevel,(approve.getLevel()+1)) ); }else if(approve.getApproveType().equals(Constants.ONE)&&approve.getIsEndCheck()==Constants.ONE){ //ä¼ç¾ ä¸ç»å®¡ if(approveList.size()==Constants.ZERO){ dealBusinessBean = true; } } } 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 ç©æµè½¦é¢çº¦ } } public void dealBusinessData(ApproveDTO approveDTO,Approve approve,Visits visits,CarUseBook carUseBook){ if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit) ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit) ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){ // 访客 ä¸ç±»ä¸å¡æ°æ® 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()); }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals( Constants.approveObjectType.unCityUseCar)){ // å¸å å¤ç¨è½¦ç³è¯· carUseBook = carUseBookMapper.selectById(approveDTO.getObjId()); if(Objects.isNull(carUseBook)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªæ¥è¯¢å°ç¨è½¦è®°å½"); } carUseBook.setStatus(approveDTO.getStatus()); carUseBook.setEditDate(new Date()); carUseBook.setEditor(approveDTO.getLoginUserInfo().getMemberId()); //妿é 置修æ¹å¸æº ä¸ å ¥åäºæ´æ¢å叿ºä¿¡æ¯ if(approveDTO.getStatus()==Constants.TWO&&approve.getDriverParam().equals(Constants.ONE)){ CarDriver carDriver = carDriverMapper.selectById(approveDTO.getDriverId()); if(Objects.isNull(carDriver)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªæ¥è¯¢å°å¸æºä¿¡æ¯"); } carUseBook.setDriverId(carDriver.getId()); } }else if(approveDTO.getObjType().equals(Constants.approveObjectType.logisticsCarUse)){ //TODO ç©æµè½¦é¢çº¦ }else{ throw new BusinessException(ResponseStatus.BAD_REQUEST); } } } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -18,6 +18,7 @@ import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.DateIntervalVO; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.ApproveService; import com.doumee.service.business.CarUseBookService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -151,8 +152,14 @@ } } /** * * @param id ä¸»é® * @param memberId * @return */ @Override public CarUseBook findById(Integer id) { public CarUseBook findById(Integer id,Integer memberId) { MPJLambdaWrapper<CarUseBook> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(CarUseBook.class); queryWrapper.select("t1.name",CarUseBook::getMemberName); @@ -166,21 +173,11 @@ .eq(CarUseBook::getId,id) .last("limit 1" ); CarUseBook model = carUseBookMapper.selectJoinOne(CarUseBook.class,queryWrapper); //审æ¹è®°å½ List<Approve> approveList = approveJoinMapper.selectJoinList(Approve.class, new MPJLambdaWrapper<Approve>() .selectAll(Approve.class) .selectAs(Member::getName,Approve::getMemberName) .selectAs(Member::getPhone,Approve::getMemberPhone) .selectAs(Company::getName,Approve::getCompanyName) .leftJoin(Member.class,Member::getId,Approve::getChekorId) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .eq(Approve::getIsdeleted,Constants.ZERO) .eq(Approve::getObjType,Constants.ONE) .eq(Approve::getObjId,id) .orderByAsc(Approve::getLevel) model.setApproveDateVO( approveService.arrangeApprovedData(id, model.getType().equals(Constants.ZERO)?3:4, memberId) ); model.setApproveList(approveList); return model; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1213,7 +1213,7 @@ @Override public VisitDetailVO getVisitDetail(Integer id){ public VisitDetailVO getVisitDetail(Integer id,Integer memberId){ Visits visits = visitsMapper.selectById(id); if(Objects.isNull(visits)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); @@ -1257,6 +1257,15 @@ visitsMapper.selectList(new QueryWrapper<Visits>().lambda() .select(Visits::getName,Visits::getPhone,Visits::getQrcode,Visits::getFaceImg,Visits::getImgurl,Visits::getIdcardDecode,Visits::getStatus) .eq(Visits::getParentId,id))); if(Objects.nonNull(memberId)){ visitDetailVO.setApproveDateVO( approveService.arrangeApprovedData(id, visits.getType(), memberId) ); } return visitDetailVO; }