package com.mossle.plm.web;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import com.mossle.core.auth.CurrentUserHolder;
import com.mossle.core.mapper.BeanMapper;
import com.mossle.plm.persistence.domain.PlmSprint;
import com.mossle.plm.persistence.domain.PlmStep;
import com.mossle.plm.persistence.manager.PlmCategoryManager;
import com.mossle.plm.persistence.manager.PlmCommentManager;
import com.mossle.plm.persistence.manager.PlmIssueManager;
import com.mossle.plm.persistence.manager.PlmLogManager;
import com.mossle.plm.persistence.manager.PlmProjectManager;
import com.mossle.plm.persistence.manager.PlmSprintManager;
import com.mossle.plm.persistence.manager.PlmStepManager;
import com.mossle.plm.persistence.manager.PlmVersionManager;
import com.mossle.plm.service.PlmLogService;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("plm")
public class PlmKanbanController {
private PlmProjectManager plmProjectManager;
private PlmVersionManager plmVersionManager;
private PlmIssueManager plmIssueManager;
private PlmCommentManager plmCommentManager;
private PlmCategoryManager plmCategoryManager;
private PlmLogManager plmLogManager;
private PlmSprintManager plmSprintManager;
private PlmStepManager plmStepManager;
private PlmLogService plmLogService;
private CurrentUserHolder currentUserHolder;
private JdbcTemplate jdbcTemplate;
private BeanMapper beanMapper = new BeanMapper();
/**
* 看板.
*/
@RequestMapping("kanban")
public String kanban(@RequestParam("sprintId") Long sprintId, Model model)
throws Exception {
// 获得迭代
PlmSprint plmSprint = plmSprintManager.get(sprintId);
model.addAttribute("plmSprint", plmSprint);
if (plmSprint != null) {
// 获得迭代对应的步骤
String hql = "from PlmStep where plmConfig=? order by priority";
List<PlmStep> plmSteps = plmStepManager.find(hql,
plmSprint.getPlmConfig());
model.addAttribute("plmSteps", plmSteps);
// 获得每个步骤下的任务
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
model.addAttribute("list", list);
for (PlmStep plmStep : plmSteps) {
Map<String, Object> map = new HashMap<String, Object>();
list.add(map);
map.put("plmStep", plmStep);
String hqlSelectIssue = "from PlmIssue where plmSprint=? and step=?";
map.put("plmIssues",
plmIssueManager.find(hqlSelectIssue, plmSprint,
plmStep.getCode()));
}
}
return "plm/kanban";
}
@Resource
public void setPlmProjectManager(PlmProjectManager plmProjectManager) {
this.plmProjectManager = plmProjectManager;
}
@Resource
public void setPlmVersionManager(PlmVersionManager plmVersionManager) {
this.plmVersionManager = plmVersionManager;
}
@Resource
public void setPlmIssueManager(PlmIssueManager plmIssueManager) {
this.plmIssueManager = plmIssueManager;
}
@Resource
public void setPlmCommentManager(PlmCommentManager plmCommentManager) {
this.plmCommentManager = plmCommentManager;
}
@Resource
public void setPlmCategoryManager(PlmCategoryManager plmCategoryManager) {
this.plmCategoryManager = plmCategoryManager;
}
@Resource
public void setPlmLogManager(PlmLogManager plmLogManager) {
this.plmLogManager = plmLogManager;
}
@Resource
public void setPlmSprintManager(PlmSprintManager plmSprintManager) {
this.plmSprintManager = plmSprintManager;
}
@Resource
public void setPlmStepManager(PlmStepManager plmStepManager) {
this.plmStepManager = plmStepManager;
}
@Resource
public void setPlmLogService(PlmLogService plmLogService) {
this.plmLogService = plmLogService;
}
@Resource
public void setCurrentUserHolder(CurrentUserHolder currentUserHolder) {
this.currentUserHolder = currentUserHolder;
}
@Resource
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}