⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formserviceimpl.java

📁 采用tapestry的简单OA系统
💻 JAVA
字号:
package com.ejsun.entapps.service.impl.simpleoa;

import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.ejsun.entapps.core.search.SearchUtil;
import com.ejsun.entapps.core.search.Searcher;
import com.ejsun.entapps.domain.SequenceIdGenerator;
import com.ejsun.entapps.domain.simpleoa.ChangeGroup;
import com.ejsun.entapps.domain.simpleoa.ChangeItem;
import com.ejsun.entapps.domain.simpleoa.Comment;
import com.ejsun.entapps.domain.simpleoa.Form;
import com.ejsun.entapps.domain.simpleoa.Template;
import com.ejsun.entapps.service.impl.AbstractService;
import com.ejsun.entapps.service.simpleoa.FormService;
import com.ejsun.entapps.util.CurrentUser;
import com.opensymphony.util.TextUtils;

/**
 * @author	Quake Wang
 * @since	2004-5-6
 * @version $Revision: 1.6 $
 * 
 **/
public class FormServiceImpl extends AbstractService implements FormService {
	private static final Log log = LogFactory.getLog(FormServiceImpl.class);
	private SequenceIdGenerator sequenceIdGenerator;
	private Searcher searcher;
	
    public Form generateFormDraft(Template template) {
		Form form = template.generateForm();
		form.setFormNo(sequenceIdGenerator.getSequenceId(form.getClass()));
		form.setAuthor(CurrentUser.get());
		form.setDraft(true);
		form.setCreateDate(new Date());	
        pm.create(form);
        return form;
    }

    public void updateForm(Form form) {
    	updateChangeGroup(form);
        pm.update(form);
    }

    private void updateChangeGroup(Form form) {
        ChangeGroup changeGroup = new ChangeGroup();
        for (Iterator iter = form.getTempChangeItems().iterator(); iter.hasNext();) {
            ChangeItem changeItem = (ChangeItem) iter.next();
           	changeGroup.addChangeItem(changeItem);
        }
                
        if(changeGroup.getChangeItems().size() > 0){
        	form.addChangeGroup(changeGroup);
			changeGroup.setAuthor(CurrentUser.get());
			changeGroup.setCreateDate(new Date());
			pm.create(changeGroup);
        }
        form.getTempChangeItems().clear();
    }

    public void deleteForm(Form form) {
        pm.delete(form);
    }

    public Form loadFormById(long id) {
        return (Form) qm.loadById(Form.class, id);
    }

    public void addComment(Form form, Comment comment) {
        form.addComment(comment);
        pm.create(comment);
    }

    public Form[] findFormByWorkflowIds(List wfIdList) {
    	if(wfIdList == null || wfIdList.size() < 1) return null;
		//special query for bind a dynamic list of values into an in query expression
		//why not use a namedQuery? See http://www.hibernate.org/118.57.html for detail
		String query = "from Form form where form.workflowId in (" + TextUtils.join(", ", wfIdList) + ")"; 
        List result = qm.find(query);
		return (Form[]) result.toArray(new Form[result.size()]);
    }
    
	public Form[] search(String query) {
		List idList = SearchUtil.toIdList(searcher.search(query), Form.class.getName());
		if(idList == null || idList.size() < 1) return null;
		String queryString = "from Form form where form.id in (" + TextUtils.join(", ", idList) + ")"; 
		List result = qm.find(queryString);
		return (Form[]) result.toArray(new Form[result.size()]);
	}

    public void setSequenceIdGenerator(SequenceIdGenerator generator) {
        sequenceIdGenerator = generator;
    }

    public void setSearcher(Searcher searcher) {
        this.searcher = searcher;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -