下面的代码段演示 PDCCaseOwnerAssignmentStrategy 的样本实现,它只是将负责人设置为系统用户。
@Singleton
public class SampleCaseOwnerAssignmentStrategyImpl
implements PDCCaseOwnerAssignmentStrategy {
public void createOwner(CaseHeaderKey key, OrgObjectLinkDtls ownerDtls)
throws AppException, InformationalException {
ownerDtls.orgObjectType = ORGOBJECTTYPE.USER;
ownerDtls.userName = UserAccessFactory.newInstance().getSystemUserDetails().userName;
OrgObjectLinkFactory.newInstance().insert(ownerDtls);
OrgObjectLinkKey orgObjectLinkKey = new OrgObjectLinkKey();
orgObjectLinkKey.orgObjectLinkID = ownerDtls.orgObjectLinkID;
CaseUserRoleDtls caseUserRoleDtls = new CaseUserRoleDtls();
caseUserRoleDtls.caseID = key.caseID;
caseUserRoleDtls.orgObjectLinkID = orgObjectLinkKey.orgObjectLinkID;
caseUserRoleDtls.typeCode = CASEUSERROLETYPE.OWNER;
caseUserRoleDtls.recordStatus = RECORDSTATUS.NORMAL;
curam.core.sl.entity.fact.CaseUserRoleFactory.newInstance().insert(caseUserRoleDtls);
CaseHeader caseHeaderObj = CaseHeaderFactory.newInstance();
CaseHeaderDtls caseHeaderDtls = caseHeaderObj.read(key);
caseHeaderDtls.ownerOrgObjectLinkID = orgObjectLinkKey.orgObjectLinkID;
caseHeaderObj.modify(key, caseHeaderDtls);
}
}