首页>代码>java OA开源办公系统源码下载>/myOA/src/com/tiger/oa/action/FlowFormAction.java
package com.tiger.oa.action;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.RequestAware;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ModelDriven;
import com.tiger.oa.dto.FlowFormDTO;
import com.tiger.oa.manager.FormManager;
import com.tiger.oa.manager.WorkflowManager;
import com.tiger.oa.model.FieldItem;
import com.tiger.oa.model.FlowForm;
import com.tiger.oa.model.FormField;
import com.tiger.oa.model.Workflow;

@Controller("flowFormAction")
@Scope("prototype")
public class FlowFormAction extends BaseAction implements ModelDriven,
		RequestAware {

	private FormManager formManager;
	private WorkflowManager workflowManager;
	private List itemList;

	private FlowFormDTO flowFormDTO = new FlowFormDTO();
	private Map<String, Object> request;

	private static final Log logger = LogFactory.getLog(FlowFormAction.class);

	@Resource
	public void setFormManager(FormManager formManager) {
		this.formManager = formManager;
	}

	@Resource
	public void setWorkflowManager(WorkflowManager workflowManager) {
		this.workflowManager = workflowManager;
	}

	// 主界面,针对流程打开,在这个界面上,显示流程表单的信息
	@Override
	public String execute() throws Exception {
		int workflowId = flowFormDTO.getWorkflowId();

		Workflow workflow = workflowManager.findWorkflow(workflowId);
		FlowForm flowForm = formManager.findForm(workflowId);

		request.put("flowForm", flowForm);
		request.put("workflow", workflow);

		return "index";
	}

	// 添加流程表单
	public String addForm() throws Exception {

		FlowForm flowform = new FlowForm();
		flowform.setTemplate(flowFormDTO.getTemplate());
		flowform.setId(flowFormDTO.getId());
		formManager.addForm(flowform, flowFormDTO.getWorkflowId());
		return SUCCESS;
	}

	// 打开界面,输入表单域,在这个界面上,需要选择表单域的类型和输入形式
	public String formFieldInput() throws Exception {

		request.put("fieldtypes", formManager.searchFieldTypes());
		request.put("fieldinputs", formManager.searchFieldInputs());

		return "formfield_input";
	}

	// 添加表单域
	public String addFormField() throws Exception {

		FormField field = new FormField();
		field.setId(flowFormDTO.getId());
		field.setFieldLabel(flowFormDTO.getFieldLabel());
		field.setFieldName(flowFormDTO.getFieldName());

		formManager.addField(field, flowFormDTO.getFormId(), flowFormDTO
				.getFieldTypeId(), flowFormDTO.getFieldInputId());

		return "pub_add_success";
	}

	// 删除表单域
	public String delField() throws Exception {

		formManager.delField(flowFormDTO.getId());

		return "pub_del_success";
	}

	// 给某个表单域添加条目(输入界面),列出已有的条目
	public String addItemInput() throws Exception {

		// 首先根据ID的值,加载表单域
		FormField field = formManager.findFormField(flowFormDTO.getId());
		itemList = flowFormDTO.getItems();
		request.put("field", field);

		return "item_input";
	}

	// 添加条目
	public String addItem() throws Exception {

		Iterator it = itemList.iterator();
		while(it.hasNext()){
			FieldItem item = (FieldItem) it.next();
			
			if (item != null) {
				logger.debug("items is " + item.getValue());
			}
			// 如果没有输入任何值,则忽略不处理
			if (item == null || item.getValue() == null
					|| item.getValue().trim().equals("")) {
				it.remove();
			}
		}
		formManager.updateFieldItems(flowFormDTO.getId(), itemList);

		return "pub_add_success";
	}

	public FlowFormDTO getFlowFormDTO() {
		return flowFormDTO;
	}

	public void setFlowFormDTO(FlowFormDTO flowFormDTO) {
		this.flowFormDTO = flowFormDTO;
	}

	@Override
	public Object getModel() {
		return flowFormDTO;
	}

	@Override
	public void setRequest(Map<String, Object> request) {
		this.request = request;
	}

	public List getItemList() {
		return itemList;
	}

	public void setItemList(List ItemList) {
		this.itemList = ItemList;
	}

}
最近下载更多
carloscarlos  LV1 2023年9月13日
15029223037  LV1 2023年7月18日
linmou  LV8 2023年3月19日
微信网友_6376279687794688  LV1 2023年3月5日
快乐的程序员  LV25 2023年1月21日
微信网友_6292700852981760  LV1 2023年1月5日
15342201772  LV7 2022年12月10日
swd287797983  LV1 2022年12月6日
wazp4071  LV1 2022年6月24日
C_mohen 2022年6月8日
暂无贡献等级
最近浏览更多
vluobo  LV1 3月19日
cbddbc  LV1 2023年12月26日
vanweiai2023 2023年11月30日
暂无贡献等级
fesfefe  LV13 2023年11月16日
yuan_bin1990  LV7 2023年11月13日
molu123456 2023年10月16日
暂无贡献等级
2036495585  LV9 2023年9月26日
漫步的海星  LV4 2023年9月21日
carloscarlos  LV1 2023年9月13日
3334004690  LV3 2023年8月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友