From 37f9d55f69d393b729b7775d65810836e64171e7 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 23 五月 2024 18:46:36 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java | 2 admin/src/components/business/OperaCarAuthWindow.vue | 0 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++-- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java | 6 + server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java | 10 +- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java | 5 6 files changed, 166 insertions(+), 19 deletions(-) diff --git a/admin/src/components/business/OperaCarAuthWindow.vue b/admin/src/components/business/OperaCarAuthWindow.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/admin/src/components/business/OperaCarAuthWindow.vue diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java index 01780ac..ae392f1 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java @@ -38,6 +38,7 @@ @PostMapping("/create") @CloudRequiredPermission("business:cars:create") public ApiResponse create(@RequestBody Cars cars,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + cars.setLoginUserInfo(this.getLoginUser(token)); return ApiResponse.success(carsService.create(cars)); } @@ -45,7 +46,7 @@ @GetMapping("/delete/{id}") @CloudRequiredPermission("business:cars:delete") public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ - carsService.deleteById(id); + carsService.deleteById(id,this.getLoginUser(token)); return ApiResponse.success(null); } @@ -58,7 +59,7 @@ for (String id : idArray) { idList.add(Integer.valueOf(id)); } - carsService.deleteByIdInBatch(idList); + carsService.deleteByIdInBatch(idList,this.getLoginUser(token)); return ApiResponse.success(null); } @@ -66,6 +67,7 @@ @PostMapping("/updateById") @CloudRequiredPermission("business:cars:update") public ApiResponse updateById(@RequestBody Cars cars,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + cars.setLoginUserInfo(this.getLoginUser(token)); carsService.updateById(cars); return ApiResponse.success(null); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java index a477dd9..8ec76cf 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java @@ -29,7 +29,7 @@ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�") @ExcelColumn(name="鍒涘缓浜虹紪鐮�") - private String creator; + private Integer creator; @ApiModelProperty(value = "鍒涘缓鏃堕棿") @ExcelColumn(name="鍒涘缓鏃堕棿") @@ -37,7 +37,7 @@ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�") @ExcelColumn(name="鏇存柊浜虹紪鐮�") - private String edirot; + private Integer edirot; @ApiModelProperty(value = "鏇存柊鏃堕棿") @ExcelColumn(name="鏇存柊鏃堕棿") @@ -67,9 +67,6 @@ @ExcelColumn(name="杞﹀簱缂栫爜锛堝叧鑱攑arks)") private Integer parkId; - @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1") - @ExcelColumn(name="娴峰悍鏍囪瘑") - private String hkId2; @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1") @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�") @@ -148,6 +145,9 @@ @ExcelColumn(name="濮撳悕") @TableField(exist = false) private String memberName; + @ApiModelProperty(value = "杞︿富娴峰悍缂栫爜", example = "1") + @TableField(exist = false) + private String memberHkId; @ApiModelProperty(value = "鎵嬫満鍙�", example = "1") @ExcelColumn(name="鎵嬫満鍙�") diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java index 168a713..3394126 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java @@ -1,5 +1,6 @@ package com.doumee.service.business; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.admin.request.CarsQuery; @@ -27,7 +28,7 @@ * * @param id 涓婚敭 */ - void deleteById(Integer id); + void deleteById(Integer id, LoginUserInfo user); /** * 鍒犻櫎 @@ -41,7 +42,7 @@ * * @param ids 涓婚敭闆� */ - void deleteByIdInBatch(List<Integer> ids); + void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user); /** * 涓婚敭鏇存柊 diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java index d9da2f8..91ef418 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java @@ -4,6 +4,9 @@ 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.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; @@ -11,18 +14,24 @@ import com.doumee.dao.admin.request.CarsQuery; import com.doumee.dao.admin.response.CarsDTO; import com.doumee.dao.business.CarsMapper; +import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.join.CarJoinMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.CarsService; +import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; 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.Date; import java.util.List; import java.util.Objects; +import java.util.UUID; /** * 杞﹁締淇℃伅琛⊿ervice瀹炵幇 @@ -37,19 +46,107 @@ @Autowired private CarJoinMapper carJoinMapper; + @Autowired + private MemberMapper memberMapper; @Autowired private ParkBookJoinMapper parkBookJoinMapper; @Override - public Integer create(Cars cars) { - carsMapper.insert(cars); - return cars.getId(); + public Integer create(Cars model) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(loginUserInfo == null){ + loginUserInfo = model.getLoginUserInfo(); + } + if(StringUtils.isNotBlank(model.getCode()) + ||model.getType()==null + ||model.getType()<0 + ||model.getType()>3 + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(model.getMemberId()!=null){ + //妫�鏌ヨ溅涓讳俊鎭� + Member member =memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getId,model.getMemberId() ) + .eq(Member::getType,Constants.TWO ) + .eq(Member::getIsdeleted,Constants.ZERO) + .last("limit 1")); + if(member == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞︿富淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲埛鏂伴噸璇�!"); + } + model.setMemberHkId(member.getHkId()); + } + //妫�鏌ヨ溅鐗屽彿鏄惁閲嶅 + if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda() + .eq(Cars::getCode,model.getCode() ) + .eq(Cars::getIsdeleted,Constants.ZERO ) + ) >0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締宸茬粡褰曞叆锛屼笉鑳介噸澶嶅綍鍏�!"); + } + model.setType(Constants.formatIntegerNum(model.getType())); + model.setCreateDate(new Date()); + model.setCreator(loginUserInfo.getId()); + model.setEditDate(new Date()); + model.setEdirot(loginUserInfo.getId()); + model.setStatus(Constants.ZERO); + model.setIsdeleted(Constants.ZERO); + model.setHkStatus(Constants.ZERO); + model.setRemark(""); +// model.setHkDate(model.getCreateDate()); +// model.setHkId(UUID.randomUUID().toString().replace("-","")); + carsMapper.insert(model); + + return model.getId(); } @Override - public void deleteById(Integer id) { - carsMapper.deleteById(id); + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void deleteById(Integer id, LoginUserInfo user) { + Cars car = carJoinMapper.selectById(id); + if(car ==null ||Constants.equalsInteger(car.getIsdeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞﹁締淇℃伅涓嶅瓨鍦紒"); + + } + Date date = new Date(); + //鍒犻櫎宸叉巿鏉冧笅鍙戠殑鍖呮湡鎺堟潈 + dealCancelBookBiz(car.getCode(),date); + Cars model = new Cars(); + model.setEditDate(date); + model.setEdirot(user.getId()); + model.setId(id); + model.setIsdeleted(Constants.ONE); + carsMapper.updateById(model); + } + public boolean dealCancelBookBiz(String code,Date date){ + + List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() + .selectAll(ParkBook.class ) + .selectAs(Parks::getHkId,ParkBook::getParkHkId ) + .leftJoin(Parks.class,Parks::getId,ParkBook::getParkHkId) + .eq(ParkBook::getCarCode,code) + .eq(ParkBook::getIsdeleted,Constants.ZERO )); + if(parkBooks !=null){ + for(ParkBook c : parkBooks){ + //濡傛灉鍙栨秷棰勭害锛屽垯杩涜鍙栨秷鍖呮湡 + if(StringUtils.isNotBlank(c.getParkHkId()) + && StringUtils.isNotBlank(c.getCarCode())){ + boolean result = HkSyncParkServiceImpl.cancelParkBookHk(c); + if(!result){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍙栨秷宸蹭笅鍙戞巿鏉冨け璐ワ紝璇疯仈绯荤鐞嗗憳澶勭悊~"); + } + c.setHkStatus(Constants.ONE); + c.setRemark("鍙栨秷鍖呮湡鎴愬姛"); + }else{ + c.setHkStatus(Constants.TWO);//涓嬪彂澶辫触 + c.setRemark("鏃犳晥鍋滆溅鍦烘巿鏉冧笅鍙戯紝鍙栨秷鍖呮湡澶辫触锛岀洿鎺ュ垹闄よ褰�"); + } + c.setHkDate(date); + c.setIsdeleted(Constants.ONE); + parkBookJoinMapper.updateById(c); + } + } + return true; } @Override @@ -59,16 +156,63 @@ } @Override - public void deleteByIdInBatch(List<Integer> ids) { + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) { if (CollectionUtils.isEmpty(ids)) { return; } - carsMapper.deleteBatchIds(ids); + for(Integer id : ids){ + deleteById(id,user); + } } @Override - public void updateById(Cars cars) { - carsMapper.updateById(cars); + public void updateById(Cars model) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(loginUserInfo == null){ + loginUserInfo = model.getLoginUserInfo(); + } + if(StringUtils.isNotBlank(model.getCode()) + ||model.getId()==null + ||model.getType()==null + ||model.getType()<0 + ||model.getType()>3 + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Cars car = carJoinMapper.selectById(model.getId()); + if(car ==null ||Constants.equalsInteger(car.getIsdeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞﹁締淇℃伅涓嶅瓨鍦紒"); + + } + if(model.getMemberId()!=null){ + //妫�鏌ヨ溅涓讳俊鎭� + Member member =memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getId,model.getMemberId() ) + .eq(Member::getType,Constants.TWO ) + .eq(Member::getIsdeleted,Constants.ZERO) + .last("limit 1")); + if(member == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞︿富淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲埛鏂伴噸璇�!"); + } + model.setMemberHkId(member.getHkId()); + } + //妫�鏌ヨ溅鐗屽彿鏄惁閲嶅 + if(carsMapper.selectCount(new QueryWrapper<Cars>().lambda() + .eq(Cars::getCode,model.getCode() ) + .ne(Cars::getId,model.getId() ) + .eq(Cars::getIsdeleted,Constants.ZERO ) + ) >0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締宸茬粡褰曞叆锛屼笉鑳介噸澶嶅綍鍏�!"); + } + model.setType(Constants.formatIntegerNum(model.getType())); + model.setEditDate(new Date()); + model.setEdirot(loginUserInfo.getId()); + model.setIsdeleted(Constants.ZERO); + model.setHkStatus(Constants.ZERO); + model.setRemark(""); + dealCancelBookBiz(model.getCode(),model.getEditDate()); + carsMapper.updateById(model); } @Override diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java index c10c289..9fc3a6c 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java @@ -152,7 +152,7 @@ return false; } } - private boolean cancelParkBookHk(ParkBook c) { + public static boolean cancelParkBookHk(ParkBook c) { CarChargeDelRequest param = new CarChargeDelRequest(); param.setPlateNo(c.getCarCode()); param.setParkSyscode(c.getParkHkId()); -- Gitblit v1.9.3