Browse Source

站内信处理

master
陈裕财 4 years ago
parent
commit
e3037da4ef
  1. 9
      xm-core/src/main/java/com/xm/core/ctrl/XmIterationController.java
  2. 9
      xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java
  3. 23
      xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java
  4. 25
      xm-core/src/main/java/com/xm/core/ctrl/XmProjectController.java
  5. 2
      xm-core/src/main/java/com/xm/core/ctrl/XmQuestionController.java
  6. 14
      xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java
  7. 7
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java

9
xm-core/src/main/java/com/xm/core/ctrl/XmIterationController.java

@ -5,6 +5,7 @@ import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.mybatis.PageUtils;
import com.mdp.qx.HasQx;
import com.mdp.safe.client.entity.User;
@ -65,6 +66,10 @@ public class XmIterationController {
XmMenuOperQxService operQxService;
@Autowired
PushNotifyMsgService notifyMsgService;
@ApiOperation( value = "查询迭代定义信息列表",notes="listXmIteration,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiEntityParams(XmIteration.class)
@ApiImplicitParams({
@ -179,6 +184,7 @@ public class XmIterationController {
if(!operQxService.checkIsProductAdmOrAss(xmProductService.getProductFromCache(xmIteration.getProductId()), user.getUserid())){
return ResponseHelper.failed("no-product-qx","您不是产品管理人员,无权将该产品与迭代关联");
};
notifyMsgService.pushMsg(user,xmIteration.getAdminUserid(),xmIteration.getAdminUsername(),"6",xmIteration.getProductId(),xmIteration.getId(),"您成为迭代【"+xmIteration.getIterationName()+"】管理员,请及时跟进。");
xmIterationService.addIteration(xmIteration);
xmIterationStateService.loadTasksToXmIterationState(xmIteration.getId());
xmRecordService.addXmIterationRecord(xmIteration.getId(),"迭代-新增","新增迭代"+xmIteration.getIterationName());
@ -264,6 +270,9 @@ public class XmIterationController {
return ResponseHelper.failed("no-qx","您无权修改,迭代创建人、负责人可以修改");
}
xmIterationService.updateByPk(xmIteration);
if(!xmIteration.getAdminUserid().equals(iterationDb.getAdminUserid())){
notifyMsgService.pushMsg(user,xmIteration.getAdminUserid(),xmIteration.getAdminUsername(),"6",iterationDb.getProductId(),iterationDb.getId(),"您成为迭代【"+iterationDb.getIterationName()+"】管理员,请及时跟进。");
}
xmRecordService.addXmIterationRecord(xmIteration.getId(),"迭代-修改","修改迭代"+iterationDb.getIterationName(),JSON.toJSONString(xmIteration), JSON.toJSONString(iterationDb));
m.put("data",xmIteration);
}catch (BizException e) {

9
xm-core/src/main/java/com/xm/core/ctrl/XmMenuController.java

@ -288,9 +288,8 @@ public class XmMenuController {
xmMenu.setCtime(new Date());
xmMenu.setLtime(new Date());
xmMenuService.insert(xmMenu);
if("3".equals(xmMenu.getDclass())){
notifyMsgService.pushMsg(user,xmMenu.getMmUserid(),xmMenu.getMmUsername(),"4",xmMenu.getProductId(),xmMenu.getMenuId(),"您成为故事【"+xmMenu.getMenuName()+"】的负责人,请跟进需求!");
}
notifyMsgService.pushMsg(user,xmMenu.getMmUserid(),xmMenu.getMmUsername(),"4",xmMenu.getProductId(),xmMenu.getMenuId(),"您成为需求【"+xmMenu.getMenuName()+"】的负责人,请跟进需求!");
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"新增产品需求","新增需求"+xmMenu.getMenuName());
m.put("data",xmMenu);
}catch (BizException e) {
@ -434,13 +433,11 @@ public class XmMenuController {
xmMenuMap.put("ltime",new Date());
xmMenuService.editSomeFields(xmMenuMap);
if(xmMenuMap.containsKey("mmUserid")){
if("3".equals(xmMenu.getDclass())){
for (XmMenu menu : can) {
notifyMsgService.pushMsg(user,xmMenu.getMmUserid(),xmMenu.getMmUsername(),"4",menu.getProductId(),menu.getMenuId(),"您成为故事【"+menu.getMenuName()+"】的负责人,请跟进需求!");
notifyMsgService.pushMsg(user,xmMenu.getMmUserid(),xmMenu.getMmUsername(),"4",menu.getProductId(),menu.getMenuId(),"您成为需求【"+menu.getMenuName()+"】的负责人,请跟进需求!");
}
}
}
xmRecordService.addXmMenuRecord(xmMenu.getProductId(),xmMenu.getMenuId(),"修改产品需求","修改产品需求"+xmMenu.getMenuName(),"", JSON.toJSONString(xmMenu));
//m.put("data",xmMenu);

23
xm-core/src/main/java/com/xm/core/ctrl/XmProductController.java

@ -5,6 +5,7 @@ import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.mybatis.PageUtils;
import com.mdp.qx.HasQx;
import com.mdp.safe.client.entity.User;
@ -59,6 +60,9 @@ public class XmProductController {
@Autowired
private XmRecordService xmRecordService;
@Autowired
PushNotifyMsgService notifyMsgService;
@Value("${mdp.platform-branch-id:platform-branch-001}")
String platformBranchId="platform-branch-001";
@Autowired
@ -277,6 +281,14 @@ public class XmProductController {
}
}
xmProductService.addProduct(xmProduct);
notifyMsgService.pushMsg(user,xmProduct.getPmUserid(),xmProduct.getPmUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的产品经理,请及时跟进。");
if(StringUtils.hasText(xmProduct.getAssUserid()) && !xmProduct.getAssUserid().equals(xmProduct.getPmUserid())){
notifyMsgService.pushMsg(user,xmProduct.getAssUserid(),xmProduct.getAssUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的副经理、助理,请及时跟进。");
}
if(StringUtils.hasText(xmProduct.getAdmUserid()) && !xmProduct.getAdmUserid().equals(xmProduct.getPmUserid())){
notifyMsgService.pushMsg(user,xmProduct.getAdmUserid(),xmProduct.getAdmUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的产品总监,请及时跟进。");
}
xmRecordService.addXmProductRecord(xmProduct.getId(),"创建产品","创建产品【"+xmProduct.getId()+"】【"+xmProduct.getProductName()+"】");
xmProductStateService.loadTasksToXmProductState(xmProduct.getId());
m.put("data",xmProduct);
@ -446,6 +458,17 @@ public class XmProductController {
xmProductService.clearCache(xmProduct.getId());
xmRecordService.addXmProductRecord(xmProduct.getId(),"修改产品","修改产品【"+xmProductDb.getId()+"】【"+xmProductDb.getProductName()+"】",JSON.toJSONString(xmProduct),JSON.toJSONString(xmProductDb));
if(StringUtils.hasText(xmProduct.getPmUserid()) && !xmProduct.getPmUserid().equals(xmProductDb.getPmUserid())){
notifyMsgService.pushMsg(user,xmProduct.getPmUserid(),xmProduct.getPmUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的产品经理,请及时跟进。");
}
if(StringUtils.hasText(xmProduct.getAssUserid()) && !xmProduct.getAssUserid().equals(xmProductDb.getAssUserid())){
notifyMsgService.pushMsg(user,xmProduct.getAssUserid(),xmProduct.getAssUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的副经理、助理,请及时跟进。");
}
if(StringUtils.hasText(xmProduct.getAdmUserid()) && !xmProduct.getAdmUserid().equals(xmProductDb.getAdmUserid()) ){
notifyMsgService.pushMsg(user,xmProduct.getAdmUserid(),xmProduct.getAdmUsername(),"3",xmProduct.getId(),xmProduct.getId(),"您成为产品【"+xmProduct.getProductName()+"】的产品总监,请及时跟进。");
}
m.put("data",xmProduct);
}catch (BizException e) {
tips=e.getTips();

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

@ -7,6 +7,7 @@ import com.mdp.core.entity.Tips;
import com.mdp.core.err.BizException;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.mybatis.PageUtils;
import com.mdp.qx.HasQx;
import com.mdp.safe.client.entity.User;
@ -58,6 +59,10 @@ public class XmProjectController {
@Autowired
private XmRecordService xmRecordService;
@Autowired
PushNotifyMsgService notifyMsgService;
@Value("${mdp.platform-branch-id:platform-branch-001}")
String platformBranchId="platform-branch-001";
@ -156,7 +161,16 @@ public class XmProjectController {
}
}
}
User user = LoginUtils.getCurrentUserInfo();
xmProjectService.saveProject(xmProjectVo);
notifyMsgService.pushMsg(user,xmProjectVo.getPmUserid(),xmProjectVo.getPmUsername(),"1",xmProjectVo.getId(),xmProjectVo.getId(),"您成为项目【"+xmProjectVo.getName()+"】的项目经理,请及时跟进。");
if(StringUtils.hasText(xmProjectVo.getAssUserid()) && !xmProjectVo.getAssUserid().equals(xmProjectVo.getPmUserid())){
notifyMsgService.pushMsg(user,xmProjectVo.getAssUserid(),xmProjectVo.getAssUsername(),"1",xmProjectVo.getId(),xmProjectVo.getId(),"您成为项目【"+xmProjectVo.getName()+"】的副经理、助理,请及时跟进。");
}
if(StringUtils.hasText(xmProjectVo.getAdmUserid()) && !xmProjectVo.getAdmUserid().equals(xmProjectVo.getPmUserid())){
notifyMsgService.pushMsg(user,xmProjectVo.getAdmUserid(),xmProjectVo.getAdmUsername(),"1",xmProjectVo.getId(),xmProjectVo.getId(),"您成为项目【"+xmProjectVo.getName()+"】的项目总监,请及时跟进。");
}
xmProjectService.clearProject(xmProjectVo.getId());
xmProjectStateService.loadTasksToXmProjectState(xmProjectVo.getId());
m.put("data",xmProjectVo);
@ -450,6 +464,17 @@ public class XmProjectController {
return m;
}
xmProjectService.updateProject(xmProject);
if(StringUtils.hasText(xmProject.getPmUserid()) && !xmProject.getPmUserid().equals(xmProjectDb.getPmUserid())){
notifyMsgService.pushMsg(user,xmProject.getPmUserid(),xmProject.getPmUsername(),"1",xmProjectDb.getId(),xmProjectDb.getId(),"您成为项目【"+xmProjectDb.getName()+"】的项目经理,请及时跟进。");
}
if(StringUtils.hasText(xmProject.getAssUserid()) && !xmProject.getAssUserid().equals(xmProjectDb.getAssUserid())){
notifyMsgService.pushMsg(user,xmProject.getAssUserid(),xmProject.getAssUsername(),"1",xmProjectDb.getId(),xmProjectDb.getId(),"您成为项目【"+xmProjectDb.getName()+"】的副经理、助理,请及时跟进。");
}
if(StringUtils.hasText(xmProject.getAdmUserid()) && !xmProject.getAdmUserid().equals(xmProjectDb.getAdmUserid())){
notifyMsgService.pushMsg(user,xmProject.getAdmUserid(),xmProject.getAdmUsername(),"1",xmProjectDb.getId(),xmProjectDb.getId(),"您成为项目【"+xmProjectDb.getName()+"】的项目总监,请及时跟进。");
}
xmProjectService.clearProject(xmProject.getId());
xmRecordService.addXmProjectRecord(xmProject.getId(),"项目-修改","修改项目【"+xmProjectDb.getName()+"】的基础信息", JSON.toJSONString(xmProject), JSON.toJSONString(xmProjectDb));

2
xm-core/src/main/java/com/xm/core/ctrl/XmQuestionController.java

@ -330,7 +330,7 @@ public class XmQuestionController {
handle.setReceiptMessage(user.getUsername()+"修改缺陷处理意见为:"+xmQuestionVo.getRemarks());
}else if(StringUtils.hasText(handlerUsername)){
handle.setReceiptMessage(user.getUsername()+"将缺陷指派给"+handlerUsername);
notifyMsgService.pushMsg(user,xmQuestionVo.getHandlerUserid(),xmQuestionVo.getHandlerUsername(),"5",xmQuestionVo.getProductId(),xmQuestionVo.getId(),"您有新的bug【"+xmQuestionVo.getName()+"】需要处理,请尽快修复!");
notifyMsgService.pushMsg(user,xmQuestionVo.getHandlerUserid(),xmQuestionVo.getHandlerUsername(),"5",xmQuestionVo.getProductId(),xmQuestionVo.getId(),user.getUsername()+"将bug【"+xmQuestionVo.getName()+"】指派给您,请及时跟进。");
}else if(StringUtils.hasText(bugStatus)){
handle.setReceiptMessage(user.getUsername()+"将缺陷状态改为"+bugStatus);

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

@ -9,6 +9,7 @@ import com.mdp.core.utils.BaseUtils;
import com.mdp.core.utils.NumberUtil;
import com.mdp.core.utils.RequestUtils;
import com.mdp.core.utils.ResponseHelper;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.mybatis.PageUtils;
import com.mdp.qx.HasQx;
import com.mdp.safe.client.entity.User;
@ -84,6 +85,10 @@ public class XmTaskController {
@Autowired
XmTaskSumParentsPushService pushService;
@Autowired
PushNotifyMsgService notifyMsgService;
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是,众包属于外购的一种");
@ -274,7 +279,6 @@ public class XmTaskController {
List<XmTask> can=new ArrayList<>();
List<XmTask> no=new ArrayList<>();
for (XmTask xmTaskDb : xmTasksDb) {
if(StringUtils.hasText(xmTaskDb.getCreateUserid())){
tips=groupService.checkIsAdmOrTeamHeadOrAss(user,xmTaskDb.getCreateUserid(),xmTaskDb.getProjectId());
@ -320,6 +324,13 @@ public class XmTaskController {
for (XmTask task : can) {
xmRecordService.addXmTaskRecord(task.getProjectId(),task.getId(),"项目-任务-批量修改","修改任务"+task.getName(),"", JSON.toJSONString(xmTask));
}
if(xmTaskMap.containsKey("createUserid")){
String createUserid= (String) xmTaskMap.get("createUserid");
String createUsername= (String) xmTaskMap.get("createUsername");
for (XmTask task : can) {
notifyMsgService.pushMsg(user,createUserid,createUsername,"2",task.getProjectId(),task.getId(),"您成为任务【"+task.getName()+"】的负责人,请注意跟进。");
}
}
}
@ -851,6 +862,7 @@ public class XmTaskController {
}
xmTaskService.batchImportFromTemplate(xmTasks);
for (XmTask t : xmTasks) {
notifyMsgService.pushMsg(user,t.getCreateUserid(),t.getCreateUsername(),"2",t.getProjectId(),t.getId(),"您成为任务【"+t.getName()+"】的负责人,请注意跟进。");
xmRecordService.addXmTaskRecord(t.getProjectId(), t.getId(), "项目-任务-批量新增任务", "新增任务"+t.getName(),"",null);
}

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

@ -7,6 +7,7 @@ import com.mdp.core.service.BaseService;
import com.mdp.core.utils.BaseUtils;
import com.mdp.core.utils.DateUtils;
import com.mdp.core.utils.NumberUtil;
import com.mdp.msg.client.PushNotifyMsgService;
import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmMenu;
@ -54,6 +55,10 @@ public class XmTaskService extends BaseService {
XmTaskSumParentsPushService pushService;
@Autowired
PushNotifyMsgService notifyMsgService;
@Autowired
XmGroupService groupService;
@ -215,6 +220,8 @@ public class XmTaskService extends BaseService {
//新增日志
xmRecordService.addXmTaskRecord(xmTask.getProjectId(), xmTask.getId(), "项目-任务-新增任务", "新增任务"+xmTask.getName());
notifyMsgService.pushMsg(user,xmTask.getCreateUserid(),xmTask.getCreateUsername(),"2",xmTask.getProjectId(),xmTask.getId(),"您成为任务【"+xmTask.getName()+"】的负责人,请注意跟进。");
return xmTaskVo;
}
/**

Loading…
Cancel
Save