package psdi.workflow.woreq;

import java.rmi.RemoteException;

import psdi.common.role.CustomRoleAdapter;
import psdi.common.role.CustomRoleInterface;
import psdi.common.role.MaxRole;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.util.MXException;

public class WorkshopDirRole extends CustomRoleAdapter
        implements CustomRoleInterface {
    public MboRemote evaluateCustomRole(MaxRole roleMbo, MboRemote mbo)
            throws MXException, RemoteException {
        String loggedPerson = roleMbo.getUserInfo().getPersonId();//登录人员唯一 ID
        //MboRemote personMbo = roleMbo.getPerson(loggedPerson).getMbo(0);//人员信息 mbo
        //String deptnum = personMbo.getString("DEPARTMENT");
        String mboname = mbo.getName();
        //if(mboname.equalsIgnoreCase("WORKORDER")){
        //工单主记录表
        //获得当前Mbo 下的班组
        String sdeptnum = mbo.getString("wopm2");
        sdeptnum = (sdeptnum == null) ? "" : sdeptnum.trim();
        MboSetRemote depts = roleMbo.getMboSet("$dept", "dept");
        depts.setWhere("deptnum ='" + sdeptnum + "'");
        depts.reset();
        MboRemote deptmbo = depts.getMbo(0);
        String supnum = deptmbo.getString("SUPNUM");//上级单位
        supnum = (supnum == null) ? "" : supnum.trim();
        depts.setWhere("deptnum ='" + supnum + "'");
        depts.reset();
        deptmbo = depts.getMbo(0);
        String personID = deptmbo.getString("DIRECTOR");//车间负责人
        psdi.mbo.MboSetRemote targetSet = roleMbo.getPerson(personID);
        if (targetSet.isEmpty())
            return roleMbo.getPerson(loggedPerson).getMbo(0);
        return roleMbo.getPerson(personID).getMbo(0);//返回一个 人员信息 mbo
        //}
    }
}