| | |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.dao.business.CategoryMapper; |
| | | import com.doumee.dao.business.JkCabinetGridMapper; |
| | | import com.doumee.dao.business.JkKeysMapper; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.MemberMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.business.vo.*; |
| | | import com.doumee.dao.system.MultifileMapper; |
| | | import com.doumee.dao.system.model.Multifile; |
| | | import com.doumee.dao.system.model.SystemDictData; |
| | | import com.doumee.service.business.third.model.LoginUserInfo; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.JkCabinetMapper; |
| | | import com.doumee.service.business.JkCabinetService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private MultifileMapper multifileMapper; |
| | | |
| | | @Autowired |
| | | private CarUseBookMapper carUseBookMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer create(JkCabinet jkCabinet) { |
| | |
| | | || CollectionUtils.isEmpty(jkCabinet.getManagerIdList()) |
| | | || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList()) |
| | | || Objects.isNull(jkCabinet.getDoubleAuth()) |
| | | || Objects.isNull(jkCabinet.getAlcoholStatus()) |
| | | |
| | | || Objects.isNull(jkCabinet.getRowNum()) |
| | | || jkCabinet.getRowNum() <= Constants.ZERO |
| | |
| | | || Objects.isNull(jkCabinet.getSortType()) |
| | | || ( |
| | | Constants.equalsInteger(jkCabinet.getNoType(),Constants.ONE) |
| | | && ( Objects.isNull(jkCabinet.getNoIndex()) || Objects.isNull(jkCabinet.getNoLength()) || StringUtils.isBlank(jkCabinet.getNoPrefix()) ) |
| | | && ( Objects.isNull(jkCabinet.getNoIndex()) || Objects.isNull(jkCabinet.getNoLength()) ) |
| | | ) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | |
| | | jkCabinet.setAuthMemberId(String.join(",",jkCabinet.getAuthMemberIdList())); |
| | | jkCabinetMapper.insert(jkCabinet); |
| | | this.createGrid(jkCabinet); |
| | | |
| | | if(Objects.nonNull(jkCabinet.getActivateFile())){ |
| | | Multifile multifile = jkCabinet.getActivateFile(); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setEditDate(multifile.getCreateDate()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(jkCabinet.getId()); |
| | | multifile.setObjType(Constants.FIVE); |
| | | multifileMapper.insert(multifile); |
| | | } |
| | | |
| | | return jkCabinet.getId(); |
| | | } |
| | | |
| | |
| | | if(Constants.equalsInteger(jkCabinet.getNoType(),Constants.ZERO)){ |
| | | grid.setCode(StringUtils.leftPad(startNo.toString(),maxNum.toString().length()+1,"0")); |
| | | }else{ |
| | | grid.setCode(jkCabinet.getNoPrefix() + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0")); |
| | | grid.setCode(StringUtils.isNotBlank(jkCabinet.getNoPrefix())?jkCabinet.getNoPrefix():"" + StringUtils.leftPad(startNo.toString(),jkCabinet.getNoLength(),"0")); |
| | | } |
| | | |
| | | jkCabinetGridList.add(grid); |
| | |
| | | || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList()) |
| | | || Objects.isNull(jkCabinet.getPort()) |
| | | || Objects.isNull(jkCabinet.getDoubleAuth()) |
| | | || Objects.isNull(jkCabinet.getAlcoholStatus()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | |
| | | jkCabinet.setManagerId(String.join(",",jkCabinet.getManagerIdList())); |
| | | jkCabinet.setAuthMemberId(String.join(",",jkCabinet.getAuthMemberIdList())); |
| | | jkCabinetMapper.updateById(jkCabinet); |
| | | |
| | | multifileMapper.update(new UpdateWrapper<Multifile>().lambda() |
| | | .set(Multifile::getIsdeleted,Constants.ONE) |
| | | .eq(Multifile::getObjType,Constants.FIVE) |
| | | .eq(Multifile::getObjId,jkCabinet.getId()) |
| | | ); |
| | | if(Objects.nonNull(jkCabinet.getActivateFile())){ |
| | | Multifile multifile = jkCabinet.getActivateFile(); |
| | | multifile.setId(null); |
| | | multifile.setCreateDate(new Date()); |
| | | multifile.setEditDate(multifile.getCreateDate()); |
| | | multifile.setIsdeleted(Constants.ZERO); |
| | | multifile.setObjId(jkCabinet.getId()); |
| | | multifile.setObjType(Constants.FIVE); |
| | | multifileMapper.insert(multifile); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | jkCabinet.getAuthMemberId().split(",") |
| | | )); |
| | | } |
| | | Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>() |
| | | .lambda() |
| | | .eq(Multifile::getObjType,Constants.FIVE) |
| | | .eq(Multifile::getObjId,jkCabinet.getId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .last(" limit 1 ")); |
| | | if(Objects.nonNull(multifile)){ |
| | | String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.FTP,Constants.ACTIVATE).getCode(); |
| | | multifile.setFileurlFull(prefixUrl + multifile.getFileurl()); |
| | | jkCabinet.setActivateFile(multifile); |
| | | } |
| | | |
| | | return jkCabinet; |
| | | } |
| | | |
| | |
| | | jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>() |
| | | .selectAll(JkCabinetGrid.class) |
| | | .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode) |
| | | .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode) |
| | | .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode) |
| | | .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus) |
| | | .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId) |
| | | .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO) |
| | |
| | | .isNotNull(JkKeys::getCarId) |
| | | .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId()) |
| | | ); |
| | | List<Member> driverList = new ArrayList<>(); |
| | | if(CollectionUtils.isNotEmpty(jkCabinetGridList)){ |
| | | List<Integer> carIdList = jkCabinetGridList.stream().map(i->i.getKeyId()).collect(Collectors.toList()); |
| | | //查询车辆所有人员信息 |
| | | List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>() |
| | | driverList.addAll(memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .leftJoin(CarDriver.class,CarDriver::getMemberId,Member::getId) |
| | | .leftJoin(Cars.class,Cars::getMemberId,Member::getId) |
| | | .leftJoin(JkKeys.class,JkKeys::getCarId,Cars::getId) |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(CarDriver::getIsdeleted,Constants.ZERO) |
| | | .eq(CarDriver::getStatus,Constants.ZERO) |
| | | .isNotNull(Member::getFaceImg) |
| | | .in(CarDriver::getCarId,carIdList) |
| | | .in(JkKeys::getId,carIdList)) |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(memberList)){ |
| | | Set<Member> memberSet = new HashSet<>(memberList); |
| | | } |
| | | //派车单司机信息 |
| | | String earlyConfig = systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode(); |
| | | List<CarUseBook> carUseBookList = carUseBookMapper.selectList(new QueryWrapper<CarUseBook>().lambda() |
| | | .eq(CarUseBook::getIsdeleted,Constants.ZERO) |
| | | .isNotNull(CarUseBook::getDriverId) |
| | | .apply(" car_id in ( SELECT k.CAR_ID FROM jk_cabinet_grid j inner join jk_keys k on j.KEY_ID = k.ID where j.isdeleted = 0 and k.isdeleted = 0 ) ") |
| | | .apply(" (" + |
| | | "( NOW() > DATE_SUB(START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < end_time and KEY_STATUS = 0 ) " + |
| | | "or" + |
| | | " KEY_STATUS = 1 " + |
| | | ") ") |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(carUseBookList)){ |
| | | driverList.addAll(memberMapper.selectList(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .isNotNull(Member::getFaceImg) |
| | | .in(Member::getId,carUseBookList.stream().map(i->i.getDriverId()).collect(Collectors.toList())) |
| | | )); |
| | | } |
| | | |
| | | if(CollectionUtils.isNotEmpty(driverList)){ |
| | | if(CollectionUtils.isNotEmpty(driverList)){ |
| | | Set<Member> memberSet = new HashSet<>(driverList); |
| | | for (Member member:memberSet) { |
| | | CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO(); |
| | | cabinetFaceInfoVO.setMemberId(member.getId()); |
| | |
| | | List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .isNotNull(Member::getFaceImg) |
| | | .apply(" FIND_IN_SET( id ,'"+jkCabinet.getManagerId()+"') ") |
| | | .apply(" FIND_IN_SET( id ,'"+jkCabinet.getAuthMemberId()+"') ") |
| | | ); |
| | | if(CollectionUtils.isNotEmpty(memberList)){ |
| | | for (Member member:memberList) { |
| | |
| | | .selectAll(JkCabinetGrid.class) |
| | | .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode) |
| | | .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus) |
| | | .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode) |
| | | .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode) |
| | | .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId) |
| | | .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO) |
| | | .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId()) |
| | |
| | | cabinetInfoVO.setCabinetConfigDataVO(cabinetConfigDataVO); |
| | | |
| | | } |
| | | cabinetInfoVO.setLinkPhone("18156091665"); |
| | | cabinetInfoVO.setLinkPhone(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.LINK_PHONE).getCode()); |
| | | List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda() |
| | | .eq(Category::getIsdeleted,Constants.ZERO) |
| | | .eq(Category::getStatus,Constants.ZERO) |
| | |
| | | categoryList.stream().map(i->i.getImgurlFull()).collect(Collectors.toList()) |
| | | ); |
| | | } |
| | | |
| | | |
| | | Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>() |
| | | .lambda() |
| | | .eq(Multifile::getObjType,Constants.FIVE) |
| | | .eq(Multifile::getObjId,jkCabinet.getId()) |
| | | .eq(Multifile::getIsdeleted,Constants.ZERO) |
| | | .last(" limit 1 ")); |
| | | if(Objects.nonNull(multifile)&&StringUtils.isNotBlank(multifile.getFileurl())){ |
| | | String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.FTP,Constants.ACTIVATE).getCode(); |
| | | cabinetInfoVO.setActivateFileUrl(prefixUrl + multifile.getFileurl()); |
| | | } |
| | | return cabinetInfoVO; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void updHeartbeat(String code){ |
| | | jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>() |
| | | .lambda() |
| | | .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime()) |
| | | .eq(JkCabinet::getCode,code)); |
| | | } |
| | | |
| | | } |