rk
14 小时以前 1fb6ce7f165e85cb9458d6e8d1b6bf7debc1e665
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -6,18 +6,17 @@
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;
@@ -62,6 +61,12 @@
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private MultifileMapper multifileMapper;
    @Autowired
    private CarUseBookMapper carUseBookMapper;
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public Integer create(JkCabinet jkCabinet) {
@@ -76,6 +81,7 @@
            || CollectionUtils.isEmpty(jkCabinet.getManagerIdList())
            || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
            || Objects.isNull(jkCabinet.getDoubleAuth())
            || Objects.isNull(jkCabinet.getAlcoholStatus())
            || Objects.isNull(jkCabinet.getRowNum())
            || jkCabinet.getRowNum() <= Constants.ZERO
@@ -113,6 +119,17 @@
        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();
    }
@@ -197,6 +214,7 @@
                || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
                || Objects.isNull(jkCabinet.getPort())
                || Objects.isNull(jkCabinet.getDoubleAuth())
                || Objects.isNull(jkCabinet.getAlcoholStatus())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -224,6 +242,23 @@
        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
@@ -274,6 +309,19 @@
                    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;
    }
@@ -476,10 +524,11 @@
                    .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(Cars.class,Cars::getMemberId,Member::getId)
                        .leftJoin(JkKeys.class,JkKeys::getCarId,Cars::getId)
@@ -487,10 +536,32 @@
                        .eq(CarDriver::getIsdeleted,Constants.ZERO)
                        .eq(CarDriver::getStatus,Constants.ZERO)
                        .isNotNull(Member::getFaceImg)
                        .in(JkKeys::getId,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());
@@ -585,6 +656,19 @@
                    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;
    }
@@ -600,4 +684,12 @@
    }
    @Override
    public void updHeartbeat(String code){
        jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
                .lambda()
                .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime())
                .eq(JkCabinet::getCode,code));
    }
}