rk
12 小时以前 661aa526a63dd2118438d63031518d4d8b3f7bcd
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -975,7 +975,7 @@
            queryWrapper.eq(JkSketch::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getDateInfo() != null) {
            queryWrapper.eq(JkSketch::getDateInfo,  pageWrap.getModel().getDateInfo());
            queryWrapper.like(JkSketch::getDateInfo,  DateUtil.dateToString(pageWrap.getModel().getDateInfo(),"yyyy-MM-dd"));
        }
        if (pageWrap.getModel().getJobId() != null) {
            queryWrapper.eq(JkSketch::getJobId, pageWrap.getModel().getJobId());
@@ -1322,8 +1322,9 @@
                .leftJoin(JkLine.class,JkLine::getId,JkSketchLine::getLineId)
                .leftJoin(Category.class,Category::getId,JkLine::getCategoryId )
                .leftJoin(Cars.class,Cars::getId,JkLine::getCarId)
                .eq(JkSketch::getIsdeleted,Constants.ZERO)
                .and(StringUtils.isNotBlank(telecomLineInfoDTO.getSearchInfo()),i->i.like(Cars::getCode,telecomLineInfoDTO.getSearchInfo()).or().like(JkLine::getName,telecomLineInfoDTO.getSearchInfo()))
                .eq(StringUtils.isNotBlank(telecomLineInfoDTO.getDateInfo()),JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo())
                .like(StringUtils.isNotBlank(telecomLineInfoDTO.getDateInfo()),JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo())
                .eq(Objects.nonNull(telecomLineInfoDTO.getCategoryId()),JkLine::getCategoryId, telecomLineInfoDTO.getCategoryId())
                .eq(Objects.nonNull(telecomLineInfoDTO.getLineId()),JkLine::getId, telecomLineInfoDTO.getLineId());
@@ -1367,10 +1368,11 @@
        telecomLineCountVO.setCustomerNum(Constants.ZERO);
        MPJLambdaWrapper<JkSketch> sketchMPJLambdaWrapper = new MPJLambdaWrapper<JkSketch>().selectAll(JkSketch.class )
                .selectAs(Category::getName,JkSketch::getCategoryName)
                .select(" ifnull((select count(1) from jk_sketch_customer jc where jc.ISDELETED= 0 and  jc.SKETCH_ID = t.id),0)" ,JkSketch::getCustomerNum)
                .select(" ifnull((select count(1) from jk_sketch_customer jc where jc.ISDELETED = 0 and  jc.SKETCH_ID = t.id),0)" ,JkSketch::getCustomerNum)
                .select(" ifnull((select count(1) from jk_sketch_line jc where   jc.TYPE = 0  and  jc.SKETCH_ID = t.id),0)" ,JkSketch::getBeforeLineNum)
                .leftJoin(Category.class,Category::getId,JkSketch::getCategoryId )
                .eq(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
                .eq(JkSketch::getIsdeleted,Constants.ZERO)
                .like(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
        List<JkSketch> sketchList = jkSketchMapper.selectJoinList(JkSketch.class,sketchMPJLambdaWrapper);
        if(CollectionUtils.isEmpty(sketchList)){
            return telecomLineCountVO;
@@ -1388,32 +1390,31 @@
        List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
        telecomLineCountVO.setCategoryNum(sketchList.size());
        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
//        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
        Integer lineNum = Constants.ZERO;
        List<TelecomCategoryDataVO> telecomCategoryDataVOList = new ArrayList<>();
        for (JkSketch jkSketch:sketchList) {
            TelecomCategoryDataVO telecomCategoryDataVO = new TelecomCategoryDataVO();
            telecomCategoryDataVO.setId(jkSketch.getCategoryId());
            telecomCategoryDataVO.setName(jkSketch.getCategoryName());
            telecomCategoryDataVO.setCustomerNum(jkSketch.getCustomerNum());
            telecomCategoryDataVO.setCustomerNum(Constants.ZERO);
            List<JkSketchLine> childLineList = jkSketchLineList.stream().filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())).collect(Collectors.toList());
            //优化前数据
            List<JkSketchLine> beforeList = childLineList.stream()
            List<JkSketchLine> beforeList = jkSketchLineList.stream()
                    .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
            //优化后数据
            List<JkSketchLine> afterList = childLineList.stream()
                    .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
            lineNum = lineNum + (Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList.size():afterList.size());
            List<TelecomLineDataVO> telecomLineDataVOList = new ArrayList<>();
            for (JkSketchLine sketchLine:beforeList) {
                JkSketchLine finalSketchLine = sketchLine;
                List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(), finalSketchLine.getLineId())).collect(Collectors.toList());
                if(afterSelectList.size()>Constants.ZERO){
                    sketchLine = afterSelectList.get(Constants.ZERO);
                }
            for (JkSketchLine sketchLine: Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList:afterList) {
                TelecomLineDataVO telecomLineDataVO = new TelecomLineDataVO();
                telecomLineDataVO.setId(sketchLine.getId());
                telecomLineDataVO.setName(sketchLine.getLineName());
                telecomLineDataVOList.add(telecomLineDataVO);
                telecomCategoryDataVO.setCustomerNum(telecomCategoryDataVO.getCustomerNum() +  sketchLine.getMaxCustomer());
                telecomLineCountVO.setCustomerNum(
                        telecomLineCountVO.getCustomerNum() + sketchLine.getMaxCustomer()
                );
@@ -1421,6 +1422,7 @@
            telecomCategoryDataVO.setTelecomLineDataVOList(telecomLineDataVOList);
            telecomCategoryDataVOList.add(telecomCategoryDataVO);
        }
        telecomLineCountVO.setLineNum(lineNum);
        telecomLineCountVO.setTelecomCategoryDataVOList(telecomCategoryDataVOList);
        return telecomLineCountVO;
    }
@@ -1435,7 +1437,8 @@
        MPJLambdaWrapper<JkSketch> sketchMPJLambdaWrapper = new MPJLambdaWrapper<JkSketch>().selectAll(JkSketch.class )
                .selectAs(Category::getName,JkSketch::getCategoryName)
                .leftJoin(Category.class,Category::getId,JkSketch::getCategoryId )
                .eq(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
                .eq(JkSketch::getIsdeleted,Constants.ZERO)
                .like(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
        List<JkSketch> sketchList = jkSketchMapper.selectJoinList(JkSketch.class,sketchMPJLambdaWrapper);
        if(CollectionUtils.isEmpty(sketchList)){
            return new ArrayList<TelecomCategoryDataVO>();
@@ -1462,26 +1465,19 @@
            telecomCategoryDataVO.setDistance(
                    beforeList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
            );
            //优化后数据
            List<JkSketchLine> afterList = jkSketchLineList.stream()
                    .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
            if(org.apache.commons.collections.CollectionUtils.isEmpty(afterList)){
            if(Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)){
                telecomCategoryDataVO.setDistanceAfter(telecomCategoryDataVO.getDistance());
            }else if(beforeList.size()>afterList.size()){
            }else{
                //优化后数据
                List<JkSketchLine> afterList = jkSketchLineList.stream()
                        .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
                Long distanceAfter = 0L;
                for (JkSketchLine jkSketchLine:beforeList) {
                    List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
                    if(afterSelectList.size()>Constants.ZERO){
                        distanceAfter = distanceAfter + afterSelectList.get(Constants.ZERO).getDistance();
                    }else{
                for (JkSketchLine jkSketchLine:afterList) {
                        distanceAfter = distanceAfter + jkSketchLine.getDistance();
                    }
                }
                telecomCategoryDataVO.setDistanceAfter(distanceAfter);
            }else{
                telecomCategoryDataVO.setDistanceAfter(
                        afterList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
                );
            }
            telecomCategoryDataVOList.add(telecomCategoryDataVO);
        }
@@ -1505,26 +1501,27 @@
                .eq(JkSketchLine::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(telecomLineInfoDTO.getCategoryId()),JkSketchLine::getCategoryId,telecomLineInfoDTO.getCategoryId())
                .eq(Objects.nonNull(telecomLineInfoDTO.getLineId()),JkSketchLine::getLineId,telecomLineInfoDTO.getLineId())
                .eq(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
        List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
                .apply(" ( t.TYPE = t1.OPT_STATUS ) ")
                .like(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
        List<JkSketchLine> returnLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
        //优化前数据
        List<JkSketchLine> beforeList = jkSketchLineList.stream()
                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
        //优化后数据
        List<JkSketchLine> afterList = jkSketchLineList.stream()
                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
        List<JkSketchLine> returnLineList = new ArrayList<>();
        for (JkSketchLine jkSketchLine:beforeList) {
            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
            if(afterSelectList.size()>Constants.ZERO){
                returnLineList.add(afterList.get(Constants.ZERO));
            }else{
                returnLineList.add(jkSketchLine);
            }
        }
//        //优化前数据
//        List<JkSketchLine> beforeList = jkSketchLineList.stream()
//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
//
//        //优化后数据
//        List<JkSketchLine> afterList = jkSketchLineList.stream()
//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
//
//        List<JkSketchLine> returnLineList = new ArrayList<>();
//        for (JkSketchLine jkSketchLine:beforeList) {
//            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
//            if(afterSelectList.size()>Constants.ZERO){
//                returnLineList.add(afterList.get(Constants.ZERO));
//            }else{
//                returnLineList.add(jkSketchLine);
//            }
//        }
        List<TelecomLineDataVO> dataVOList = new ArrayList<>();
        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(returnLineList)){
            //获取所有地图经纬度数据