linwei
2024-02-02 ce035e1c02f63b49d469534ba4ac5ba435022ea2
消防整改
24 files modified
9 files added
1624 ■■■■■ changed files
src/main/java/org/springblade/common/constant/CommonConstant.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/constant/DictConstant.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/patrol/entity/PatrolRecord.java 24 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/patrol/mapper/PatrolRecordMapper.xml 9 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/controller/PlaceController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/entity/PlaceCheckEntity.java 39 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml 28 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml 158 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/IPlaceService.java 32 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/vo/PlaceVO.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/subjectChoices/mapper/SubjectChoicesMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/subjectChoices/service/impl/SubjectChoicesServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/DictBizController.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IDictBizService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/vo/RegionVO.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/entity/TaskEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/controller/TaskPlaceRectificationController.java 186 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/dto/TaskPlaceRectificationDTO.java 76 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/entity/TaskPlaceRectificationEntity.java 143 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/mapper/TaskPlaceRectificationMapper.java 67 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/mapper/TaskPlaceRectificationMapper.xml 309 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/service/ITaskPlaceRectificationService.java 66 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java 145 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/vo/TaskPlaceRectificationVO.java 92 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/taskPlaceRectification/wrapper/TaskPlaceRectificationWrapper.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/constant/CommonConstant.java
@@ -88,6 +88,10 @@
    Integer NUMBER_THREE = 3;
    Integer NUMBER_FOUR = 4;
    Integer NUMBER_EIGHT = 8;
    String RESIDENT = "居民";
