jianjun 4 years ago
parent
commit
31972c3808
  1. 24
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/BaseMQMsgDTO.java
  2. 8
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/StaffPatrolMQMsg.java
  3. 28
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/MidBaseFormDTO.java
  4. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java
  5. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/param/MidPatrolFormDTO.java
  6. 12
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml
  7. 6
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
  8. 2
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
  9. 20
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
  10. 12
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java
  11. 58
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java
  12. 14
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java
  13. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java
  14. 34
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java
  15. 155
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java
  16. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/UserPatrolRecordEntity.java
  17. 12
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java
  18. 46
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java
  19. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java
  20. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java
  21. 10
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java
  22. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
  23. 180
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridDailyworkServiceImpl.java
  24. 15
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java
  25. 16
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java
  26. 12
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java
  27. 35
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml
  28. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/UserPatrolRecordDao.xml
  29. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PatrolRoutineWorkFormDTO.java
  30. 29
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PatrolQueryFormDTO.java
  31. 78
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java
  32. 9
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  33. 8
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  34. 23
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java
  35. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java
  36. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java
  37. 118
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
  38. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java
  39. 17
      epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml

24
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/BaseMQMsgDTO.java

@ -0,0 +1,24 @@
package com.epmet.commons.rocketmq.messages;
import lombok.Data;
import java.io.Serializable;
/**
* 基础消息体
* @author liujianjun
*/
@Data
public class BaseMQMsgDTO implements Serializable {
private static final long serialVersionUID = 1019260278983535301L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id
*/
private String objectId;
}

8
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/StaffPatrolMQMsg.java

