package com.example.expense.template.web; import java.util.Date; import java.util.List; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.springframework.beans.factory.annotation.Autowired; import com.norteksoft.product.api.entity.Option; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.JsTreeUtils; import com.norteksoft.product.util.PageUtils; import com.norteksoft.product.web.struts2.CrudActionSupport; import com.example.expense.template.service.PlanTemplateManager; import com.example.expense.entity.PlanTemplate; @Namespace("/template") @ParentPackage("default") public class PlanTemplateAction extends CrudActionSupport<PlanTemplate> { private static final long serialVersionUID = 1L; private Long id; private String deleteIds; private PlanTemplate planTemplate; private List<Option> types; private String tempName; //验证模版名称 @Autowired private PlanTemplateManager planTemplateManager; private Page<PlanTemplate> page; public void setId(Long id) { this.id = id; } public Long getId() { return id; } public String getTempName() { return tempName; } public void setTempName(String tempName) { this.tempName = tempName; } public void setPage(Page<PlanTemplate> page) { this.page = page; } public Page<PlanTemplate> getPage() { return page; } public PlanTemplate getModel() { return planTemplate; } @Override protected void prepareModel() throws Exception { if(id==null){ planTemplate=new PlanTemplate(); planTemplate.setCompanyId(ContextUtils.getCompanyId()); planTemplate.setCreatedTime(new Date()); planTemplate.setCreator(ContextUtils.getUserName()); }else { planTemplate=planTemplateManager.getPlanTemplate(id); } } @Action("input") @Override public String input() throws Exception { types=ApiFactory.getSettingService().getOptionsByGroupCode("demo_plan_template"); return SUCCESS; } @Action("save") @Override public String save() throws Exception { planTemplateManager.savePlanTemplate(planTemplate); types=ApiFactory.getSettingService().getOptionsByGroupCode("demo_plan_template"); addActionMessage("<font class=\"onSuccess\"><nobr>保存成功!</nobr></font>"); return "input"; } @Action("delete") @Override public String delete() throws Exception { planTemplateManager.deletePlanTemplate(deleteIds); return "list"; } @Action("list") @Override public String list() throws Exception { return SUCCESS; } @Action("validate-name") public String validateName() throws Exception { if(id==null){ boolean result = planTemplateManager.validateName(tempName,id); renderText(result+"_"); }else{ boolean result = planTemplateManager.validateName(tempName,id); renderText(result+"_"); } return null; } @Action("list-datas") public String getListDatas() throws Exception { page = planTemplateManager.search(page); renderText(PageUtils.pageToJson(page)); return null; } @Action("task-tree") public String taskTree() throws Exception{ List<PlanTemplate> templates=planTemplateManager.listAll(); StringBuilder tree = new StringBuilder("[ "); for(PlanTemplate template:templates){ tree.append(JsTreeUtils.generateJsTreeNodeNew(template.getId().toString(), "close", template.getName(),"")).append(","); } JsTreeUtils.removeLastComma(tree); tree.append(" ]"); renderText(tree.toString()); return null; } /** * 自定义树取部门树 * @return */ @Action("department-tree") public String departmentTree(){ renderText(planTemplateManager.getDepartmentTree()); return null; } public List<Option> getTypes() { return types; } public void setDeleteIds(String deleteIds) { this.deleteIds = deleteIds; } }