Browse Source

统计做成定时任务

master
陈裕财 4 years ago
parent
commit
83fa7db82b
  1. 97
      xm-core/src/main/java/com/xm/calc/service/AutoCalcService.java
  2. 16
      xm-core/src/main/java/com/xm/core/service/XmRecordService.java
  3. 29
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordMapper.xml

97
xm-core/src/main/java/com/xm/calc/service/AutoCalcService.java

@ -0,0 +1,97 @@
package com.xm.calc.service;
import com.xm.core.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Service
public class AutoCalcService{
@Autowired
StringRedisTemplate redisTemplate;
@Autowired
XmRecordService xmRecordService;
@Autowired
XmProjectStateService xmProjectStateService;
@Autowired
XmProductStateService xmProductStateService;
@Autowired
XmMenuStateService xmMenuStateService;
@Autowired
XmIterationStateService xmIterationStateService;
@Autowired
XmBranchStateService xmBranchStateService;
@Autowired
XmGroupStateService xmGroupStateService;
@Scheduled(cron = "* * 0 * * ?")
public void load_tasks_to_xm_project_state(){
List<String> projectIds=xmRecordService.selectChangeProjectIds();
if(projectIds!=null && projectIds.size()>0){
for (String projectId : projectIds) {
boolean notExists=redisTemplate.opsForValue().setIfAbsent("load_tasks_to_xm_project_state-"+projectId,"1",12L, TimeUnit.HOURS);
if(notExists){
xmProjectStateService.loadTasksToXmProjectState(projectId);
xmGroupStateService.loadTasksToXmProjectGroupState(projectId);
}
}
}
}
@Scheduled(cron = "* * 0 * * ?")
public void load_tasks_to_xm_product_state(){
List<String> productIds=xmRecordService.selectChangeProductIds();
if(productIds!=null && productIds.size()>0){
for (String productId : productIds) {
boolean notExists=redisTemplate.opsForValue().setIfAbsent("load_tasks_to_xm_product_state-"+productId,"1",12L, TimeUnit.HOURS);
if(notExists){
xmMenuStateService.loadTasksToXmMenuState(productId);
xmProductStateService.loadTasksToXmProductState(productId);
}
}
}
}
@Scheduled(cron = "* * 3 * * ?")
public void load_tasks_to_xm_iteration_state(){
List<String> iterationIds=xmRecordService.selectChangeIterationIds();
if(iterationIds!=null && iterationIds.size()>0){
for (String iterationId : iterationIds) {
boolean notExists=redisTemplate.opsForValue().setIfAbsent("load_tasks_to_xm_iteration_state-"+iterationId,"1",12L, TimeUnit.HOURS);
if(notExists){
xmIterationStateService.loadTasksToXmIterationState(iterationId);
}
}
}
}
@Scheduled(cron = "* * 4 * * ?")
public void load_project_state_to_xm_branch_state(){
List<String> branchIds=xmRecordService.selectChangeBranchIds();
if(branchIds!=null && branchIds.size()>0){
for (String branchId : branchIds) {
boolean notExists=redisTemplate.opsForValue().setIfAbsent("load_project_state_to_xm_branch_state-"+branchId,"1",12L, TimeUnit.HOURS);
if(notExists){
xmBranchStateService.loadProjectStateToXmBranchState(branchId);
}
}
}
}
}

16
xm-core/src/main/java/com/xm/core/service/XmRecordService.java

@ -434,5 +434,21 @@ public class XmRecordService extends BaseService {
public String createKey(String keyName) { public String createKey(String keyName) {
return "R"+sequenceService.getCommonNo("{date62:yyyyMMddHHmmss}{rands:4}"); return "R"+sequenceService.getCommonNo("{date62:yyyyMMddHHmmss}{rands:4}");
} }
public List<String> selectChangeProjectIds() {
return selectList("selectChangeProjectIds",map());
}
public List<String> selectChangeProductIds() {
return selectList("selectChangeProductIds",map());
}
public List<String> selectChangeBranchIds() {
return selectList("selectChangeBranchIds",map());
}
public List<String> selectChangeIterationIds() {
return selectList("selectChangeIterationIds",map());
}
} }

29
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordMapper.xml

@ -15,6 +15,35 @@
</sql> </sql>
<select id="selectChangeBranchIds" parameterType="HashMap" resultType="String">
SELECT DISTINCT
branch_id
FROM
xm_record
where oper_time &gt;= DATE_SUB(now(), INTERVAL 2 DAY)
</select>
<select id="selectChangeProjectIds" parameterType="HashMap" resultType="String">
SELECT DISTINCT
project_Id
FROM
xm_record
where oper_time &gt;= DATE_SUB(now(), INTERVAL 2 DAY)
</select>
<select id="selectChangeProductIds" parameterType="HashMap" resultType="String">
SELECT DISTINCT
product_id
FROM
xm_record
where oper_time &gt;= DATE_SUB(now(), INTERVAL 2 DAY)
</select>
<select id="selectChangeIterationIds" parameterType="HashMap" resultType="String">
SELECT DISTINCT
m.iteration_id
FROM
xm_record r inner join xm_menu m on m.menu_id=r.biz_id and r.obj_type='menu'
where oper_time &gt;= DATE_SUB(now(), INTERVAL 2 DAY)
</select>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

Loading…
Cancel
Save