zhongrj
2024-03-14 04e128c3848c39b162fda4d0f45a0b10ed691fd3
新增商超查询,商超数据处理
10 files modified
277 ■■■■■ changed files
src/main/java/org/springblade/modules/place/controller/PlaceController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/controller/PlaceRelController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java 60 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml 118 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceRelMapper.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceRelMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/IPlaceRelService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/IPlaceService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceRelServiceImpl.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java 19 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -101,6 +101,17 @@
    }
    /**
     * 企业商超列表查询
     */
    @GetMapping("/mallPage")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入place")
    public R<IPage<PlaceVO>> mallPage(PlaceVO place, Query query) {
        IPage<PlaceVO> pages = placeService.selectMallPage(Condition.getPage(query), place);
        return R.data(pages);
    }
    /**
     * 场所表 新增
     */
    @PostMapping("/save")
src/main/java/org/springblade/modules/place/controller/PlaceRelController.java
@@ -122,5 +122,15 @@
        return R.status(placeRelService.removeByIds(Func.toLongList(ids)));
    }
    /**
     * 商超数据处理
     */
    @GetMapping("/mallDataHandle")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "商超数据处理", notes = "")
    public R mallDataHandle() {
        return R.status(placeRelService.mallDataHandle());
    }
}
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -64,47 +64,53 @@
     * @return
     */
    List<PlaceVO> selectNinePlacePage(IPage page,
                                  @Param("place") PlaceVO place,
                                  @Param("gridCodeList") List<String> gridCodeList,
                                  @Param("regionChildCodesList") List<String> regionChildCodesList,
                                  @Param("isAdministrator") Integer isAdministrator,
                                  @Param("nineTypeList") List<String> nineTypeList);
                                      @Param("place") PlaceVO place,
                                      @Param("gridCodeList") List<String> gridCodeList,
                                      @Param("regionChildCodesList") List<String> regionChildCodesList,
                                      @Param("isAdministrator") Integer isAdministrator,
                                      @Param("nineTypeList") List<String> nineTypeList);
    /**
     * 查询场所集合信息
     *
     * @param userId
     * @return
     */
    List<TreeStringNode> selectPlaceNodeList(@Param("userId") String userId);
    List<TreeStringNode> selectPlaceNodeList(@Param("userId") String userId);
    /**
     * 插入用户标签
     *
     * @param userId
     * @param labelId
     */
    int saveUserLabel(@Param("userId") Long userId,@Param("labelId")  int labelId);
    int saveUserLabel(@Param("userId") Long userId, @Param("labelId") int labelId);
    /**
     * 查询所有的场所(手机号不为空)
     *
     * @return
     */
    List<PlaceVO> getPlaceNotNullPhone();
    /**
     * 查询所有的场所
     *
     * @return
     */
    List<PlaceVO> getAllHistoryPlace();
    /**
     * 更新场所信息
     *
     * @param place
     */
    int updatePlaceEntity(@Param("place") PlaceVO place);
    /**
     *  查询场所详情数据
     * 查询场所详情数据
     *
     * @param place
     * @return
     */
@@ -112,6 +118,7 @@
    /**
     * 判断商超是否导入
     *
     * @param placeExcel
     * @return
     */
