21 changed files with 451 additions and 50 deletions
Binary file not shown.
Binary file not shown.
@ -0,0 +1,33 @@ |
|||
/** |
|||
* 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.GriderOnlineNumEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 在线网格员人数 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-14 |
|||
*/ |
|||
@Mapper |
|||
public interface GriderOnlineNumDao extends BaseDao<GriderOnlineNumEntity> { |
|||
|
|||
} |
@ -0,0 +1,61 @@ |
|||
/** |
|||
* 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.TableName; |
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 用户巡查主记录 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-14 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("grider_online_num") |
|||
public class GriderOnlineNumEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
private String qxGridId; |
|||
|
|||
/** |
|||
* 推送时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date pushTime; |
|||
|
|||
/** |
|||
* 在线数 |
|||
*/ |
|||
private Integer onlineNum; |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,38 @@ |
|||
/** |
|||
* 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.entity.GriderOnlineNumEntity; |
|||
|
|||
/** |
|||
* 用户巡查主记录 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-14 |
|||
*/ |
|||
public interface GriderOnlineNumService extends BaseService<GriderOnlineNumEntity> { |
|||
|
|||
/** |
|||
* desc:插入巡查中的网格员数据 |
|||
* @return boolean |
|||
*/ |
|||
Boolean insertData(String agencyId); |
|||
|
|||
|
|||
} |
@ -0,0 +1,69 @@ |
|||
/** |
|||
* 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.dto.form.PatrolCountFormDTO; |
|||
import com.epmet.dto.result.PatrolCountResultDTO; |
|||
import com.epmet.feign.EpmetUserOpenFeignClient; |
|||
import com.epmet.opendata.dao.GriderOnlineNumDao; |
|||
import com.epmet.opendata.entity.GriderOnlineNumEntity; |
|||
import com.epmet.opendata.service.GriderOnlineNumService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Date; |
|||
|
|||
|
|||
/** |
|||
* 用户巡查主记录 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2021-10-14 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
public class GriderOnlineNumServiceImpl extends BaseServiceImpl<GriderOnlineNumDao, GriderOnlineNumEntity> implements GriderOnlineNumService { |
|||
@Autowired |
|||
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; |
|||
@Override |
|||
public Boolean insertData(String agencyId) { |
|||
PatrolCountFormDTO param = new PatrolCountFormDTO(); |
|||
param.setAgencyId(agencyId); |
|||
Result<PatrolCountResultDTO> patrolCountResult = epmetUserOpenFeignClient.patrolCount(param); |
|||
|
|||
log.debug("insertData patrolCountResult return:{}", JSON.toJSONString(patrolCountResult)); |
|||
if (patrolCountResult == null || !patrolCountResult.success()) { |
|||
log.warn("insertData patrolCount fail,return null"); |
|||
return false; |
|||
} |
|||
PatrolCountResultDTO data = patrolCountResult.getData(); |
|||
int count = data.getPatrollingCount() == null ? NumConstant.ZERO : data.getPatrollingCount(); |
|||
GriderOnlineNumEntity entity = new GriderOnlineNumEntity(); |
|||
entity.setCustomerId(StrConstant.PY_CUSTOMER); |
|||
entity.setPushTime(new Date()); |
|||
entity.setOnlineNum(count); |
|||
baseDao.insert(entity); |
|||
return true; |
|||
} |
|||
} |
@ -0,0 +1,71 @@ |
|||
package com.epmet.opendata.task; |
|||
|
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.constant.StrConstant; |
|||
import com.epmet.commons.tools.distributedlock.DistributedLock; |
|||
import com.epmet.commons.tools.redis.RedisKeys; |
|||
import com.epmet.commons.tools.utils.DateUtils; |
|||
import com.epmet.opendata.service.GriderOnlineNumService; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.redisson.api.RLock; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.scheduling.annotation.Scheduled; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* desc: |
|||
* |
|||
* @author: LiuJanJun |
|||
* @date: 2022/4/12 4:21 下午 |
|||
* @version: 1.0 |
|||
*/ |
|||
@Slf4j |
|||
@Component |
|||
public class ExtractBizDataToOpenData { |
|||
|
|||
@Autowired |
|||
private DistributedLock distributedLock; |
|||
|
|||
@Autowired |
|||
private GriderOnlineNumService griderOnlineNumService; |
|||
|
|||
@Scheduled(cron = "0 30 */2 * * *") |
|||
//@Scheduled(cron = "0/15 * * * * *")
|
|||
public void extractGridMemberPatrollingCount() { |
|||
String currentTime = DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN); |
|||
log.info("extractGridMemberPatrollingCount start,date:{}", currentTime); |
|||
RLock rLock = null; |
|||
try { |
|||
rLock = distributedLock.tryLock(RedisKeys.getLockByMethodName("extractGridMemberPatrollingCount")); |
|||
if (rLock == null || !rLock.isLocked()) { |
|||
log.warn("tryLock method extractGridMemberPatrollingCount fail"); |
|||
return; |
|||
} |
|||
boolean patrolCountResult; |
|||
int retryTime = NumConstant.THREE; |
|||
do { |
|||
//StrConstant.PY_ROOT_AGENCY
|
|||
patrolCountResult = griderOnlineNumService.insertData(StrConstant.PY_ROOT_AGENCY); |
|||
if (!patrolCountResult) { |
|||
break; |
|||
} |
|||
//如果 重试次数为1了 就让歇个 5分钟
|
|||
if (retryTime == 1) { |
|||
Thread.sleep(NumConstant.FIVE * NumConstant.SIXTY * NumConstant.ONE_THOUSAND); |
|||
} |
|||
} while (retryTime-- > 0); |
|||
if (!patrolCountResult) { |
|||
log.error("插入网格员在线人数失败,请检查原因,时间:{}", currentTime); |
|||
} |
|||
|
|||
} catch (Exception e) { |
|||
log.warn("tryLock method extractGridMemberPatrollingCount fail"); |
|||
} finally { |
|||
distributedLock.unLock(rLock); |
|||
} |
|||
log.info("extractGridMemberPatrollingCount end"); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
CREATE TABLE `grider_online_num` ( |
|||
`ID` varchar(64) NOT NULL COMMENT '主键', |
|||
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id', |
|||
`ONLINE_NUM` int(11) NOT NULL COMMENT '在线人数', |
|||
`PUSH_TIME` datetime NOT NULL COMMENT '推送时间', |
|||
`DEL_FLAG` bigint(1) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除', |
|||
`REVISION` int(11) NOT NULL COMMENT '乐观锁', |
|||
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人', |
|||
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间', |
|||
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人', |
|||
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', |
|||
PRIMARY KEY (`ID`) |
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='网格员在线人数'; |
@ -0,0 +1,6 @@ |
|||
<?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.GriderOnlineNumDao"> |
|||
|
|||
</mapper> |
@ -1,2 +1,6 @@ |
|||
alter table ic_resi_member add COLUMN DOMICILE_PLACE VARCHAR(128) comment '户籍所在地' AFTER YMJZ; |
|||
alter table ic_resi_member add COLUMN WORK_PLACE VARCHAR(128) comment '单位或学校' AFTER DOMICILE_PLACE; |
|||
|
|||
-- 居民信息表添加租户列 |
|||
alter table ic_resi_user add column IS_TENANT char(1) comment '是否租户【是:1 否:0】' after IS_SPECIAL; |
|||
update ic_resi_user set ic_resi_user.IS_TENANT='0' where ic_resi_user.IS_TENANT is null or ic_resi_user.IS_TENANT=''; |
Loading…
Reference in new issue