Browse Source

浏览量记录器

master
陈裕财 3 years ago
parent
commit
25effe631b
  1. 4
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  2. 51
      xm-core/src/main/java/com/xm/core/service/XmTaskCalcService.java
  3. 4
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  4. 4
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

4
xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java

@ -90,6 +90,8 @@ public class XmTaskController {
@Autowired @Autowired
PushNotifyMsgService notifyMsgService; PushNotifyMsgService notifyMsgService;
Map<String,Object> fieldsMap = BaseUtils.toMap(new XmTask()); Map<String,Object> fieldsMap = BaseUtils.toMap(new XmTask());
Map<String,Object> fieldNameMap=map("id","任务编号","name","任务名称","parentTaskid","父任务编号","parentTaskname","父任务名称","projectId","项目编号","projectName","项目名称","level","任务级别","sortLevel","序号","executorUserid","任务执行人编号","executorUsername","任务执行人","preTaskid","前置任务编号","preTaskname","前置任务名称","startTime","任务开始时间","endTime","任务结束时间","milestone","里程碑","description","任务描述","remarks","备注","createUserid","任务创建人编号(谁创建谁负责)","createUsername","任务创建人(谁创建谁负责)","createTime","创建时间","rate","任务进度0-100(=实际工时/(实际工时+剩余工时)*100)","budgetAt","当前任务预算金额(calc_type=2时预算工时*单价,calc_type=1时下级汇总)","budgetWorkload","预算工时(calc_type=2时手工填写,calc_type=1时下级汇总)","actAt","当前任务实际费用金额(calc_type=2时,取实际工时*单价,calc_type=1时取下级汇总数据)待结算金额","actWorkload","任务取工时表报工工时汇总,","taskState","任务状态0待领取1已领取执行中2已完工3已结算4已关闭","taskType","0售前方案1投标2需求3设计4开发5测试6验收7部署8运维--来自基础数据表taskType","taskClass","1需结算0不需结算","toTaskCenter","是否发布到任务大厅0否1是,1时互联网可访问","actStartTime","实际开始时间-任务状态变成执行中的时间","actEndTime","实际结束时间-任务状态变成完工状态时的时间","bizProcInstId","当前流程实例编号","bizFlowState","当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除","phaseId","项目阶段编号(作废)","phaseName","项目阶段名称(作废)","taskSkillNames","技能列表,逗号分隔","exeUsernames","执行人列表逗号分隔如陈x(审核人),王x(监控人)","taskSkillIds","技能编号列表逗号分隔","exeUserids","执行人编号列表逗号分隔如u1(1),u2(2)","taskOut","执行方式-0内研1外购","planType","计划类型w1-周,w2-2周,w3-3周,m1-1月,m2-2月,q1-季,q2-半年,y1-年","settleSchemel","任务结算方案-来自数字字典xmTaskSettleSchemel","menuId","归属功能编号","menuName","归属功能名称","productId","产品编号根据功能变化带进","cbranchId","创建机构","cdeptid","创建部门","tagIds","标签编号,逗号分割","tagNames","标签名称,逗号分割","ntype","节点类型0-任务,1-计划。计划下可建立计划和任务,任务下不允许再扩展。也就是非叶子节点都是计划,叶子节点有可能是计划或者任务","childrenCnt","儿子节点个数","ltime","更新时间","pidPaths","父级id逗号分割,最后一个为本节点节点编号,以,号结尾","lvl","层级0-顶级,1-一级,2-二级,3-三级,4-四级。总共5级","isTpl","是否为模板","keyPath","是否为关键路径上的节点","uniInnerPrice","内部单位工时单价","uniOutPrice","外部单位工时单价","calcType","数据统计方式","ptype","计划分类0-项目,1产品,空为不区分","wtype","报工方式1-强制每日报工,2-工期内报工,0-无需报工","bctrl","报工限制0-不限制,1-不得超出预估工时","initWorkload","原始预估工作量,budget_workload发生变化后,进行备份","shareFee","分享赚佣金","oshare","开启分享赚功能0-否1是","crowd","是否众包0否1是,众包属于外购的一种"); Map<String,Object> fieldNameMap=map("id","任务编号","name","任务名称","parentTaskid","父任务编号","parentTaskname","父任务名称","projectId","项目编号","projectName","项目名称","level","任务级别","sortLevel","序号","executorUserid","任务执行人编号","executorUsername","任务执行人","preTaskid","前置任务编号","preTaskname","前置任务名称","startTime","任务开始时间","endTime","任务结束时间","milestone","里程碑","description","任务描述","remarks","备注","createUserid","任务创建人编号(谁创建谁负责)","createUsername","任务创建人(谁创建谁负责)","createTime","创建时间","rate","任务进度0-100(=实际工时/(实际工时+剩余工时)*100)","budgetAt","当前任务预算金额(calc_type=2时预算工时*单价,calc_type=1时下级汇总)","budgetWorkload","预算工时(calc_type=2时手工填写,calc_type=1时下级汇总)","actAt","当前任务实际费用金额(calc_type=2时,取实际工时*单价,calc_type=1时取下级汇总数据)待结算金额","actWorkload","任务取工时表报工工时汇总,","taskState","任务状态0待领取1已领取执行中2已完工3已结算4已关闭","taskType","0售前方案1投标2需求3设计4开发5测试6验收7部署8运维--来自基础数据表taskType","taskClass","1需结算0不需结算","toTaskCenter","是否发布到任务大厅0否1是,1时互联网可访问","actStartTime","实际开始时间-任务状态变成执行中的时间","actEndTime","实际结束时间-任务状态变成完工状态时的时间","bizProcInstId","当前流程实例编号","bizFlowState","当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除","phaseId","项目阶段编号(作废)","phaseName","项目阶段名称(作废)","taskSkillNames","技能列表,逗号分隔","exeUsernames","执行人列表逗号分隔如陈x(审核人),王x(监控人)","taskSkillIds","技能编号列表逗号分隔","exeUserids","执行人编号列表逗号分隔如u1(1),u2(2)","taskOut","执行方式-0内研1外购","planType","计划类型w1-周,w2-2周,w3-3周,m1-1月,m2-2月,q1-季,q2-半年,y1-年","settleSchemel","任务结算方案-来自数字字典xmTaskSettleSchemel","menuId","归属功能编号","menuName","归属功能名称","productId","产品编号根据功能变化带进","cbranchId","创建机构","cdeptid","创建部门","tagIds","标签编号,逗号分割","tagNames","标签名称,逗号分割","ntype","节点类型0-任务,1-计划。计划下可建立计划和任务,任务下不允许再扩展。也就是非叶子节点都是计划,叶子节点有可能是计划或者任务","childrenCnt","儿子节点个数","ltime","更新时间","pidPaths","父级id逗号分割,最后一个为本节点节点编号,以,号结尾","lvl","层级0-顶级,1-一级,2-二级,3-三级,4-四级。总共5级","isTpl","是否为模板","keyPath","是否为关键路径上的节点","uniInnerPrice","内部单位工时单价","uniOutPrice","外部单位工时单价","calcType","数据统计方式","ptype","计划分类0-项目,1产品,空为不区分","wtype","报工方式1-强制每日报工,2-工期内报工,0-无需报工","bctrl","报工限制0-不限制,1-不得超出预估工时","initWorkload","原始预估工作量,budget_workload发生变化后,进行备份","shareFee","分享赚佣金","oshare","开启分享赚功能0-否1是","crowd","是否众包0否1是,众包属于外购的一种");
@ -212,7 +214,7 @@ public class XmTaskController {
@RequestMapping(value="/upBrowseTimes",method=RequestMethod.POST) @RequestMapping(value="/upBrowseTimes",method=RequestMethod.POST)
public Map<String,Object> upBrowseTimes( @ApiIgnore @RequestBody XmTask xmTask){ public Map<String,Object> upBrowseTimes( @ApiIgnore @RequestBody XmTask xmTask){
User user=LoginUtils.getCurrentUserInfo(); User user=LoginUtils.getCurrentUserInfo();
this.xmTaskService.upBrowseTimes(xmTask.getId());
XmTaskCalcService.putReadNum(xmTask.getId());
return ResponseHelper.ok("成功"); return ResponseHelper.ok("成功");
} }

51
xm-core/src/main/java/com/xm/core/service/XmTaskCalcService.java

@ -0,0 +1,51 @@
package com.xm.core.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br>
* 组织 com.mdp 顶级模块 arc 大模块 archive 小模块 <br>
* 实体 ArchiveUp arc_archive_up 当前主键(包括多主键): archive_id,userid;
***/
@Service("xm.core.xmTaskCalcService")
public class XmTaskCalcService {
static Logger logger =LoggerFactory.getLogger(XmTaskCalcService.class);
private static Map<String,Integer> readMap=new HashMap<>();
@Autowired
XmTaskService xmTaskService;
public static void putReadNum(String taskId){
Integer c=readMap.get(taskId);
if(c==null){
readMap.put(taskId,new Integer(1));
}else{
readMap.put(taskId,new Integer(c+1));
}
}
@Scheduled(cron = "* 0/2 * * * ?")
private void calcRead(){
Map<String,Integer> map=new HashMap<>();
map.putAll(readMap);
readMap.clear();
if(map.isEmpty()){
return;
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
xmTaskService.upBrowseTimes(entry.getKey(),entry.getValue());
}
}
}

4
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -779,8 +779,8 @@ public class XmTaskService extends BaseService {
return "T"+sequenceService.getCommonNo("{date62:yyyyMMddHHmmss}{rands:4}"); return "T"+sequenceService.getCommonNo("{date62:yyyyMMddHHmmss}{rands:4}");
} }
public void upBrowseTimes(String id) {
super.update("upBrowseTimes",id);
public void upBrowseTimes(String id,Integer nums) {
super.update("upBrowseTimes",map("id",id,"nums",nums));
} }
} }

4
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -378,9 +378,9 @@
</where> </where>
group by ${groupBy} group by ${groupBy}
</select> </select>
<update id="upBrowseTimes" parameterType="String">
<update id="upBrowseTimes" parameterType="HashMap">
update xm_task update xm_task
set browse_times=ifnull(browse_times,0)+1
set browse_times=ifnull(browse_times,0)+#{nums}
where id = #{id} where id = #{id}
</update> </update>

Loading…
Cancel
Save