@@ -119,45 +126,51 @@
    /**
     * 查询出有用户id 的场所
     *
     * @return
     */
    List<PlaceEntity> getHasUserIdPlaceList();
    List<PlaceEntity> getHasUserIdPlaceList();
    /**
     * 查询所有的场所数据(除去详情表已有的)
     *
     * @return
     */
    List<PlaceEntity> getPlaceListByNoExt();
    /**
     * 商超数据处理
     *
     * @return
     */
    List<PlaceEntity> placeAndRelHandle();
    /**
     * 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所)4部分数据(三种颜色对应的+从来没有发过的)
     *
     * @param stringList
     * @param tableName
     * @return
     */
    List<PlaceVO> getPlaceListByParam(@Param("list") List<String> stringList,
    List<PlaceVO> getPlaceListByParam(@Param("list") List<String> stringList,
                                      @Param("tableName") String tableName);
    List<NinePlaceExcel> export( @Param("place") PlaceVO place,
                                 @Param("houseCodeList") List<String> houseCodeList,
                                 @Param("regionChildCodesList") List<String> regionChildCodesList,
                                 @Param("isAdministrator") Integer isAdministrator,
                                 @Param("nineTypeList") List<String> nineTypeList);
    List<NinePlaceExcel> export(@Param("place") PlaceVO place,
                                @Param("houseCodeList") List<String> houseCodeList,
                                @Param("regionChildCodesList") List<String> regionChildCodesList,
                                @Param("isAdministrator") Integer isAdministrator,
                                @Param("nineTypeList") List<String> nineTypeList);
    /**
     * 查询 警务网格为空的数据
     *
     * @return
     */
    List<PlaceEntity> getPlaceNotJwGridCode();
    List<PlaceEntity> getPlaceNotJwGridCode();
    /**
     * 比对两点间的距离是否在1km 范围内(和地址总表位置对比)
     *
     * @param placeVO
     * @return
     */
@@ -165,6 +178,7 @@
    /**
     * 比对两点间的距离是否在1km 范围内 (和采集的位置对比)
     *
     * @param placeVO
     * @return
     */
@@ -172,20 +186,32 @@
    /**
     * 查询 综治网格为空的数据
     *
     * @return
     */
    List<PlaceEntity> getPlaceNotGridCode();
    /**
     * 查询对应未的场所 house_code_binds 为空,source = 1 的
     *
     * @return
     */
    List<PlaceEntity> selectPlaceNotDoorBindList();
    /**
     * 查询绑定的房屋
     *
     * @param houseCodeBinds
     * @return
     */
    List<Map<String,Object>> getHouseBindMap(@Param("houseCodeBinds") String houseCodeBinds);
    List<Map<String, Object>> getHouseBindMap(@Param("houseCodeBinds") String houseCodeBinds);
    /**
     * 企业商超列表查询
     */
    List<PlaceVO> selectMallPage(IPage page,
                                 @Param("place") PlaceVO place,
                                 @Param("gridCodeList") List<String> gridCodeList,
                                 @Param("regionChildCodesList") List<String> regionChildCodesList,
                                 @Param("isAdministrator") Integer isAdministrator);
}
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -786,4 +786,122 @@
        </choose>
    </select>
    <!--企业商超列表分页查询-->
    <select id="selectMallPage" resultType="org.springblade.modules.place.vo.PlaceVO">
        select
        jp.*,
        jpe.id as placeExtId,
        br.town_name as townStreetName,
        br.name as neiName,
        jg.grid_name as gridName,
        jpe.confirm_flag confirmFlag
        from jczz_place jp
        left join blade_user bu on bu.id = jp.principal_user_id and bu.is_deleted = 0
        left join jczz_place_ext jpe on jpe.place_id=jp.id and jpe.is_deleted = 0
        left join jczz_place_rel jpr on jpr.place_id=jp.id and jpe.is_deleted = 0
        left join jczz_grid jg on jg.grid_code = jp.grid_code and jg.is_deleted = 0
        LEFT JOIN jczz_police_affairs_grid jpag on jpr.community_code= jpag.jw_grid_code
        left join blade_region br on br.code = jpr.community_code
        left join (
        select a.* from jczz_place_poi_label a inner join
        (
        select place_id,max(id) as id from jczz_place_poi_label b group by place_id
        ) b on a.id = b.id
        ) jppl on jppl.place_id = jp.id
        where jp.is_deleted = 0 and jp.source=3
        and jp.place_name != ''
        <if test="place.placeName!=null and place.placeName!=''">
            and jp.place_name like concat('%',#{place.placeName},'%')
        </if>
        <if test="place.principal!=null and place.principal!=''">
            and jp.principal like concat('%',#{place.principal},'%')
        </if>
        <if test="place.principalPhone!=null and place.principalPhone!=''">
            and jp.principal_phone like concat('%',#{place.principalPhone},'%')
        </if>
        <if test="place.houseCode!=null and place.houseCode!=''">
            and jp.house_code like concat('%',#{place.houseCode},'%')
        </if>
        <if test="place.townStreetName!=null and place.townStreetName!=''">
            and br.town_name like concat('%',#{place.townStreetName},'%')
        </if>
        <if test="place.neiName!=null and place.neiName!=''">
            and br.name like concat('%',#{place.neiName},'%')
        </if>
        <if test="place.id!=null">
            and jp.id = #{place.id}
        </if>
        <if test="place.isNine!=null">
            and jp.is_nine = #{place.isNine}
        </if>
        <if test="place.source!=null">
            and jp.source = #{place.source}
        </if>
        <if test="place.isPerfect==1">
            and jp.status = 1
        </if>
        <if test="place.isPerfect==2">
            and jp.status = 2
        </if>
        <if test="isAdministrator==2">
            <choose>
                <when test="place.roleName != null and place.roleName != ''">
                    <if test="place.roleName=='wgy'">
                        <choose>
                            <when test="gridCodeList !=null and gridCodeList.size()>0">
                                and jp.grid_code in
                                <foreach collection="gridCodeList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                            </when>
                            <otherwise>
                                and jpr.grid_code in ('')
                            </otherwise>
                        </choose>
                    </if>
                    <if test="place.roleName=='mj'">
                        <choose>
                            <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                                and jpag.community_code in
                                <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                    #{code}
                                </foreach>
                            </when>
                            <otherwise>
                                and jpag.community_code in ('')
                            </otherwise>
                        </choose>
                    </if>
                </when>
                <otherwise>
                    <choose>
                        <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                            and
                            (
                            jg.grid_code in
                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                #{code}
                            </foreach>
                            or
                            jpag.community_code in
                            <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                                #{code}
                            </foreach>
                            )
                        </when>
                        <otherwise>
                            and
                            (
                            jg.grid_code in ('') or jpag.community_code in ('')
                            )
                        </otherwise>
                    </choose>
                </otherwise>
            </choose>
        </if>
        order by jp.create_time desc,jp.id desc
    </select>
</mapper>
src/main/java/org/springblade/modules/place/mapper/PlaceRelMapper.java
@@ -49,4 +49,10 @@
     * @return
     */
    DoorplateAddressEntity getDoorplateAddressEntity(@Param("place") PlaceVO place);
    /**
     * 查询未处理的商超数据
     * @return
     */
    List<PlaceRelEntity> getMallList();
}
src/main/java/org/springblade/modules/place/mapper/PlaceRelMapper.xml
@@ -41,5 +41,13 @@
        limit 1
    </select>
    <!--查询未处理的商超数据-->
    <select id="getMallList" resultType="org.springblade.modules.place.entity.PlaceRelEntity">
        select
        jpr.*
        from jczz_place_rel jpr
        left join jczz_place jp on jp.id = jpr.place_id and jp.is_deleted = 0
        where jpr.is_deleted = 0 and jp.grid_code is null
    </select>
</mapper>
src/main/java/org/springblade/modules/place/service/IPlaceRelService.java
@@ -47,4 +47,9 @@
     * @return
     */
    DoorplateAddressEntity getDoorplateAddressEntity(PlaceVO place);
    /**
     * 商超数据处理
     */
    boolean mallDataHandle();
}
src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -175,4 +175,9 @@
     * 场所二维码绑定处理
     */
    Object placeDoorBindHandle();
    /**
     * 企业商超列表查询
     */
    IPage<PlaceVO> selectMallPage(IPage<PlaceVO> page, PlaceVO place);
}
src/main/java/org/springblade/modules/place/service/impl/PlaceRelServiceImpl.java
@@ -16,9 +16,15 @@
 */
package org.springblade.modules.place.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.utils.SpringUtils;
import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity;
import org.springblade.modules.grid.entity.GridEntity;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.place.entity.PlaceEntity;
import org.springblade.modules.place.entity.PlaceRelEntity;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.place.vo.PlaceRelVO;
import org.springblade.modules.place.mapper.PlaceRelMapper;
import org.springblade.modules.place.service.IPlaceRelService;
@@ -26,6 +32,8 @@
import org.springblade.modules.place.vo.PlaceVO;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 场所区域关联信息表(商超) 服务实现类
@@ -50,4 +58,31 @@
    public DoorplateAddressEntity getDoorplateAddressEntity(PlaceVO place) {
        return baseMapper.getDoorplateAddressEntity(place);
    }
    /**
     * 商超数据处理
     */
    @Override
    public boolean mallDataHandle() {
        // 查询未处理的商超数据,将网格数据插入导入场所表
        List<PlaceRelEntity> list = baseMapper.getMallList();
        // 遍历
        for (PlaceRelEntity placeRelEntity : list) {
            // 查询对应的网格编号
            QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("community_code",placeRelEntity.getCommunityCode())
                .eq("grid_name",placeRelEntity.getGridName())
            .eq("is_deleted",0);
            GridEntity gridEntity = SpringUtils.getBean(IGridService.class).getOne(queryWrapper);
            if (null!=gridEntity){
                PlaceEntity placeEntity = new PlaceEntity();
                placeEntity.setId(placeRelEntity.getPlaceId());
                placeEntity.setGridCode(gridEntity.getGridCode());
                placeEntity.setGridId(gridEntity.getId());
                // 更新
                SpringUtils.getBean(IPlaceService.class).updateById(placeEntity);
            }
        }
        return true;
    }
}
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -108,9 +108,6 @@
    private IGridRangeService gridRangeService;
    @Autowired
    private IGridmanService gridmanService;
    @Autowired
    private GridMapper gridMapper;
    @Autowired
@@ -1505,4 +1502,20 @@
        }
        return null;
    }
    /**
     * 企业商超列表查询
     */
    @Override
    public IPage<PlaceVO> selectMallPage(IPage<PlaceVO> page, PlaceVO place) {
        // 公共参数设置
        CommonParamSet commonParamSet = new CommonParamSet().invoke(PlaceVO.class, place);
        List<PlaceVO> placeVOS = baseMapper.selectMallPage(page,
            place,
            commonParamSet.getGridCodeList(),
            commonParamSet.getRegionChildCodesList(),
            commonParamSet.getIsAdministrator());
        // 返回
        return page.setRecords(placeVOS);
    }
}