public ActionResult GetTaskExCheckList(string shortCode) { return(ActionUtils.Json(() => { CheckPermission(PermissionObjectType.Task, shortCode, PermissionType.Read); var task = m_dbAdapter.Task.GetTaskWithExInfo(shortCode); CommUtils.Assert(task.TaskExtensionId.HasValue, "工作[{0}][{1}]不包含扩展信息", task.Description, shortCode); CommUtils.Assert(task.TaskExtension.TaskExtensionType == TaskExtensionType.CheckList.ToString(), "工作[{0}][{1}]的工作扩展类型不是[工作要点检查]", task.Description, shortCode); var taskExtensionInfo = task.TaskExtension.TaskExtensionInfo; var result = new TaskExCheckListInfo(); if (!string.IsNullOrWhiteSpace(taskExtensionInfo)) { result = CommUtils.FromJson <TaskExCheckListInfo>(taskExtensionInfo); } return ActionUtils.Success(result); })); }
public ActionResult AddTaskExtensionCheckList(string shortCode, string groupName, string checkItemName) { return(ActionUtils.Json(() => { CheckPermission(PermissionObjectType.Task, shortCode, PermissionType.Write); var task = m_dbAdapter.Task.GetTaskWithExInfo(shortCode); m_dbAdapter.Task.CheckPrevIsFinished(task); CommUtils.Assert(CommUtils.ParseEnum <TaskExtensionType>(task.TaskExtension.TaskExtensionType) == TaskExtensionType.CheckList, "工作[" + task.Description + "]的工作扩展类型不是[工作要点检查]"); CommUtils.Assert(!string.IsNullOrWhiteSpace(groupName), "分组名称不能为空"); CommUtils.Assert(!string.IsNullOrWhiteSpace(checkItemName), "工作要点不能为空"); var checkItemNameList = CommUtils.Split(checkItemName, new string[] { "\n" }); CheckedByCheckItemNamesRepeat(checkItemNameList); TaskExCheckListInfo taskExCheckLists = new TaskExCheckListInfo(); if (!string.IsNullOrWhiteSpace(task.TaskExtension.TaskExtensionInfo)) { taskExCheckLists = CommUtils.FromJson <TaskExCheckListInfo>(task.TaskExtension.TaskExtensionInfo); } if (taskExCheckLists.CheckGroups.Count != 0 && taskExCheckLists.CheckGroups.Any(x => x.GroupName == groupName)) { foreach (var checkItemGroupList in taskExCheckLists.CheckGroups) { if (checkItemGroupList.GroupName == groupName) { foreach (var item in checkItemNameList) { CommUtils.Assert(!checkItemGroupList.CheckItems.Any(x => x.Name == item), "工作[{0}({1})]中已经存在检查项[{2}]", task.Description, task.ShortCode, checkItemName); var checkItem = new TaskExCheckItem(); checkItem.Guid = Guid.NewGuid().ToString(); checkItem.Name = item; checkItem.CheckStatus = TaskExCheckType.Unchecked.ToString(); checkItemGroupList.CheckItems.Add(checkItem); } } } } else { TaskExCheckGroup checkItemGroup = new TaskExCheckGroup(); checkItemGroup.GroupName = groupName; foreach (var item in checkItemNameList) { var checkItem = new TaskExCheckItem(); checkItem.Guid = Guid.NewGuid().ToString(); checkItem.Name = item; checkItem.CheckStatus = TaskExCheckType.Unchecked.ToString(); checkItemGroup.CheckItems.Add(checkItem); } taskExCheckLists.CheckGroups.Add(checkItemGroup); } var isExistNotFinished = taskExCheckLists.CheckGroups.Any(group => group.CheckItems.Any(y => y.CheckStatus == TaskExCheckType.Unchecked.ToString())); if (isExistNotFinished && task.TaskStatus != TaskStatus.Running) { var logicModel = Platform.GetProject(task.ProjectId); new TaskLogicModel(logicModel, task).Start(); } else { m_dbAdapter.Task.UpdateTask(task); } task.TaskExtension.TaskExtensionInfo = CommUtils.ToJson(taskExCheckLists); task.TaskHandler = CurrentUserName; m_dbAdapter.Task.UpdateTaskExtension(task.TaskExtension); m_dbAdapter.Project.NewEditProductLog(EditProductType.EditTask, task.ProjectId, "工作[" + task.Description + "][" + shortCode + "],中添加检查项GroupName[" + groupName + "]CheckItem[" + CommUtils.Join(checkItemNameList) + "]", ""); var comment = "增加分组[" + groupName + "]中的工作要点[" + string.Join(";", checkItemNameList.ToArray()) + "]"; m_dbAdapter.Task.AddTaskLog(task, comment); return ActionUtils.Success(1); })); }