罗元桥
2021-06-24 11b327fa3151205a340d9a4337afb096b776594a
Merge branch 'test' into 'test_esay_photo'

# Conflicts:
# springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
11个文件已修改
12个文件已添加
2000 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java 153 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml 251 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
New file
@@ -0,0 +1,43 @@
package com.panzhihua.common.enums;
/** 走访任务状态
 * @author xyh
 * @date 2021/6/21 17:22
 */
public enum  EventTasksStatusEnum {
    DZF(1,"待走访"),
    JXZ(2,"进行中"),
    ZJJJ(3,"自己解决"),
    DYZ(4,"待验证"),
    CG(5,"草稿"),
    YCX(6,"已撤销"),
    YC(7,"异常"),
    ;
    private final int code;
    private final String name;
    public int getCode() {
        return code;
    }
    public String getName() {
        return name;
    }
    EventTasksStatusEnum(int code, String name){
        this.code = code;
        this.name = name;
    }
    public static String getName(int code){
        for (EventTasksStatusEnum item : EventTasksStatusEnum.values()) {
            if (item.code == (code)) {
                return item.getName();
            }
        }
        return YC.getName();
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java
New file
@@ -0,0 +1,35 @@
package com.panzhihua.common.enums;
/** 被走访人标签
 * @author xyh
 * @date 2021/6/21 17:22
 */
public enum EventTasksVisitorTypeEnum {
    DZF(1,"待走访"),
    JXZ(2,"进行中"),
    ZJJJ(3,"自己解决"),
    DYZ(4,"待验证"),
    CG(5,"草稿"),
    YCX(6,"已撤销"),
    YC(7,"异常"),
    ;
    private final int code;
    private final String name;
    EventTasksVisitorTypeEnum(int code, String name){
        this.code = code;
        this.name = name;
    }
    public static String getName(int code){
        for (EventTasksVisitorTypeEnum item : EventTasksVisitorTypeEnum.values()) {
            if (item.code == (code)) {
                return item.name();
            }
        }
        return YC.name;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.common.model.query.visit;
import com.panzhihua.common.model.dtos.PageDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
 * @author xyh
 * @date 2021/6/21 15:44
 */
@ApiModel("走访任务查询")
@Data
public class EventTasksQuery extends PageDTO implements Serializable {
    @ApiModelProperty("状态:0全部,1已完成,2未完成")
    private Integer status;
    @ApiModelProperty("人员标签")
    private Integer tag;
    @ApiModelProperty("是否异常")
    private Integer isExp;
    @ApiModelProperty("关键字")
    private String keyWord;
    @ApiModelProperty("需走访人ID")
    private Long visiterId;
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
New file
@@ -0,0 +1,40 @@
package com.panzhihua.common.model.query.visit;
import com.panzhihua.common.model.dtos.PageDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**后台查询需走访人员
 * @author xyh
 * @date 2021/6/21 15:44
 */
@ApiModel("需走访人员查询")
@Data
public class EventVisitListQuery extends PageDTO implements Serializable {
    @ApiModelProperty("最近一次走访状态")
    private Integer status;
    @ApiModelProperty("人员标签")
    private Integer tag;
    @ApiModelProperty("性别")
    private Integer sex;
    @ApiModelProperty("政治面貌")
    private Integer political;
    @ApiModelProperty("户主")
    private Integer houseHolder;
    @ApiModelProperty("关联实有房屋")
    private Integer relationHouse;
    @ApiModelProperty("关键字")
    private String keyWord;
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java
@@ -1,6 +1,8 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.panzhihua.common.validated.AddGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -17,6 +19,7 @@
public class ComMngVillageVO {
    @ApiModelProperty("小区id")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long villageId;
    @ApiModelProperty("街路巷")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
New file
@@ -0,0 +1,54 @@
package com.panzhihua.common.model.vos.visit;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.enums.EventTasksStatusEnum;
import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @author xyh
 * @date 2021/6/23 9:03
 */
@ApiModel("app走访任务VO")
@Data
public class AppVisitTasksVO implements Serializable {
    private static final long serialVersionUID = -5758072851661612412L;
    @ApiModelProperty("id")
    private Long id;
    @ApiModelProperty("网格员id")
    private Long gridMember;
    @ApiModelProperty("网格员")
    private String gridMemberName;
    @ApiModelProperty("处理人id")
    private Long dellUserId;
    @ApiModelProperty("处理人")
    private String dellUserName;
    @ApiModelProperty("需走访人电话")
    private String visiterTele;
    @ApiModelProperty("完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitDate;
    private Integer eventStatus;
    @ApiModelProperty("状态")
    private String eventStatusName;
    public String getEventStatusName() {
        return EventTasksStatusEnum.getName(eventStatus);
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java
New file
@@ -0,0 +1,67 @@
package com.panzhihua.common.model.vos.visit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
 * @author xyh
 * @date 2021/6/24 11:30
 */
@ApiModel("完成走访DTO")
@Data
public class EventVisitCompleteDTO implements Serializable {
    @NotNull(message = "id不能为空")
    @ApiModelProperty("id")
    private Long id;
    @ApiModelProperty("经纬度(,隔开)")
    @NotEmpty(message = "经纬度不能为空")
    private String latLng;
    @ApiModelProperty("地址")
    @NotEmpty(message = "地址不能为空")
    private String address;
    @ApiModelProperty("地址备注")
    private String addressRemark;
    @ApiModelProperty("异常类型")
    private Integer exception;
    @ApiModelProperty("异常描述")
    private String dellDesc;
    @ApiModelProperty("异常选择")
    private String option;
    @ApiModelProperty("家庭联系方式")
    @NotEmpty(message = "家庭联系方式不能为空")
    private String familyPhone;
    @ApiModelProperty("生活来源")
    @NotEmpty(message = "生活来源不能为空")
    private String familySource;
    private Integer eventStatus;
    @ApiModelProperty(value = "音频列表")
    List<String> vosList;
    @ApiModelProperty(value = "图片列表")
    List<String> imgList;
    @ApiModelProperty(value = "视频列表")
    List<String> videoList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java
New file
@@ -0,0 +1,24 @@
package com.panzhihua.common.model.vos.visit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/** 后台走访统计
 * @author xyh
 * @date 2021/6/21 14:34
 */
@ApiModel("走访统计VO")
@Data
public class EventVisitCountVO {
    @ApiModelProperty("待走访")
    private Long visit;
    @ApiModelProperty("已走访")
    private Long visited;
    @ApiModelProperty("已撤销")
    private Long canceled;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
New file
@@ -0,0 +1,81 @@
package com.panzhihua.common.model.vos.visit;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.enums.EventTasksStatusEnum;
import com.panzhihua.common.enums.EventTasksVisitorTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/** 后台需走访人员VO
 * @author xyh
 * @date 2021/6/21 14:34
 */
@ApiModel("需走访人员VO")
@Data
public class EventVisitListVO {
    @ApiModelProperty("id")
    private Long id;
    @ApiModelProperty("真实姓名")
    private String name;
    @ApiModelProperty("身份证号码")
    private String cardNoStr;
    @ApiModelProperty(value = "人员标签")
    private String visiterTypeName;
    private Integer visiterType;
    @ApiModelProperty(value = "年龄")
    private Integer age;
    @ApiModelProperty(value = "性别")
    private String sex;
    @ApiModelProperty(value = "性别名称")
    private String sexName;
    @ApiModelProperty(value = "现居地址")
    private String address;
    private String politicalOutlook;
    @ApiModelProperty(value = "政治面貌")
    private String politicalOutlookName;
    @ApiModelProperty("联系方式")
    private String phone;
    @ApiModelProperty("户籍地址")
    private String censusRegister;
    @ApiModelProperty("户主")
    private String houseHolder;
    @ApiModelProperty("关联实有房屋")
    private String relationHouse;
    @ApiModelProperty("最近一次走访任务时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    private Integer eventStatus;
    @ApiModelProperty("最近一次走访任务状态")
    private String eventStatusName;
    public String getEventStatusName() {
        return EventTasksStatusEnum.getName(eventStatus);
    }
    public String getVisiterTypeName(){
        return EventTasksVisitorTypeEnum.getName(visiterType);
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
New file
@@ -0,0 +1,150 @@
package com.panzhihua.common.model.vos.visit;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.vos.grid.EventResourceVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-05-26
 * */
@Data
@ApiModel("重点人群走访记录详细返回参数")
public class EventVisitingTasksDetailsVO {
    @ApiModelProperty(value = "id")
    private Long id;
    @ApiModelProperty(value = "网格员所处的街道")
    private Long gridMemberStreet;
    @ApiModelProperty(value = "网格员所处社区")
    private Long gridMemberCommunity;
    @ApiModelProperty(value = "网格员")
    private Long gridMember;
    @ApiModelProperty(value = "网格员名字")
    private String gridMemberName;
    @ApiModelProperty(value = "网格员联系方式")
    private String gridMenberTele;
    @ApiModelProperty(value = "需走访人ID")
    private Long visiterId;
    @ApiModelProperty(value = "需走访人名字")
    private String visiterName;
    @ApiModelProperty(value = "需走访人员性别")
    private Integer visiterSex;
    @ApiModelProperty(value = "需走访人电话")
    private String visiterTele;
    @ApiModelProperty(value = "需走访人居住地址")
    private String visiterAddress;
    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
    private Integer visiterType;
    @ApiModelProperty(value = "事件标题")
    private String eventTitle;
    @ApiModelProperty(value = "事件类型")
    private Integer eventType;
    @ApiModelProperty(value = "事件描述")
    private String eventDes;
    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
    private Integer actOpara;
    @ApiModelProperty(value = "发生时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date happenTime;
    @ApiModelProperty(value = "发生地点")
    private String happentAddress;
    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
    private String happentLatLng;
    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
    private Integer eventStatus;
    @ApiModelProperty(value = "上报状态")
    private Integer reporting;
    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
    private Integer dellType;
    @ApiModelProperty(value = "处理人ID")
    private Long dellUserId;
    @ApiModelProperty(value = "处理人名称")
    private String dellUserName;
    @ApiModelProperty(value = "处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dellDate;
    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
    private String dellDesc;
    @ApiModelProperty(value = "是否有效")
    private Boolean invalid;
    @ApiModelProperty(value = "是否紧急")
    private Boolean urgent;
    @ApiModelProperty(value = "是否催办")
    private Boolean urgentDell;
    @ApiModelProperty(value = "上报提交时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitDate;
    @ApiModelProperty(value = "是否异常行为")
    private Boolean exception;
    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
    private JSONObject tableContentJson;
    @ApiModelProperty(value = "创建人")
    private Long createBy;
    @ApiModelProperty(value = "创建事件")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ApiModelProperty(value = "修改人")
    private Long updateBy;
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    @ApiModelProperty(value = "异常选项")
    private List<String> optionList;
    @ApiModelProperty(value = "音频列表")
    List<String> vosList;
    @ApiModelProperty(value = "图片列表")
    List<String> imgList;
    @ApiModelProperty(value = "视频列表")
    List<String> videoList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
New file
@@ -0,0 +1,200 @@
package com.panzhihua.common.model.vos.visit;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.enums.EventTasksStatusEnum;
import com.panzhihua.common.enums.EventTasksVisitorTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-05-26
 * */
@Data
@ApiModel("重点人群走访记录返回参数")
public class EventVisitingTasksVO {
    @ApiModelProperty(value = "id")
    private Long id;
    @ExcelProperty(value = "序号",index = 0)
    private Integer rowNum;
    @ExcelProperty(value = "创建时间",index = 1)
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ExcelProperty(value = "创建人",index = 2)
    @ApiModelProperty(value = "创建人")
    private String creator;
    @ExcelProperty(value = "走访对象",index = 3)
    @ApiModelProperty(value = "需走访人名字")
    private String visiterName;
    @ExcelProperty(value = "身份证号码",index = 4)
    @ApiModelProperty(value = "身份证号码")
    private String cardNoStr;
    @ExcelProperty(value = "走访地址",index = 5)
    @ApiModelProperty(value = "走访地址")
    private String visiterAddress;
    @ExcelProperty(value = "人员标签",index = 6)
    @ApiModelProperty(value = "人员标签")
    private String visiterTypeName;
    @ExcelProperty(value = "走访人",index = 7)
    @ApiModelProperty(value = "走访人")
    private String dellUserName;
    @ExcelProperty(value = "完成走访时间",index = 8)
    @ApiModelProperty(value = "完成走访时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date submitDate;
    @ExcelProperty(value = "撤销时间",index = 9)
    @ApiModelProperty(value = "撤销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cancelTime;
    @ExcelProperty(value = "状态",index = 10)
    @ApiModelProperty(value = "状态")
    private String eventStatusName;
    @ExcelIgnore
    @ApiModelProperty(value = "需走访人ID")
    private Long visiterId;
//    @ApiModelProperty(value = "网格员所处的街道")
//    private Long gridMemberStreet;
//
//    @ApiModelProperty(value = "网格员所处社区")
//    private Long gridMemberCommunity;
//
//    @ApiModelProperty(value = "网格员")
//    private Long gridMember;
//
//    @ApiModelProperty(value = "网格员名字")
//    private String gridMemberName;
//
//    @ApiModelProperty(value = "网格员联系方式")
//    private String gridMenberTele;
//
//
//    @ApiModelProperty(value = "需走访人员性别")
//    private Integer visiterSex;
//
//    @ApiModelProperty(value = "需走访人电话")
//    private String visiterTele;
//
//
    @ExcelIgnore
    private Integer visiterType;
//
//    @ApiModelProperty(value = "事件标题")
//    private String eventTitle;
//
//    @ApiModelProperty(value = "事件类型")
//    private Integer eventType;
//
//    @ApiModelProperty(value = "事件描述")
//    private String eventDes;
//
//    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
//    private Integer actOpara;
//
//    @ApiModelProperty(value = "发生时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    private Date happenTime;
//
//    @ApiModelProperty(value = "发生地点")
//    private String happentAddress;
//
//    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
//    private String happentLatLng;
//
    @ExcelIgnore
    private Integer eventStatus;
    public String getEventStatusName() {
        if(eventStatus == null){
            return null;
        }
        return EventTasksStatusEnum.getName(eventStatus);
    }
    public String getVisiterTypeName(){
        if(visiterType == null){
            return null;
        }
        return EventTasksVisitorTypeEnum.getName(visiterType);
    }
//
//    @ApiModelProperty(value = "上报状态")
//    private Integer reporting;
//
//    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
//    private Integer dellType;
//
//    @ApiModelProperty(value = "处理人ID")
//    private Long dellUserId;
//
//
//
//    @ApiModelProperty(value = "处理时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    private Date dellDate;
//
//
//    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
//    private String dellDesc;
//
//    @ApiModelProperty(value = "是否有效")
//    private Boolean invalid;
//
//    @ApiModelProperty(value = "是否紧急")
//    private Boolean urgent;
//
//    @ApiModelProperty(value = "是否催办")
//    private Boolean urgentDell;
//
//    @ApiModelProperty(value = "上报提交时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    private Date submitDate;
//
//    @ApiModelProperty(value = "是否异常行为")
//    private Boolean exception;
//
//    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
//    private String tableContentJson;
//
//    @ApiModelProperty(value = "创建人id")
//    private Long createBy;
//
//
//    @ApiModelProperty(value = "修改人")
//    private Long updateBy;
//
//    @ApiModelProperty(value = "修改时间")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    private Date updateAt;
//
//    @ApiModelProperty(value = "标签")
//    private String label;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -2,8 +2,12 @@
import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
import com.panzhihua.common.model.dtos.grid.*;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.*;
import com.panzhihua.common.model.vos.grid.*;
import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
@@ -956,4 +960,106 @@
     */
    @GetMapping("/screen/work/event")
    R eventWork(@RequestParam("communityId")Long communityId);
    /**
     *  后台统计走访任务
     * @param communityId
     * @return
     */
    @GetMapping("/eventvisitingtasks/count")
    R countVisit(@RequestParam("communityId") Long communityId);
    /**
     * 查询走访记录
     * @param query
     * @return
     */
    @PostMapping("/eventvisitingtasks/list")
    R list(@RequestBody EventTasksQuery query);
    /**
     * 走访任务列表
     * @param query
     * @return
     */
    @PostMapping("/eventvisitingtasks/taskList")
    R taskList(@RequestBody EventTasksQuery query);
    /**
     * 导出
     * @param query
     * @return
     */
    @PostMapping("/eventvisitingtasks/exportTaskList")
    List<EventVisitingTasksVO> exportTaskList(@RequestBody EventTasksQuery query);
    /**
     * 删除走访任务
     * @param ids
     * @param communityId
     * @return
     */
    @PostMapping("/eventvisitingtasks/delete")
    R delete(@RequestParam("ids") String ids, @RequestParam("communityId") Long communityId);
    /**
     * 被走访人员列表
     * @param query
     * @return
     */
    @PostMapping("/eventvisitingtasks/visitorList")
    R visitorList(@RequestBody EventVisitListQuery query);
    /**
     * 走访详情
     * @param id
     * @return
     */
    @GetMapping("/eventvisitingtasks/detail/{id}")
    R detail(@PathVariable("id") Long id);
    /**
     * 撤销走访
     * @param id
     * @return
     */
    @PostMapping("/eventvisitingtasks/cancel/{id}")
    R cancel(@PathVariable("id") Long id);
    /**
     * 恢复走访
     * @param id
     * @return
     */
    @PostMapping("/eventvisitingtasks/reset/{id}")
    R reset(@PathVariable("id") Long id);
    /**
     * 新增走访
     * @param ids
     * @param communityId
     * @param userId
     * @return
     */
    @PostMapping("/eventvisitingtasks/add")
    R addVisitingTask(@RequestParam("ids") String ids,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
    /**
     * 开始走访
     * @param id
     * @return
     */
    @PostMapping("/eventvisitingtasks/start")
    R start(@RequestParam("id")Long id,@RequestParam("userId")Long userId);
    /**
     * 完成走访记录
     * @param taskCompleteDTO
     * @return
     */
    @PostMapping("/eventvisitingtasks/complete")
    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO);
}
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
New file
@@ -0,0 +1,64 @@
package com.panzhihua.grid_app.api;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
import com.panzhihua.common.service.grid.GridService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/** 走访任务
 * @author xyh
 * @date 2021/6/23 9:01
 */
@Slf4j
@RestController
@RequestMapping("/visit/")
@Api(tags = {"走访任务"})
public class VisitingTasksApi extends BaseController {
    @Resource
    private GridService gridService;
    @ApiOperation(value = "走访记录-xyh", response = AppVisitTasksVO.class)
    @PostMapping("/list")
    public R list(@RequestBody EventTasksQuery query){
        query.setCommunityId(this.getCommunityId());
        return gridService.list(query);
    }
    @ApiOperation(value = "走访任务-xyh", response = AppVisitTasksVO.class)
    @PostMapping("/taskList")
    public R taskList(@RequestBody EventTasksQuery query){
        query.setCommunityId(this.getCommunityId());
        return gridService.taskList(query);
    }
    @ApiOperation(value = "走访详情-xyh", response = EventVisitingTasksDetailsVO.class)
    @GetMapping("/detail/{id}")
    public R detail(@PathVariable Long id){
        return gridService.detail(id);
    }
    @ApiOperation(value = "开始走访-xyh")
    @PostMapping("/start")
    public R start(@RequestParam("id") Long id){
        return gridService.start(id,this.getUserId());
    }
    @ApiOperation(value = "完成走访记录-xyh")
    @PostMapping("/complete")
    public R complete(@RequestBody @Validated EventVisitCompleteDTO taskCompleteDTO){
        return gridService.complete(taskCompleteDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
New file
@@ -0,0 +1,176 @@
package com.panzhihua.grid_backstage.api;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.EasyExcel;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.IPageVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitCountVO;
import com.panzhihua.common.model.vos.visit.EventVisitListVO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
import com.panzhihua.common.service.grid.GridService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
/** 走访任务
 * @author xyh
 * @date 2021/6/21 14:20
 */
@Slf4j
@RestController
@RequestMapping("/event/visit")
@Api(tags = {"走访任务 @xyh"})
public class EventVisitingTasksApi extends BaseController {
    @Resource
    private GridService gridService;
    /**
     * 走访任务统计
     * @return
     */
    @GetMapping("/count")
    @ApiOperation(value = "走访任务统计", response= EventVisitCountVO.class)
    public R count(){
        return gridService.countVisit(this.getCommunityId());
    }
    /**
     * 走访任务列表
     * @return
     */
    @PostMapping("/taskList")
    @ApiOperation(value = "走访任务列表", response= EventVisitingTasksVO.class)
    public R taskList(@RequestBody EventTasksQuery query){
        query.setCommunityId(this.getCommunityId());
        return gridService.taskList(query);
    }
    /**
     * 走访任务记录
     * @return
     */
    @PostMapping("/list")
    @ApiOperation(value = "走访任务记录", response= AppVisitTasksVO.class)
    public R list(@RequestBody EventTasksQuery query){
        query.setCommunityId(this.getCommunityId());
        return gridService.list(query);
    }
    /**
     * 走访任务删除
     * @return
     */
    @PostMapping("/delete")
    @ApiOperation(value = "删除走访任务")
    public R delete(@RequestParam("ids") String ids){
        return gridService.delete(ids,this.getCommunityId());
    }
    /**
     * 走访任务导出
     * @return
     */
    @GetMapping("/export")
    @ApiOperation(value = "导出走访任务")
    public void export(HttpServletResponse response,EventTasksQuery query){
        query.setCommunityId(this.getCommunityId());
        query.setPageNum(1L);
        query.setPageSize(2000L);
        ServletOutputStream os = null;
        try {
            os = response.getOutputStream();
            List<EventVisitingTasksVO> list = gridService.exportTaskList(query);
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("utf-8");
            String fileName = "走访任务-"+ DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss");
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20") + ".xlsx");
            // 如果不用模板的方式导出的话,是doWrite
            EasyExcel.write(response.getOutputStream(), EventVisitingTasksVO.class).sheet(fileName).doWrite(list);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * 待走访人员列表
     * @return
     */
    @PostMapping("/visitorList")
    @ApiOperation(value = "待走访人员列表", response= EventVisitListVO.class)
    public R visitorList(@RequestBody EventVisitListQuery query){
        query.setCommunityId(this.getCommunityId());
        return gridService.visitorList(query);
    }
    /**
     * 待走访人员详情
     * @return
     */
    @GetMapping("/detail/{id}")
    @ApiOperation(value = "待走访人员详情")
    public R detail(@PathVariable("id") Long id){
        return gridService.detail(id);
    }
    /**
     * 新增走访任务
     * @return
     */
    @PostMapping("/add")
    @ApiOperation(value = "新增走访任务")
    public R add(@RequestParam("ids") String ids){
        return gridService.addVisitingTask(ids,this.getCommunityId(),this.getUserId());
    }
    /**
     * 撤销走访任务
     * @param id
     * @return
     */
    @PostMapping("/cancel")
    @ApiOperation(value = "撤销走访任务")
    public R cancel(@RequestParam("id") Long id){
        return gridService.cancel(id);
    }
    /**
     * 恢复走访任务
     * @param id
     * @return
     */
    @PostMapping("/reset")
    @ApiOperation(value = "新增走访任务")
    public R reset(@RequestParam("id") Long id){
        return gridService.reset(id);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java
@@ -4,12 +4,15 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.PageComActDTO;
import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ComActVillageDAO;
import com.panzhihua.service_community.dao.ComStreetDAO;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ComMngVillageDO;
import com.panzhihua.service_community.model.dos.ComStreetDO;
import com.panzhihua.service_community.service.ComActService;
import org.springframework.beans.BeanUtils;
@@ -54,7 +57,6 @@
        if (integer > 0) {
            return R.fail("社区已经存在");
        }
        comActDO.setCommunityId(Snowflake.getId());
        BeanUtils.copyProperties(comActVO, comActDO);
        int insert = comActDAO.insert(comActDO);
        if (insert > 0) {
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
@@ -2,18 +2,20 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksDetailsVO;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
import com.panzhihua.service_grid.service.EventVisitingTasksService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 *
@@ -31,14 +33,14 @@
    private EventVisitingTasksService eventVisitingTasksService;
    /**
     * 新增重点人群走访记录
     * @param eventVisitingTasksAddDTO
     * @return 新增结果
     * 统计走访任务
     * @param communityId
     * @return
     */
    @PostMapping("/add")
    R add(@RequestBody EventVisitingTasksAddDTO eventVisitingTasksAddDTO){
        return eventVisitingTasksService.add(eventVisitingTasksAddDTO);
    };
    @GetMapping("/count")
    R count(@RequestParam("communityId") Long communityId){
        return eventVisitingTasksService.count(communityId);
    }
    /**
     * 修改重点人群走访记录
@@ -48,7 +50,7 @@
    @PostMapping("/edit")
    R edit(@RequestBody EventVisitingTasksEditDTO eventVisitingTasksEditDTO){
        return eventVisitingTasksService.edit(eventVisitingTasksEditDTO);
    };
    }
    /**
     * 分页查找重点人群走访记录
@@ -58,17 +60,8 @@
    @PostMapping("/page")
    R<IPage<EventVisitingTasksVO>> query(@RequestBody PageEventVisitingTasksDTO pageEventVisitingTasksDTO){
        return eventVisitingTasksService.query(pageEventVisitingTasksDTO);
    };
    }
    /**
     * 删除重点人群走访记录
     * @param EventVisitingTasksDeleteDTO
     * @return 平台用户信息
     */
    @PostMapping("/delete")
    R delete(@RequestBody EventVisitingTasksDeleteDTO EventVisitingTasksDeleteDTO){
        return eventVisitingTasksService.delete(EventVisitingTasksDeleteDTO);
    };
    /**
     * 查询重点人群走访记录详细信息
@@ -78,6 +71,120 @@
    @PostMapping("/{id}")
    R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(@PathVariable("id") Long id){
        return eventVisitingTasksService.eventVisitingTasksDetails(id);
    };
    }
    /**
     * 删除走访任务
     * @param ids
     * @param communityId
     * @return
     */
    @PostMapping("/delete")
    R delete(@RequestParam("ids") String ids, @RequestParam("communityId") Long communityId){
        return eventVisitingTasksService.delete(ids,communityId);
    }
    /**
     * 需走访人员列表
     * @param query
     * @return
     */
    @PostMapping("/visitorList")
    R visitorList(@RequestBody EventVisitListQuery query){
        return eventVisitingTasksService.visitorList(query);
    }
    /**
     * 新增走访任务
     * @param ids
     * @param communityId
     * @param userId
     * @return
     */
    @PostMapping("/add")
    R add(@RequestParam("ids") String ids,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId){
        return eventVisitingTasksService.add(ids,communityId,userId);
    }
    /**
     * 走访记录
     * @param query
     * @return
     */
    @PostMapping("/list")
    R list(@RequestBody EventTasksQuery query){
        return eventVisitingTasksService.list(query);
    }
    /**
     * 走访任务列表
     * @param query
     * @return
     */
    @PostMapping("/taskList")
    R taskList(@RequestBody EventTasksQuery query){
        return eventVisitingTasksService.taskList(query);
    }
    /**
     * 导出
     * @param query
     * @return
     */
    @PostMapping("/exportTaskList")
    List<EventVisitingTasksVO> exportTaskList(@RequestBody EventTasksQuery query){
        return eventVisitingTasksService.exportTaskList(query);
    }
    /**
     * app走访详情
     * @param id
     * @return
     */
    @GetMapping("/detail/{id}")
    R detail(@PathVariable("id") Long id) throws Exception {
        return eventVisitingTasksService.detail(id);
    }
    /**
     * 撤销走访
     * @param id
     * @return
     */
    @PostMapping("/cancel/{id}")
    R cancel(@PathVariable("id") Long id){
        return eventVisitingTasksService.cancel(id);
    }
    /**
     * 恢复
     * @param id
     * @return
     */
    @PostMapping("/reset/{id}")
    R reset(@PathVariable("id") Long id){
        return eventVisitingTasksService.reset(id);
    }
    /**
     * 开始走访
     * @param id
     * @return
     */
    @PostMapping("/start")
    R start(@RequestParam("id")Long id,@RequestParam("userId")Long userId){
        return eventVisitingTasksService.start(id,userId);
    }
    /**
     * 完成走访记录
     * @param taskCompleteDTO
     * @return
     */
    @PostMapping("/complete")
    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO){
        return eventVisitingTasksService.complete(taskCompleteDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
@@ -11,6 +11,8 @@
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * DAO
 *
@@ -29,4 +31,5 @@
         */
        IPage<EventResourceVO> findByPage(Page page, @Param("pageEventResourceDTO")PageEventResourceDTO pageEventResourceDTO);
        List<String> findListByRefId(@Param("id")Long id,@Param("classification")Integer classification,@Param("type")Integer type);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
@@ -5,11 +5,17 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
import com.panzhihua.common.model.vos.visit.EventVisitListVO;
import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
 * DAO
@@ -22,11 +28,72 @@
@Mapper
public interface EventVisitingTasksMapper extends BaseMapper<EventVisitingTasksDO> {
        /**
         * 分页查询
         * @param pageEventVisitingTasksDTO
         * @return
         */
        IPage<EventVisitingTasksVO> findByPage(Page page, @Param("pageEventVisitingTasksDTO")PageEventVisitingTasksDTO pageEventVisitingTasksDTO);
           /**
     * 统计待走访、已完成、已撤销的任务
     * @param communityId
     * @return
     */
    Map<String, Long> count(@Param("communityId")Long communityId);
    /**
     * 后台查询走访记录
     * @param page
     * @param query
     * @return
     */
    IPage<EventVisitingTasksVO> findListByPage(Page page, @Param("query")EventTasksQuery query);
    /**
     * 查询走访记录,任务
     * @param page
     * @param query
     * @return
     */
    IPage<AppVisitTasksVO> list(Page page, @Param("query") EventTasksQuery query);
    /**
     * 需走访人员列表
     * @param page
     * @param query
     * @return
     */
    IPage<EventVisitListVO> visitorList(Page page, @Param("query") EventVisitListQuery query);
    /**
     * 后台根据社区id查询网格员
     * @param communityId
     * @return
     */
    Map<String, Object> findUserByCommunityId(@Param("communityId")Long communityId, @Param("type")int type);
    /**
     * 根据id查询实有人口
     * @param id
     * @return
     */
    Map<String, Object> findPopulationById(Long id);
    /**
     * 统计未完成的走访任务
     * @param id
     * @return
     */
    Integer countNoneComplete(Long id);
    Integer updateEventStatus(@Param("id")Long id,@Param("status") Integer status);
    /**
     * 完成走访
     * @param taskCompleteDTO
     * @return
     */
    Integer complete(EventVisitCompleteDTO taskCompleteDTO);
    Integer start(EventVisitingTasksDO start);
    Integer cancel(@Param("id")Long id,@Param("status") Integer status);
    Map<String, Object> findUserById(Long userId);
    String getLabel(Long id);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
@@ -148,7 +148,7 @@
    /**
     * 是否异常行为   列: exception
     */
    private Boolean exception;
    private Integer exception;
    /**
     * 走访内容根据重点人员类型输入项不同,录入全部的表单内容数据   列: table_content_json
     */
@@ -171,4 +171,35 @@
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 地址备注
     */
    private String addressRemark;
    /**
     * 家庭联系电话
     */
    private String familyPhone;
    /**
     * 家庭来源
     */
    private String familySource;
    /**
     * 访问后的填写的地址
     */
    private String address;
    /**
     * 访问后的经纬度
     */
    private String latLng;
    /**
     * 本地或外地:1本地2外地
     */
    private Integer outOrLocal;
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
@@ -6,10 +6,21 @@
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.IPageVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksDetailsVO;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksVO;
import com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
/**
 * 重点人群走访记录 service
@@ -57,4 +68,85 @@
    R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(Long id);
    /**
     * 后台统计走访任务
     * @param communityId
     * @return
     */
    R count(Long communityId);
    /**
     * 走访任务列表
     * @param query
     * @return
     */
    R taskList(EventTasksQuery query);
    /**
     * 删除走访任务
     * @param ids
     * @param communityId
     * @return
     */
    R delete(String ids, Long communityId);
    /**
     * 需走访人员列表
     * @param query
     * @return
     */
    R visitorList(EventVisitListQuery query);
    /**
     * app查询走访记录
     * @param query
     * @return
     */
    R list(EventTasksQuery query);
    /**
     * app 走访详情
     * @param id
     * @return
     */
    R detail(Long id) throws Exception;
    /**
     * 新增
     * @param ids
     * @param communityId
     * @param userId
     * @return
     */
    R add(String ids, Long communityId, Long userId);
    List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query);
    /**
     * 撤销
     * @param id
     * @return
     */
    R cancel(Long id);
    /**
     * 恢复
     * @param id
     * @return
     */
    R reset(Long id);
    /**
     * 开始
     * @param id
     * @return
     */
    R start(Long id,Long userId);
    /**
     * 完成
     * @param taskCompleteDTO
     * @return
     */
    R complete(EventVisitCompleteDTO taskCompleteDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -1,24 +1,33 @@
package com.panzhihua.service_grid.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.enums.EventTasksStatusEnum;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksAddDTO;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksDeleteDTO;
import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
import com.panzhihua.common.model.helper.AESUtil;
import com.panzhihua.common.model.query.visit.EventTasksQuery;
import com.panzhihua.common.model.query.visit.EventVisitListQuery;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksDetailsVO;
import com.panzhihua.common.model.vos.grid.EventVisitingTasksVO;
import com.panzhihua.common.model.vos.visit.*;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_grid.dao.*;
import com.panzhihua.service_grid.model.dos.*;
import com.panzhihua.service_grid.service.EventVisitingTasksService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.*;
/**
 * @auther lyq
@@ -31,6 +40,12 @@
    @Resource
    private EventVisitingTasksMapper eventVisitingTasksMapper;
    @Resource
    private EventResourceMapper eventResourceMapper;
    @Value("${domain.aesKey:}")
    private String aesKey;
    /**
     * 新增重点人群走访记录
     * @param eventVisitingTasksAddDTO
@@ -74,7 +89,7 @@
        if(pageEventVisitingTasksDTO.getPageSize()!=null) {
            page.setSize(pageEventVisitingTasksDTO.getPageSize());
        }
        return R.ok(eventVisitingTasksMapper.findByPage(page, pageEventVisitingTasksDTO));
        return R.ok();
    }
    /**
@@ -96,9 +111,280 @@
        if(eventVisitingTasksDO!=null) {
            EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
            BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
            eventVisitingTasksDetailsVO.setImgList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,1));
            eventVisitingTasksDetailsVO.setVosList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,2));
            eventVisitingTasksDetailsVO.setVideoList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(),2,3));
            return R.ok(eventVisitingTasksDetailsVO);
        }
        return R.fail();
    }
    @Override
    public R count(Long communityId) {
        Map<String,Long> countMap = eventVisitingTasksMapper.count(communityId);
        EventVisitCountVO eventVisitCountVO = new EventVisitCountVO();
        eventVisitCountVO.setVisit(countMap.get("visit"));
        eventVisitCountVO.setVisited(countMap.get("visited"));
        eventVisitCountVO.setCanceled(countMap.get("canceled"));
        return R.ok(eventVisitCountVO);
    }
    @Override
    public R taskList(EventTasksQuery query) {
        IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
        return R.ok(page);
    }
    @Transactional
    @Override
    public R delete(String ids, Long communityId) {
        String[] idarr = ids.split(",");
        for(String id:idarr){
            if(StringUtils.isEmpty(id)){
                continue;
            }
            EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectOne(new QueryWrapper<EventVisitingTasksDO>().eq("id",Long.valueOf(id)).eq("grid_member_community",communityId));
            if(eventVisitingTasksDO == null){
                throw new RuntimeException("无权限");
            }
            eventVisitingTasksMapper.deleteById(Long.valueOf(id));
        }
        return R.ok();
    }
    @Override
    public R visitorList(EventVisitListQuery query) {
        IPage<EventVisitListVO> page = eventVisitingTasksMapper.visitorList(new Page(query.getPageNum(),query.getPageSize()),query);
        return R.ok(page);
    }
    @Override
    public R list(EventTasksQuery query) {
        IPage<AppVisitTasksVO> page = eventVisitingTasksMapper.list(new Page(query.getPageNum(),query.getPageSize()),query);
        return R.ok(page);
    }
    @Override
    public R detail(Long id) throws Exception {
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
        if(eventVisitingTasksDO!=null) {
            EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
            BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
            eventVisitingTasksDetailsVO.setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
            eventVisitingTasksDetailsVO.setTableContentJson(JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson()));
            return R.ok(eventVisitingTasksDetailsVO);
        }
        return R.fail();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R add(String ids, Long communityId, Long userId) {
        Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
        if(CollectionUtils.isEmpty(map)){
            return R.fail("网格员不存在");
        }
        String[] id = ids.split(",");
        for(String idstr:id){
            if(StringUtils.isEmpty(idstr)){
                continue;
            }
            addVisitingTask(Long.valueOf(idstr),map,communityId,userId);
        }
        return R.ok();
    }
    @Override
    public List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) {
        IPage<EventVisitingTasksVO> page = eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(),query.getPageSize()),query);
        return page.getRecords();
    }
    private void addVisitingTask(Long id, Map<String, Object> gridMap,Long communityId,Long userId) {
        Integer count = eventVisitingTasksMapper.countNoneComplete(id);
        if(count > 0){
            return;
        }
        Map<String,Object> map = eventVisitingTasksMapper.findPopulationById(id);
        if(CollectionUtils.isEmpty(map)){
            return ;
        }
        EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
//        visitingTasksDO.setGridMemberStreet(Long.valueOf(gridMap.get("street_id").toString()));
//        visitingTasksDO.setGridMemberCommunity(communityId);
//        visitingTasksDO.setGridMember(Long.valueOf(gridMap.get("user_id").toString()));
//        visitingTasksDO.setGridMemberName(gridMap.get("name").toString());
//        visitingTasksDO.setGridMenberTele(gridMap.get("phone") ==null?"":gridMap.get("phone").toString());
        visitingTasksDO.setVisiterId(Long.valueOf(map.get("id").toString()));
        visitingTasksDO.setVisiterName(map.get("name").toString());
        visitingTasksDO.setVisiterSex(Integer.valueOf(map.get("sex").toString()));
        visitingTasksDO.setVisiterTele(map.get("phone") == null?"":map.get("phone").toString());
        StringBuilder sb = new StringBuilder();
        sb.append(map.get("address")).append(map.get("road")).append(map.get("door_no")).append(map.get("floor")).append("栋").append(map.get("unit_no")).append("单元").append(map.get("house_no")).append("号");
        visitingTasksDO.setVisiterAddress(sb.toString());
        visitingTasksDO.setVisiterType(0);
        visitingTasksDO.setActOpara(0);
        if(map.get("lat") != null && map.get("lng") != null){
            visitingTasksDO.setHappentLatLng(map.get("lat")+"-"+map.get("lng"));
        }
        visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
        visitingTasksDO.setReporting(0);
        visitingTasksDO.setInvalid(false);
        visitingTasksDO.setUrgent(false);
        visitingTasksDO.setUrgentDell(false);
        visitingTasksDO.setCreateBy(userId);
        visitingTasksDO.setOutOrLocal(map.get("out_or_local") == null?null:Integer.valueOf(map.get("out_or_local").toString()));
        if(map.get("label") != null){
            List<String> option = getOption(map.get("label").toString());
            if(!CollectionUtils.isEmpty(option)){
                JSONObject json = new JSONObject();
                json.put("option",option);
                visitingTasksDO.setTableContentJson(json.toJSONString());
            }
        }
        eventVisitingTasksMapper.insert(visitingTasksDO);
    }
    private List<String> getOption(String label) {
        List<String> option = new ArrayList<>();
        if(!Objects.isNull(label)) {
            if (label.contains("精神障碍")) {
                option.add("精神障碍异常1");
                option.add("精神障碍异常2");
                option.add("精神障碍异常3");
                option.add("精神障碍异常4");
            } else if (label.contains("吸毒")) {
                option.add("疑似复吸");
                option.add("失联");
                option.add("复吸");
                option.add("空挂户");
            } else if (label.contains("刑满释放")) {
                option.add("刑满释放异常1");
                option.add("刑满释放异常2");
                option.add("刑满释放异常3");
                option.add("刑满释放异常4");
            } else if (label.contains("社区矫正")) {
                option.add("社区矫正异常1");
                option.add("社区矫正异常2");
                option.add("社区矫正异常3");
                option.add("社区矫正异常4");
            }
        }
        return option;
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R cancel(Long id) {
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
            return R.fail("当前状态不可撤销");
        }
        int rt = eventVisitingTasksMapper.cancel(id,EventTasksStatusEnum.YCX.getCode());
        if(rt > 0){
            return R.ok();
        }
        return R.fail();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R reset(Long id) {
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.YCX.getCode()){
            return R.fail("当前状态不可恢复");
        }
        int rt = eventVisitingTasksMapper.updateEventStatus(id,EventTasksStatusEnum.DZF.getCode());
        if(rt > 0){
            return R.ok();
        }
        return R.fail();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public synchronized R start(Long id,Long userId) {
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
            return R.fail("当前状态不可开始走访");
        }
        Map<String,Object> map = eventVisitingTasksMapper.findUserById(userId);
        EventVisitingTasksDO start = new EventVisitingTasksDO();
        start.setId(id);
        start.setGridMemberStreet(Long.valueOf(map.get("street_id").toString()));
        start.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString()));
        start.setGridMember(Long.valueOf(map.get("user_id").toString()));
        start.setGridMemberName(map.get("name").toString());
        start.setGridMenberTele(map.get("phone") ==null?"":map.get("phone").toString());
        start.setEventStatus(EventTasksStatusEnum.JXZ.getCode());
        int rt = eventVisitingTasksMapper.start(start);
        if(rt > 0){
            return R.ok();
        }
        return R.fail();
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R complete(EventVisitCompleteDTO taskCompleteDTO) {
        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(taskCompleteDTO.getId());
        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.JXZ.getCode()){
            return R.fail("当前状态不可完成走访");
        }
        if(taskCompleteDTO.getException().intValue() == 0){
            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.ZJJJ.getCode());
        }else{
            taskCompleteDTO.setEventStatus(EventTasksStatusEnum.YC.getCode());
        }
        JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
        json.put("check",taskCompleteDTO.getOption());
        taskCompleteDTO.setOption(json.toJSONString());
        if(!CollectionUtils.isEmpty(taskCompleteDTO.getImgList())){
            taskCompleteDTO.getImgList().forEach(e->{
                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,1,e);
            });
        }
        if(!CollectionUtils.isEmpty(taskCompleteDTO.getVosList())){
            taskCompleteDTO.getVosList().forEach(e->{
                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,2,e);
            });
        }
        if(!CollectionUtils.isEmpty(taskCompleteDTO.getVideoList())){
            taskCompleteDTO.getVosList().forEach(e->{
                createResource(eventVisitingTasksDO.getId(),eventVisitingTasksDO.getDellUserId(),2,3,e);
            });
        }
        int rt = eventVisitingTasksMapper.complete(taskCompleteDTO);
        if(rt > 0){
            return R.ok();
        }
        return R.fail();
    }
    private void createResource(Long id, Long dellUserId, int classification, int type,String url) {
        EventResourceDO eventResourceDO = new EventResourceDO();
        eventResourceDO.setRefId(id);
        eventResourceDO.setClassification(classification);
        eventResourceDO.setType(type);
        eventResourceDO.setCreateBy(dellUserId);
        eventResourceDO.setUrl(url);
        eventResourceMapper.insert(eventResourceDO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
@@ -65,4 +65,8 @@
        </if>
    </select>
    <select id="findListByRefId" resultType="com.panzhihua.common.model.vos.grid.EventResourceVO">
        SELECT url FROM event_resource
        where ref_id = #{id} and classification = #{classification} and type = #{type} order by id desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
@@ -49,139 +49,126 @@
    ]]>
    </sql>
    <select id="count" parameterType="java.lang.Long" resultType="java.util.Map">
    select count(id) as visit,
        (select count(id) from event_visiting_tasks where grid_member_community = #{communityId} and event_status = 3) as visited,
        (select count(id) from event_visiting_tasks where grid_member_community = #{communityId} and event_status = 6) as canceled
        from event_visiting_tasks WHERE grid_member_community = #{communityId} and event_status = 1
    </select>
    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventVisitingTasksVO"
        parameterType="com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO">
        SELECT <include refid="columns" />
        FROM event_visiting_tasks
        <where>
           <if test="pageEventVisitingTasksDTO.id!=null">
                AND id = #{pageEventVisitingTasksDTO.id}
            </if>
           <if test="pageEventVisitingTasksDTO.gridMemberStreet!=null">
                AND grid_member_street = #{pageEventVisitingTasksDTO.gridMemberStreet}
            </if>
           <if test="pageEventVisitingTasksDTO.gridMemberCommunity!=null">
                AND grid_member_community = #{pageEventVisitingTasksDTO.gridMemberCommunity}
            </if>
           <if test="pageEventVisitingTasksDTO.gridMember!=null">
                AND grid_member = #{pageEventVisitingTasksDTO.gridMember}
            </if>
           <if test="pageEventVisitingTasksDTO.gridMemberName!=null">
                AND grid_member_name = #{pageEventVisitingTasksDTO.gridMemberName}
            </if>
           <if test="pageEventVisitingTasksDTO.gridMenberTele!=null">
                AND grid_menber_tele = #{pageEventVisitingTasksDTO.gridMenberTele}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterId!=null">
                AND visiter_id = #{pageEventVisitingTasksDTO.visiterId}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterName!=null">
                AND visiter_name = #{pageEventVisitingTasksDTO.visiterName}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterSex!=null">
                AND visiter_sex = #{pageEventVisitingTasksDTO.visiterSex}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterTele!=null">
                AND visiter_tele = #{pageEventVisitingTasksDTO.visiterTele}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterAddress!=null">
                AND visiter_address = #{pageEventVisitingTasksDTO.visiterAddress}
            </if>
           <if test="pageEventVisitingTasksDTO.visiterType!=null">
                AND visiter_type = #{pageEventVisitingTasksDTO.visiterType}
            </if>
           <if test="pageEventVisitingTasksDTO.eventTitle!=null">
                AND event_title = #{pageEventVisitingTasksDTO.eventTitle}
            </if>
           <if test="pageEventVisitingTasksDTO.eventType!=null">
                AND event_type = #{pageEventVisitingTasksDTO.eventType}
            </if>
           <if test="pageEventVisitingTasksDTO.eventDes!=null">
                AND event_des = #{pageEventVisitingTasksDTO.eventDes}
            </if>
           <if test="pageEventVisitingTasksDTO.actOpara!=null">
                AND act_opara = #{pageEventVisitingTasksDTO.actOpara}
            </if>
           <if test="pageEventVisitingTasksDTO.happenTimeBegin!=null">
                AND happen_time &gt;= #{pageEventVisitingTasksDTO.happenTimeBegin}
           </if>
           <if test="pageEventVisitingTasksDTO.happenTimeEnd!=null">
                AND happen_time &lt;= #{pageEventVisitingTasksDTO.happenTimeEnd}
           </if>
           <if test="pageEventVisitingTasksDTO.happentAddress!=null">
                AND happent_address = #{pageEventVisitingTasksDTO.happentAddress}
            </if>
           <if test="pageEventVisitingTasksDTO.happentLatLng!=null">
                AND happent_lat_lng = #{pageEventVisitingTasksDTO.happentLatLng}
            </if>
           <if test="pageEventVisitingTasksDTO.eventStatus!=null">
                AND event_status = #{pageEventVisitingTasksDTO.eventStatus}
            </if>
           <if test="pageEventVisitingTasksDTO.reporting!=null">
                AND reporting = #{pageEventVisitingTasksDTO.reporting}
            </if>
           <if test="pageEventVisitingTasksDTO.dellType!=null">
                AND dell_type = #{pageEventVisitingTasksDTO.dellType}
            </if>
           <if test="pageEventVisitingTasksDTO.dellUserId!=null">
                AND dell_user_id = #{pageEventVisitingTasksDTO.dellUserId}
            </if>
           <if test="pageEventVisitingTasksDTO.dellUserName!=null">
                AND dell_user_name = #{pageEventVisitingTasksDTO.dellUserName}
            </if>
           <if test="pageEventVisitingTasksDTO.dellDateBegin!=null">
                AND dell_date &gt;= #{pageEventVisitingTasksDTO.dellDateBegin}
           </if>
           <if test="pageEventVisitingTasksDTO.dellDateEnd!=null">
                AND dell_date &lt;= #{pageEventVisitingTasksDTO.dellDateEnd}
           </if>
           <if test="pageEventVisitingTasksDTO.dellDesc!=null">
                AND dell_desc = #{pageEventVisitingTasksDTO.dellDesc}
            </if>
           <if test="pageEventVisitingTasksDTO.invalid!=null">
                AND invalid = #{pageEventVisitingTasksDTO.invalid}
            </if>
           <if test="pageEventVisitingTasksDTO.urgent!=null">
                AND urgent = #{pageEventVisitingTasksDTO.urgent}
            </if>
           <if test="pageEventVisitingTasksDTO.urgentDell!=null">
                AND urgent_dell = #{pageEventVisitingTasksDTO.urgentDell}
            </if>
           <if test="pageEventVisitingTasksDTO.submitDateBegin!=null">
                AND submit_date &gt;= #{pageEventVisitingTasksDTO.submitDateBegin}
           </if>
           <if test="pageEventVisitingTasksDTO.submitDateEnd!=null">
                AND submit_date &lt;= #{pageEventVisitingTasksDTO.submitDateEnd}
           </if>
           <if test="pageEventVisitingTasksDTO.exception!=null">
                AND exception = #{pageEventVisitingTasksDTO.exception}
            </if>
           <if test="pageEventVisitingTasksDTO.tableContentJson!=null">
                AND table_content_json = #{pageEventVisitingTasksDTO.tableContentJson}
            </if>
           <if test="pageEventVisitingTasksDTO.createBy!=null">
                AND create_by = #{pageEventVisitingTasksDTO.createBy}
            </if>
           <if test="pageEventVisitingTasksDTO.createAtBegin!=null">
                AND create_at &gt;= #{pageEventVisitingTasksDTO.createAtBegin}
           </if>
           <if test="pageEventVisitingTasksDTO.createAtEnd!=null">
                AND create_at &lt;= #{pageEventVisitingTasksDTO.createAtEnd}
           </if>
           <if test="pageEventVisitingTasksDTO.updateBy!=null">
                AND update_by = #{pageEventVisitingTasksDTO.updateBy}
            </if>
           <if test="pageEventVisitingTasksDTO.updateAtBegin!=null">
                AND update_at &gt;= #{pageEventVisitingTasksDTO.updateAtBegin}
           </if>
           <if test="pageEventVisitingTasksDTO.updateAtEnd!=null">
                AND update_at &lt;= #{pageEventVisitingTasksDTO.updateAtEnd}
           </if>
        </where>
        <if test="pageEventVisitingTasksDTO.sortColumns!=null">
            ORDER BY ${pageEventVisitingTasksDTO.sortColumns} ${pageEventVisitingTasksDTO.sortType}
    <select id="findListByPage" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitingTasksVO">
        select vt.id,vt.create_at,vt.create_by,vt.visiter_id,vt.visiter_name,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.event_status,
        vt.event_status,p.card_no_str,p.label,u.name as creator
        from event_visiting_tasks vt left join com_mng_population p on vt.visiter_id = p.id
        left join sys_user u on vt.create_by = u.user_id
        where vt.grid_member_community = #{query.communityId}
        <if test="query.status != null and query.status != ''">
            and vt.event_status = #{query.status}
        </if>
    </select>
        <if test="query.tag != null and query.tag != ''">
            p.label like concat('%',#{query.tag},'%')
        </if>
        <if test="query.isExp != null and query.isExp != ''">
            and vt.event_status = 7
        </if>
        <if test="query.keyWord != null and query.keyWord != ''">
            and(
            p.card_no_str like concat('%',#{query.keyWord},'%') or
            vt.visiter_address like concat('%',#{query.keyWord},'%')
            )
        </if>
        order by vt.id desc
    </select>
    <select id="list" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.AppVisitTasksVO">
        SELECT vt.id,vt.visiter_name,vt.grid_member,vt.grid_member_name,vt.visiter_name,vt.visiter_tele,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.event_status,vt.visiter_address,vt.happent_lat_lng,
        p.card_no_str,p.name,REPLACE(p.label,',','#')
        FROM event_visiting_tasks vt LEFT JOIN com_mng_population p ON vt.visiter_id = p.id WHERE 1=1
        <if test = "query.visiterId !=null">
            and vt.visiter_id = #{query.visiterId}
        </if>
        <if test = "query.communityId !=null">
            and vt.grid_member_community = #{query.communityId}
        </if>
        <if test = "query.status != null and query.status == 1">
            and (vt.event_status = 3 or vt.event_status = 7)
        </if>
        <if test = "query.status != null and query.status == 2">
            and (vt.event_status = 1 or vt.event_status = 2)
        </if>
    </select>
    <select id="visitorList" parameterType="com.panzhihua.common.model.query.visit.EventVisitListQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitListVO">
        SELECT p.id,p.name,p.card_no_str,p.label, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.sex,p.political_outlook,p.phone,p.census_register,phu.relation,
        MAX(vt.id),vt.create_at
        FROM  com_mng_population p LEFT JOIN com_mng_population_house_user phu ON p.id = phu.popul_id
        left join event_visiting_tasks vt ON p.id = vt.visiter_id
        where 1=1
        <if test="sex != null">
            and p.sex = #{query.sex}
        </if>
        <if test="political != null">
            and p.political_outlook = #{query.political}
        </if>
        <if test="houseHolder != null">
            and phu.relation = #{query.houseHolder}
        </if>
        <if test="tag != null">
            and p.label like concat('%',#{query.tag},'%')
        </if>
        <if test="keyWord != null">
            and (p.card_no_str like concat(#{query.keyWord},'%') or
            p.name like concat(#{query.keyWord},'%'))
        </if>
        GROUP BY p.id
    </select>
    <select id="findUserByCommunityId" resultType="java.util.Map">
        SELECT u.user_id,u.name,u.phone,a.street_id FROM sys_user u
        LEFT JOIN com_act a ON u.community_id = a.community_id
        WHERE u.community_id = #{communityId} and u.type = #{type} limit 1
    </select>
    <select id="findUserByCommunityId" resultType="java.util.Map">
        SELECT u.user_id,u.name,u.phone,u.community_id,a.street_id, FROM sys_user u
        LEFT JOIN com_act a ON u.community_id = a.community_id
        WHERE u.id = #{id}
    </select>
    <select id="findPopulationById" resultType="java.util.Map">
        SELECT p.id,p.name,p.sex,p.phone,p.road,p.door_no,p.floor,p.unit_no,p.house_no,v.address,v.lng,v.lat,p.label,p.out_or_local FROM com_mng_population p
        LEFT JOIN com_mng_village v ON p.village_id = v.village_id WHERE p.id = #{id}
    </select>
    <select id="countNoneComplete" resultType="java.lang.Integer">
        SELECT count(id) from event_visiting_tasks where visiter_id = #{id} and (event_status = 1 or event_status = 2 or event_status = 4)
    </select>
    <update id="updateEventStatus">
        update event_visiting_tasks set event_status = #{status} where id = #{id}
    </update>
    <update id="start">
        update event_visiting_tasks set event_status = #{eventStatus},
        grid_member_street = #{gridMemberStreet},grid_member_community=#{gridMemberCommunity},grid_member=#{gridMember},grid_member_name=#{gridMemberName},grid_menber_tele=#{gridMenberTele}
        dell_user_id = #{gridMember} ,dell_user_name =#{gridMemberName}, dell_type = 1,dell_date = NOW() where id = #{id}
    </update>
    <update id="cancel">
        update event_visiting_tasks set event_status = #{status},cancel_time = NOW() where id = #{id}
    </update>
    <update id="complete" parameterType="com.panzhihua.common.model.vos.visit.EventVisitCompleteDTO">
        update event_visiting_tasks set event_status = #{eventStatus},address = #{address},address_remark=#{addressRemark},
            family_phone =#{familyPhone},family_source = #{familySource},lat_lng=#{latLng},dell_desc = #{dellDesc},table_content_json = #{option}
            exception = #{exception},submit_date = NOW()
        where id = #{id}
    </update>
    <select id="getLabel" parameterType="java.lang.Long" resultType="java.lang.String">
        select label from com_mng_population where id = #{id}
    </select>
</mapper>