19 changed files with 779 additions and 8 deletions
@ -0,0 +1,59 @@ |
|||
package com.elink.esua.epdc.modules.screen.controller; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.modules.screen.service.ScreenPublicDataService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* 大屏公共数据上报 |
|||
* |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 14:06 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("data/stats/screencoll") |
|||
public class ScreenPublicDataController { |
|||
|
|||
@Autowired |
|||
private ScreenPublicDataService screenPublicDataService; |
|||
|
|||
/** |
|||
* 014、组织层级 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.public Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/9 15:49 |
|||
*/ |
|||
@PostMapping("customeragency") |
|||
public Result customerAgency() { |
|||
return screenPublicDataService.customerAgency(); |
|||
} |
|||
|
|||
/** |
|||
* 015、网格信息上传 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.public Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/9 15:55 |
|||
*/ |
|||
@PostMapping("customergrid") |
|||
public Result customerGrid() { |
|||
return screenPublicDataService.customerGrid(); |
|||
} |
|||
|
|||
/** |
|||
* 016、部门信息上传 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.public Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/9 15:55 |
|||
*/ |
|||
@PostMapping("customerdept") |
|||
public Result customerDept() { |
|||
return screenPublicDataService.customerDept(); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.elink.esua.epdc.modules.screen.dao; |
|||
|
|||
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerAgencyDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerDeptDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerGridDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenPublicDataResultDTO; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 14:13 |
|||
*/ |
|||
@Mapper |
|||
public interface ScreenPublicDataDao extends BaseDao<ScreenPublicDataResultDTO> { |
|||
|
|||
/** |
|||
* 014、组织层级 |
|||
* |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenCustomerAgencyDTO> |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:24 |
|||
*/ |
|||
List<ScreenCustomerAgencyDTO> customerAgency(); |
|||
|
|||
/** |
|||
* 015、网格信息上传 |
|||
* |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenCustomerGridDTO> |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:24 |
|||
*/ |
|||
List<ScreenCustomerGridDTO> customerGrid(); |
|||
|
|||
/** |
|||
* 016、部门信息上传 |
|||
* |
|||
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.ScreenCustomerDeptDTO> |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:23 |
|||
*/ |
|||
List<ScreenCustomerDeptDTO> customerDept(); |
|||
} |
@ -0,0 +1,39 @@ |
|||
package com.elink.esua.epdc.modules.screen.service; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
|
|||
/** |
|||
* 大屏公共信息统计 |
|||
* |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 14:08 |
|||
*/ |
|||
public interface ScreenPublicDataService { |
|||
|
|||
/** |
|||
* 014、组织层级 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:24 |
|||
*/ |
|||
Result customerAgency(); |
|||
|
|||
/** |
|||
* 015、网格信息上传 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:24 |
|||
*/ |
|||
Result customerGrid(); |
|||
|
|||
/** |
|||
* 016、部门信息上传 |
|||
* |
|||
* @return com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:24 |
|||
*/ |
|||
Result customerDept(); |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.elink.esua.epdc.modules.screen.service.impl; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.elink.esua.epdc.commons.tools.constant.EpmetConstant; |
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerAgencyDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerDeptDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenCustomerGridDTO; |
|||
import com.elink.esua.epdc.dto.screen.result.ScreenPublicDataResultDTO; |
|||
import com.elink.esua.epdc.modules.screen.dao.ScreenPublicDataDao; |
|||
import com.elink.esua.epdc.modules.screen.service.ScreenPublicDataService; |
|||
import com.elink.esua.epdc.utils.EpmetUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 14:08 |
|||
*/ |
|||
@Service |
|||
public class ScreenPublicDataServiceImpl extends BaseServiceImpl<ScreenPublicDataDao, ScreenPublicDataResultDTO> implements ScreenPublicDataService { |
|||
|
|||
@Autowired |
|||
private EpmetUtils epmetUtils; |
|||
|
|||
@Override |
|||
public Result customerAgency() { |
|||
List<ScreenCustomerAgencyDTO> data = baseDao.customerAgency(); |
|||
JSONObject jsonObject = new JSONObject(); |
|||
jsonObject.put("isFirst", true); |
|||
jsonObject.put("dataList", data); |
|||
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_COLL_CUSTOMER_AGENCY, JSONObject.toJSONString(jsonObject)); |
|||
return new Result(); |
|||
} |
|||
|
|||
@Override |
|||
public Result customerGrid() { |
|||
List<ScreenCustomerGridDTO> data = baseDao.customerGrid(); |
|||
JSONObject jsonObject = new JSONObject(); |
|||
jsonObject.put("isFirst", true); |
|||
jsonObject.put("dataList", data); |
|||
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_COLL_CUSTOMER_GRID, JSONObject.toJSONString(jsonObject)); |
|||
return new Result(); |
|||
} |
|||
|
|||
@Override |
|||
public Result customerDept() { |
|||
List<ScreenCustomerDeptDTO> data = baseDao.customerDept(); |
|||
JSONObject jsonObject = new JSONObject(); |
|||
jsonObject.put("isFirst", true); |
|||
jsonObject.put("dataList", data); |
|||
epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_COLL_CUSTOMER_DEPT, JSONObject.toJSONString(jsonObject)); |
|||
return new Result(); |
|||
} |
|||
} |
@ -0,0 +1,67 @@ |
|||
<?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.elink.esua.epdc.modules.screen.dao.ScreenPublicDataDao"> |
|||
|
|||
<select id="customerAgency" resultType="com.elink.esua.epdc.dto.screen.result.ScreenCustomerAgencyDTO"> |
|||
SELECT sd.`id` AS agencyId, |
|||
sd.`name` AS agencyName, |
|||
sd.`pid` AS pid, |
|||
sd.`pids` AS pids, |
|||
CASE WHEN sd2.`name` IS NULL |
|||
AND sd1.`name` IS NULL THEN sd.`name` WHEN sd2.`name` IS NULL THEN CONCAT(sd1.`name`, '-', sd.`name`) ELSE CONCAT(IFNULL(sd2.`name`, ''), '-', IFNULL(sd1.`name`, ''), '-', sd.`name`) END AS allParentNames, |
|||
'' AS areaMarks, |
|||
'' AS centerMark, |
|||
'' AS partyMark, |
|||
CASE sd.`type_key` WHEN 'community_party' THEN 'community' WHEN 'district_party' THEN 'district' WHEN 'street_party' THEN 'street' ELSE '' END AS `level`, |
|||
sd.area_code AS areaCode, |
|||
DATE_FORMAT(NOW(), '%Y%m%d') AS dataEndTime |
|||
FROM `esua_epdc_admin`.`sys_dept` sd |
|||
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd1 ON sd1.`id`= sd.`pid` |
|||
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd2 ON sd2.`id`= sd1.`pid` |
|||
WHERE sd.`del_flag`= 0 |
|||
AND sd.`type_key`IN('community_party', 'district_party', 'street_party') |
|||
AND sd.`id` NOT IN( |
|||
SELECT t.`dept_id` |
|||
FROM `esua_epdc_admin`.`sys_dept_config` t |
|||
WHERE t.`del_flag`= 0) |
|||
</select> |
|||
|
|||
<select id="customerGrid" resultType="com.elink.esua.epdc.dto.screen.result.ScreenCustomerGridDTO"> |
|||
SELECT sd.`id` AS gridId, |
|||
sd.`name` AS gridName, |
|||
sd.`pid` AS parentAgencyId, |
|||
sd.`pids` AS allParentIds, |
|||
'' AS areaMarks, |
|||
'' AS centerMark, |
|||
'' AS partyMark, |
|||
DATE_FORMAT(NOW(), '%Y%m%d') AS dataEndTime, |
|||
sd.area_code |
|||
FROM `esua_epdc_admin`.`sys_dept` sd |
|||
WHERE sd.`del_flag`= 0 |
|||
AND sd.`type_key`= 'grid_party' |
|||
AND sd.`id` NOT IN( |
|||
SELECT t.`dept_id` |
|||
FROM `esua_epdc_admin`.`sys_dept_config` t |
|||
WHERE t.`del_flag`= 0) |
|||
</select> |
|||
|
|||
<select id="customerDept" resultType="com.elink.esua.epdc.dto.screen.result.ScreenCustomerDeptDTO"> |
|||
SELECT sd.`id` AS deptId, |
|||
sd.`name` AS deptName, |
|||
sd.`pid` AS parentAgencyId, |
|||
'' AS areaMarks, |
|||
'' AS centerMark, |
|||
'' AS deptMark, |
|||
DATE_FORMAT(NOW(), '%Y%m%d') AS dataEndTime, |
|||
sd.area_code |
|||
FROM `esua_epdc_admin`.`sys_dept` sd |
|||
WHERE sd.`del_flag`= 0 |
|||
AND sd.`type_key` IN ('street_dept', 'district_dept') |
|||
AND sd.`id` NOT IN( |
|||
SELECT t.`dept_id` |
|||
FROM `esua_epdc_admin`.`sys_dept_config` t |
|||
WHERE t.`del_flag`= 0) |
|||
</select> |
|||
|
|||
</mapper> |
@ -0,0 +1,116 @@ |
|||
package com.elink.esua.epdc.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* 大屏基础数据上报定时任务入参 |
|||
* |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/15 10:30 |
|||
*/ |
|||
@Data |
|||
public class ScreenJobBasicDataParamDTO implements Serializable { |
|||
private static final long serialVersionUID = -8868143963953751575L; |
|||
|
|||
/** |
|||
* 1、首页-平台各类总数上报 - 定时任务入参 |
|||
*/ |
|||
private String homePagePlatformSummary; |
|||
|
|||
/** |
|||
* 2、议题分析-各类总数 - 定时任务入参 |
|||
*/ |
|||
private String issueSummary; |
|||
|
|||
/** |
|||
* 3、议题分析-参与趋势 - 定时任务入参 |
|||
*/ |
|||
private String issueTrend; |
|||
|
|||
/** |
|||
* 4、用户分析-各类总数 - 定时任务入参 |
|||
*/ |
|||
private String userSummary; |
|||
|
|||
/** |
|||
* 5、公益互助-志愿者公益时长排名 - 定时任务入参 |
|||
*/ |
|||
private String volunteerHeartRank; |
|||
|
|||
/** |
|||
* 6、用户分析-用户趋势 - 定时任务入参 |
|||
*/ |
|||
private String userUserHeartRank; |
|||
|
|||
/** |
|||
* 7、公益互助-活动各类总数 - 定时任务入参 |
|||
*/ |
|||
private String actSummary; |
|||
|
|||
/** |
|||
* 8、公益互助-活动次数趋势 - 定时任务入参 |
|||
*/ |
|||
private String actTrend; |
|||
|
|||
/** |
|||
* 9、公益互助-志愿者画像 - 定时任务入参 |
|||
*/ |
|||
private String actVolunteerSummary; |
|||
|
|||
/** |
|||
* 10、项目分析-各类总数 - 定时任务入参 |
|||
*/ |
|||
private String projectSummary; |
|||
|
|||
/** |
|||
* 11、项目分析-按分类统计 - 定时任务入参 |
|||
*/ |
|||
private String projectCategorySummary; |
|||
|
|||
/** |
|||
* 12、项目分析-满意度分析 - 定时任务入参 |
|||
*/ |
|||
private String projectStatisticAnalysis; |
|||
|
|||
/** |
|||
* 13、党建声音-新闻各类总数汇总 - 定时任务入参 |
|||
*/ |
|||
private String newsSummary; |
|||
|
|||
/** |
|||
* 14、党建声音-新闻阅读参与趋势 - 定时任务入参 |
|||
*/ |
|||
private String newsTrend; |
|||
|
|||
/** |
|||
* 15、党建声音-热度新闻排行 - 定时任务入参 |
|||
*/ |
|||
private String newsHotRank; |
|||
|
|||
/** |
|||
* 16、党建声音-新闻按类别统计 - 定时任务入参 |
|||
*/ |
|||
private String newsCategoryAnalysis; |
|||
|
|||
/** |
|||
* 17、邻里党群-各类总数汇总 - 定时任务入参 |
|||
*/ |
|||
private String groupSummary; |
|||
|
|||
/** |
|||
* 18、邻里党群-小组详情 - 定时任务入参 |
|||
*/ |
|||
private String groupDetail; |
|||
|
|||
/** |
|||
* 19、邻里党群-话题参与趋势 - 定时任务入参 |
|||
*/ |
|||
private String groupTopicTrend; |
|||
|
|||
/** |
|||
* 09、党建引领|基层治理-居民(党员)积分排行榜 - 定时任务入参 |
|||
*/ |
|||
private String partyUserRankData; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.elink.esua.epdc.task.screen; |
|||
|
|||
/** |
|||
* 大屏公共信息统计上报 |
|||
* |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 13:56 |
|||
*/ |
|||
public interface ScreenPublicDataPushTask { |
|||
|
|||
/** |
|||
* 大屏数据推送 |
|||
* |
|||
* @param param 入参 |
|||
* @return void |
|||
* @author Liuchuang |
|||
* @since 2020/9/9 15:21 |
|||
*/ |
|||
void run(String param); |
|||
} |
@ -0,0 +1,113 @@ |
|||
package com.elink.esua.epdc.task.screen; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.elink.esua.epdc.dto.ScreenJobBasicDataParamDTO; |
|||
import com.elink.esua.epdc.feign.AnalysisFeignClient; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.concurrent.Callable; |
|||
import java.util.concurrent.ExecutorService; |
|||
import java.util.concurrent.Executors; |
|||
import java.util.concurrent.Future; |
|||
|
|||
/** |
|||
* 大屏公共信息统计上报 |
|||
* |
|||
* @Author:liuchuang |
|||
* @Date:2020/9/17 13:56 |
|||
*/ |
|||
@Component("screenPublicDataPushTask") |
|||
public class ScreenPublicDataPushTaskImpl implements ScreenPublicDataPushTask { |
|||
|
|||
private final Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
private static final ExecutorService service = Executors.newFixedThreadPool(100); |
|||
|
|||
@Autowired |
|||
private AnalysisFeignClient analysisFeignClient; |
|||
|
|||
@Override |
|||
public void run(String param) { |
|||
// 参数处理
|
|||
ScreenJobBasicDataParamDTO paramDto = new ScreenJobBasicDataParamDTO(); |
|||
if (StringUtils.isNotEmpty(param)) { |
|||
paramDto = JSONObject.parseObject(param, ScreenJobBasicDataParamDTO.class); |
|||
} |
|||
for(int i = 0 ; i < 3 ; i++){ |
|||
createThread(i, paramDto); |
|||
} |
|||
} |
|||
|
|||
public Integer createThread(Integer methodIndex, ScreenJobBasicDataParamDTO paramDto){ |
|||
Future<Integer> future = service.submit(new Callable<Integer>() { |
|||
@Override |
|||
public Integer call() throws Exception { |
|||
Thread.sleep(200); |
|||
if (methodIndex == 0) { |
|||
customerAgency(); |
|||
} else if (methodIndex == 1){ |
|||
customerGrid(); |
|||
} else if (methodIndex == 2){ |
|||
customerDept(); |
|||
} |
|||
return 0; |
|||
} |
|||
}); |
|||
Integer isSuccess = 0; |
|||
try { |
|||
isSuccess = future.get(); |
|||
}catch (Exception e){ |
|||
e.printStackTrace(); |
|||
} |
|||
return isSuccess; |
|||
} |
|||
|
|||
/** |
|||
* 014、组织层级 |
|||
* |
|||
* @return void |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:01 |
|||
*/ |
|||
public void customerAgency() { |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|组织层级上传>定时任务开始执行"); |
|||
analysisFeignClient.customerAgency(); |
|||
logger.info("<" + methodName + "|组织层级上传>定时任务执行结束"); |
|||
} |
|||
|
|||
/** |
|||
* 015、网格信息上传 |
|||
* |
|||
* @return void |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:01 |
|||
*/ |
|||
public void customerGrid() { |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|网格信息上传>定时任务开始执行"); |
|||
analysisFeignClient.customerGrid(); |
|||
logger.info("<" + methodName + "|网格信息上传>定时任务执行结束"); |
|||
} |
|||
|
|||
/** |
|||
* 016、部门信息上传 |
|||
* |
|||
* @return void |
|||
* @author Liuchuang |
|||
* @since 2020/9/17 14:02 |
|||
*/ |
|||
public void customerDept() { |
|||
// 方法名
|
|||
String methodName = Thread.currentThread().getStackTrace()[2].getMethodName(); |
|||
logger.info("<" + methodName + "|部门信息上传>定时任务开始执行"); |
|||
analysisFeignClient.customerDept(); |
|||
logger.info("<" + methodName + "|部门信息上传>定时任务执行结束"); |
|||
} |
|||
} |
Loading…
Reference in new issue