From 7b51c9e1abc198a501f7858599da9c116130fd6f Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 27 三月 2025 16:47:51 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 212 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 176 insertions(+), 36 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..bb5e871 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; @@ -109,6 +110,8 @@ @Autowired private ErpTool erpTool; + @Autowired + private VisitParkMapper visitParkMapper; @Autowired private WxPlatNotice wxPlatNotice; @@ -1570,22 +1573,124 @@ .eq(Retention::getMemberId,visits.getMemberId())); } - /** - * 澶勭悊寰呭鏍搞�佸鏍镐腑銆佸凡瀹℃牳鐨勬暟鎹彇娑堜笟鍔� - * 2025骞�3鏈�25鏃�14:10:10 - */ + @Override - public void visitsCancel(Integer visitId){ + public void visitsSelfCancel(Integer visitId,Integer memberId){ 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(memberId,visits.getMemberId()))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳鎿嶄綔鏉冮檺"); } - visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.VisitStatus.invalid) - .eq(Visits::getId,visitId)); + this.visitsCancelBiz(visits); + } + + @Override + public void visitsCancel(Integer visitId,LoginUserInfo loginUserInfo) { + Visits visits = visitsMapper.selectById(visitId); + if (Objects.isNull(visits)) { + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!( + 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(),"鏃犳鎿嶄綔鏉冮檺"); + } + this.visitsCancelBiz(visits); + } + /** + * 澶勭悊寰呭鏍搞�佸鏍镐腑銆佸凡瀹℃牳鐨勬暟鎹彇娑堜笟鍔� + * 2025骞�3鏈�25鏃�14:10:10 + */ + public void visitsCancelBiz(Visits visits){ + UpdateWrapper<Visits> updateWrapper = new UpdateWrapper(); + updateWrapper.lambda().set(Visits::getStatus,Constants.VisitStatus.cancel) + .set(Visits::getEditDate,DateUtil.getCurrDateTime()) + .set(Visits::getEditor,visits.getEditor()) + .eq(Visits::getId,visits.getId()); + //璁垮鎶ュ + 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()); + } + } + + if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)||Constants.equalsInteger(visits.getStatus(),Constants.ONE)){ + //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑� + approveMapper.update(null, + new UpdateWrapper<Approve>().lambda() + .set(Approve::getEditDate,new Date()) + .set(Approve::getStatus,Constants.approveStatus.cancel) + .set(Approve::getStatusInfo,"鎵嬪姩鍙栨秷") + .set(Approve::getCheckInfo,"鎵嬪姩鍙栨秷") + .eq(Approve::getIsdeleted,Constants.ZERO) + .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait) + .eq(Approve::getObjId,visits.getId()) + .eq(Approve::getObjType,visits.getType())); + //鏇存柊寰呭姙娑堟伅鐘舵�� + noticesJoinMapper.update(null, + new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getInfo,"鎵嬪姩鍙栨秷") +// .set(Notices::getStatus,Constants.ONE) + .set(Notices::getParam2,Constants.FOUR)//宸插彇娑� + .eq(Notices::getStatus,Constants.ZERO) + .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞� + .eq(Notices::getObjId,visits.getId()) + .eq(Notices::getObjType,Constants.equalsInteger(visits.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting) + ); + } + + visitsMapper.update(null,updateWrapper); } @@ -1905,9 +2010,6 @@ ); } } - - - } @Override public void visitNoCheckCancel(){ @@ -1933,29 +2035,67 @@ .set(Visits::getEditDate,date) .set(Visits::getRemark,"棰勭害鎴鏃堕棿宸茶繃鏈鎵癸紝绯荤粺鑷姩鍙栨秷") .eq(Visits::getId,s.getId())); - //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑� - approveMapper.update(null, - new UpdateWrapper<Approve>().lambda() - .set(Approve::getEditDate,date) - .set(Approve::getStatus,Constants.approveStatus.cancel) - .set(Approve::getStatusInfo,"绯荤粺宸插彇娑�") - .set(Approve::getCheckInfo,"璁块棶鏃堕棿宸茶繃锛岀郴缁熻嚜鍔ㄥ彇娑�") - .eq(Approve::getIsdeleted,Constants.ZERO) - .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait) - .eq(Approve::getObjId,s.getId()) - .eq(Approve::getObjType,s.getType())); - //鏇存柊寰呭姙娑堟伅鐘舵�� - noticesJoinMapper.update(null, - new UpdateWrapper<Notices>().lambda() - .set(Notices::getEditDate,date) - .set(Notices::getInfo,"宸插彇娑�") -// .set(Notices::getStatus,Constants.ONE) - .set(Notices::getParam2,Constants.FOUR)//宸插彇娑� - .eq(Notices::getIsdeleted,Constants.ZERO) - .eq(Notices::getStatus,Constants.ZERO) - .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞� - .eq(Notices::getObjId,s.getId()) - .eq(Notices::getObjType,Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting) + + VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍙栨秷",s.getId(), + s.getType(),Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting ); + + +// //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑� +// approveMapper.update(null, +// new UpdateWrapper<Approve>().lambda() +// .set(Approve::getEditDate,date) +// .set(Approve::getStatus,Constants.approveStatus.cancel) +// .set(Approve::getStatusInfo,"绯荤粺宸插彇娑�") +// .set(Approve::getCheckInfo,"璁块棶鏃堕棿宸茶繃锛岀郴缁熻嚜鍔ㄥ彇娑�") +// .eq(Approve::getIsdeleted,Constants.ZERO) +// .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait) +// .eq(Approve::getObjId,s.getId()) +// .eq(Approve::getObjType,s.getType())); +// //鏇存柊寰呭姙娑堟伅鐘舵�� +// noticesJoinMapper.update(null, +// new UpdateWrapper<Notices>().lambda() +// .set(Notices::getEditDate,date) +// .set(Notices::getInfo,"宸插彇娑�") +//// .set(Notices::getStatus,Constants.ONE) +// .set(Notices::getParam2,Constants.FOUR)//宸插彇娑� +// .eq(Notices::getIsdeleted,Constants.ZERO) +// .eq(Notices::getStatus,Constants.ZERO) +// .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞� +// .eq(Notices::getObjId,s.getId()) +// .eq(Notices::getObjType,Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting) +// ); } + + + public static void dealCancelNoticesData(NoticesJoinMapper noticesJoinMapper,ApproveMapper approveMapper,String info,Integer objId,Integer approveObjectType,Integer noticesType){ + if(Objects.nonNull(approveObjectType)){ + approveMapper.update(null, + new UpdateWrapper<Approve>().lambda() + .set(Approve::getEditDate,new Date()) + .set(Approve::getStatus,Constants.approveStatus.cancel) + .set(Approve::getStatusInfo,info) + .set(Approve::getCheckInfo,info) + .eq(Approve::getIsdeleted,Constants.ZERO) + .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait) + .eq(Approve::getObjId,objId) + .eq(Approve::getObjType,approveObjectType)); + } + if(Objects.nonNull(noticesType)){ + //鏇存柊寰呭姙娑堟伅鐘舵�� + noticesJoinMapper.update(null, + new UpdateWrapper<Notices>().lambda() + .set(Notices::getEditDate,new Date()) + .set(Notices::getInfo,info) + .set(Notices::getParam2,Constants.FOUR)//宸插彇娑� + .eq(Notices::getStatus,Constants.ZERO) + .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞� + .eq(Notices::getObjId,objId) + .eq(Notices::getObjType,noticesType) + ); + } + } + + + } -- Gitblit v1.9.3