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.
412 lines
10 KiB
412 lines
10 KiB
/* |
|
* To change this template, choose Tools | Templates |
|
* and open the template in the editor. |
|
*/ |
|
package kr.co.kihyun.beans.entity.ecross; |
|
|
|
import java.text.SimpleDateFormat; |
|
import java.util.Calendar; |
|
import java.util.Date; |
|
import javax.jdo.JDOObjectNotFoundException; |
|
import javax.jdo.PersistenceManager; |
|
import javax.jdo.Query; |
|
import javax.jdo.annotations.IdentityType; |
|
import javax.jdo.annotations.Inheritance; |
|
import javax.jdo.annotations.InheritanceStrategy; |
|
import javax.jdo.annotations.NullValue; |
|
import javax.jdo.annotations.PersistenceCapable; |
|
import javax.jdo.annotations.Persistent; |
|
import kr.co.kihyun.beans.entity.AcceptanceLimitStrategy; |
|
import kr.co.kihyun.beans.entity.AccessAuth; |
|
import kr.co.kihyun.beans.entity.ExecutionCode; |
|
import kr.co.kihyun.beans.entity.MDept; |
|
import kr.co.kihyun.beans.entity.MUser; |
|
import kr.co.kihyun.beans.entity.TotDoc; |
|
import kr.co.kihyun.beans.entity.TotDoc.TotRange; |
|
import kr.co.kihyun.beans.entity.TotDocAppendType; |
|
import kr.co.kihyun.beans.entity.TotDocProcess; |
|
import kr.co.kihyun.beans.entity.TotDocType; |
|
import kr.co.kihyun.beans.entity.util.MPersistenceManager; |
|
import kr.co.kihyun.lang.MString; |
|
import org.slf4j.Logger; |
|
import org.slf4j.LoggerFactory; |
|
|
|
/** |
|
* |
|
* @author bhs |
|
*/ |
|
@PersistenceCapable(identityType = IdentityType.APPLICATION) |
|
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE) |
|
public abstract class ECrossTotDoc extends ECross<TotDoc> { |
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(ECrossTotDoc.class); |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private Long acceptanceLimitStrategy; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private AccessAuth accessAuth = AccessAuth.PER; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private TotDocAppendType appendType = TotDocAppendType.COPY; |
|
private transient String decName; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private Date endDate = Calendar.getInstance().getTime(); |
|
@Persistent |
|
private String executionCode; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private int fixNum = 0; |
|
@Persistent |
|
private String form; |
|
@Persistent |
|
private Long group; |
|
@Persistent |
|
private String handyName; |
|
@Persistent |
|
private Long id; |
|
private transient boolean isDecrypted; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private String isDeleted = "N"; |
|
@Persistent |
|
private String mDept; |
|
@Persistent |
|
private String mUser; |
|
@Persistent |
|
private String managementCode; |
|
@Persistent |
|
private String masterDept; |
|
@Persistent |
|
private Long masterTotDoc; |
|
@Persistent |
|
private String name; |
|
@Persistent |
|
private String ownerEmail; |
|
@Persistent |
|
private String ownerName; |
|
@Persistent |
|
private String ownerPhone; |
|
@Persistent(customValueStrategy = "timestamp", nullValue = NullValue.EXCEPTION) |
|
private Date regDate; |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private Date startDate = Calendar.getInstance().getTime(); |
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private TotRange totRange = TotRange.INTERNAL; |
|
@Persistent |
|
private TotDocType type = TotDocType.TOT_DOC; |
|
|
|
public ECrossTotDoc(TotDoc totDoc) { |
|
super(totDoc); |
|
this.setAcceptanceLimitStrategy(totDoc.getAcceptanceLimitStrategy()); |
|
this.setAccessAuth(totDoc.getAccessAuth()); |
|
this.setAppendType(totDoc.getAppendType()); |
|
this.setDeleted(totDoc.isDeleted()); |
|
this.setDept(totDoc.getDept()); |
|
this.setEndDate(totDoc.getEndDate()); |
|
this.setExecutionCode(totDoc.getExecutionCode()); |
|
this.setFixNum(totDoc.getFixNum()); |
|
this.setForm(totDoc.getForm()); |
|
this.setGroup(totDoc.getGroup()); |
|
this.setHandyName(totDoc.getHandyName()); |
|
this.setId(totDoc.getId()); |
|
this.setManagementCode(totDoc.getManagementCode()); |
|
this.setMasterTotDoc(totDoc.getMasterTotDoc()); |
|
this.setName(totDoc.getName()); |
|
this.setUser(null); |
|
this.setOwnerEmail(totDoc.getOwnerEmail()); |
|
this.setOwnerName(totDoc.getOwnerName()); |
|
this.setOwnerPhone(totDoc.getOwnerPhone()); |
|
this.setRegDate(totDoc.getRegDate()); |
|
this.setRepDept(totDoc.getRepDept()); |
|
this.setStartDate(totDoc.getStartDate()); |
|
this.setTotRange(totDoc.getTotRange()); |
|
this.setType(totDoc.getType()); |
|
} |
|
|
|
@Override |
|
protected TotDoc setFieldValues(MPersistenceManager pm, TotDoc totDoc) { |
|
//System.out.println("**************************************************** acceptanceLimitStrategy;"+acceptanceLimitStrategy); |
|
totDoc.setAcceptanceLimitStrategy(AcceptanceLimitStrategy.create("LimitByWriteDateStrategy", 0L)); |
|
totDoc.setAccessAuth(accessAuth); |
|
totDoc.setAppendType(appendType); |
|
totDoc.setDeleted(isDeleted); |
|
totDoc.setDept(mDept == null ? null : pm.getObjectById(MDept.class, mDept)); |
|
totDoc.setEndDate(endDate); |
|
totDoc.setExecutionCode(MString.isNull(executionCode) ? null : ExecutionCode.valueOf(executionCode)); |
|
totDoc.setFixNum(fixNum); |
|
totDoc.setForm(form); |
|
totDoc.setGroup(group); |
|
totDoc.setHandyName(handyName); |
|
totDoc.setId(id); |
|
totDoc.setMasterTotDoc(masterTotDoc == null ? null : pm.getObjectById(TotDoc.class, masterTotDoc)); |
|
totDoc.setName(name); |
|
totDoc.setRegDate(regDate); |
|
totDoc.setRepDept(masterDept == null ? null : pm.getObjectById(MDept.class, masterDept)); |
|
totDoc.setStartDate(startDate); |
|
totDoc.setTotRange(totRange); |
|
totDoc.setType(type); |
|
totDoc.setUser(null); |
|
totDoc.setOwnerEmail(ownerEmail); |
|
totDoc.setOwnerName(ownerName); |
|
totDoc.setOwnerPhone(ownerPhone); |
|
|
|
return totDoc; |
|
} |
|
|
|
public AccessAuth getAccessAuth() { |
|
return this.accessAuth; |
|
} |
|
|
|
public TotDocAppendType getAppendType() { |
|
return appendType; |
|
} |
|
|
|
private String getDecName() { |
|
return this.decName; |
|
} |
|
|
|
public MDept getDept(PersistenceManager pm) { |
|
try { |
|
return pm.getObjectById(MDept.class, this.mDept); |
|
} catch (JDOObjectNotFoundException jonfe) { |
|
return null; |
|
} |
|
} |
|
|
|
private String getEncName() { |
|
return this.ownerName; |
|
} |
|
|
|
public Date getEndDate() { |
|
return this.endDate; |
|
} |
|
|
|
public final ExecutionCode getExecutionCode() { |
|
try { |
|
if (executionCode != null) { |
|
return ExecutionCode.valueOf(executionCode); |
|
} else { |
|
return new ExecutionCode(executionCode, null, null); |
|
} |
|
} catch (Exception e) { |
|
LOG.error("Unable to parse execution code for {}", executionCode); |
|
return new ExecutionCode(executionCode, null, null); |
|
} |
|
} |
|
|
|
public int getFixNum() { |
|
return this.fixNum; |
|
} |
|
|
|
public String getForm() { |
|
return this.form; |
|
} |
|
|
|
public Long getGroup() { |
|
return group; |
|
} |
|
|
|
public String getHandyName() { |
|
return this.handyName; |
|
} |
|
|
|
/** |
|
* @return the id |
|
*/ |
|
public Long getId() { |
|
return id; |
|
} |
|
|
|
public final String getManagementCode() { |
|
return managementCode; |
|
} |
|
|
|
public String getName() { |
|
return this.name; |
|
} |
|
|
|
/** |
|
* @return the ownerEmail |
|
*/ |
|
public String getOwnerEmail() { |
|
return MString.checkNull(ownerEmail); |
|
} |
|
|
|
/** |
|
* @return the ownerName |
|
*/ |
|
public String getOwnerName(PersistenceManager pm) { |
|
if (!this.isDecrypted) { |
|
Query q = pm.newQuery("javax.jdo.query.SQL", "SELECT sp_cm_dec_fu(?) FROM sysibm.sysdummy1"); |
|
q.setUnique(true); |
|
this.setDecName((String) q.execute(this.getEncName())); |
|
this.isDecrypted = true; |
|
} |
|
return this.getDecName(); |
|
} |
|
|
|
public MDept getOwnerParty(PersistenceManager pm) { |
|
return this.getDept(pm).getRootDept(pm); |
|
} |
|
|
|
/** |
|
* @return the ownerPhone |
|
*/ |
|
public String getOwnerPhone() { |
|
return MString.checkNull(ownerPhone); |
|
} |
|
|
|
public Date getRegDate() { |
|
return this.regDate; |
|
} |
|
|
|
public MDept getRepDept(PersistenceManager pm) { |
|
return pm.getObjectById(MDept.class, this.masterDept); |
|
} |
|
|
|
public Date getStartDate() { |
|
return this.startDate; |
|
} |
|
|
|
public TotRange getTotRange() { |
|
return this.totRange; |
|
} |
|
|
|
public TotDocType getType() { |
|
return this.type; |
|
} |
|
|
|
public MUser getUser(PersistenceManager pm) { |
|
try { |
|
return pm.getObjectById(MUser.class, this.mUser); |
|
} catch (JDOObjectNotFoundException jonfe) { |
|
MUser nullUser = new MUser(); |
|
nullUser.setId(this.mUser); |
|
return nullUser; |
|
} |
|
} |
|
|
|
public String isDeleted() { |
|
return this.isDeleted; |
|
} |
|
|
|
public final void setAcceptanceLimitStrategy(AcceptanceLimitStrategy acceptanceLimitStrategy) { |
|
this.acceptanceLimitStrategy = acceptanceLimitStrategy == null ? null : acceptanceLimitStrategy.getId(); |
|
} |
|
|
|
public void setAccessAuth(AccessAuth accAuth) { |
|
this.accessAuth = accAuth; |
|
} |
|
|
|
public void setAppendType(TotDocAppendType appendType) { |
|
this.appendType = appendType; |
|
} |
|
|
|
private void setDecName(String decName) { |
|
this.decName = decName; |
|
} |
|
|
|
public void setDeleted(String isDeleted) { |
|
this.isDeleted = isDeleted; |
|
} |
|
|
|
public final void setDept(String mDept) { |
|
this.mDept = mDept; |
|
} |
|
|
|
public void setEndDate(Date edDate) { |
|
this.endDate = edDate; |
|
} |
|
|
|
public final void setExecutionCode(ExecutionCode executionCode) { |
|
this.executionCode = executionCode == null ? null : executionCode.toString(); |
|
} |
|
|
|
public void setFixNum(int num) { |
|
this.fixNum = num; |
|
} |
|
|
|
public final void setForm(String form) { |
|
this.form = form; |
|
} |
|
|
|
public void setGroup(Long group) { |
|
this.group = group; |
|
} |
|
|
|
public void setHandyName(String name) { |
|
this.handyName = name; |
|
} |
|
|
|
/** |
|
* @param id |
|
* the id to set |
|
*/ |
|
public void setId(Long id) { |
|
this.id = id; |
|
} |
|
|
|
public final void setManagementCode(String managementCode) { |
|
this.managementCode = managementCode; |
|
} |
|
|
|
public void setMasterTotDoc(TotDoc doc) { |
|
this.masterTotDoc = doc == null ? null : doc.getId(); |
|
} |
|
|
|
public final void setName(String name) { |
|
this.name = name; |
|
} |
|
|
|
/** |
|
* @param ownerEmail the ownerEmail to set |
|
*/ |
|
protected void setOwnerEmail(String ownerEmail) { |
|
this.ownerEmail = ownerEmail; |
|
} |
|
|
|
/** |
|
* @param ownerName the ownerName to set |
|
*/ |
|
protected void setOwnerName(String ownerName) { |
|
this.ownerName = ownerName; |
|
} |
|
|
|
/** |
|
* @param ownerPhone the ownerPhone to set |
|
*/ |
|
protected void setOwnerPhone(String ownerPhone) { |
|
this.ownerPhone = ownerPhone; |
|
} |
|
|
|
public void setRegDate(Date regDate) { |
|
this.regDate = regDate; |
|
} |
|
|
|
public void setRepDept(String masterDept) { |
|
this.masterDept = masterDept; |
|
} |
|
|
|
public void setStartDate(Date stDate) { |
|
this.startDate = stDate; |
|
} |
|
|
|
public void setTotRange(TotRange r) { |
|
this.totRange = r; |
|
} |
|
|
|
public void setType(TotDocType t) { |
|
this.type = t; |
|
} |
|
|
|
public final void setUser(MUser mUser) { |
|
if (mUser == null) { |
|
this.mUser = null; |
|
setOwnerEmail(null); |
|
setOwnerName(null); |
|
setOwnerPhone(null); |
|
} else { |
|
LOG.debug("tot doc user id: {}", mUser.getId()); |
|
this.mUser = mUser.getId(); |
|
setOwnerEmail(mUser.getEmail()); |
|
setOwnerName(mUser.getEncName()); |
|
setOwnerPhone(mUser.getPhone()); |
|
} |
|
} |
|
}
|
|
|