diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java index 97d61907..4d32cee8 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmTaskController.java @@ -576,7 +576,56 @@ public class XmTaskController { m.put("tips", tips); return m; } - + @ApiOperation( value = "根据主键修改一条xm_task信息",notes="editXmTask") + @ApiResponses({ + @ApiResponse(code = 200,response=XmTask.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") + }) + @HasQx(value = "xm_core_xmTask_editTime",name = "修改任务时间",categoryId = "admin-xm",categoryName = "管理端-项目管理系统") + @RequestMapping(value="/editTime",method=RequestMethod.POST) + public Map editTime(@RequestBody XmTask xmTask) { + Map m = new HashMap<>(); + Tips tips=new Tips("成功更新一条数据"); + try{ + User user=LoginUtils.getCurrentUserInfo(); + if(!StringUtils.hasText(xmTask.getProjectId())){ + tips.setFailureMsg("项目编号不能为空"); + m.put("tips", tips); + return m; + } + if(!StringUtils.hasText(xmTask.getId())){ + tips.setFailureMsg("任务编号不能为空"); + m.put("tips", tips); + return m; + } + List pgroups=groupService.getProjectGroupVoList(xmTask.getProjectId()); + if(pgroups==null || pgroups.size()==0){ + tips.setFailureMsg("该项目还未建立项目团队,请先进行团队成员维护"); + m.put("tips", tips); + return m; + } + XmTask xmTaskDb=xmTaskService.selectOneObject(xmTask); + boolean isHead=groupService.checkUserIsOtherUserTeamHead(pgroups,xmTaskDb.getCreateUserid(),user.getUserid()); + if(!isHead){ + boolean isCreateUser=user.getUserid().equals(xmTaskDb.getCreateUserid()); + boolean isExecUser=user.getUserid().equals(xmTaskDb.getExecutorUserid()); + if( !isCreateUser && !isExecUser ){ + tips.setFailureMsg("您无权修改该任务的计划时间!只有任务执行人、任务负责人、组长、项目经理可以修改任务的进度。"); + m.put("tips", tips); + return m; + } + } + xmTaskService.updateTime(xmTask); + m.put("data",xmTask); + }catch (BizException e) { + tips=e.getTips(); + logger.error("",e); + }catch (Exception e) { + tips.setFailureMsg(e.getMessage()); + logger.error("",e); + } + m.put("tips", tips); + return m; + } @ApiOperation( value = "根据主键修改一条xm_task信息",notes="editXmTask") @ApiResponses({ @ApiResponse(code = 200,response=XmTask.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java index c4769b8f..4a4e5d74 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskService.java @@ -5,6 +5,7 @@ import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; 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.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; @@ -205,6 +206,24 @@ public class XmTaskService extends BaseService { this.updateSomeFieldByPk(xmTask); xmRecordService.addXmTaskRecord(xmTask.getProjectId(), xmTask.getId(), "项目-任务-更新任务基础信息", "更新任务"+xmTask.getName(),JSONObject.toJSONString(xmTask),null); } + + @Transactional + public void updateTime(XmTask xmTask) { + //XmTask oldValue = this.selectOneObject(new XmTask(xmTask.getId())); + XmTask xmTask2=new XmTask(); + xmTask2.setId(xmTask.getId()); + xmTask2.setStartTime(xmTask.getStartTime()); + xmTask2.setEndTime(xmTask.getEndTime()); + xmTask2.setActStartTime(xmTask.getActStartTime()); + xmTask2.setActEndTime(xmTask.getActEndTime()); + this.updateSomeFieldByPk(xmTask); + + //更新父任务的进度 + //updateParentProgress(xmTask.getParentTaskid()); + xmRecordService.addXmTaskRecord(xmTask.getProjectId(), xmTask.getId(), "项目-任务-计划", "更新任务计划开始时间为"+ + DateUtils.format(xmTask.getStartTime(),"yyyy-MM-dd")+",计划结束时间为"+DateUtils.format(xmTask.getEndTime(),"yyyy-MM-dd")+ + "实际开始时间:"+DateUtils.format(xmTask.getActStartTime(),"yyyy-MM-dd")+",实际结束时间为"+DateUtils.format(xmTask.getActEndTime(),"yyyy-MM-dd")); + } @Transactional public void updateProgress(XmTask xmTask) { //XmTask oldValue = this.selectOneObject(new XmTask(xmTask.getId()));