Browse Source

增加免登录的项目统计列表,所有机构汇总接口

master
陈裕财 5 years ago
parent
commit
b817c0822a
  1. 7
      xm-bootstrap/src/main/java/com/xm/WebSecurityConfig.java
  2. 16
      xm-core/src/main/java/com/xm/core/ctrl/XmBranchStateController.java
  3. 25
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateController.java
  4. 7
      xm-core/src/main/java/com/xm/core/service/XmBranchStateService.java
  5. 7
      xm-core/src/main/java/com/xm/core/service/XmProjectStateService.java
  6. 15
      xm-core/src/main/java/com/xm/core/service/cache/XmProjectCacheService.java
  7. 52
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmBranchStateMapper.xml
  8. 7
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectStateMapper.xml

7
xm-bootstrap/src/main/java/com/xm/WebSecurityConfig.java

@ -37,7 +37,12 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
*/ */
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/**/xm/core/xmTask/shareTaskDetail","/**/xm/core/xmTask/getOutTask").permitAll().
http.authorizeRequests().antMatchers(
"/**/xm/core/xmTask/shareTaskDetail",
"/**/xm/core/xmTask/getOutTask",
"/**/xm/core/xmBranchState/list/portal/allBranchSum",
"/**/xm/core/xmProjectState/list/portal"
).permitAll().
anyRequest().authenticated(); anyRequest().authenticated();
http.oauth2Client().and().logout().disable(); http.oauth2Client().and().logout().disable();

16
xm-core/src/main/java/com/xm/core/ctrl/XmBranchStateController.java

@ -116,7 +116,23 @@ public class XmBranchStateController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
@ApiOperation( value = "查询机构内所有项目指标汇总信息列表",notes="listXmBranchState,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiResponses({
@ApiResponse(code = 200,response= XmBranchState.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'错误码'},pageInfo:{total:总记录数},data:[数据对象1,数据对象2,...]}")
})
@RequestMapping(value="/list/portal/allBranchSum",method=RequestMethod.GET)
public Map<String,Object> listPortalAllXmBranchSumState( @RequestParam Map<String,Object> xmBranchState){
Map<String,Object> m = new HashMap<>();
RequestUtils.transformArray(xmBranchState, "ids");
PageUtils.startPage(xmBranchState);
List<Map<String,Object>> xmBranchStateList = xmBranchStateService.listPortalAllXmBranchSumState(xmBranchState); //列出XmBranchState列表
PageUtils.responePage(m, xmBranchStateList);
m.put("data",xmBranchStateList);
Tips tips=new Tips("查询成功");
m.put("tips", tips);
return m;
}
@ApiOperation( value = "从项目汇总表汇总数据到机构汇总表",notes="") @ApiOperation( value = "从项目汇总表汇总数据到机构汇总表",notes="")
@ApiResponses({ @ApiResponses({

25
xm-core/src/main/java/com/xm/core/ctrl/XmProjectStateController.java

@ -4,8 +4,10 @@ import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException; import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils; import com.mdp.core.utils.RequestUtils;
import com.mdp.mybatis.PageUtils; import com.mdp.mybatis.PageUtils;
import com.xm.core.entity.XmProductState;
import com.xm.core.entity.XmProjectState; import com.xm.core.entity.XmProjectState;
import com.xm.core.service.XmProjectStateService; import com.xm.core.service.XmProjectStateService;
import com.xm.core.service.cache.XmProjectCacheService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@ -38,7 +40,8 @@ public class XmProjectStateController {
@Autowired @Autowired
private XmProjectStateService xmProjectStateService; private XmProjectStateService xmProjectStateService;
@Autowired
XmProjectCacheService projectCacheService;
@ApiOperation( value = "查询项目指标日统计表信息列表",notes="listXmProjectState,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}") @ApiOperation( value = "查询项目指标日统计表信息列表",notes="listXmProjectState,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ -120,7 +123,27 @@ public class XmProjectStateController {
m.put("tips", tips); m.put("tips", tips);
return m; return m;
} }
@ApiOperation( value = "查询功能状态表,无需前端维护,所有数据由汇总统计得出信息列表",notes="listXmProductState,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiResponses({
@ApiResponse(code = 200,response= XmProductState.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'错误码'},pageInfo:{total:总记录数},data:[数据对象1,数据对象2,...]}")
})
@RequestMapping(value="/list/portal",method=RequestMethod.GET)
public Map<String,Object> listXmProductStateForPortal( @RequestParam Map<String,Object> xmProductState){
Map<String,Object> m = new HashMap<>();
RequestUtils.transformArray(xmProductState, "ids");
PageUtils.startPage(xmProductState);
List<Map<String,Object>> xmProjectStateList = projectCacheService.getPortalProjectStates(); //列出XmProductState列表
if(xmProjectStateList==null){
xmProjectStateList=xmProjectStateService.selectPortalProjectStates(xmProductState);
projectCacheService.putPortalProjectStates(xmProjectStateList);
}
PageUtils.responePage(m, xmProjectStateList);
m.put("data",xmProjectStateList);
Tips tips=new Tips("查询成功");
m.put("tips", tips);
return m;
}
@ApiOperation( value = "从任务单抽取实际工作量等统计数据更新到状态报告中",notes="") @ApiOperation( value = "从任务单抽取实际工作量等统计数据更新到状态报告中",notes="")

7
xm-core/src/main/java/com/xm/core/service/XmBranchStateService.java

@ -3,6 +3,9 @@ package com.xm.core.service;
import com.mdp.core.service.BaseService; import com.mdp.core.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/** /**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br>
* 组织 com.qqkj 顶级模块 xm 大模块 core 小模块 <br> * 组织 com.qqkj 顶级模块 xm 大模块 core 小模块 <br>
@ -16,6 +19,10 @@ public class XmBranchStateService extends BaseService {
} }
public List<Map<String, Object>> listPortalAllXmBranchSumState(Map<String, Object> xmBranchState) {
return this.selectList("listPortalAllXmBranchSumState",xmBranchState);
}
/** 请在此类添加自定义函数 */ /** 请在此类添加自定义函数 */
} }