src/main/java/org/springblade/common/constant/DictConstant.java
@@ -53,4 +53,6 @@
    String CAMPUS_SECURITY_INSPECTION= "校园安全检查";
    String FIRE_RECTIFICATION_NOTICE = "消防整改通知";
}
src/main/java/org/springblade/modules/patrol/entity/PatrolRecord.java
@@ -22,8 +22,6 @@
{
    private static final long serialVersionUID = 1L;
    /** 主键 */
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
@@ -44,8 +42,8 @@
    @TableField("state")
    private Integer state;
    /** 备注 */
    @ApiModelProperty(value = "备注", example = "")
    /** 隐患备注 */
    @ApiModelProperty(value = "隐患备注", example = "")
    @TableField("remark")
    private String remark;
@@ -62,11 +60,27 @@
    /** 修改时间 */
    @ApiModelProperty(value = "修改时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @TableField("create_time")
    private Date createTime;
    /** 是否删除 0: 否 1:是 */
    @ApiModelProperty(value = "是否删除 0: 否 1:是", example = "")
    @TableField("is_deleted")
    private Integer isDeleted;
    /** 整改照片 */
    @ApiModelProperty(value = "整改照片", example = "")
    @TableField("rectification_image_urls")
    private String rectificationImageUrls;
    /** 整改描述 */
    @ApiModelProperty(value = "整改描述", example = "")
    @TableField("rectification_remark")
    private String rectificationRemark;
    /** 整改时间 */
    @ApiModelProperty(value = "整改时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("rectification_time")
    private Date rectificationTime;
}
src/main/java/org/springblade/modules/patrol/mapper/PatrolRecordMapper.xml
@@ -204,6 +204,7 @@
<!--        <result property="isDeleted"    column="is_deleted"    />-->
<!--    </resultMap>-->
    <sql id="selectPatrolRecord">
        select
            id,
@@ -214,12 +215,16 @@
            image_urls,
            create_user,
            create_time,
            is_deleted
            is_deleted,
            rectification_image_urls,
            rectification_remark,
            rectification_time
        from
            jczz_patrol_record
    </sql>
<!--    <select id="selectPatrolRecordById" parameterType="long" resultMap="PatrolRecordDTOResult">-->
    <!--    <select id="selectPatrolRecordById" parameterType="long" resultMap="PatrolRecordDTOResult">-->
<!--        <include refid="selectPatrolRecord"/>-->
<!--        where-->
<!--        id = #{id}-->
src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -94,6 +94,17 @@
    }
    /**
     * 九小场所档案
     */
    @GetMapping("/ninePage")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入place")
    public R<IPage<PlaceVO>> ninePage(PlaceVO place, Query query) {
        IPage<PlaceVO> pages = placeService.selectNinePlacePage(Condition.getPage(query), place);
        return R.data(pages);
    }
    /**
     * 场所表 新增
     */
    @PostMapping("/save")
src/main/java/org/springblade/modules/place/entity/PlaceCheckEntity.java
@@ -53,10 +53,15 @@
    @TableField("house_code")
    private String houseCode;
    /** 其他隐患问题 */
    @ApiModelProperty(value = "其他隐患问题", example = "")
    /** 备注 */
    @ApiModelProperty(value = "备注", example = "")
    @TableField("remark")
    private String remark;
    /** 照片 */
    @ApiModelProperty(value = "照片", example = "")
    @TableField("image_urls")
    private String imageUrls;
    /** 签名路径 */
    @ApiModelProperty(value = "签名路径", example = "")
@@ -71,19 +76,33 @@
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @TableField("create_time")
    private Date createTime;
    /** 是否下发整改通知:  0:否 1 :是  */
    @ApiModelProperty(value = "是否下发整改通知:  0:否 1 :是 ", example = "")
    @TableField("rectification_notice_flag")
    private Integer rectificationNoticeFlag;
    /** 是否处罚:0:否 1 :是 */
    @ApiModelProperty(value = "是否处罚:0:否 1 :是", example = "")
    @TableField("punish_flag")
    private Integer punishFlag;
    /** 整改截止时间 */
    @ApiModelProperty(value = "整改截止时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("rectification_end_time")
    private Date rectificationEndTime;
    /** 处罚说明 */
    @ApiModelProperty(value = "处罚说明", example = "")
    @TableField("punish_remark")
    private String punishRemark;
    /** 是否删除 0:否  1:是 */
    @ApiModelProperty(value = "是否删除 0:否  1:是", example = "")
    @TableField("is_deleted")
    private Integer isDeleted;
    /**
     * 照片
     */
    @ApiModelProperty(value = "照片")
    @TableField("image_urls")
    private String imageUrls;
}
src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -77,6 +77,12 @@
    @JsonSerialize(using = ToStringSerializer.class)
    private String principal;
    /** 场所负责人身份证号 */
    @ApiModelProperty(value = "场所负责人身份证号", example = "")
    @TableField("principal_id_card")
    private String principalIdCard;
    /**
     * 场所负责人联系电话
     */
src/main/java/org/springblade/modules/place/mapper/PlaceCheckMapper.xml
@@ -19,6 +19,10 @@
        <result column="principal_phone" property="principalPhone"/>
        <result column="town_name" property="streetName"/>
        <result column="village_name" property="communityName"/>
        <result property="rectificationNoticeFlag"    column="rectification_notice_flag"    />
        <result property="punishFlag"    column="punish_flag"    />
        <result property="rectificationEndTime"    column="rectification_end_time"    />
        <result property="punishRemark"    column="punish_remark"    />
        <collection property="placePoiLabelVOList" column="jpid" javaType="java.util.List" select="selectPlacePoiLabelList"
                    ofType="org.springblade.modules.place.vo.PlacePoiLabelVO"
@@ -54,14 +58,17 @@
            resultType="org.springblade.modules.patrol.entity.PatrolRecord">
            select
            id,
            item_id,
            place_check_id,
            state,
            remark,
            image_urls,
            create_user,
            create_time,
            is_deleted
            item_id,
            place_check_id,
            state,
            remark,
            image_urls,
            create_user,
            create_time,
            is_deleted,
            rectification_image_urls,
            rectification_remark,
            rectification_time
            from
            jczz_patrol_record where place_check_id = #{id}
        </select>
@@ -133,9 +140,14 @@
            id,
            house_code,
            remark,
            image_urls,
            signature_path,
            create_user,
            create_time,
            rectification_notice_flag,
            punish_flag,
            rectification_end_time,
            punish_remark,
            is_deleted
        from
            jczz_place_check
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -33,6 +33,24 @@
 */
public interface PlaceMapper extends BaseMapper<PlaceEntity> {
    /**
     * 九小场所档案
     *
     * @param page
     * @param place
     * @param houseCodeList
     * @param regionChildCodesList
     * @param isAdministrator
     * @return
     */
    List<PlaceVO> selectNinePlacePage(IPage page,
                                  @Param("place") PlaceVO place,
                                  @Param("houseCodeList") List<String> houseCodeList,
                                  @Param("regionChildCodesList") List<String> regionChildCodesList,
                                  @Param("isAdministrator") Integer isAdministrator);
    /**
     * 自定义分页
     *
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -20,12 +20,16 @@
        bu.real_name as username,bu.phone as phone,
        br.town_name as townStreetName,br.name as neiName,
        jpe.confirm_flag confirmFlag,
        jg.grid_name as gridName
        jg.grid_name as gridName,
        bus.`name` AS policeName,
        bu.phone AS policePhone
        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_grid jg on jg.grid_code = jp.grid_code and jg.is_deleted = 0
        left join blade_region br on br.code = jg.community_code
        LEFT JOIN jczz_community jc on jc.`code`=jg.community_code
        LEFT JOIN blade_user bus on bus.id = jc.res_police_user_id
        left join (
        select a.* from jczz_place_poi_label a inner join
        (
@@ -55,6 +59,96 @@
        <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="houseCodeList != null and houseCodeList.size()>0">
            and jp.house_code in
            <foreach collection="houseCodeList" item="houseCode" separator ="," open="("  close=")">
                #{houseCode}
            </foreach>
        </if>
        <if test="isAdministrator==2">
            <choose>
                <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                    and jg.grid_code in
                    <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                        #{code}
                    </foreach>
                </when>
                <otherwise>
                    and jg.grid_code in ('')
                </otherwise>
            </choose>
        </if>
        order by jp.create_time desc,jp.id desc
    </select>
    <!--自定义分页查询-->
    <select id="selectNinePlacePage" resultType="org.springblade.modules.place.vo.PlaceVO">
        select
        jp.*,
        jpe.id as placeExtId,
        bu.real_name as username,bu.phone as phone,
        br.town_name as townStreetName,br.name as neiName,
        jpe.confirm_flag confirmFlag,
        jg.grid_name as gridName,
        bus.`name` AS policeName,
        bu.phone AS policePhone,
        bd.dept_name
        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_grid jg on jg.grid_code = jp.grid_code and jg.is_deleted = 0
        left join blade_region br on br.code = jg.community_code
        LEFT JOIN jczz_community jc on jc.`code`=jg.community_code
        LEFT JOIN blade_user bus on bus.id = jc.res_police_user_id
        LEFT JOIN blade_dept bd on bd.id = bus.dept_id
        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>
@@ -292,4 +386,66 @@
        </choose>
        )
    </select>
    <resultMap type="org.springblade.modules.place.dto.PlaceDTO" id="PlaceDTOResult">
        <result property="id"    column="id"    />
        <result property="houseCode"    column="house_code"    />
        <result property="buildingCode"    column="building_code"    />
        <result property="principalUserId"    column="principal_user_id"    />
        <result property="principal"    column="principal"    />
        <result property="principalIdCard"    column="principal_id_card"    />
        <result property="principalPhone"    column="principal_phone"    />
        <result property="placeName"    column="place_name"    />
        <result property="lng"    column="lng"    />
        <result property="lat"    column="lat"    />
        <result property="location"    column="location"    />
        <result property="imageUrls"    column="image_urls"    />
        <result property="gridCode"    column="grid_code"    />
        <result property="source"    column="source"    />
        <result property="status"    column="status"    />
        <result property="isScene"    column="is_scene"    />
        <result property="isNine"    column="is_nine"    />
        <result property="nineType"    column="nine_type"    />
        <result property="isFront"    column="is_front"    />
        <result property="frontType"    column="front_type"    />
        <result property="createUser"    column="create_user"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateUser"    column="update_user"    />
        <result property="updateTime"    column="update_time"    />
        <result property="remark"    column="remark"    />
        <result property="isDeleted"    column="is_deleted"    />
    </resultMap>
    <sql id="selectPlace">
        select
            id,
            house_code,
            building_code,
            principal_user_id,
            principal,
            principal_id_card,
            principal_phone,
            place_name,
            lng,
            lat,
            location,
            image_urls,
            grid_code,
            source,
            status,
            is_scene,
            is_nine,
            nine_type,
            is_front,
            front_type,
            create_user,
            create_time,
            update_user,
            update_time,
            remark,
            is_deleted
        from
            jczz_place
    </sql>
</mapper>
src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -46,13 +46,15 @@
    /**
     * 查询场所集合信息
     *
     * @param userId
     * @return
     */
    List<TreeStringNode> selectPlaceNodeList(Long userId);
    List<TreeStringNode> selectPlaceNodeList(Long userId);
    /**
     * 场所信息自定义新增/修改
     *
     * @param placeVO
     * @return
     */
@@ -60,6 +62,7 @@
    /**
     * 历史场所挂接处理-临时
     *
     * @param place
     * @return
     */
@@ -67,13 +70,15 @@
    /**
     * 历史场所标签挂接处理-临时
     *
     * @param place
     * @return
     */
    Object historyPlaceLabelHandle(PlaceVO place);
    Object historyPlaceLabelHandle(PlaceVO place);
    /**
     * 场所表 自定义详情查询
     *
     * @param place
     * @return
     */
@@ -81,13 +86,15 @@
    /**
     * 场所数据到导入
     *
     * @param data
     * @param isCovered
     */
    void importPlace(List<PlaceExcel> data, Boolean isCovered);
    void importPlace(List<PlaceExcel> data, Boolean isCovered);
    /**
     * 场所(商超)导入
     *
     * @param data
     * @param isCovered
     */
@@ -100,6 +107,7 @@
    /**
     * 自定义修改
     *
     * @param placeVO
     * @return
     */
@@ -108,10 +116,11 @@
    /**
     * 场所标签数据处理
     */
    Object placeLabelHandle();
    Object placeLabelHandle();
    /**
     * 历史场所详情数据处理
     *
     * @param place
     * @return
     */
@@ -119,22 +128,33 @@
    /**
     * 商超数据处理
     *
     * @return
     */
    Object placeAndRelHandle();
    Object placeAndRelHandle();
    /**
     * 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所)
     *
     * @param stringList
     * @param tableName
     * @return
     */
    List<PlaceVO> getPlaceListByParam(List<String> stringList,String tableName);
    List<PlaceVO> getPlaceListByParam(List<String> stringList, String tableName);
    /**
     * 删除
     *
     * @param longs
     * @return
     */
    boolean removePlace(List<Long> longs);
    /**
     * 九小场所档案
     * @param page
     * @param place
     * @return
     */
    IPage<PlaceVO> selectNinePlacePage(IPage<PlaceVO> page, PlaceVO place);
}
src/main/java/org/springblade/modules/place/service/impl/PlaceCheckServiceImpl.java
@@ -17,22 +17,32 @@
package org.springblade.modules.place.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xxl.job.core.util.FileUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.constant.DictConstant;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.modules.patrol.entity.PatrolRecord;
import org.springblade.modules.patrol.service.IPatrolRecordService;
import org.springblade.modules.place.dto.PlaceCheckDTO;
import org.springblade.modules.place.entity.PlaceCheckEntity;
import org.springblade.modules.place.service.IPlaceService;
import org.springblade.modules.place.vo.PlaceCheckVO;
import org.springblade.modules.place.mapper.PlaceCheckMapper;
import org.springblade.modules.place.service.IPlaceCheckService;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.task.service.ITaskService;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
import java.util.concurrent.atomic.AtomicReference;
/**
 * 场所检查表 服务实现类
@@ -42,6 +52,8 @@
 */
@Service
public class PlaceCheckServiceImpl extends ServiceImpl<PlaceCheckMapper, PlaceCheckEntity> implements IPlaceCheckService {
    private static Logger logger = LoggerFactory.getLogger(PlaceCheckServiceImpl.class);
    @Override
    public IPage<PlaceCheckVO> selectPlaceCheckPage(IPage<PlaceCheckVO> page, PlaceCheckVO placeCheck) {
@@ -66,12 +78,37 @@
        if (save) {
            IPatrolRecordService bean = SpringUtil.getBean(IPatrolRecordService.class);
            List<PatrolRecord> patrolRecordVOList = placeCheck.getPatrolRecordVOList();
            AtomicReference<Integer> number = new AtomicReference<>(0);
            patrolRecordVOList.stream().forEach(item -> {
                item.setPlaceCheckId(placeCheck.getId());
                item.setCreateUser(AuthUtil.getUserId());
                if (item.getState().equals(0)) {
                    number.getAndSet(number.get() + 1);
                }
            });
            boolean b = bean.saveBatch(placeCheck.getPatrolRecordVOList());
            boolean b = bean.saveBatch(patrolRecordVOList);
            if (b) {
                // 隐患问题大于0 则创建任务
                try {
                    Integer integer = number.get();
                    if (integer > 0) {
                        // 保存任务表
                        ITaskService bean2 = SpringUtils.getBean(ITaskService.class);
                        Long aLong = bean2.saveTask(CommonConstant.NUMBER_FOUR, DictConstant.FIRE_RECTIFICATION_NOTICE, 1,
                            "", AuthUtil.getUserId(), placeCheck.getHouseCode(), CommonConstant.NUMBER_EIGHT);
                        if (aLong > 0) {
                            // 保存任务详情表
                            ITaskPlaceRectificationService bean1 = SpringUtil.getBean(ITaskPlaceRectificationService.class);
                            TaskPlaceRectificationEntity copy = BeanUtil.copy(placeCheck, TaskPlaceRectificationEntity.class);
                            copy.setTaskId(aLong);
                            copy.setPlaceCheckId(placeCheck.getId());
                            copy.setId(null);
                            bean1.save(copy);
                        }
                    }
                } catch (Exception e) {
                    logger.error("任务保存失败!", e);
                }
                return b;
            }
            throw new Exception("保存失败!");
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -1081,4 +1081,26 @@
            placePoiLabelService.remove(wrapper);
        }
    }
    /**
     * 九小场所档案
     * @param page
     * @param place
     * @return
     */
    @Override
    public IPage<PlaceVO> selectNinePlacePage(IPage<PlaceVO> page, PlaceVO place) {
        List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
        Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2;
        List<String> list = new ArrayList<>();
        if (null!=place.getRoleName() && !place.getRoleName().equals("")){
            if (place.getRoleName().equals("网格员")){
                // 查询对应的房屋地址code
                list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId());
            }
        }
        List<PlaceVO> placeVOS = baseMapper.selectNinePlacePage(page, place,list,regionChildCodesList,isAdministrator);
        // 返回
        return page.setRecords(placeVOS);
    }
}
src/main/java/org/springblade/modules/place/vo/PlaceVO.java
@@ -139,4 +139,13 @@
     */
    private String y;
    @ApiModelProperty(value = "警察名称")
    private String policeName;
    @ApiModelProperty(value = "警察电话")
    private String policePhone;
    @ApiModelProperty(value = "机构名称")
    private String deptName;
}
src/main/java/org/springblade/modules/subjectChoices/mapper/SubjectChoicesMapper.xml
@@ -32,11 +32,9 @@
    <select id="selectCircleCommentByParentId" parameterType="long"
            resultType="org.springblade.modules.subjectOption.vo.SubjectOptionVO">
        SELECT
        jso.*,
        jar.subject_option_id ids,
        jar.answer numbers
        jso.*
        FROM
        jczz_subject_option jso LEFT JOIN jczz_answer_record jar on jso.id = jar.subject_option_id
        jczz_subject_option jso
        WHERE
        jso.subject_choices_id = #{id}
    </select>
