From 14e9e46c441de408616f5ce500623ac1d3d93b5c Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期四, 24 六月 2021 13:55:18 +0800
Subject: [PATCH] Merge branch 'test_visit' into 'test'

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java                        |   35 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java                   |  200 ++++++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java                    |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java                               |  107 +++
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java              |  176 +++++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java             |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml                                        |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java                  |   53 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java                      |   34 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java            |  146 ++++
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java                               |   64 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java          |   96 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml                                   |  238 +++----
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java |  217 ++++++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java               |   79 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java                  |  153 ++++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java                             |   43 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java                  |   40 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java                        |   54 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java                       |   81 ++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java                      |   24 
 21 files changed, 1,696 insertions(+), 169 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
new file mode 100644
index 0000000..3cda27f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
@@ -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();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java
new file mode 100644
index 0000000..a1f105e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java
@@ -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;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
new file mode 100644
index 0000000..0f7c69e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
new file mode 100644
index 0000000..0a189b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
@@ -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;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
new file mode 100644
index 0000000..9a839b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
@@ -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);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java
new file mode 100644
index 0000000..4f88d62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCompleteDTO.java
@@ -0,0 +1,53 @@
+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;
+
+/**
+ * @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 lat_lng;
+
+    @ApiModelProperty("地址")
+    @NotEmpty(message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty("地址备注")
+    private String addressRemark;
+
+    @ApiModelProperty("异常类型")
+    private Integer exception;
+
+    @ApiModelProperty("异常描述")
+    private String dellDesc;
+
+    @ApiModelProperty("家庭联系方式")
+    @NotEmpty(message = "家庭联系方式不能为空")
+    private String familyPhone;
+
+    @ApiModelProperty("生活来源")
+    @NotEmpty(message = "生活来源不能为空")
+    private String familySource;
+
+    private Integer eventStatus;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java
new file mode 100644
index 0000000..dc6ac30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java
@@ -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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
new file mode 100644
index 0000000..12d7491
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
@@ -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);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
new file mode 100644
index 0000000..680c533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
@@ -0,0 +1,146 @@
+package com.panzhihua.common.model.vos.visit;
+
+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 String 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 = "音频列表")
+	List<EventResourceVO> vosList;
+
+	@ApiModelProperty(value = "图片列表")
+	List<EventResourceVO> imgList;
+
+	@ApiModelProperty(value = "视频列表")
+	List<EventResourceVO> videoList;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
new file mode 100644
index 0000000..884fd4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
@@ -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;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
index 131f463..bf2eca9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
+++ b/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.*;
 
@@ -948,4 +952,107 @@
      */
     @GetMapping("/event/updateLcUploadFlag")
     Boolean updateLcUploadFlag(@RequestParam("id")Long id);
+
+
+    /**
+     *  后台统计走访任务
+     * @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);
+
+    /**
+     * 完成走访记录
+     * @param taskCompleteDTO
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/complete")
+    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
new file mode 100644
index 0000000..058d062
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
@@ -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);
+    }
+
+    @ApiOperation(value = "完成走访记录-xyh")
+    @PostMapping("/complete")
+    public R complete(@RequestBody @Validated EventVisitCompleteDTO taskCompleteDTO){
+        return gridService.complete(taskCompleteDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
new file mode 100644
index 0000000..a7ec5db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
@@ -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);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
index 911580a..123f536 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
+++ b/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){
+        return eventVisitingTasksService.start(id);
+    }
+
+    /**
+     * 完成走访记录
+     * @param taskCompleteDTO
+     * @return
+     */
+    @PostMapping("/complete")
+    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO){
+        return eventVisitingTasksService.complete(taskCompleteDTO);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
index bf74494..d9430e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
+++ b/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<EventResourceVO> findListByRefId(@Param("id")Long id,@Param("classification")Integer classification,@Param("type")Integer type);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
index b979669..1d85c71 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
+++ b/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,68 @@
 @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(@Param("id")Long id,@Param("status") Integer status);
+
+    Integer cancel(@Param("id")Long id,@Param("status") Integer status);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
index 3bd33ee..3056ba9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
+++ b/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,19 @@
      */
     @TableField(fill = FieldFill.UPDATE)
     private Date updateAt;
+
+    /**
+     * 地址备注
+     */
+    private String addressRemark;
+    /**
+     * 家庭联系电话
+     */
+    private String familyPhone;
+
+    /**
+     * 家庭来源
+     */
+    private String familySource;
+
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
index f6e3463..437fb74 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
+++ b/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);
+
+    /**
+     * 完成
+     * @param taskCompleteDTO
+     * @return
+     */
+    R complete(EventVisitCompleteDTO taskCompleteDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
index 937df4a..c9c64f1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -1,24 +1,39 @@
 package com.panzhihua.service_grid.service.impl;
 
+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 javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @auther lyq
@@ -31,6 +46,12 @@
 
     @Resource
     private EventVisitingTasksMapper eventVisitingTasksMapper;
+
+    @Resource
+    private EventResourceMapper eventResourceMapper;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
     /**
      * 新增重点人群走访记录
      * @param eventVisitingTasksAddDTO
@@ -74,7 +95,7 @@
         if(pageEventVisitingTasksDTO.getPageSize()!=null) {
             page.setSize(pageEventVisitingTasksDTO.getPageSize());
         }
-        return R.ok(eventVisitingTasksMapper.findByPage(page, pageEventVisitingTasksDTO));
+        return R.ok();
     }
 
     /**
@@ -96,9 +117,199 @@
         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));
+            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);
+        eventVisitingTasksMapper.insert(visitingTasksDO);
+    }
+
+    @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();
+    }
+
+    @Override
+    public R start(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if(eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()){
+            return R.fail("当前状态不可开始走访");
+        }
+        int rt = eventVisitingTasksMapper.start(id,EventTasksStatusEnum.JXZ.getCode());
+        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());
+        }
+        int rt = eventVisitingTasksMapper.complete(taskCompleteDTO);
+        if(rt > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
index 9e46767..5b06cad 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
@@ -65,4 +65,9 @@
 		</if>
     </select>
 
+	<select id="findListByRefId" resultType="com.panzhihua.common.model.vos.grid.EventResourceVO">
+		SELECT <include refid="columns" />
+		FROM event_resource
+		where ref_id = #{id} and classification = #{classification} and type = #{type} order by id desc
+	</select>
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
index be2e9df..f1b9656 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
@@ -49,139 +49,113 @@
 	]]>
 	</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="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 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 = #{status},dell_user_id = grid_member ,dell_user_name =grid_member_name, 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=#{lat_lng},dell_desc = #{dellDesc},exception = #{exception},submit_date = NOW()
+		where id = #{id}
+	</update>
 
 </mapper>

--
Gitblit v1.7.1