@ -7,12 +7,8 @@ import lombok.Data;
* @author liujianjun
*/
@Data
public class StaffPatrolMQMsg {
/**
* 客户Id
*/
private String customerId;
public class StaffPatrolMQMsg extends BaseMQMsgDTO {
private static final long serialVersionUID = 3039825049521866599L;
/**
* 巡查记录id
*/

28
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/MidBaseFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.commons.tools.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* desc:查询巡查 参数
*
* @author zhaoqifeng
* @dscription
* @date 2021/6/7 16:23
*/
@NoArgsConstructor
@Data
public class MidBaseFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 7585836892408288392L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id 没有则查询全部
*/
private String objectId;
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java

@ -30,6 +30,8 @@ public class PageFormDTO {
*/
private Integer offset;
private boolean isPage = true;
public Integer getOffset() {
return (pageNo-1)*pageSize;
}

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/param/MidPatrolFormDTO.java

@ -22,8 +22,8 @@ public class MidPatrolFormDTO extends PageFormDTO implements Serializable {
*/
private String customerId;
/**
* 巡查记录id 没有则查询全部
* 对象id 没有则查询全部
*/
private String patrolId;
private String objectId;
}

12
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

@ -1029,8 +1029,8 @@
LEFT JOIN staff_patrol_detail d ON m.ID = d.STAFF_PATROL_REC_ID
WHERE
1 =1
<if test="patrolId != null and patrolId != ''">
AND m.ID = #{patrolId}
<if test="objectId != null and objectId != ''">
AND m.ID = #{objectId}
</if>
and m.CUSTOMER_ID = #{customerId}
AND m.DEL_FLAG = '0'
@ -1044,22 +1044,22 @@
from staff_patrol_detail
WHERE
1=1
<if test="patrolId != null and patrolId != ''">
AND staff_patrol_rec_id = #{patrolId}
<if test="objectId != null and objectId != ''">
AND staff_patrol_rec_id = #{objectId}
</if>
and CUSTOMER_ID = #{customerId}
AND DEL_FLAG = '0'
order by created_time
LIMIT #{offset},#{pageSize}
</select>
<!-- 从UserId列表中过滤符合条件的UserId列表出来 -->
<select id="filterUserIds" resultType="java.lang.String">
select distinct ur.USER_ID
from user_role ur
inner join epmet_role er on (ur.ROLE_ID = er.ID)
where ur.DEL_FLAG = 0
and ur.USER_ID in
and ur.USER_ID in
<foreach collection="userIds" open="(" item="userId" separator="," close=")">
#{userId}
</foreach>

6
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java

@ -75,6 +75,11 @@ public interface SystemMessageType {
*/
String USER_PATROL_STOP = "user_patrol_stop";
/**
* 添加例行工作
*/
String PATROL_ROUTINE_WORK_ADD = "patrol_routine_work_add";
/**
* 项目变动
*/
@ -104,4 +109,5 @@ public interface SystemMessageType {
* 需求完成如果服务方是区域化党建单位重新计算这个单位的满意度
*/
String CAL_PARTY_UNIT_SATISFACTION = "cal_party_unit_satisfaction";
}

2
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java

@ -132,7 +132,7 @@ public class SendMqMsgUtil {
* @author wxz
* @date 2021.06.21 12:46
*/
public boolean sendPatrolMqMsg(StaffPatrolMQMsg msg,String messageType) {
public boolean sendPatrolMqMsg(BaseMQMsgDTO msg, String messageType) {
try {
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(messageType);

20
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java

@ -19,6 +19,8 @@ import com.epmet.service.SystemMessageService;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
@ -108,6 +110,10 @@ public class SystemMessageServiceImpl implements SystemMessageService {
private void sendMQMessage(String messageType, String contentStr, String penddingId) {
String topic = getTopicByMsgType(messageType);
if (StringUtils.isBlank(topic)){
logger.warn("topic is not match,messageType:{}", messageType);
return;
}
// 缓存下来,供滞留消息扫描。TTL -1,永不过期
String pendingMsgLabel = null;
@ -128,6 +134,14 @@ public class SystemMessageServiceImpl implements SystemMessageService {
meMessage.putUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL, pendingMsgLabel);
rocketMQTemplate.getProducer().send(meMessage);
logger.info("【发送MQ系统消息】-发送到MQ成功");
} catch (MQClientException e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("【发送MQ系统消息】发送系统MQ消息失败,MQ中间件异常请检查:{}", errorStackTrace);
// 清理阻塞中的消息缓存
redisUtils.delete(pendingMsgKey);
throw new RenException(EpmetErrorCode.SYSTEM_MQ_MSG_SEND_FAIL.getCode(),e.getErrorMessage());
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("【发送MQ系统消息】发送系统MQ消息失败,堆栈信息:{}", errorStackTrace);
@ -181,6 +195,8 @@ public class SystemMessageServiceImpl implements SystemMessageService {
break;
case SystemMessageType.USER_PATROL_START:
case SystemMessageType.USER_PATROL_STOP:
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
topic = TopicConstants.PATROL;
break;
case SystemMessageType.PROJECT_ADD:
@ -195,6 +211,8 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.CAL_PARTY_UNIT_SATISFACTION:
topic=TopicConstants.CAL_PARTY_UNIT_SATISFACTION;
break;
default:
logger.error("getTopicByMsgType msgType:{} is not support for any topic", msgType);
}
return topic;
}
@ -244,6 +262,8 @@ public class SystemMessageServiceImpl implements SystemMessageService {
l1LastAlertTime = now;
}
break;
default:
logger.info("blockedMqMsgScan default topic:{}", mcb.getTopic());
}
}
}

12
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java

@ -1,6 +1,8 @@
package com.epmet.opendata.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@ -11,23 +13,25 @@ import javax.validation.constraints.NotEmpty;
*/
@Data
public class UpsertPatrolRecordForm extends PageFormDTO {
/**
* 客户Id
*/
@NotEmpty(message = "customerId不能为空")
@NotEmpty(message = "customerId不能为空",groups = {DefaultGroup.class,AddGroup.class})
private String customerId;
/**
* 巡查记录id
* 记录id
*/
private String patrolId;
@NotEmpty(message = "id不能为空",groups = AddGroup.class)
private String id;
/**
* 操作类型
* SystemMessageType.USER_PATROL_START
* SystemMessageTypSTOP
*/
@NotEmpty(message = "actionType不能为空")
@NotEmpty(message = "actionType不能为空",groups = DefaultGroup.class)
private String actionType;
}

58
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java

@ -0,0 +1,58 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.BaseGridDailyworkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 巡查例行工作
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-12-24
*/
@RestController
@RequestMapping("basegriddailywork")
public class BaseGridDailyworkController {
@Autowired
private BaseGridDailyworkService baseGridDailyworkService;
/**
* @Author sun
* @Description 巡查信息中间库同步 分页
**/
@PostMapping("sync")
public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {
ValidatorUtils.validateEntity(formDTO, DefaultGroup.class);
baseGridDailyworkService.insertPatrolRecord(formDTO);
return new Result();
}
}

14
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java

@ -18,8 +18,7 @@
package com.epmet.opendata.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.UserPatrolRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
@ -40,6 +39,8 @@ public class InitDataController {
@Autowired
private UserPatrolRecordService userPatrolRecordService;
@Autowired
private BaseGridDailyworkService baseGridDailyworkService;
/**
* @Author sun
@ -49,4 +50,13 @@ public class InitDataController {
public Result<Boolean> reloadPatrolData(@PathVariable String customerId) {
return new Result().ok(userPatrolRecordService.reloadPatrolData(customerId));
}
/**
* @Author sun
* @Description 例行工作中间库同步
**/
@PostMapping("routineWork/{customerId}")
public Result<Boolean> reloadRoutineWorkData(@PathVariable String customerId) {
return new Result().ok(baseGridDailyworkService.reloadPatrolData(customerId));
}
}

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java

@ -43,7 +43,7 @@ public class UserPatrolRecordController {
/**
* @Author sun
* @Description 网格员信息中间库同步
* @Description 巡查信息中间库同步 分页
**/
@PostMapping("patrol")
public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {

34
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java

@ -0,0 +1,34 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 巡查例行工作
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-12-24
*/
@Mapper
public interface BaseGridDailyworkDao extends BaseDao<BaseGridDailyworkEntity> {
}

155
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java

@ -0,0 +1,155 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.entity;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 巡查例行工作
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-12-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("base_grid_dailywork")
public class BaseGridDailyworkEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 网格名称
*/
private String gridName;
/**
* 一级工作类型
*/
private String firstWorkType;
/**
* 二级工作类型
*/
private String secondWorkType;
/**
* 事项名称
*/
private String eventName;
/**
* 发生日期 格式为YYYY-MM-DD
*/
private String happenTime;
/**
* 有无变动异常YN
*/
private String workResult;
/**
* 工作内容
*/
private String workContent;
/**
* 重点场所类别 字典值
*/
private String keyAreaType;
/**
* 宗教活动规模 字典值
*/
private String regionScale;
/**
* 重点场所是否发生变动 Y;N
*/
private String isKeyareaState;
/**
* 重点人员是否在当地-当事件类型为特殊人群服务与管理时必填
*/
private String isKeyPeopleLocate;
/**
* 重点人员现状
*/
private String keyPeopleStatus;
/**
* 发生地
*/
private String happenPlace;
/**
* 经度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 抽取状态0是未抽取1代表已抽取2是抽取失败
*/
//private String flag;
@TableLogic
private String delFlag;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
}

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/UserPatrolRecordEntity.java

@ -47,7 +47,7 @@ public class UserPatrolRecordEntity extends BaseEpmetEntity {
/**
* 网格id
*/
private String grid;
private String gridId;
/**
* 网格所有上级id

12
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java

@ -12,6 +12,7 @@ import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.UserPatrolRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -39,11 +40,11 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
private RedisUtils redisUtils;
private DistributedLock distributedLock;
public OpenDataPatrolChangeEventListener(DistributedLock distributedLock) {
this.distributedLock = distributedLock;
}
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
@ -52,7 +53,7 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
}
try {
msgs.forEach(msg -> consumeMessage(msg));
msgs.forEach(this::consumeMessage);
} catch (Exception e) {
logger.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
@ -84,7 +85,7 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
30L, 30L, TimeUnit.SECONDS);
UpsertPatrolRecordForm patrolRecordForm = new UpsertPatrolRecordForm();
patrolRecordForm.setCustomerId(msgObj.getCustomerId());
patrolRecordForm.setPatrolId(msgObj.getPatrolId());
patrolRecordForm.setId(msgObj.getObjectId());
patrolRecordForm.setActionType(tags);
Boolean aBoolean = false;
switch (tags) {
@ -94,6 +95,9 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
case SystemMessageType.USER_PATROL_STOP:
aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).updatePatrolRecord(patrolRecordForm);
break;
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertPatrolRecord(patrolRecordForm);
break;
default:
log.error("错误的消息类型:{}", tags);

46
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java

@ -0,0 +1,46 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
/**
* 用户巡查主记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-14
*/
public interface BaseGridDailyworkService extends BaseService<BaseGridDailyworkEntity> {
/**
* desc根据条件插入巡查记录
* @param patrolRecordForm
* @return
*/
Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm);
/**
* desc重新加载数据
* @param customerId
* @return
*/
Boolean reloadPatrolData(String customerId);
}

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java

@ -18,6 +18,7 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.form.ExDeptFormDTO;
import com.epmet.opendata.entity.ExDeptEntity;
@ -32,7 +33,7 @@ import java.util.Map;
public interface ExDeptService extends BaseService<ExDeptEntity> {
Map<String, Integer> getDeptMap();
Map<String, Integer> getDeptDTOMap();
/**
* @Author sun
@ -46,4 +47,5 @@ public interface ExDeptService extends BaseService<ExDeptEntity> {
**/
void getGridBaseInfo(ExDeptFormDTO formDTO);
Map<String, ExDeptDTO> getDeptDTOMap(String customerId);
}

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java

@ -18,6 +18,7 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.ExUserEntity;
@ -39,4 +40,5 @@ public interface ExUserService extends BaseService<ExUserEntity> {
**/
void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO);
}
Map<String, ExUserDTO> getUserDTOMap(String customerId);
}

10
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java

@ -29,7 +29,17 @@ import com.epmet.opendata.entity.UserPatrolDetailEntity;
public interface UserPatrolDetailService extends BaseService<UserPatrolDetailEntity> {
/**
* desc:根据巡查id 删除巡查明细
* @param patrolId
* @return
*/
int deleteByPatrolId(String patrolId);
/**
* desc:根据客户Id 删除明细
* @param customerId
* @return
*/
int deleteByCustomerId(String customerId);
}

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java

@ -76,7 +76,7 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl<BaseDisputePr
if (!result.success()) {
throw new RenException(result.getInternalMsg());
}
Map<String, Integer> deptMap = exDeptService.getDeptMap();
Map<String, Integer> deptMap = exDeptService.getDeptDTOMap();
Map<String, Integer> userMap = exUserService.getUserMap(formDTO.getCustomerId());
List<EventInfoResultDTO> list = result.getData();
saveEvent(formDTO, deptMap, userMap, list);

180
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridDailyworkServiceImpl.java

@ -0,0 +1,180 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.opendata.dao.BaseGridDailyworkDao;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.ExDeptService;
import com.epmet.opendata.service.ExUserService;
import com.epmet.opendata.service.UserPatrolDetailService;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 用户例行工作主记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-14
*/
@Slf4j
@Service
public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyworkDao, BaseGridDailyworkEntity> implements BaseGridDailyworkService {
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private UserPatrolDetailService userPatrolDetailService;
@Autowired
private ExDeptService exDeptService;
@Autowired
private ExUserService exUserService;
@Override
public Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm) {
log.info("upsertPatrolRecord param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class);
PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkList(midPatrolFormDTO);
if (record == null || !record.success()) {
log.error("获取例行工作记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
Map<String, ExDeptDTO> deptMap = exDeptService.getDeptDTOMap(patrolRecordForm.getCustomerId());
Map<String, ExUserDTO> userMap = exUserService.getUserDTOMap(patrolRecordForm.getCustomerId());
List<PatrolRoutineWorkResult> data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
//暂时设置error 用于排错
log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
insertRecordBatch(data, deptMap, userMap);
return true;
}
@Override
public Boolean reloadPatrolData(String customerId) {
int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_THOUSAND;
List<PatrolRoutineWorkResult> resultList = null;
Map<String, ExDeptDTO> deptMap = exDeptService.getDeptDTOMap(customerId);
Map<String, ExUserDTO> userMap = exUserService.getUserDTOMap(customerId);
do {
PatrolQueryFormDTO param = new PatrolQueryFormDTO();
param.setCustomerId(customerId);
param.setPageNo(pageNo++);
param.setPageSize(pageSize);
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkList(param);
if (record == null || !record.success()) {
log.error("获取例行工作记录失败,param:{}", JSON.toJSONString(param));
return false;
}
resultList = record.getData();
if (CollectionUtils.isEmpty(resultList)){
log.warn("不存在例行工作记录,param:{}", JSON.toJSONString(param));
return false;
}
insertRecordBatch(resultList, deptMap, userMap);
}while (!CollectionUtils.isEmpty(resultList) && resultList.size()> pageSize );
return null;
}
private Boolean insertRecordBatch(List<PatrolRoutineWorkResult> list, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap){
List<BaseGridDailyworkEntity> insertList = new ArrayList<>();
list.forEach(o-> insertList.add(buildEntity(o, deptMap, userMap)));
//insert
if (CollectionUtils.isEmpty(insertList)){
log.error("构建要插入的数据为空,param:{}", JSON.toJSONString(list));
return false;
}
this.saveOrUpdateBatch(insertList, NumConstant.ONE_HUNDRED);
return true;
}
private BaseGridDailyworkEntity buildEntity(PatrolRoutineWorkResult record, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap) {
BaseGridDailyworkEntity entity = new BaseGridDailyworkEntity();
entity.setCustomerId(record.getCustomerId());
ExDeptDTO exDeptDTO = deptMap.getOrDefault(record.getGridId(),new ExDeptDTO());
entity.setGridId(exDeptDTO.getDeptId() == null ? "":exDeptDTO.getDeptId().toString());
entity.setGridName(exDeptDTO.getDeptName());
entity.setFirstWorkType(record.getWorkTypeFirstCode());
entity.setSecondWorkType(record.getWorkTypeSecondCode());
entity.setEventName(record.getTitle());
entity.setHappenTime(record.getHappenTime());
entity.setWorkResult(NumConstant.ONE == record.getIsNormal()? "Y":"N");
entity.setWorkContent(record.getWorkContent());
//业务暂时不支持
entity.setKeyAreaType(StrConstant.EPMETY_STR);
entity.setRegionScale(StrConstant.EPMETY_STR);
entity.setIsKeyareaState(StrConstant.EPMETY_STR);
entity.setIsKeyPeopleLocate(NumConstant.ONE == record.getIsKeyPeopleLocate()?"Y":"N");
entity.setKeyPeopleStatus(record.getKeyPeopleStatus());
entity.setHappenPlace(record.getAddress());
entity.setLng(record.getLongitude());
entity.setLat(record.getLatitude());
//entity.setFlag(NumConstant.ZERO_STR);
Integer userId = userMap.getOrDefault(record.getCreatedBy(), new ExUserDTO()).getUserId();
entity.setCreateBy(userId == null?record.getCreatedBy():userId.toString());
entity.setCreateTime(record.getCreatedTime());
Integer userIdU = userMap.getOrDefault(record.getUpdatedBy(), new ExUserDTO()).getUserId();
entity.setUpdateBy(userIdU == null? record.getCreatedBy():userIdU.toString());
entity.setUpdateTime(record.getUpdatedTime());
entity.setId(record.getId()+"_PY");
entity.setDelFlag(NumConstant.ZERO_STR);
return entity;
}
@NotNull
private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setId(patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(patrolRecordForm.getPageSize());
return midPatrolFormDTO;
}
}

15
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java

@ -27,6 +27,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.ExDeptDao;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.form.ExDeptFormDTO;
import com.epmet.opendata.entity.ExDeptEntity;
import com.epmet.opendata.service.ExDeptService;
@ -39,6 +40,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -54,7 +56,7 @@ public class ExDeptServiceImpl extends BaseServiceImpl<ExDeptDao, ExDeptEntity>
@Override
public Map<String, Integer> getDeptMap() {
public Map<String, Integer> getDeptDTOMap() {
LambdaQueryWrapper<ExDeptEntity> wrapper = new LambdaQueryWrapper<>();
List<ExDeptEntity> entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(entityList)) {
@ -135,4 +137,15 @@ public class ExDeptServiceImpl extends BaseServiceImpl<ExDeptDao, ExDeptEntity>
}
@Override
public Map<String, ExDeptDTO> getDeptDTOMap(String customerId) {
LambdaQueryWrapper<ExDeptEntity> wrapper = new LambdaQueryWrapper<>();
List<ExDeptEntity> entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(entityList)) {
return Collections.emptyMap();
}
List<ExDeptDTO> exDeptDTOList = ConvertUtils.sourceToTarget(entityList, ExDeptDTO.class);
return exDeptDTOList.stream().collect(Collectors.toMap(ExDeptDTO::getQxDeptId, Function.identity(),(o1,o2)->o1));
}
}

16
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java

@ -25,6 +25,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.ExUserDao;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.ExUserEntity;
import com.epmet.opendata.service.ExUserService;
@ -37,6 +38,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -98,4 +100,16 @@ public class ExUserServiceImpl extends BaseServiceImpl<ExUserDao, ExUserEntity>
}
}
@Override
public Map<String, ExUserDTO> getUserDTOMap(String customerId) {
LambdaQueryWrapper<ExUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ExUserEntity::getQxCustomerId, customerId);
List<ExUserEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
List<ExUserDTO> exUserDTOList = ConvertUtils.sourceToTarget(list, ExUserDTO.class);
return exUserDTOList.stream().collect(Collectors.toMap(ExUserDTO::getQxUserId, Function.identity(), (key1, key2) -> key1));
}
}

12
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java

@ -72,7 +72,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
//数据已被删除了
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
@ -102,7 +102,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
//数据已被删除了
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
@ -124,8 +124,8 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
@Override
public Boolean reloadPatrolData(String customerId) {
int pageNo = 1;
int pageSize = 1000;
int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_THOUSAND;
List<MidPatrolRecordResult> resultList = null;
do {
MidPatrolFormDTO param = new MidPatrolFormDTO();
@ -201,7 +201,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
private UserPatrolRecordEntity buildEntity(MidPatrolRecordResult recordResult) {
UserPatrolRecordEntity entity = new UserPatrolRecordEntity();
entity.setCustomerId(recordResult.getCustomerId());
entity.setGrid(recordResult.getGrid());
entity.setGridId(recordResult.getGrid());
entity.setGridPids(recordResult.getGridPids());
entity.setStaffId(recordResult.getStaffId());
entity.setAgencyId(recordResult.getAgencyId());
@ -227,7 +227,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
private MidPatrolFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
MidPatrolFormDTO midPatrolFormDTO = new MidPatrolFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setPatrolId(patrolRecordForm.getPatrolId());
midPatrolFormDTO.setObjectId(patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(patrolRecordForm.getPageSize());
return midPatrolFormDTO;

35
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.opendata.dao.BaseGridDailyworkDao">
<resultMap type="com.epmet.opendata.entity.BaseGridDailyworkEntity" id="patrolRoutineWorkMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="gridName" column="GRID_NAME"/>
<result property="firstWorkType" column="FIRST_WORK_TYPE"/>
<result property="secondWorkType" column="SECOND_WORK_TYPE"/>
<result property="eventName" column="EVENT_NAME"/>
<result property="happenTime" column="HAPPEN_TIME"/>
<result property="workResult" column="WORK_RESULT"/>
<result property="workContent" column="WORK_CONTENT"/>
<result property="keyAreaType" column="KEY_AREA_TYPE"/>
<result property="regionScale" column="REGION_SCALE"/>
<result property="isKeyareaState" column="IS_KEYAREA_STATE"/>
<result property="isKeyPeopleLocate" column="IS_KEY_PEOPLE_LOCATE"/>
<result property="keyPeopleStatus" column="KEY_PEOPLE_STATUS"/>
<result property="happenPlace" column="HAPPEN_PLACE"/>
<result property="lng" column="LNG"/>
<result property="lat" column="LAT"/>
<result property="flag" column="FLAG"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
</resultMap>
</mapper>

2
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/UserPatrolRecordDao.xml

@ -6,7 +6,7 @@
<resultMap type="com.epmet.opendata.entity.UserPatrolRecordEntity" id="userPatrolRecordMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="grid" column="GRID"/>
<result property="gridId" column="GRID"/>
<result property="gridPids" column="GRID_PIDS"/>
<result property="staffId" column="STAFF_ID"/>
<result property="agencyId" column="AGENCY_ID"/>

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PatrolRoutineWorkFormDTO.java

@ -24,8 +24,6 @@ public class PatrolRoutineWorkFormDTO implements Serializable {
public interface AddOrUpdateForm {
}
private String customerId;
@NotBlank(message = "网格ID不能为空", groups = AddOrUpdateForm.class)
private String gridId;

29
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PatrolQueryFormDTO.java

@ -0,0 +1,29 @@
package com.epmet.dto.form.patrol;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* desc:查询巡查 参数
*
* @author zhaoqifeng
* @dscription
* @date 2021/6/7 16:23
*/
@NoArgsConstructor
@Data
public class PatrolQueryFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 7585836892408288392L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id 没有则查询全部
*/
private String id;
}

78
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java

@ -0,0 +1,78 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* desc:例行工作结果
*
* @Author zxc
* @DateTime 2021/10/19 10:41 上午
* @DESC
*/
@Data
public class PatrolRoutineWorkResult implements Serializable {
private static final long serialVersionUID = 6508374707998213266L;
private String id;
private String customerId;
private String gridId;
private String title;
/**
* 一级工作类型 code
*/
private String workTypeFirstCode;
/**
* 二级工作类型 code
*/
private String workTypeSecondCode;
private Integer isNormal;
private String happenTime;
private String workContent;
private String address;
/**
* 当事件类型为特殊人群服务与管理时必填 重点人员是否在当地
*/
private Integer isKeyPeopleLocate;
/**
* 当事件类型为特殊人群服务与管理时必填 重点人员现状
*/
private String keyPeopleStatus;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
private Integer revision;
private String createdBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createdTime;
private String updatedBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updatedTime;
}

9
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
@ -681,4 +682,12 @@ public interface EpmetUserOpenFeignClient {
*/
@PostMapping(value = "/epmetuser/user/findicuser")
Result<EpmetUserFamilyDTO> findIcUser(@RequestBody FindIcUserFormDTO formDTO);
/**
* desc:获取例行工作 数据 分页
* @param patrolQueryFormDTO
* @return
*/
@PostMapping(value = "//epmetuser/patrolroutinework/selectList")
Result<List<PatrolRoutineWorkResult>> getPatrolRoutineWorkList(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO);
}

8
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
@ -499,11 +500,16 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param epmetUserIdList
* @param formDTO
* @return
*/
@Override
public Result<EpmetUserFamilyDTO> findIcUser(FindIcUserFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findIcUser", formDTO);
}
@Override
public Result<List<PatrolRoutineWorkResult>> getPatrolRoutineWorkList(PatrolQueryFormDTO patrolQueryFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkList", patrolQueryFormDTO);
}
}

23
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java

@ -4,9 +4,17 @@ import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.service.PatrolRoutineWorkService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 例行工作
@ -21,6 +29,19 @@ public class PatrolRoutineWorkController {
@Autowired
private PatrolRoutineWorkService gridUserWorkService;
/**
* @Description 添加例行工作
* @param formDTO
* @author zxc
* @date 2021/10/19 1:35 下午
*/
@NoRepeatSubmit
@PostMapping("selectList")
public Result<List<PatrolRoutineWorkResult>> gridUserWork(@RequestBody PatrolQueryFormDTO formDTO){
formDTO.setPage(false);
Page<PatrolRoutineWorkResult> data = gridUserWorkService.listPage(formDTO);
return new Result().ok(data.getResult());
}
/**
* @Description 添加例行工作
* @param formDTO

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java

@ -18,9 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 巡查例行工作
*
@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface PatrolRoutineWorkDao extends BaseDao<PatrolRoutineWorkEntity> {
}
List<PatrolRoutineWorkResult> selectList(PatrolQueryFormDTO formDTO);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java

@ -19,7 +19,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.github.pagehelper.Page;
/**
* 巡查例行工作
@ -34,4 +37,11 @@ public interface PatrolRoutineWorkService extends BaseService<PatrolRoutineWorkE
* @param formDTO
*/
void add(PatrolRoutineWorkFormDTO formDTO);
/**
* desc:分页获取
* @param formDTO
* @return
*/
Page<PatrolRoutineWorkResult> listPage(PatrolQueryFormDTO formDTO);
}

118
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.BaseMQMsgDTO;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
@ -28,16 +29,23 @@ import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.PatrolRoutineWorkDao;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.epmet.entity.PatrolRoutineWorkTypeEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.PatrolRoutineWorkService;
import com.epmet.service.PatrolRoutineWorkTypeService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -66,7 +74,9 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
PatrolRoutineWorkTypeService patrolRoutineWorkTypeService;
private PatrolRoutineWorkTypeService patrolRoutineWorkTypeService;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
/**
* @param formDTO
@ -77,50 +87,64 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Transactional(rollbackFor = Exception.class)
@Override
public void add(PatrolRoutineWorkFormDTO formDTO) {
if (formDTO.getWorkTypeList().toString().contains("02")
&& (formDTO.getIsKeyPeopleLocate() == null || StringUtils.isBlank(formDTO.getKeyPeopleStatus()))){
log.warn("add patrolRoutineWork fail,param is error,param:{}", JSON.toJSONString(formDTO));
throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode());
}
PatrolRoutineWorkEntity entity = ConvertUtils.sourceToTarget(formDTO, PatrolRoutineWorkEntity.class);
PatrolRoutineWorkEntity entity = null;
try {
if (formDTO.getWorkTypeList().toString().contains("02")
&& (formDTO.getIsKeyPeopleLocate() == null || StringUtils.isBlank(formDTO.getKeyPeopleStatus()))) {
log.warn("add patrolRoutineWork fail,param is error,param:{}", JSON.toJSONString(formDTO));
throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode());
}
entity = ConvertUtils.sourceToTarget(formDTO, PatrolRoutineWorkEntity.class);
CustomerGridFormDTO gridFormDTO = new CustomerGridFormDTO();
gridFormDTO.setGridId(formDTO.getGridId());
Result<CustomerGridDTO> gridBaseInfoData = govOrgOpenFeignClient.getGridBaseInfoByGridId(gridFormDTO);
if (!gridBaseInfoData.success()) {
throw new EpmetException("查询网格基本信息失败......");
}
CustomerGridDTO gridBaseInfo = gridBaseInfoData.getData();
entity.setPids(gridBaseInfo.getPids());
entity.setUserId(loginUserUtil.getLoginUserId());
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
//entity.setUserId("loginUserUtil.getLoginUserId()");
//entity.setCustomerId("loginUserUtil.getLoginUserCustomerId()");
baseDao.insert(entity);
Result<List<DictTreeResultDTO>> mapResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode());
if (mapResult == null || !mapResult.success() || CollectionUtils.isEmpty(mapResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "例行工作类型字典获取失败!");
CustomerGridFormDTO gridFormDTO = new CustomerGridFormDTO();
gridFormDTO.setGridId(formDTO.getGridId());
Result<CustomerGridDTO> gridBaseInfoData = govOrgOpenFeignClient.getGridBaseInfoByGridId(gridFormDTO);
if (!gridBaseInfoData.success()) {
throw new EpmetException("查询网格基本信息失败......");
}
CustomerGridDTO gridBaseInfo = gridBaseInfoData.getData();
entity.setPids(gridBaseInfo.getPids());
entity.setUserId(loginUserUtil.getLoginUserId());
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
entity.setUserId("loginUserUtil.getLoginUserId()");
entity.setCustomerId("45687aa479955f9d06204d415238f7cc");
baseDao.insert(entity);
Result<List<DictTreeResultDTO>> mapResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode());
if (mapResult == null || !mapResult.success() || CollectionUtils.isEmpty(mapResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "例行工作类型字典获取失败!");
}
List<DictTreeResultDTO> dictTree = mapResult.getData();
Map<String, StringBuilder> pidsMap = new HashMap<>();
dictTree.forEach(dto -> buildAllParentIdPath(pidsMap, dto));
//插入分类
List<PatrolRoutineWorkTypeEntity> workTypeList = new ArrayList<>();
for (String code : formDTO.getWorkTypeList()) {
PatrolRoutineWorkTypeEntity typeEntity = new PatrolRoutineWorkTypeEntity();
typeEntity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
typeEntity.setRoutineWorkId(entity.getId());
typeEntity.setWorkTypeCode(code);
StringBuilder pids = pidsMap.get(code);
typeEntity.setAllPCode(pids.length() == NumConstant.ZERO ? NumConstant.ZERO_STR : pids.toString());
workTypeList.add(typeEntity);
}
patrolRoutineWorkTypeService.insertBatch(workTypeList);
} finally {
if (entity != null){
sendPatrolMsg(entity.getCustomerId(),entity.getId(),SystemMessageType.PATROL_ROUTINE_WORK_ADD);
}
}
List<DictTreeResultDTO> dictTree = mapResult.getData();
Map<String, StringBuilder> pidsMap = new HashMap<>();
dictTree.forEach(dto -> buildAllParentIdPath(pidsMap, dto));
List<PatrolRoutineWorkTypeEntity> workTypeList = new ArrayList<>();
formDTO.getWorkTypeList().forEach(code -> {
PatrolRoutineWorkTypeEntity typeEntity = new PatrolRoutineWorkTypeEntity();
typeEntity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
typeEntity.setRoutineWorkId(entity.getId());
typeEntity.setWorkTypeCode(code);
StringBuilder pids = pidsMap.get(code);
typeEntity.setAllPCode(pids.length() == NumConstant.ZERO ? NumConstant.ZERO_STR : pids.toString());
workTypeList.add(typeEntity);
});
patrolRoutineWorkTypeService.insertBatch(workTypeList);
}
@Override
public Page<PatrolRoutineWorkResult> listPage(PatrolQueryFormDTO formDTO) {
return PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.isPage())
.doSelectPage(() -> baseDao.selectList(formDTO));
}
/**
@ -154,6 +178,18 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
}
}
private void sendPatrolMsg(String customerId, String id, String messageType) {
//发送巡查消息
BaseMQMsgDTO baseMQMsgDTO = new BaseMQMsgDTO();
baseMQMsgDTO.setCustomerId(customerId);
baseMQMsgDTO.setObjectId(id);
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(baseMQMsgDTO, messageType);
if (!b) {
log.error("发送{}巡查消息到mq失败,patrolId:{}", messageType, id);
}
}
public static void main(String[] args) {
String str = "[{\"id\":\"01\",\"pid\":\"0\",\"children\":[{\"id\":\"0101\",\"pid\":\"01\",\"children\":[{\"id\":\"010101\",\"pid\":\"0101\",\"children\":[],\"name\":\"出租房屋巡查\"}],\"name\":\"出租房屋巡查\"},{\"id\":\"0102\",\"pid\":\"01\",\"children\":[],\"name\":\"重点场所巡查\"},{\"id\":\"0103\",\"pid\":\"01\",\"children\":[],\"name\":\"宗教活动\"},{\"id\":\"0199\",\"pid\":\"01\",\"children\":[],\"name\":\"其他\"}],\"name\":\"重点巡查\"},{\"id\":\"02\",\"pid\":\"0\",\"children\":[{\"id\":\"0201\",\"pid\":\"02\",\"children\":[],\"name\":\"刑满释放人员\"},{\"id\":\"0202\",\"pid\":\"02\",\"children\":[],\"name\":\"社区矫正\"},{\"id\":\"0203\",\"pid\":\"02\",\"children\":[],\"name\":\"吸毒人员\"},{\"id\":\"0204\",\"pid\":\"02\",\"children\":[],\"name\":\"信访人员\"},{\"id\":\"0205\",\"pid\":\"02\",\"children\":[],\"name\":\"重点青少年\"},{\"id\":\"0206\",\"pid\":\"02\",\"children\":[],\"name\":\"精神障碍者\"}],\"name\":\"特殊人群\"},{\"id\":\"09\",\"pid\":\"0\",\"children\":[{\"id\":\"0901\",\"pid\":\"09\",\"children\":[],\"name\":\"公共服务\"},{\"id\":\"0902\",\"pid\":\"09\",\"children\":[],\"name\":\"权益保障\"},{\"id\":\"0903\",\"pid\":\"09\",\"children\":[],\"name\":\"政策宣传\"},{\"id\":\"0904\",\"pid\":\"09\",\"children\":[],\"name\":\"便利服务\"},{\"id\":\"0999\",\"pid\":\"09\",\"children\":[],\"name\":\"其他\"}],\"name\":\"为民服务\"}]";
List<DictTreeResultDTO> dtos = JSON.parseArray(str, DictTreeResultDTO.class);

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -287,7 +287,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
//发送巡查消息
StaffPatrolMQMsg staffPatrolMQMsg = new StaffPatrolMQMsg();
staffPatrolMQMsg.setCustomerId(record.getCustomerId());
staffPatrolMQMsg.setPatrolId(record.getId());
staffPatrolMQMsg.setObjectId(record.getId());
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(staffPatrolMQMsg,messageType);
if (!b) {

17
epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml

@ -22,6 +22,21 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!--支持多级分类哈-->
<select id="selectList" resultType="com.epmet.dto.result.PatrolRoutineWorkResult">
SELECT
m.*,
prwt.WORK_TYPE_CODE AS workTypeSecondCode,
substring_index(prwt.ALL_P_CODE,':',1) AS workTypeFirstCode
FROM epmet_user.patrol_routine_work m
LEFT JOIN patrol_routine_work_type prwt ON m.ID = prwt.ROUTINE_WORK_ID
WHERE
m.CUSTOMER_ID = #{customerId}
<if test="id != null and id != ''">
AND m.ID = #{id}
</if>
AND m.DEL_FLAG = '0'
</select>
</mapper>
</mapper>

Loading…
Cancel
Save