src/main/java/org/springblade/modules/subjectChoices/service/impl/SubjectChoicesServiceImpl.java
@@ -18,6 +18,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.utils.SpringUtils;
import org.springblade.modules.answerRecord.service.IAnswerRecordService;
import org.springblade.modules.subjectChoices.dto.SubjectChoicesDTO;
import org.springblade.modules.subjectChoices.entity.SubjectChoicesEntity;
import org.springblade.modules.subjectChoices.mapper.SubjectChoicesMapper;
@@ -38,7 +40,18 @@
    @Override
    public IPage<SubjectChoicesVO> selectSubjectChoicesPage(IPage<SubjectChoicesVO> page, SubjectChoicesVO subjectChoices) {
        return page.setRecords(baseMapper.selectSubjectChoicesPage(page, subjectChoices));
        List<SubjectChoicesVO> subjectChoicesVOS = baseMapper.selectSubjectChoicesPage(page, subjectChoices);
        IAnswerRecordService bean = SpringUtils.getBean(IAnswerRecordService.class);
        // for (SubjectChoicesVO subjectChoicesVO : subjectChoicesVOS) {
        //     List<SubjectOptionVO> subjectOptionList = subjectChoicesVO.getSubjectOptionList();
        //     for (SubjectOptionVO subjectOptionVO : subjectOptionList) {
        //         bean.getOne(Wrappers.<AnswerRecordEntity>lambdaQuery().
        //             eq(AnswerRecordEntity::getSubjectOptionId,subjectOptionVO.getId()))
        //         subjectOptionVO.setIds();
        //         subjectOptionVO.setNumbers();
        //     }
        // }
        return page.setRecords(subjectChoicesVOS);
    }
    /**
src/main/java/org/springblade/modules/system/controller/DictBizController.java
@@ -115,8 +115,8 @@
    @GetMapping("/tree")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "树形结构", notes = "树形结构")
    public R<List<DictBizVO>> tree() {
        List<DictBizVO> tree = dictService.tree();
    public R<List<DictBizVO>> tree(@RequestParam(value = "code", required = false) String code) {
        List<DictBizVO> tree = dictService.tree(code);
        return R.data(tree);
    }
src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java
@@ -51,7 +51,7 @@
     *
     * @return
     */
    List<DictBizVO> tree();
    List<DictBizVO> tree(String code);
    /**
     * 获取树形节点
src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml
@@ -37,11 +37,49 @@
    </select>-->
    <select id="getList" resultMap="dictResultMap">
        select id, tenant_id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict_biz where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0
            SELECT
            id,
            tenant_id,
            parent_id,
            CODE,
            dict_key,
            dict_value,
            sort,
            remark
        FROM
            blade_dict_biz
        WHERE
            CODE = #{param1}
            and parent_id > 0
            and is_sealed = 0
            and is_deleted = 0
    </select>
    <select id="tree" resultMap="treeNodeResultMap">
        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict_biz where is_deleted = 0
        SELECT
        id,
        parent_id,
        dict_value AS title,
        id AS "value",
        dict_key AS "key",
        (
        SELECT
        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
        FROM
        blade_dict_biz
        WHERE
        parent_id = id and is_deleted = 0
        ) AS hasChildren
        FROM
        blade_dict_biz
        <where>
            <if test="param1 != null and param1 != ''">
                CODE = #{param1}
                and parent_id > 0
            </if>
            and is_deleted = 0
        </where>
    </select>
    <select id="parentTree" resultMap="treeNodeResultMap">
src/main/java/org/springblade/modules/system/service/IDictBizService.java
@@ -37,7 +37,7 @@
     *
     * @return
     */
    List<DictBizVO> tree();
    List<DictBizVO> tree(String code);
    /**
     * 树形结构
src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java
@@ -52,8 +52,9 @@
public class DictBizServiceImpl extends ServiceImpl<DictBizMapper, DictBiz> implements IDictBizService {
    @Override
    public List<DictBizVO> tree() {
        return ForestNodeMerger.merge(baseMapper.tree());
    public List<DictBizVO> tree(String code) {
        List<DictBizVO> tree = baseMapper.tree(code);
        return ForestNodeMerger.merge(tree);
    }
    @Override
src/main/java/org/springblade/modules/system/vo/RegionVO.java
@@ -28,6 +28,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * 行政区划表视图实体类
@@ -88,4 +89,6 @@
    }
    private String regionCode;
    private List<Map<String, Integer>> nineTypeStatistics;
}
src/main/java/org/springblade/modules/task/entity/TaskEntity.java
@@ -63,7 +63,7 @@
    private String houseCode;
    /** 事件类型(1:取保候审,2旅馆 3打金店 4二手手机 5二手车 6 校园安全) */
    @ApiModelProperty(value = "事件类型(1:取保候审,2旅馆 3打金店 4二手手机 5二手车 6 校园安全 7.九小场所)", example = "")
    @ApiModelProperty(value = "事件类型(1:取保候审,2旅馆 3打金店 4二手手机 5二手车 6 校园安全 7.九小自查任务 8 九小整改任务 )", example = "")
    @TableField("report_type")
    private Integer reportType;
    /**
src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
@@ -139,10 +139,10 @@
            </if>
            <!-- 场所店铺 -->
            <if test="task.reportType != null and task.reportType == 2 ">
                and jt.report_type in (2,3,4,5,6,7)
                and jt.report_type in (2,3,4,5,6,7,8)
            </if>
            <if test="task.reportType == null">
                and jt.report_type in (2,3,4,5,6,7)
                and jt.report_type in (2,3,4,5,6,7,8)
            </if>
            and jt.is_deleted = 0
            and jt.house_code is not null
src/main/java/org/springblade/modules/taskPlaceRectification/controller/TaskPlaceRectificationController.java
New file
@@ -0,0 +1,186 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.taskPlaceRectification.dto.TaskPlaceRectificationDTO;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
import org.springblade.modules.taskPlaceRectification.wrapper.TaskPlaceRectificationWrapper;
import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
import org.springblade.core.boot.ctrl.BladeController;
import java.util.List;
/**
 * 场所整改任务表 控制器
 *
 * @author BladeX
 * @since 2024-01-31
 */
