From 707b4da9ac191174864c95738d4b08b506154e02 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 26 三月 2025 15:41:48 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 77 +++++++++++++++++++++++++++++++++++--- 1 files changed, 71 insertions(+), 6 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java index 91c61aa..7facd5e 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java @@ -13,6 +13,7 @@ import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.param.BaseResponse; +import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentOutRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest; @@ -1570,22 +1571,86 @@ .eq(Retention::getMemberId,visits.getMemberId())); } + @Autowired + private VisitParkMapper visitParkMapper; + + /** * 澶勭悊寰呭鏍搞�佸鏍镐腑銆佸凡瀹℃牳鐨勬暟鎹彇娑堜笟鍔� * 2025骞�3鏈�25鏃�14:10:10 */ @Override - public void visitsCancel(Integer visitId){ + public void visitsCancel(Integer visitId,LoginUserInfo loginUserInfo){ Visits visits = visitsMapper.selectById(visitId); if(Objects.isNull(visits)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.waitCheck)||Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.submitCheck) - || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.pass))){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁垮璁板綍鐘舵�侀敊璇紝璇峰埛鏂伴噸璇�"); + if(!(Constants.equalsInteger(loginUserInfo.getMemberId(),visits.getMemberId()) || + Constants.equalsInteger(loginUserInfo.getMemberId(),visits.getCreateMemberId()) || + ( CollectionUtils.isNotEmpty(loginUserInfo.getPermissions()) && + loginUserInfo.getPermissions().stream().filter(i->i.equals("business:visits:cancel")).collect(Collectors.toList()).size()>0))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳鎿嶄綔鏉冮檺"); } - visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.VisitStatus.invalid) - .eq(Visits::getId,visitId)); + UpdateWrapper<Visits> updateWrapper = new UpdateWrapper(); + updateWrapper.lambda().set(Visits::getStatus,Constants.VisitStatus.cancel) + .set(Visits::getEditDate,DateUtil.getCurrDateTime()) + .set(Visits::getEditor,loginUserInfo.getId()) + .eq(Visits::getId,visitId); + //璁垮鎶ュ + if(Constants.equalsInteger(visits.getType(),Constants.TWO)){ + if(!(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.waitCheck)||Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.submitCheck) + || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.pass))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁垮璁板綍鐘舵�侀敊璇紝鏃犳硶杩涜璇ユ搷浣�"); + } + if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.pass) + && Constants.equalsInteger(visits.getHkStatus(),Constants.ONE) + &&StringUtils.isNotBlank(visits.getHkId())){ + //鍙栨秷鍋滆溅鍦洪绾� + List<VisitPark> visitParkList = visitParkMapper.selectList(new QueryWrapper<VisitPark>().lambda() + .eq(VisitPark::getCarCode,visits.getCarNos()) + .eq(VisitPark::getObjType,Constants.ONE) + .eq(VisitPark::getHkStatus,Constants.ONE) + .isNotNull(VisitPark::getHkId) + .apply(" END_TIME > now() ") + .orderByDesc(VisitPark::getCreateDate) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(visitParkList)){ + for (VisitPark visitPark:visitParkList) { + ParkReservationDelRequest param = new ParkReservationDelRequest(); + param.setReserveOrderNo(visitPark.getHkId()); + BaseResponse response = HKService.parkReservationDeletion(param); + if(response!=null + && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ + visitPark.setHkStatus(Constants.THREE); + visitPark.setIsdeleted(Constants.ONE); + visitPark.setEditDate(new Date()); + visitParkMapper.updateById(visitPark); + }else{ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),response.getMsg()); + } + } + updateWrapper.lambda().set(Visits::getHkStatus,Constants.ZERO).set(Visits::getHkDate,DateUtil.getCurrDateTime()); + } + } + }else{ + //璁垮鐢宠 + if(!(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.waitCheck)||Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.submitCheck) + || Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.pass)|| Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁垮璁板綍鐘舵�侀敊璇紝璇峰埛鏂伴噸璇�"); + } + if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess) + && Constants.equalsInteger(visits.getHkStatus(),Constants.ONE) + &&StringUtils.isNotBlank(visits.getHkId())){ + VisitAppointmentCancelRequest request = new VisitAppointmentCancelRequest(); + request.setAppointRecordIds(new String[]{visits.getHkId()}); + BaseResponse response = HKService.iccmCancelAppointment(request); + if(response==null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) || response.getData()==null){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),response.getMsg()); + } + updateWrapper.lambda().set(Visits::getHkStatus,Constants.ZERO).set(Visits::getHkDate,DateUtil.getCurrDateTime()); + } + } + visitsMapper.update(null,updateWrapper); } -- Gitblit v1.9.3