7
xm-core/src/main/java/com/xm/core/service/XmProjectStateService.java

@ -4,6 +4,9 @@ import com.mdp.core.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/** /**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br>
* 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块 <br> * 组织 com.qqkj 顶级模块 oa 大模块 xm 小模块 <br>
@ -25,5 +28,9 @@ public class XmProjectStateService extends BaseService {
public int loadTasksSettleToXmProjectState(String projectId) { public int loadTasksSettleToXmProjectState(String projectId) {
return this.update("loadTasksSettleToXmProjectState", projectId); return this.update("loadTasksSettleToXmProjectState", projectId);
} }
public List<Map<String, Object>> selectPortalProjectStates(Map<String,Object> params) {
return this.selectList("selectPortalProjectStates",params);
}
} }

15
xm-core/src/main/java/com/xm/core/service/cache/XmProjectCacheService.java

@ -5,6 +5,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Service @Service
@ -30,4 +32,17 @@ public class XmProjectCacheService {
} }
public void putPortalProjectStates(List<Map<String,Object>> projects){
String key=this.getCacheKey()+"_"+"portal";
String hashKey=key;
redisTemplate.opsForHash().put(key, hashKey, projects);
redisTemplate.expire(hashKey, 24, TimeUnit.HOURS);
}
public List<Map<String,Object>> getPortalProjectStates(){
String key=this.getCacheKey()+"_"+"portal";
String hashKey=key;
return (List<Map<String,Object>>) redisTemplate.opsForHash().get(key, hashKey);
}
} }

52
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmBranchStateMapper.xml

@ -6,7 +6,59 @@
<!--开始 自定sql函数区域 --> <!--开始 自定sql函数区域 -->
<!--请在此区域添加自定义函数--> <!--请在此区域添加自定义函数-->
<select id="listPortalAllXmBranchSumState" parameterType="HashMap" resultType="HashMap">
SELECT
sum( ifnull( total_file_cnt, 0 ) ) total_file_cnt,
sum( ifnull( total_bug_cnt, 0 ) ) total_bug_cnt,
sum( ifnull( total_task_cnt, 0 ) ) total_task_cnt,
sum( ifnull( total_budget_nouser_amount, 0 ) ) total_budget_nouser_amount,
sum( ifnull( total_staff_cnt, 0 ) ) total_staff_cnt,
sum( ifnull( total_cost_nouser_amount, 0 ) ) total_cost_nouser_amount,
sum( ifnull( total_closed_bug_cnt, 0 ) ) total_closed_bug_cnt,
sum( ifnull( total_resolved_bug_cnt, 0 ) ) total_resolved_bug_cnt,
sum( ifnull( total_complete_task_cnt, 0 ) ) total_complete_task_cnt,
sum( ifnull( total_phase_cnt, 0 ) ) total_phase_cnt,
sum( ifnull( total_complete_phase_cnt, 0 ) ) total_complete_phase_cnt,
sum( ifnull( total_need_pay_amount, 0 ) ) total_need_pay_amount,
sum( ifnull( total_finish_pay_amount, 0 ) ) total_finish_pay_amount,
sum( ifnull( total_need_col_amount, 0 ) ) total_need_col_amount,
sum( ifnull( total_finish_col_amount, 0 ) ) total_finish_col_amount,
sum( ifnull( total_cost_user_amount, 0 ) ) total_cost_user_amount,
sum( ifnull( total_budget_inner_user_amount, 0 ) ) total_budget_inner_user_amount,
sum( ifnull( total_plan_workload, 0 ) ) total_plan_workload,
sum( ifnull( total_risk_cnt, 0 ) ) total_risk_cnt,
sum( ifnull( total_complete_risk_cnt, 0 ) ) total_complete_risk_cnt,
sum( ifnull( total_budget_out_user_amount, 0 ) ) total_budget_out_user_amount,
sum( ifnull( total_complete_workload, 0 ) ) total_complete_workload,
sum( ifnull( total_cost_inner_user_amount, 0 ) ) total_cost_inner_user_amount,
sum( ifnull( total_cost_out_user_amount, 0 ) ),
sum( ifnull( total_progress, 0 ) ),
sum( ifnull( total_active_bug_cnt, 0 ) ),
sum( ifnull( total_confirmed_bug_cnt, 0 ) ),
sum( ifnull( project_status, 0 ) ) project_status,
sum( ifnull( total_act_workload, 0 ) ) total_act_workload,
sum( ifnull( total_act_out_workload, 0 ) ) total_act_out_workload,
sum( ifnull( total_act_inner_workload, 0 ) ) total_act_inner_workload,
sum( ifnull( total_task_budget_cost_at, 0 ) ) total_task_budget_cost_at,
sum( ifnull( total_task_out_cnt, 0 ) ),
sum( ifnull( total_need_pay_cnt, 0 ) ) total_need_pay_cnt,
sum( ifnull( total_finish_pay_cnt, 0 ) ) total_finish_pay_cnt,
sum( ifnull( total_finish_pay_user_cnt, 0 ) ) total_finish_pay_user_cnt,
sum( ifnull( total_need_pay_user_cnt, 0 ) ) total_need_pay_user_cnt,
sum( ifnull( total_plan_inner_user_workload, 0 ) ) total_plan_inner_user_workload,
sum( ifnull( total_plan_out_user_workload, 0 ) ) total_plan_out_user_workload,
sum( ifnull( test_cases, 0 ) ) test_cases,
sum( ifnull( exec_cases, 0 ) ) exec_cases,
sum( ifnull( design_cases, 0 ) ) design_cases,
sum( ifnull( finish_cases, 0 ) ) finish_cases,
sum( ifnull( iteration_cnt, 0 ) ) iteration_cnt,
sum( ifnull( product_cnt, 0 ) ) product_cnt,
sum( ifnull( menu_cnt, 0 ) ) menu_cnt
FROM
XM.xm_branch_state res
where res.biz_date = DATE_FORMAT(date_sub(now(),INTERVAL 1 DAY), '%Y-%m-%d')
</select>
<!-- 根据条件修改若干条记录 --> <!-- 根据条件修改若干条记录 -->
<update id="loadProjectStateToXmBranchState" parameterType="String" statementType="CALLABLE"> <update id="loadProjectStateToXmBranchState" parameterType="String" statementType="CALLABLE">
{call load_project_state_to_xm_branch_state(#{branchId,mode=IN})} {call load_project_state_to_xm_branch_state(#{branchId,mode=IN})}

7
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectStateMapper.xml

@ -6,7 +6,12 @@
<!--开始 自定sql函数区域 --> <!--开始 自定sql函数区域 -->
<!--请在此区域添加自定义函数--> <!--请在此区域添加自定义函数-->
<select id="selectPortalProjectStates" parameterType="HashMap" resultType="HashMap">
select * from XM.xm_project_state res
<where>
res.calc_time > DATE_SUB(now(),INTERVAL 7 DAY)
</where>
</select>
<!-- 根据条件修改若干条记录 --> <!-- 根据条件修改若干条记录 -->
<update id="loadTasksToXmProjectState" parameterType="String" statementType="CALLABLE"> <update id="loadTasksToXmProjectState" parameterType="String" statementType="CALLABLE">

Loading…
Cancel
Save