You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.5 KiB
73 lines
2.5 KiB
package kr.co.kihyun.beans.entity; |
|
|
|
import java.text.SimpleDateFormat; |
|
import java.util.Date; |
|
import java.util.List; |
|
import java.util.Map; |
|
|
|
import javax.jdo.PersistenceManager; |
|
import javax.jdo.annotations.Discriminator; |
|
import javax.jdo.annotations.IdentityType; |
|
import javax.jdo.annotations.Inheritance; |
|
import javax.jdo.annotations.InheritanceStrategy; |
|
import javax.jdo.annotations.PersistenceCapable; |
|
|
|
import kr.co.kihyun.beans.entity.util.QueryImpl; |
|
import kr.co.kihyun.moumi.MoumiConfig; |
|
|
|
import org.slf4j.Logger; |
|
import org.slf4j.LoggerFactory; |
|
|
|
@PersistenceCapable(identityType = IdentityType.APPLICATION) |
|
@Inheritance(strategy = InheritanceStrategy.SUPERCLASS_TABLE) |
|
public class LimitByDeadlineStrategy extends AcceptanceLimitStrategy { |
|
/** |
|
* |
|
*/ |
|
private static final long serialVersionUID = -5531410697614923017L; |
|
private static final Logger LOG = LoggerFactory.getLogger(LimitByDeadlineStrategy.class); |
|
|
|
private static final String filter = |
|
"isDeleted == 'N' && type == TYPE_REPORT && " + |
|
"(process == PROCESS_COMP || process == PROCESS_END || process == PROCESS_NOT) && " + |
|
"submitDate <= tot_doc.endDate && totDoc == tot_doc"; |
|
|
|
public LimitByDeadlineStrategy() { |
|
} |
|
|
|
public LimitByDeadlineStrategy(Long limitCount) { |
|
super(limitCount); |
|
} |
|
|
|
@SuppressWarnings("unchecked") |
|
@Override |
|
public List<TotReport> getCompReports(PersistenceManager pm, Map<String, Object> filterMap) { |
|
QueryImpl q = new QueryImpl(pm, TotReport.class); |
|
q.setFilter(filter); |
|
q.setSearchFilter(filterMap); |
|
q.declareParameters("kr.co.kihyun.beans.entity.TotDoc tot_doc"); |
|
q.setOrdering("mDept"); |
|
return (List<TotReport>) q.execute(this.getTotDoc()); |
|
|
|
} |
|
|
|
@Override |
|
public TotDocProcess getProcess(PersistenceManager pm) { |
|
LOG.debug("startDate: {}, endDate: {}, sysdate: {}, prss: {}", |
|
new Object[] {this.getTotDoc().getStartDate(), this.getTotDoc().getEndDate(), new Date(), this.getProcess()}); |
|
if (this.getProcess() == TotDocProcess.PRSS && this.getTotDoc().getEndDate().before(new Date())) |
|
return TotDocProcess.END; |
|
if (this.getTotDoc().getStartDate() == null || |
|
(this.getTotDoc().getStartDate().after(new Date()) && this.getProcess() == TotDocProcess.PRSS)) |
|
return TotDocProcess.REG; |
|
return this.getProcess(); |
|
} |
|
|
|
@Override |
|
public String getDescription(PersistenceManager pm) { |
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); |
|
return sdf.format(this.getTotDoc().getEndDate())+MoumiConfig.getMessageBundle().getString("moumi.message.hour")+ |
|
" "+MoumiConfig.getMessageBundle().getString("moumi.message.tot_doc.end"); |
|
} |
|
|
|
}
|
|
|