@RestController
@AllArgsConstructor
@RequestMapping("blade-taskPlaceRectification/taskPlaceRectification")
@Api(value = "场所整改任务表", tags = "场所整改任务表接口")
public class TaskPlaceRectificationController extends BladeController {
    private final ITaskPlaceRectificationService taskPlaceRectificationService;
    /**
     * 场所整改任务表 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入taskPlaceRectification")
    public R<TaskPlaceRectificationVO> detail(TaskPlaceRectificationEntity taskPlaceRectification) {
        TaskPlaceRectificationEntity detail = taskPlaceRectificationService.getOne(Condition.getQueryWrapper(taskPlaceRectification));
        return R.data(TaskPlaceRectificationWrapper.build().entityVO(detail));
    }
    /**
     * 场所整改任务表 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入taskPlaceRectification")
    public R<IPage<TaskPlaceRectificationVO>> list(TaskPlaceRectificationEntity taskPlaceRectification, Query query) {
        IPage<TaskPlaceRectificationEntity> pages = taskPlaceRectificationService.page(Condition.getPage(query), Condition.getQueryWrapper(taskPlaceRectification));
        return R.data(TaskPlaceRectificationWrapper.build().pageVO(pages));
    }
    /**
     * 场所整改任务表 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入taskPlaceRectification")
    public R<IPage<TaskPlaceRectificationVO>> page(TaskPlaceRectificationVO taskPlaceRectification, Query query) {
        IPage<TaskPlaceRectificationVO> pages = taskPlaceRectificationService.selectTaskPlaceRectificationPage(Condition.getPage(query), taskPlaceRectification);
        return R.data(pages);
    }
    /**
     * 场所整改任务表 新增
     */
    @PostMapping("/save")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "新增", notes = "传入taskPlaceRectification")
    public R save(@Valid @RequestBody TaskPlaceRectificationEntity taskPlaceRectification) {
        return R.status(taskPlaceRectificationService.save(taskPlaceRectification));
    }
    /**
     * 场所整改任务表 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入taskPlaceRectification")
    public R update(@Valid @RequestBody TaskPlaceRectificationEntity taskPlaceRectification) {
        return R.status(taskPlaceRectificationService.updateById(taskPlaceRectification));
    }
    /**
     * 场所整改任务表 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入taskPlaceRectification")
    public R submit(@Valid @RequestBody TaskPlaceRectificationEntity taskPlaceRectification) {
        return R.status(taskPlaceRectificationService.saveOrUpdate(taskPlaceRectification));
    }
    /**
     * 场所整改任务表 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 7)
    @ApiOperation(value = "逻辑删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(taskPlaceRectificationService.removeBatchByIds(Func.toLongList(ids)));
    }
    /**
     * 场所整改任务表 详情
     */
    @GetMapping("/detailByTaskId")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入taskPlaceRectification")
    public R<TaskPlaceRectificationVO> detailById(TaskPlaceRectificationEntity taskPlaceRectification) {
        TaskPlaceRectificationEntity detail = taskPlaceRectificationService.selectTaskPlaceRectificationById(taskPlaceRectification.getTaskId());
        return R.data(TaskPlaceRectificationWrapper.build().entityVO(detail));
    }
    /**
     * 场所整改任务表 详情
     */
    @GetMapping("/getTaskPlaceRectificationList")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "消防隐患整改情况登记表", notes = "传入taskPlaceRectification")
    public R<IPage<TaskPlaceRectificationVO>> getTaskPlaceRectificationList(TaskPlaceRectificationDTO taskPlaceRectification, Query query) {
        IPage<TaskPlaceRectificationVO> taskPlaceRectificationDTOS = taskPlaceRectificationService.selectTaskPlaceRectificationList(Condition.getPage(query), taskPlaceRectification);
        return R.data(taskPlaceRectificationDTOS);
    }
    /**
     * 场所整改任务表 修改
     */
    @PostMapping("/updateRectification")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "场所负责人整改", notes = "传入taskPlaceRectification")
    public R updateRectification(@Valid @RequestBody TaskPlaceRectificationVO taskPlaceRectification) {
        return R.status(taskPlaceRectificationService.updateRectification(taskPlaceRectification));
    }
    /**
     * 民警审核
     */
    @PostMapping("/applyRectification")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "民警审核", notes = "传入taskPlaceRectification")
    public R applyRectification(@Valid @RequestBody TaskPlaceRectificationVO taskPlaceRectification) {
        return R.status(taskPlaceRectificationService.applyRectification(taskPlaceRectification));
    }
    /**
     * 民警审核
     */
    @PostMapping("/rectificationStatistics")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "九小场所类型隐患数量统计", notes = "传入taskPlaceRectification")
    public R rectificationStatistics() {
        return R.data(taskPlaceRectificationService.rectificationStatistics());
    }
}
src/main/java/org/springblade/modules/taskPlaceRectification/dto/TaskPlaceRectificationDTO.java
New file
@@ -0,0 +1,76 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.dto;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.modules.patrol.entity.PatrolRecord;
import org.springblade.modules.place.vo.PlacePoiLabelVO;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * 场所整改任务表 数据传输对象实体类
 *
 * @author BladeX
 * @since 2024-01-31
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskPlaceRectificationDTO extends TaskPlaceRectificationEntity {
    private static final long serialVersionUID = 1L;
    private List<PatrolRecord> patrolRecordVOList;
    private List<PlacePoiLabelVO> placePoiLabelVOList ;
    @ApiModelProperty(value = "场所名称", example = "")
    private String placeName;
    @ApiModelProperty(value = "场所地址", example = "")
    private String location;
    @ApiModelProperty(value = "负责人", example = "")
    private String principal;
    @ApiModelProperty(value = "网格名称", example = "")
    private String gridName;
    @ApiModelProperty(value = "负责人电话", example = "")
    private String principalPhone;
    @ApiModelProperty(value = "街道名称", example = "")
    private String streetName;
    @ApiModelProperty(value = "社区名称", example = "")
    private String communityName;
    @ApiModelProperty(value = "法人", example = "")
    private String legalPerson;
    @ApiModelProperty(value = "法人电话", example = "")
    private String legalTel;
    @ApiModelProperty(value = "检查人名称", example = "")
    private String name;
    @ApiModelProperty(value = "隐患数量", example = "")
    private Integer number;
}
src/main/java/org/springblade/modules/taskPlaceRectification/entity/TaskPlaceRectificationEntity.java
New file
@@ -0,0 +1,143 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import liquibase.pro.packaged.L;
import lombok.Data;
import java.util.Date;
/**
 * 场所整改任务表 实体类
 *
 * @author BladeX
 * @since 2024-01-31
 */
