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 >= #{pageEventVisitingTasksDTO.happenTimeBegin} </if> <if test="pageEventVisitingTasksDTO.happenTimeEnd!=null"> AND happen_time <= #{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 >= #{pageEventVisitingTasksDTO.dellDateBegin} </if> <if test="pageEventVisitingTasksDTO.dellDateEnd!=null"> AND dell_date <= #{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 >= #{pageEventVisitingTasksDTO.submitDateBegin} </if> <if test="pageEventVisitingTasksDTO.submitDateEnd!=null"> AND submit_date <= #{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 >= #{pageEventVisitingTasksDTO.createAtBegin} </if> <if test="pageEventVisitingTasksDTO.createAtEnd!=null"> AND create_at <= #{pageEventVisitingTasksDTO.createAtEnd} </if> <if test="pageEventVisitingTasksDTO.updateBy!=null"> AND update_by = #{pageEventVisitingTasksDTO.updateBy} </if> <if test="pageEventVisitingTasksDTO.updateAtBegin!=null"> AND update_at >= #{pageEventVisitingTasksDTO.updateAtBegin} </if> <if test="pageEventVisitingTasksDTO.updateAtEnd!=null"> AND update_at <= #{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>