📄 formserviceimpl.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 + -