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.
413 lines
10 KiB
413 lines
10 KiB
package kr.co.kihyun.beans.entity; |
|
|
|
import java.util.ArrayList; |
|
import java.util.Date; |
|
import java.util.HashMap; |
|
import java.util.Iterator; |
|
import java.util.List; |
|
import java.util.Map; |
|
|
|
import javax.jdo.JDOObjectNotFoundException; |
|
import javax.jdo.PersistenceManager; |
|
import javax.jdo.annotations.IdentityType; |
|
import javax.jdo.annotations.NullValue; |
|
import javax.jdo.annotations.PersistenceCapable; |
|
import javax.jdo.annotations.Persistent; |
|
import kr.co.kihyun.beans.entity.ecross.NeisParty; |
|
import kr.co.kihyun.beans.entity.util.MPersistenceManager; |
|
|
|
import kr.co.kihyun.beans.entity.util.QueryImpl; |
|
import org.slf4j.Logger; |
|
import org.slf4j.LoggerFactory; |
|
|
|
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") |
|
public class MDept extends AbstractOrganization<String> implements HandySync { |
|
|
|
/** |
|
* |
|
**/ |
|
private static final long serialVersionUID = 8631163175960917370L; |
|
private static final Logger LOG = LoggerFactory.getLogger(MDept.class); |
|
@Persistent |
|
private String id; |
|
|
|
@Persistent |
|
private String handyId; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private String name; |
|
|
|
@Persistent |
|
private String address; |
|
|
|
@Persistent |
|
private String phone; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private String passcode; |
|
|
|
@Persistent |
|
private String recoImg; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private SysAuth sysAuth = SysAuth.TOTPER; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private Long priority = 0L; |
|
|
|
@Persistent |
|
private String upperDept; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private String rootDept; |
|
|
|
@Persistent |
|
private String organ; |
|
|
|
@Persistent |
|
private String secId; |
|
|
|
@Persistent |
|
private String seqnum; |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private boolean isDocUnit = true; // COLUMN: sel_type |
|
|
|
@Persistent(nullValue = NullValue.EXCEPTION) |
|
private boolean isOut = false; // COLUMN: is_out |
|
|
|
@Persistent |
|
private String location; |
|
|
|
@Persistent |
|
private Grade grade; |
|
|
|
@Persistent |
|
private Foundation foundation; |
|
|
|
|
|
public MDept() { |
|
} |
|
|
|
public MDept(String passcode, String name) { |
|
// this.setPasscode(passcode); |
|
// this.setName(name); |
|
} |
|
|
|
public MDept(String passcode, String name, MDept upperDept) { |
|
// this.setPasscode(passcode); |
|
// this.setName(name); |
|
// this.setUpperDept(upperDept); |
|
} |
|
|
|
public void setId(String id) { |
|
this.id = id; |
|
} |
|
|
|
public String getId() { |
|
return id; |
|
} |
|
|
|
// public void setHandyId(String handyId) { |
|
// this.handyId = handyId; |
|
// } |
|
|
|
public String getHandyId() { |
|
return handyId; |
|
} |
|
|
|
public String getName() { |
|
return this.name; |
|
} |
|
|
|
// public void setName(String name) { |
|
// this.name = name; |
|
// } |
|
|
|
public String getAddress() { |
|
return this.address; |
|
} |
|
|
|
// public void setAddress(String address) { |
|
// this.address = address; |
|
// } |
|
|
|
public String getPhone() { |
|
return this.phone; |
|
} |
|
|
|
// public void setPhone(String phone) { |
|
// this.phone = phone; |
|
// } |
|
|
|
public String getPasscode() { |
|
return this.passcode; |
|
} |
|
|
|
// public void setPasscode(String passcode) { |
|
// this.passcode = passcode; |
|
// } |
|
|
|
public String getRecoImg() { |
|
return this.recoImg; |
|
} |
|
|
|
// public void setRecoImg(String img) { |
|
// this.recoImg = img; |
|
// } |
|
|
|
public SysAuth getSysAuth() { |
|
return this.sysAuth; |
|
} |
|
|
|
// public void setSysAuth(SysAuth sysAuth) { |
|
// this.sysAuth = sysAuth; |
|
// } |
|
|
|
public Long getPriority() { |
|
return this.priority; |
|
} |
|
|
|
// public void setPriority(int priority) { |
|
// this.priority = priority; |
|
// } |
|
|
|
|
|
public MDept getUpperDept(PersistenceManager pm) { |
|
try { |
|
pm = new MPersistenceManager(pm); |
|
if(this.upperDept == null) |
|
this.upperDept = ""; |
|
else |
|
this.upperDept = upperDept; |
|
return pm.getObjectById(MDept.class, this.upperDept); |
|
} catch (JDOObjectNotFoundException jonfe) { |
|
return null; |
|
} |
|
} |
|
|
|
public void setUpperDept(MDept upperDept) { |
|
if (upperDept == null) |
|
this.upperDept = null; |
|
else |
|
this.upperDept = upperDept.getId(); |
|
} |
|
|
|
@Override |
|
public MDept getRootDept(PersistenceManager pm) { |
|
try { |
|
pm = new MPersistenceManager(pm); |
|
return pm.getObjectById(MDept.class, this.rootDept); |
|
} catch (JDOObjectNotFoundException jonfe) { |
|
return null; |
|
} |
|
} |
|
|
|
@Override |
|
public NeisParty getNeisParty(PersistenceManager pm) { |
|
return NeisParty.valueOf(this.rootDept.substring(0, 1) + (this.rootDept.startsWith("A") ? "00" : "10")); |
|
} |
|
|
|
|
|
|
|
public MDept getOrgan(PersistenceManager pm) { |
|
try { |
|
pm = new MPersistenceManager(pm); |
|
return pm.getObjectById(MDept.class, this.organ); |
|
} catch (JDOObjectNotFoundException jonfe) { |
|
return null; |
|
} |
|
} |
|
|
|
// public void setOrgan(MDept organ) { |
|
// if (organ == null) |
|
// this.organ = null; |
|
// else |
|
// this.organ = organ.getId(); |
|
// } |
|
|
|
@Deprecated |
|
public String getSecId() { |
|
return this.secId; |
|
} |
|
|
|
// public void setSecId(String sectionId) { |
|
// this.secId = sectionId; |
|
// } |
|
|
|
public String getSeqnum() { |
|
return this.seqnum; |
|
} |
|
|
|
// public void setSeqnum(String num) { |
|
// this.seqnum = num; |
|
// } |
|
|
|
public static enum SEL_TYPE { |
|
INVALID, VALID; |
|
} |
|
|
|
public boolean isDocUnit() { |
|
return this.isDocUnit; |
|
} |
|
|
|
// public void setDocUnit(boolean isDocUnit) { |
|
// this.isDocUnit = isDocUnit; |
|
// } |
|
|
|
public boolean isOut() { |
|
return this.isOut; |
|
} |
|
|
|
// public void setOut(boolean isOut) { |
|
// this.isOut = isOut; |
|
// } |
|
|
|
public String getLocation() { |
|
return this.location; |
|
} |
|
|
|
// public void setLocation(String location) { |
|
// this.location = location; |
|
// } |
|
|
|
public Grade getGrade() { |
|
if (this.grade == null) |
|
return Grade.NULL; |
|
return this.grade; |
|
} |
|
|
|
// @Deprecated |
|
// public void setGrade(String grade) { |
|
// this.grade = grade; |
|
// } |
|
|
|
public Foundation getFoundation() { |
|
if (this.foundation == null) |
|
return Foundation.NULL; |
|
return this.foundation; |
|
} |
|
|
|
public List<TotReport> getCompReports(PersistenceManager pm) { |
|
return this.getCompReports(pm, null); |
|
} |
|
|
|
public List<TotReport> getCompReports(PersistenceManager pm, String filterKey, Object filterValue) { |
|
Map<String, Object> filterMap = new HashMap<String, Object>(1); |
|
filterMap.put(filterKey, filterValue); |
|
return this.getCompReports(pm, filterMap); |
|
} |
|
|
|
@SuppressWarnings("unchecked") |
|
public List<TotReport> getCompReports(PersistenceManager pm, Map<String, Object> filterMap) { |
|
QueryImpl q = new QueryImpl(pm, TotReport.class); |
|
StringBuilder filter = new StringBuilder(300).append("isDeleted == false && type == TYPE_REPORT") |
|
.append(" && (process == PROCESS_COMP || process == PROCESS_END").append(" || process == PROCESS_NOT)") |
|
.append(" && totDoc.isDeleted == false && mDept == dept"); |
|
|
|
List tmpList=null; |
|
String findWord=null; |
|
for (Iterator<String> keyIterator = filterMap.keySet().iterator(); keyIterator.hasNext();) |
|
{ |
|
String filterKey = keyIterator.next(); |
|
Object filterValue = filterMap.get(filterKey); |
|
if(filterKey == null || filterKey.length() <= 0) continue; |
|
if(filterKey.equals("totDoc.mUser.name")) findWord=(String)filterValue; |
|
} |
|
|
|
q.setFilter(filter.toString()); |
|
q.setSearchFilter(filterMap); |
|
q.declareParameters("String dept"); |
|
q.setOrdering("totDoc.id DESC"); |
|
|
|
//return (List<TotReport>) q.execute(this.getId()); |
|
|
|
List<TotReport> totReports = new ArrayList<TotReport>(); |
|
totReports=(List<TotReport>) q.execute(this.getId()); |
|
List<TotReport> result = new ArrayList<TotReport>(); |
|
|
|
for (TotReport totReport : totReports) |
|
{ |
|
|
|
if(findWord!=null) |
|
{ |
|
String tmp=totReport.getTotDoc().getOwnerName(pm); |
|
if(tmp==null) continue; |
|
if(tmp.indexOf(findWord)>=0) result.add(totReport); |
|
|
|
|
|
} |
|
else result.add(totReport); |
|
|
|
} |
|
|
|
return result; |
|
|
|
} |
|
|
|
//제출진행-담당부서 제출현황 모두 보이게 |
|
public List<TotReport> getDeptSavedReports(PersistenceManager pm, String filterKey, Object filterValue){ |
|
Map<String, Object> filterMap = new HashMap<String, Object>(1); |
|
filterMap.put(filterKey, filterValue); |
|
return this.getDeptSavedReports(pm, filterMap); |
|
} |
|
|
|
@SuppressWarnings("unchecked") |
|
public List<TotReport> getDeptSavedReports(PersistenceManager pm, Map<String, Object> filterMap){ |
|
QueryImpl q = new QueryImpl(pm, TotReport.class); |
|
StringBuilder filter = new StringBuilder(110).append("isDeleted == false && type == TotReportType.REPORT") |
|
.append(" && (process == TotReportProcess.TEMP || process == TotReportProcess.APPROVE)") |
|
.append(" && mDept == user"); |
|
q.setFilter(filter.toString()); |
|
q.declareImports("import kr.co.kihyun.beans.entity.*"); |
|
q.declareParameters("String user"); |
|
q = new QueryImpl(pm, TotReport.class, (List<TotReport>) q.execute(this.getId())); |
|
|
|
List tmpList=null; |
|
String findWord=null; |
|
for (Iterator<String> keyIterator = filterMap.keySet().iterator(); keyIterator.hasNext();) |
|
{ |
|
String filterKey = keyIterator.next(); |
|
Object filterValue = filterMap.get(filterKey); |
|
if(filterKey == null || filterKey.length() <= 0) continue; |
|
if(filterKey.equals("totDoc.mUser.name")) findWord=(String)filterValue; |
|
} |
|
|
|
filter = new StringBuilder(300).append("totDoc.isDeleted == false"); |
|
q.setFilter(filter.toString()); |
|
q.setSearchFilter(filterMap); |
|
q.declareParameters("java.util.Date sysdate"); |
|
q.setOrdering("totDoc.id DESC"); |
|
//return (List<TotReport>) q.execute(new Date()); |
|
|
|
List<TotReport> totReports = new ArrayList<TotReport>(); |
|
totReports=(List<TotReport>) q.execute(new Date()); |
|
List<TotReport> result = new ArrayList<TotReport>(); |
|
|
|
for (TotReport totReport : totReports) |
|
{ |
|
if(findWord!=null) |
|
{ |
|
String tmp=totReport.getTotDoc().getOwnerName(pm); |
|
if(tmp==null) continue; |
|
if(tmp.indexOf(findWord)>=0) result.add(totReport); |
|
} |
|
else result.add(totReport); |
|
} |
|
|
|
|
|
return result; |
|
|
|
} |
|
/********************************** Leejiho **********************/ |
|
public String getOrgan() |
|
{ |
|
return organ; |
|
} |
|
|
|
public String getUpper() |
|
{ |
|
return upperDept; |
|
} |
|
/********************************** Leejiho **********************/ |
|
}
|
|
|