@Data
@TableName("jczz_task_place_rectification")
@ApiModel(value = "TaskPlaceRectification对象", description = "场所整改任务表")
public class TaskPlaceRectificationEntity  {
    /** id */
    @ApiModelProperty(value = "主键ID", example = "")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    /** 场所检查id */
    @ApiModelProperty(value = "场所检查id", example = "")
    @TableField("place_check_id")
    private Long placeCheckId;
    /** 任务id */
    @ApiModelProperty(value = "任务id", example = "")
    @TableField("task_id")
    private Long taskId;
    /** 任务状态: 1:待接收  2:审核中 3:审核通过 4:审核不通过 */
    @ApiModelProperty(value = "状态 1:待审核  2:审核通过  3:审核不通过  4:待上报(场所负责人完善,由系统下发的任务)", example = "")
    @TableField("status")
    private Integer status;
    /** 任务名称 */
    @ApiModelProperty(value = "任务名称", example = "")
    @TableField("task_name")
    private String taskName;
    /** 场所名称 */
    @ApiModelProperty(value = "场所名称", example = "")
    @TableField("place_name")
    private String placeName;
    /** 隐患内容 */
    @ApiModelProperty(value = "隐患内容", example = "")
    @TableField("remark")
    private String remark;
    /** 更新时间 */
    @ApiModelProperty(value = "更新时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("update_time")
    private Date updateTime;
    /** 创建时间 */
    @ApiModelProperty(value = "创建时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;
    /** 门牌地址编码 */
    @ApiModelProperty(value = "门牌地址编码", example = "")
    @TableField("house_code")
    private String houseCode;
    /** 是否下发整改通知:  1:否 2 :是  */
    @ApiModelProperty(value = "是否下发整改通知:  1:否 2 :是 ", example = "")
    @TableField("rectification_notice_flag")
    private Integer rectificationNoticeFlag;
    /** 整改截止时间 */
    @ApiModelProperty(value = "整改截止时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("rectification_end_time")
    private Date rectificationEndTime;
    /** 整改完成时间 */
    @ApiModelProperty(value = "整改完成时间", example = "")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("rectification_complete_time")
    private Date rectificationCompleteTime;
    /** 是否整改完毕:1:否 2 :是 */
    @ApiModelProperty(value = "是否整改完毕:1:否 2 :是", example = "")
    @TableField("rectification_flag")
    private Integer rectificationFlag;
    /** 是否处罚:1:否 2 :是 */
    @ApiModelProperty(value = "是否处罚:1:否 2 :是", example = "")
    @TableField("punish_flag")
    private Integer punishFlag;
    /** 派出所 */
    @ApiModelProperty(value = "派出所", example = "")
    @TableField("police_station")
    private String policeStation;
    /** 整改通知书地址 */
    @ApiModelProperty(value = "整改通知书地址", example = "")
    @TableField("rectification_notice_img_url")
    private String rectificationNoticeImgUrl;
    /** 签名路径 */
    @ApiModelProperty(value = "签名路径", example = "")
    @TableField("signature_path")
    private String signaturePath;
    /** 创建人 */
    @ApiModelProperty(value = "创建人", example = "")
    @TableField("create_user")
    private Long createUser;
    /** 照片 */
    @ApiModelProperty(value = "照片", example = "")
    @TableField("image_urls")
    private String imageUrls;
}
src/main/java/org/springblade/modules/taskPlaceRectification/mapper/TaskPlaceRectificationMapper.java
New file
@@ -0,0 +1,67 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.mapper;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.taskPlaceRectification.dto.TaskPlaceRectificationDTO;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
/**
 * 场所整改任务表 Mapper 接口
 *
 * @author BladeX
 * @since 2024-01-31
 */
public interface TaskPlaceRectificationMapper extends BaseMapper<TaskPlaceRectificationEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param taskPlaceRectification
     * @return
     */
    List<TaskPlaceRectificationVO> selectTaskPlaceRectificationPage(IPage page, TaskPlaceRectificationVO taskPlaceRectification);
    /**
     * 查询场所整改任务表
     *
     * @param taskId 场所整改任务表ID
     * @return 场所整改任务表
     */
    public TaskPlaceRectificationVO selectTaskPlaceRectificationById(@Param("taskId") Long taskId);
    /**
     * 查询场所整改任务表列表
     *
     * @param taskPlaceRectificationDTO 场所整改任务表
     * @return 场所整改任务表集合
     */
    public List<TaskPlaceRectificationVO> selectTaskPlaceRectificationList(IPage page,
                                                                           @Param("taskPalce") TaskPlaceRectificationDTO taskPlaceRectificationDTO,
                                                                           @Param("regionChildCodesList") List<String> regionChildCodesList,
                                                                           @Param("isAdministrator") Integer isAdministrator);
    List<Map<String, Integer>> getNineTypeStatistics(List<String> regionChildCodesList, Integer isAdministrator);
}
src/main/java/org/springblade/modules/taskPlaceRectification/mapper/TaskPlaceRectificationMapper.xml
New file
@@ -0,0 +1,309 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.taskPlaceRectification.mapper.TaskPlaceRectificationMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="taskPlaceRectificationResultMap"
               type="org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity">
    </resultMap>
    <select id="selectTaskPlaceRectificationPage" resultMap="taskPlaceRectificationResultMap">
        select * from jczz_task_place_rectification where is_deleted = 0
    </select>
    <resultMap type="org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO"
               id="TaskPlaceRectificationDTOResult">
        <result property="id" column="id"/>
        <result property="placeCheckId" column="place_check_id"/>
        <result property="taskId" column="task_id"/>
        <result property="status" column="status"/>
        <result property="taskName" column="task_name"/>
        <result property="placeName" column="place_name"/>
        <result property="remark" column="remark"/>
        <result property="updateTime" column="update_time"/>
        <result property="createTime" column="create_time"/>
        <result property="houseCode" column="house_code"/>
        <result property="rectificationNoticeFlag" column="rectification_notice_flag"/>
        <result property="rectificationEndTime" column="rectification_end_time"/>
        <result property="rectificationCompleteTime" column="rectification_complete_time"/>
        <result property="rectificationFlag" column="rectification_flag"/>
        <result property="punishFlag" column="punish_flag"/>
        <result property="policeStation" column="police_station"/>
        <result property="rectificationNoticeImgUrl" column="rectification_notice_img_url"/>
        <result property="signaturePath" column="signature_path"/>
        <result property="createUser" column="create_user"/>
        <result property="imageUrls" column="image_urls"/>
        <collection property="placePoiLabelVOList" column="jpid" javaType="java.util.List"
                    select="selectPlacePoiLabelList"
                    ofType="org.springblade.modules.place.vo.PlacePoiLabelVO"
                    autoMapping="true">
        </collection>
        <collection property="patrolRecordVOList" column="place_check_id" select="selectPatrolRecordList"
                    javaType="java.util.List" ofType="org.springblade.modules.patrol.vo.PatrolRecordVO"
                    autoMapping="true">
        </collection>
    </resultMap>
    <select id="selectPlacePoiLabelList" parameterType="Long"
            resultType="org.springblade.modules.place.vo.PlacePoiLabelVO">
            SELECT
            jppl.id,
            jppl.place_id,
            jppl.poi_code,
            jppl.type,
            jppl.color,
            jppl.remark,
            jc.category_name labelName
        FROM
            jczz_place_poi_label jppl
            LEFT JOIN jczz_category jc ON jppl.poi_code = jc.category_no
        WHERE
            jppl.type = '3'
             and  place_id = #{jpid}
        </select>
    <select id="selectPatrolRecordList" parameterType="Long"
            resultType="org.springblade.modules.patrol.vo.PatrolRecordVO">
            select
            jpr.id,
            jpr.item_id,
            jpr.place_check_id,
            jpr.state,
            jpr.remark,
            jpr.image_urls,
            jpr.create_user,
            jpr.create_time,
            jpr.is_deleted,
            jpr.rectification_image_urls,
            jpr.rectification_remark,
            jpr.rectification_time,
            jpgi.items_name
            from
            jczz_patrol_record jpr
            LEFT JOIN jczz_patrol_group_item jpgi on jpr.item_id= jpgi.id
            where place_check_id = #{id}
        </select>
    <sql id="selectTaskPlaceRectification">
        select
            id,
            place_check_id,
            task_id,
            status,
            task_name,
            place_name,
            remark,
            update_time,
            create_time,
            house_code,
            rectification_notice_flag,
            rectification_end_time,
            rectification_complete_time,
            rectification_flag,
            punish_flag,
            police_station,
            rectification_notice_img_url,
            signature_path,
            create_user,
            image_urls
        from
            jczz_task_place_rectification
    </sql>
    <select id="selectTaskPlaceRectificationById" parameterType="long" resultMap="TaskPlaceRectificationDTOResult">
        SELECT
        jtpr.*,
        jp.id jpid,
        jp.place_name,
        jp.location,
        jg.grid_name,
        jp.principal,
        jp.principal_phone,
        br.town_name,
        br.village_name,
        bu.`name`,
        jpe.legal_tel,
        jpe.legal_person
    FROM
        jczz_task_place_rectification jtpr
        LEFT JOIN jczz_place jp ON jtpr.house_code = jp.house_code
        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code
        LEFT JOIN blade_region br ON br.`code` = jg.community_code
        LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id
        LEFT JOIN blade_user bu ON bu.id = jtpr.create_user
    WHERE jtpr.task_id = #{taskId}
    </select>
    <select id="selectTaskPlaceRectificationList"
            parameterType="org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO"
            resultMap="TaskPlaceRectificationDTOResult">
        SELECT
        jtpr.id,
        jtpr.place_check_id,
        jtpr.task_id,
        jtpr.STATUS,
        jtpr.task_name,
        jtpr.remark,
        jtpr.update_time,
        jtpr.create_time,
        jtpr.house_code,
        jtpr.rectification_notice_flag,
        jtpr.rectification_end_time,
        jtpr.rectification_complete_time,
        jtpr.rectification_flag,
        jtpr.punish_flag,
        jtpr.police_station,
        jtpr.rectification_notice_img_url,
        jtpr.signature_path,
        jtpr.create_user,
        jtpr.image_urls,
        bd.dept_name,
        jp.id jpid,
        jp.place_name,
        jp.location,
        jg.grid_name,
        jp.principal,
        jp.principal_phone,
        jp.nine_type,
        br.town_name,
        br.village_name,
        bu.`name`,
        jpe.legal_tel,
        jpe.legal_person
        FROM
        jczz_task_place_rectification jtpr
        LEFT JOIN jczz_place jp ON jtpr.house_code = jp.house_code
        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code
        LEFT JOIN blade_region br ON br.`code` = jg.community_code
        LEFT JOIN jczz_place_ext jpe ON jpe.place_id = jp.id
        LEFT JOIN blade_user bu ON bu.id = jtpr.create_user
        LEFT JOIN blade_dept bd ON bu.dept_id = bd.id
        <where>
            <if test="taskPalce.id != null ">and id = #{taskPalce.id}</if>
            <if test="taskPalce.placeCheckId != null ">and place_check_id = #{taskPalce.placeCheckId}</if>
            <if test="taskPalce.taskId != null ">and task_id = #{taskPalce.taskId}</if>
            <if test="taskPalce.status != null ">and status = #{taskPalce.status}</if>
            <if test="taskPalce.taskName != null  and taskPalce.taskName != ''">and task_name = #{taskPalce.taskName}
            </if>
            <if test="taskPalce.placeName != null  and taskPalce.placeName != ''">and place_name =
                #{taskPalce.placeName}
            </if>
            <if test="taskPalce.remark != null  and taskPalce.remark != ''">and remark = #{taskPalce.remark}</if>
            <if test="taskPalce.updateTime != null ">and update_time = #{taskPalce.updateTime}</if>
            <if test="taskPalce.createTime != null ">and create_time = #{taskPalce.createTime}</if>
            <if test="taskPalce.houseCode != null  and taskPalce.houseCode != ''">and house_code =
                #{taskPalce.houseCode}
            </if>
            <if test="taskPalce.rectificationNoticeFlag != null ">and rectification_notice_flag =
                #{taskPalce.rectificationNoticeFlag}
            </if>
            <if test="taskPalce.rectificationEndTime != null ">and rectification_end_time =
                #{taskPalce.rectificationEndTime}
            </if>
            <if test="taskPalce.rectificationCompleteTime != null ">and rectification_complete_time =
                #{taskPalce.rectificationCompleteTime}
            </if>
            <if test="taskPalce.rectificationFlag != null ">and rectification_flag = #{taskPalce.rectificationFlag}</if>
            <if test="taskPalce.punishFlag != null ">and punish_flag = #{taskPalce.punishFlag}</if>
            <if test="taskPalce.policeStation != null  and taskPalce.policeStation != ''">and police_station =
                #{taskPalce.policeStation}
            </if>
            <if test="taskPalce.rectificationNoticeImgUrl != null  and taskPalce.rectificationNoticeImgUrl != ''">and
                rectification_notice_img_url = #{taskPalce.rectificationNoticeImgUrl}
            </if>
            <if test="taskPalce.signaturePath != null  and taskPalce.signaturePath != ''">and signature_path =
                #{taskPalce.signaturePath}
            </if>
            <if test="taskPalce.createUser != null ">and create_user = #{taskPalce.createUser}</if>
            <if test="taskPalce.imageUrls != null  and taskPalce.imageUrls != ''">and image_urls =
                #{taskPalce.imageUrls}
            </if>
            <if test="isAdministrator==2">
                <choose>
                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                        and jg.grid_code in
                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                            #{code}
                        </foreach>
                    </when>
                </choose>
            </if>
        </where>
    </select>
    <select id="getNineTypeStatistics1" resultType="list">
        SELECT
        bd.dict_key,
        bd.dict_value,
        (
        SELECT
        count( 1 )
        FROM
        jczz_place jp
        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code
        <where>
            <if test="isAdministrator==2">
                <choose>
                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                        and jg.grid_code in
                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                            #{code}
                        </foreach>
                    </when>
                </choose>
            </if>
            and jp.nine_type = bd.dict_key
        </where>
        ) number
        FROM
        blade_dict_biz bd
        WHERE
        bd.`code` = 'nineType'
        AND bd.is_sealed = 0
        AND bd.dict_key > 0
    </select>
    <select id="getNineTypeStatistics" resultType="java.util.Map">
        SELECT
        bd.dict_key,
        bd.dict_value,
        (
        SELECT
        count( 1 )
        FROM
        jczz_place jp
        LEFT JOIN jczz_grid jg ON jg.grid_code = jp.grid_code
        <where>
            <if test="isAdministrator==2">
                <choose>
                    <when test="regionChildCodesList !=null and regionChildCodesList.size()>0">
                        and jg.grid_code in
                        <foreach collection="regionChildCodesList" item="code" open="(" close=")" separator=",">
                            #{code}
                        </foreach>
                    </when>
                </choose>
            </if>
            and jp.nine_type = bd.dict_key
        </where>
        ) number
        FROM
        blade_dict_biz bd
        WHERE
        bd.code = 'nineType'
        AND bd.is_sealed = 0
        AND bd.dict_key > 0
    </select>
</mapper>
src/main/java/org/springblade/modules/taskPlaceRectification/service/ITaskPlaceRectificationService.java
New file
@@ -0,0 +1,66 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.taskPlaceRectification.dto.TaskPlaceRectificationDTO;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 场所整改任务表 服务类
 *
 * @author BladeX
 * @since 2024-01-31
 */
public interface ITaskPlaceRectificationService extends IService<TaskPlaceRectificationEntity> {
    /**
     * 自定义分页
     *
     * @param page
     * @param taskPlaceRectification
     * @return
     */
    IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationPage(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationVO taskPlaceRectification);
    /**
     * 查询场所整改任务表
     *
     * @param taskId 场所整改任务表ID
     * @return 场所整改任务表
     */
    public TaskPlaceRectificationVO selectTaskPlaceRectificationById(Long taskId);
    /**
     * 查询场所整改任务表列表
     *
     * @param taskPlaceRectificationDTO 场所整改任务表
     * @return 场所整改任务表集合
     */
    public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationList(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationDTO taskPlaceRectificationDTO);
    Boolean updateRectification(TaskPlaceRectificationVO taskPlaceRectification);
    Boolean applyRectification(TaskPlaceRectificationVO taskPlaceRectification);
    Object rectificationStatistics();
}
src/main/java/org/springblade/modules/taskPlaceRectification/service/impl/TaskPlaceRectificationServiceImpl.java
New file
@@ -0,0 +1,145 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.cache.SysCache;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.patrol.entity.PatrolRecord;
import org.springblade.modules.patrol.service.IPatrolRecordService;
import org.springblade.modules.patrol.vo.PatrolRecordVO;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.entity.Region;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.system.service.IDictBizService;
import org.springblade.modules.system.service.IRegionService;
import org.springblade.modules.system.vo.RegionVO;
import org.springblade.modules.task.entity.TaskEntity;
import org.springblade.modules.task.service.ITaskService;
import org.springblade.modules.taskPlaceRectification.dto.TaskPlaceRectificationDTO;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
import org.springblade.modules.taskPlaceRectification.mapper.TaskPlaceRectificationMapper;
import org.springblade.modules.taskPlaceRectification.service.ITaskPlaceRectificationService;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
/**
 * 场所整改任务表 服务实现类
 *
 * @author BladeX
 * @since 2024-01-31
 */
@Service
public class TaskPlaceRectificationServiceImpl extends ServiceImpl<TaskPlaceRectificationMapper, TaskPlaceRectificationEntity> implements ITaskPlaceRectificationService {
    @Override
    public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationPage(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationVO taskPlaceRectification) {
        return page.setRecords(baseMapper.selectTaskPlaceRectificationPage(page, taskPlaceRectification));
    }
    /**
     * 查询场所整改任务表
     *
     * @param taskId 场所整改任务表ID
     * @return 场所整改任务表
     */
    @Override
    public TaskPlaceRectificationVO selectTaskPlaceRectificationById(Long taskId) {
        return this.baseMapper.selectTaskPlaceRectificationById(taskId);
    }
    /**
     * 查询场所整改任务表列表
     *
     * @param taskPlaceRectificationDTO 场所整改任务表
     * @return 场所整改任务表集合
     */
    @Override
    public IPage<TaskPlaceRectificationVO> selectTaskPlaceRectificationList(IPage<TaskPlaceRectificationVO> page, TaskPlaceRectificationDTO taskPlaceRectificationDTO) {
        // 数据过滤
        List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
        Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
        List<TaskPlaceRectificationVO> taskPlaceRectificationVOS = baseMapper.selectTaskPlaceRectificationList(page, taskPlaceRectificationDTO, regionChildCodesList, isAdministrator);
        for (TaskPlaceRectificationVO taskPlaceRectificationVO : taskPlaceRectificationVOS) {
            StringBuilder builder = new StringBuilder("");
            List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectificationVO.getPatrolRecordVOList();
            for (PatrolRecordVO patrolRecordVO : patrolRecordVOList) {
                builder.append(patrolRecordVO.getItemsName()).append(";");
            }
            taskPlaceRectificationVO.setHiddenDanger(builder.toString());
        }
        return page.setRecords(taskPlaceRectificationVOS);
    }
    @Override
    public Boolean updateRectification(TaskPlaceRectificationVO taskPlaceRectification) {
        // 更新隐患项记录
        IPatrolRecordService patrolRecordService = SpringUtils.getBean(IPatrolRecordService.class);
        List<PatrolRecordVO> patrolRecordVOList = taskPlaceRectification.getPatrolRecordVOList();
        boolean b = patrolRecordService.updateBatchById(BeanUtil.copy(patrolRecordVOList, PatrolRecord.class));
        if (b) {
            // 更新任务状态
            ITaskService bean = SpringUtils.getBean(ITaskService.class);
            boolean update = bean.update(Wrappers.<TaskEntity>lambdaUpdate()
                .set(TaskEntity::getStatus, taskPlaceRectification.getStatus())
                .eq(TaskEntity::getId, taskPlaceRectification.getTaskId()));
            // 更新任务详情状态
            boolean b1 = updateById(taskPlaceRectification);
            return b1;
        }
        return false;
    }
    @Override
    public Boolean applyRectification(TaskPlaceRectificationVO taskPlaceRectification) {
        // 更新任务状态
        ITaskService bean = SpringUtils.getBean(ITaskService.class);
        boolean update = bean.update(Wrappers.<TaskEntity>lambdaUpdate()
            .set(TaskEntity::getStatus, taskPlaceRectification.getStatus())
            .set(TaskEntity::getRemark,taskPlaceRectification.getReasonFailure())
            .eq(TaskEntity::getId, taskPlaceRectification.getTaskId()));
        // 更新任务详情状态
        boolean b1 = updateById(taskPlaceRectification);
        return b1;
    }
    @Override
    public Object rectificationStatistics() {
        List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
        Integer isAdministrator = AuthUtil.isAdmin() == true ? 1 : 2;
        // 统计九小场所类型隐患统计
        IRegionService bean = SpringUtils.getBean(IRegionService.class);
        List<Region> list = bean.list(Wrappers.<Region>lambdaQuery()
            .like(Region::getCode, "361102")
            .eq(Region::getRegionLevel, 4));
        List<RegionVO> copy = BeanUtil.copy(list, RegionVO.class);
        for (RegionVO regionVO : copy) {
            List<Map<String, Integer>> nineTypeStatistics = baseMapper.getNineTypeStatistics(regionChildCodesList, isAdministrator);
            regionVO.setNineTypeStatistics(nineTypeStatistics);
        }
        return copy;
    }
}
src/main/java/org/springblade/modules/taskPlaceRectification/vo/TaskPlaceRectificationVO.java
New file
@@ -0,0 +1,92 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.vo;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.modules.patrol.entity.PatrolRecord;
import org.springblade.modules.patrol.vo.PatrolRecordVO;
import org.springblade.modules.place.vo.PlacePoiLabelVO;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
 * 场所整改任务表 视图实体类
 *
 * @author BladeX
 * @since 2024-01-31
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskPlaceRectificationVO extends TaskPlaceRectificationEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "隐患项目", example = "")
    private List<PatrolRecordVO> patrolRecordVOList;
    @ApiModelProperty(value = "场所标签", example = "")
    private List<PlacePoiLabelVO> placePoiLabelVOList ;
    @ApiModelProperty(value = "场所名称", example = "")
    private String placeName;
    @ApiModelProperty(value = "场所地址", example = "")
    private String location;
    @ApiModelProperty(value = "负责人", example = "")
    private String principal;
    @ApiModelProperty(value = "网格名称", example = "")
    private String gridName;
    @ApiModelProperty(value = "负责人电话", example = "")
    private String principalPhone;
    @ApiModelProperty(value = "街道名称", example = "")
    private String streetName;
    @ApiModelProperty(value = "社区名称", example = "")
    private String communityName;
    @ApiModelProperty(value = "法人", example = "")
    private String legalPerson;
    @ApiModelProperty(value = "法人电话", example = "")
    private String legalTel;
    @ApiModelProperty(value = "检查人名称", example = "")
    private String name;
    @ApiModelProperty(value = "隐患数量", example = "")
    private Integer number;
    @ApiModelProperty(value = "机构名称", example = "")
    private String deptName;
    @ApiModelProperty(value = "九小场所类型 业务字典:nineType", example = "")
    private String nineType;
    @ApiModelProperty(value = "隐患问题", example = "")
    private String hiddenDanger;
    @ApiModelProperty(value = "不通过原因", example = "")
    private String reasonFailure;
}
src/main/java/org/springblade/modules/taskPlaceRectification/wrapper/TaskPlaceRectificationWrapper.java
New file
@@ -0,0 +1,50 @@
/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.taskPlaceRectification.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.taskPlaceRectification.entity.TaskPlaceRectificationEntity;
import org.springblade.modules.taskPlaceRectification.vo.TaskPlaceRectificationVO;
import java.util.Objects;
/**
 * 场所整改任务表 包装类,返回视图层所需的字段
 *
 * @author BladeX
 * @since 2024-01-31
 */
public class TaskPlaceRectificationWrapper extends BaseEntityWrapper<TaskPlaceRectificationEntity, TaskPlaceRectificationVO>  {
    public static TaskPlaceRectificationWrapper build() {
        return new TaskPlaceRectificationWrapper();
     }
    @Override
    public TaskPlaceRectificationVO entityVO(TaskPlaceRectificationEntity taskPlaceRectification) {
        TaskPlaceRectificationVO taskPlaceRectificationVO = Objects.requireNonNull(BeanUtil.copy(taskPlaceRectification, TaskPlaceRectificationVO.class));
        //User createUser = UserCache.getUser(taskPlaceRectification.getCreateUser());
        //User updateUser = UserCache.getUser(taskPlaceRectification.getUpdateUser());
        //taskPlaceRectificationVO.setCreateUserName(createUser.getName());
        //taskPlaceRectificationVO.setUpdateUserName(updateUser.getName());
        return taskPlaceRectificationVO;
    }
}